[READ ONLY MIRROR] Envoy REST/proto API definitions and documentation. (grpc依赖)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

254 lines
17 KiB

Version history
---------------
1.5.0
=====
* access log: added fields for :ref:`UPSTREAM_LOCAL_ADDRESS and DOWNSTREAM_ADDRESS
<config_access_log_format>`.
* admin: added :ref:`JSON output <operations_admin_interface_stats>` for stats admin endpoint.
* admin: added basic :ref:`Prometheus output <operations_admin_interface_stats>` for stats admin
endpoint. Histograms are not currently output.
* admin: added ``version_info`` to the :ref:`/clusters admin endpoint<operations_admin_interface_clusters>`.
* config: the :ref:`v2 API <config_overview_v2>` is now considered production ready.
* config: added :option:`--v2-config-only` CLI flag.
* cors: added :ref:`CORS filter <config_http_filters_cors>`.
* health check: added :ref:`x-envoy-immediate-health-check-fail
<config_http_filters_router_x-envoy-immediate-health-check-fail>` header support.
* health check: added :ref:`reuse_connection <envoy_api_field_HealthCheck.reuse_connection>` option.
* http: added :ref:`per-listener stats <config_http_conn_man_stats_per_listener>`.
* http: end-to-end HTTP flow control is now complete across both connections, streams, and filters.
* load balancer: added :ref:`subset load balancer <arch_overview_load_balancer_subsets>`.
* load balancer: added ring size and hash :ref:`configuration options
<envoy_api_msg_Cluster.RingHashLbConfig>`. This used to be configurable via runtime. The runtime
configuration was deleted without deprecation as we are fairly certain no one is using it.
* log: added the ability to optionally log to a file instead of stderr via the
:option:`--log-path` option.
* listeners: added :ref:`drain_type <envoy_api_field_Listener.drain_type>` option.
* lua: added experimental :ref:`Lua filter <config_http_filters_lua>`.
* mongo filter: added :ref:`fault injection <config_network_filters_mongo_proxy_fault_injection>`.
* mongo filter: added :ref:`"drain close" <arch_overview_draining>` support.
* outlier detection: added :ref:`HTTP gateway failure type <arch_overview_outlier_detection>`.
See `DEPRECATED.md <https://github.com/envoyproxy/envoy/blob/master/DEPRECATED.md#version-150>`_
for outlier detection stats deprecations in this release.
* redis: the :ref:`redis proxy filter <config_network_filters_redis_proxy>` is now considered
production ready.
* redis: added :ref:`"drain close" <arch_overview_draining>` functionality.
* router: added :ref:`x-envoy-overloaded <config_http_filters_router_x-envoy-overloaded>` support.
* router: added :ref:`regex <envoy_api_field_RouteMatch.regex>` route matching.
* router: added :ref:`custom request headers <config_http_conn_man_headers_custom_request_headers>`
for upstream requests.
* router: added :ref:`downstream IP hashing
<envoy_api_field_RouteAction.HashPolicy.connection_properties>` for HTTP ketama routing.
* router: added :ref:`cookie hashing <envoy_api_field_RouteAction.HashPolicy.cookie>`.
* router: added :ref:`start_child_span <envoy_api_field_filter.http.Router.start_child_span>` option
to create child span for egress calls.
* router: added optional :ref:`upstream logs <envoy_api_field_filter.http.Router.upstream_log>`.
* router: added complete :ref:`custom append/override/remove support
<config_http_conn_man_headers_custom_request_headers>` of request/response headers.
* router: added support to :ref:`specify response code during redirect
<envoy_api_field_RedirectAction.response_code>`.
* router: added :ref:`configuration <envoy_api_field_RouteAction.cluster_not_found_response_code>`
to return either a 404 or 503 if the upstream cluster does not exist.
* runtime: added :ref:`comment capability <config_runtime_comments>`.
* server: change default log level (:option:`-l`) to `info`.
* stats: maximum stat/name sizes and maximum number of stats are now variable via the
:option:`--max-obj-name-len` and :option:`--max-stats` options.
* tcp proxy: added :ref:`access logging <envoy_api_field_filter.network.TcpProxy.access_log>`.
* tcp proxy: added :ref:`configurable connect retries
<envoy_api_field_filter.network.TcpProxy.max_connect_attempts>`.
* tcp proxy: enable use of :ref:`outlier detector <arch_overview_outlier_detection>`.
* tls: added :ref:`SNI support <faq_how_to_setup_sni>`.
* tls: added support for specifying :ref:`TLS session ticket keys
<envoy_api_field_DownstreamTlsContext.session_ticket_keys>`.
* tls: allow configuration of the :ref:`min
<envoy_api_field_TlsParameters.tls_minimum_protocol_version>` and :ref:`max
<envoy_api_field_TlsParameters.tls_maximum_protocol_version>` TLS protocol versions.
* tracing: added :ref:`custom trace span decorators <envoy_api_field_Route.decorator>`.
* Many small bug fixes and performance improvements not listed.
1.4.0
=====
* macOS is :repo:`now supported </bazel#quick-start-bazel-build-for-developers>`. (A few features
are missing such as hot restart and original destination routing).
* YAML is now directly supported for :ref:`config files <config_overview_v1>`.
* Added :ref:`/routes <operations_admin_interface_routes>` admin endpoint.
* End-to-end flow control is now supported for TCP proxy, HTTP/1, and HTTP/2. HTTP flow control
that includes filter buffering is incomplete and will be implemented in 1.5.0.
* Log verbosity :repo:`compile time flag </bazel#log-verbosity>` added.
* Hot restart :repo:`compile time flag </bazel#hot-restart>` added.
* Original destination :ref:`cluster <arch_overview_service_discovery_types_original_destination>`
and :ref:`load balancer <arch_overview_load_balancing_types_original_destination>` added.
* :ref:`WebSocket <arch_overview_websocket>` is now supported.
* Virtual cluster priorities have been hard removed without deprecation as we are reasonably sure
no one is using this feature.
* Route :ref:`validate_clusters <config_http_conn_man_route_table_validate_clusters>` option added.
* :ref:`x-envoy-downstream-service-node <config_http_conn_man_headers_downstream-service-node>`
header added.
* :ref:`x-forwarded-client-cert <config_http_conn_man_headers_x-forwarded-client-cert>` header
added.
* Initial HTTP/1 forward proxy support for :ref:`absolute URLs
<config_http_conn_man_http1_settings>` has been added.
* HTTP/2 codec settings are now :ref:`configurable <config_http_conn_man_http2_settings>`.
* gRPC/JSON transcoder :ref:`filter <config_http_filters_grpc_json_transcoder>` added.
* gRPC web :ref:`filter <config_http_filters_grpc_web>` added.
* Configurable timeout for the rate limit service call in the :ref:`network
<config_network_filters_rate_limit>` and :ref:`HTTP <config_http_filters_rate_limit>` rate limit
filters.
* :ref:`x-envoy-retry-grpc-on <config_http_filters_router_x-envoy-retry-grpc-on>` header added.
* :ref:`LDS API <arch_overview_dynamic_config_lds>` added.
* TLS :ref:`require_client_certificate <config_listener_ssl_context_require_client_certificate>`
option added.
* :ref:`Configuration check tool <install_tools_config_load_check_tool>` added.
* :ref:`JSON schema check tool <install_tools_schema_validator_check_tool>` added.
* Config validation mode added via the :option:`--mode` option.
* :option:`--local-address-ip-version` option added.
* IPv6 support is now complete.
* UDP :ref:`statsd_ip_address <config_overview_statsd_udp_ip_address>` option added.
* Per-cluster :ref:`DNS resolvers <config_cluster_manager_cluster_dns_resolvers>` added.
* :ref:`Fault filter <config_http_filters_fault_injection>` enhancements and fixes.
* Several features are :repo:`deprecated as of the 1.4.0 release </DEPRECATED.md#version-140>`. They
will be removed at the beginning of the 1.5.0 release cycle. We explicitly call out that the
`HttpFilterConfigFactory` filter API has been deprecated in favor of
`NamedHttpFilterConfigFactory`.
* Many small bug fixes and performance improvements not listed.
1.3.0
=====
* As of this release, we now have an official :repo:`breaking change policy
</CONTRIBUTING.md#breaking-change-policy>`. Note that there are numerous breaking configuration
changes in this release. They are not listed here. Future releases will adhere to the policy and
have clear documentation on deprecations and changes.
* Bazel is now the canonical build system (replacing CMake). There have been a huge number of
changes to the development/build/test flow. See :repo:`/bazel/README.md` and
:repo:`/ci/README.md` for more information.
* :ref:`Outlier detection <arch_overview_outlier_detection>` has been expanded to include success
rate variance, and all parameters are now configurable in both runtime and in the JSON
configuration.
* TCP level :ref:`listener <config_listeners_per_connection_buffer_limit_bytes>` and
:ref:`cluster <config_cluster_manager_cluster_per_connection_buffer_limit_bytes>` connections now
have configurable receive buffer limits at which point connection level back pressure is applied.
Full end to end flow control will be available in a future release.
* :ref:`Redis health checking <config_cluster_manager_cluster_hc>` has been added as an active
health check type. Full Redis support will be documented/supported in 1.4.0.
* :ref:`TCP health checking <config_cluster_manager_cluster_hc_tcp_health_checking>` now supports a
"connect only" mode that only checks if the remote server can be connected to without
writing/reading any data.
* `BoringSSL <https://boringssl.googlesource.com/boringssl>`_ is now the only supported TLS provider.
The default cipher suites and ECDH curves have been updated with more modern defaults for both
:ref:`listener <config_listener_ssl_context>` and
:ref:`cluster <config_cluster_manager_cluster_ssl>` connections.
* The `header value match` :ref:`rate limit action
<config_http_conn_man_route_table_rate_limit_actions>` has been expanded to include an *expect
match* parameter.
* Route level HTTP rate limit configurations now do not inherit the virtual host level
configurations by default. The :ref:`include_vh_rate_limits
<config_http_conn_man_route_table_route_include_vh>` to inherit the virtual host level options if
desired.
* HTTP routes can now add request headers on a per route and per virtual host basis via the
:ref:`request_headers_to_add <config_http_conn_man_headers_custom_request_headers>` option.
* The :ref:`example configurations <install_ref_configs>` have been refreshed to demonstrate the
latest features.
* :ref:`per_try_timeout_ms <config_http_conn_man_route_table_route_retry>` can now be configured in
a route's retry policy in addition to via the :ref:`x-envoy-upstream-rq-per-try-timeout-ms
<config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms>` HTTP header.
* :ref:`HTTP virtual host matching <config_http_conn_man_route_table_vhost>` now includes support
for prefix wildcard domains (e.g., `*.lyft.com`).
* The default for tracing random sampling has been changed to 100% and is still configurable in
:ref:`runtime <config_http_conn_man_runtime>`.
* :ref:`HTTP tracing configuration <config_http_conn_man_tracing>` has been extended to allow tags
to be populated from arbitrary HTTP headers.
* The :ref:`HTTP rate limit filter <config_http_filters_rate_limit>` can now be applied to internal,
external, or all requests via the `request_type` option.
* :ref:`Listener binding <config_listeners>` now requires specifying an `address` field. This can be
used to bind a listener to both a specific address as well as a port.
* The :ref:`MongoDB filter <config_network_filters_mongo_proxy>` now emits a stat for queries that
do not have `$maxTimeMS` set.
* The :ref:`MongoDB filter <config_network_filters_mongo_proxy>` now emits logs that are fully valid
JSON.
* The CPU profiler output path is now :ref:`configurable <config_admin_v1>`.
* A :ref:`watchdog system <config_overview_v1>` has been added that can kill the server if a deadlock
is detected.
* A :ref:`route table checking tool <install_tools_route_table_check_tool>` has been added that can
be used to test route tables before use.
* We have added an :ref:`example repo <extending>` that shows how to compile/link a custom filter.
* Added additional cluster wide information related to outlier detection to the :ref:`/clusters
admin endpoint <operations_admin_interface>`.
* Multiple SANs can now be verified via the :ref:`verify_subject_alt_name
<config_listener_ssl_context>` setting. Additionally, URI type SANs can be verified.
* HTTP filters can now be passed :ref:`opaque configuration
<config_http_conn_man_route_table_opaque_config>` specified on a per route basis.
* By default Envoy now has a built in crash handler that will print a back trace. This behavior can
be disabled if desired via the ``--define=signal_trace=disabled`` Bazel option.
* Zipkin has been added as a supported :ref:`tracing provider <arch_overview_tracing>`.
* Numerous small changes and fixes not listed here.
1.2.0
=====
* :ref:`Cluster discovery service (CDS) API <config_cluster_manager_cds>`.
* :ref:`Outlier detection <arch_overview_outlier_detection>` (passive health checking).
* Envoy configuration is now checked against a :ref:`JSON schema <config_overview_v1>`.
* :ref:`Ring hash <arch_overview_load_balancing_types>` consistent load balancer, as well as HTTP
consistent hash routing :ref:`based on a policy <config_http_conn_man_route_table_hash_policy>`.
* Vastly :ref:`enhanced global rate limit configuration <arch_overview_rate_limit>` via the HTTP
rate limiting filter.
* HTTP routing to a cluster :ref:`retrieved from a header
<config_http_conn_man_route_table_route_cluster_header>`.
* :ref:`Weighted cluster <config_http_conn_man_route_table_route_config_weighted_clusters>` HTTP
routing.
* :ref:`Auto host rewrite <config_http_conn_man_route_table_route_auto_host_rewrite>` during HTTP
routing.
* :ref:`Regex header matching <config_http_conn_man_route_table_route_headers>` during HTTP routing.
* HTTP access log :ref:`runtime filter <config_http_con_manager_access_log_filters_runtime_v1>`.
* LightStep tracer :ref:`parent/child span association <arch_overview_tracing>`.
* :ref:`Route discovery service (RDS) API <config_http_conn_man_rds>`.
* HTTP router :ref:`x-envoy-upstream-rq-timeout-alt-response header
<config_http_filters_router_x-envoy-upstream-rq-timeout-alt-response>` support.
* *use_original_dst* and *bind_to_port* :ref:`listener options <config_listeners>` (useful for
iptables based transparent proxy support).
* TCP proxy filter :ref:`route table support <config_network_filters_tcp_proxy>`.
* Configurable :ref:`stats flush interval <config_overview_stats_flush_interval_ms>`.
* Various :ref:`third party library upgrades <install_requirements>`, including using BoringSSL as
the default SSL provider.
* No longer maintain closed HTTP/2 streams for priority calculations. Leads to substantial memory
savings for large meshes.
* Numerous small changes and fixes not listed here.
1.1.0
=====
* Switch from Jannson to RapidJSON for our JSON library (allowing for a configuration schema in
1.2.0).
* Upgrade :ref:`recommended version <install_requirements>` of various other libraries.
* :ref:`Configurable DNS refresh rate <config_cluster_manager_cluster_dns_refresh_rate_ms>` for
DNS service discovery types.
* Upstream circuit breaker configuration can be :ref:`overridden via runtime
<config_cluster_manager_cluster_runtime>`.
* :ref:`Zone aware routing support <arch_overview_load_balancing_zone_aware_routing>`.
* Generic :ref:`header matching routing rule <config_http_conn_man_route_table_route_headers>`.
* HTTP/2 :ref:`graceful connection draining <config_http_conn_man_drain_timeout_ms>` (double
GOAWAY).
* DynamoDB filter :ref:`per shard statistics <config_http_filters_dynamo>` (pre-release AWS
feature).
* Initial release of the :ref:`fault injection HTTP filter <config_http_filters_fault_injection>`.
* HTTP :ref:`rate limit filter <config_http_filters_rate_limit>` enhancements (note that the
configuration for HTTP rate limiting is going to be overhauled in 1.2.0).
* Added :ref:`refused-stream retry policy <config_http_filters_router_x-envoy-retry-on>`.
* Multiple :ref:`priority queues <arch_overview_http_routing_priority>` for upstream clusters
(configurable on a per route basis, with separate connection pools, circuit breakers, etc.).
* Added max connection circuit breaking to the :ref:`TCP proxy filter <arch_overview_tcp_proxy>`.
* Added :ref:`CLI <operations_cli>` options for setting the logging file flush interval as well
as the drain/shutdown time during hot restart.
* A very large number of performance enhancements for core HTTP/TCP proxy flows as well as a
few new configuration flags to allow disabling expensive features if they are not needed
(specifically request ID generation and dynamic response code stats).
* Support Mongo 3.2 in the :ref:`Mongo sniffing filter <config_network_filters_mongo_proxy>`.
* Lots of other small fixes and enhancements not listed.
1.0.0
=====
Initial open source release.