Upgrading to ATS v10.x¶
Feature Changes¶
Removed and Deprecated Features¶
The following features, configurations and plugins are either removed or deprecated in this version of ATS. Deprecated features should be avoided, with the expectation that they will be removed in the next major release of ATS.
Removed Features * HostDB no longer supports persistent storage for DNS resolution * Removed support for the MMH crypto hash function
Traffic Manager is no longer part of Traffic Server. Administrative tools now interact with Traffic Server directly by using the JSONRPC Endpoint.
traffic_ctl
serverAs a part of the above feature removal the
backtrace,restart,start,statusoptions are no longer available in this Traffic Server version.
Deprecated Features
Next Protocol Negotiation (NPN) support has been deprecated from ATS and will be removed in the next major release.
Removed Libraries
mgmt_c - Client library for traffic_manager
Changes to Features¶
The following features have been changed in this version of ATS.
Remap ACLs
Changed in-line ACLs to match before activated ACL rules. For details refer to: https://github.com/apache/trafficserver/pull/11033 and ACL Filters.
Administrative API (RPC)
Moved away from the binary serialization mechanism used to comunicate between Traffic Server and the tools to a JSON-RPC text based protocol. Underlying Unix Domain Socket protocol remains the same. Check JSONRPC 2.0 Protocol for more details.
Other changes
It is now a fatal error when ATS cannot bind or listen to a configured port
Propagate socket options specified in
proxy.config.net.sock_option_flag_into newly accepted connectionsHostDB internals were restructured, this should (externally) be backwards compatible. In any case you can check HostDB for more details.
API Changes¶
The following APIs have changed, either in semantics, interfaces, or both.
Changed TS API
TSHttpTxnAborted
TSMimeHdrPrint
Enum values for hooks and events have been changed (ABI incompatible change)
TSSslSecretGet
New TS API
TSContScheduleOnEntirePool
TSContScheduleEveryOnEntirePool
Removed TS API
TSContSchedule
TSHttpSsnArgSet
TSHttpSsnArgGet
TSHttpSsnArgIndexReserve
TSHttpSsnArgIndexNameLookup
TSHttpSsnArgIndexLookup
TSHttpTxnArgSet
TSHttpTxnArgGet
TSHttpTxnArgIndexReserve
TSHttpTxnArgIndexNameLookup
TSHttpTxnArgIndexLookup
TSHttpTxnClientPacketTosSet
TSHttpTxnServerPacketTosSet
TSMgmtConfigIntSet
TSUrlHttpParamsGet
TSUrlHttpParamsSet
TSVConnArgSet
TSVConnArgGet
TSVConnArgIndexReserve
TSVConnArgIndexNameLookup
TSVConnArgIndexLookup
TSRecordType::TS_RECORDTYPE_CLUSTER
TSRecordType::TS_RECORDTYPE_LOCAL
Removed INK UDP API
INKUDPBind
INKUDPSendTo
INKUDPRecvFrom
INKUDPConnFdGet
INKUDPPacketCreate
INKUDPPacketBufferBlockGet
INKUDPPacketFromAddressGet
INKUDPPacketFromPortGet
INKUDPPacketConnGet
INKUDPPacketDestroy
INKUDPPacketGet
Cache¶
The cache in this releases of ATS is compatible with previous versions of ATS. You would not expect to lose your cache, or have to reinitialize the cache when upgrading.
Configuration Changes¶
The following incompatible changes to the configurations have been made in this version of ATS.
The records.config file has been renamed to records.yaml and now it is structured in YAML format.
Check Converting records.config to records.yaml and records.yaml for more details.
The following records.yaml changes have been made:
The records.yaml entry
proxy.config.http.down_server.abort_thresholdhas been removed.The records.yaml entry
proxy.config.http.connect_attempts_max_retries_dead_serverhas been renamed toproxy.config.http.connect_attempts_max_retries_down_server.The entry
proxy.config.http.connect.dead.policyhas been renamed toproxy.config.http.connect.down.policy.The records.yaml entry
proxy.config.http.parent_proxy.connect_attempts_timeoutandproxy.config.http.post_connect_attempts_timeouthave been removed. Instead useproxy.config.http.connect_attempts_timeoutto control all connection to origin timeouts.The per server origin connection feature had a few configurations that were not used removed.
proxy.config.http.per_server.connection.queue_sizeandproxy.config.http.per_server.connection.queue_delayhave been removed.The default value for records.yaml entry
proxy.config.ssl.client.verify.server.policyhas been changed fromPERMISSIVEtoSTRICT.All
proxy.config.ssl.TLSv*andproxy.config.ssl.client.TLSv*have been deprecated. Useproxy.config.ssl.server.version.min/maxandproxy.config.ssl.client.version.min/maxinstead.The records.yaml entry
proxy.config.http.keepalive_internal_vchas been removed. This entry was previously undocumented.The default values for
proxy.config.http.request_header_max_size,proxy.config.http.response_header_max_size, andproxy.config.http.header_field_max_sizehave been changed to 32KB.The records.yaml entry
proxy.config.http.server_portsnow also accepts theallow-plainoptionThe records.yaml entry
proxy.config.http.cache.max_open_write_retry_timeouthas been added to specify a timeout for starting a write to cacheThe records.yaml entry
proxy.config.net.per_client.max_connections_inhas been added to limit the number of connections from a client IP. This works the same asproxy.config.http.per_server.connection.maxThe records.yaml entry
proxy.config.http.no_dns_just_forward_to_parentis not overridableThe records.yaml entry
proxy.config.output.logfilehas been renamed toproxy.config.output.logfile.name.The records.yaml entry
proxy.config.exec_thread.autoconfighas been renamed toproxy.config.exec_thread.autoconfig.enabled.The records.yaml entry
proxy.config.tunnel.prewarmhas been renamed toproxy.config.tunnel.prewarm.enabled.The records.yaml entry
proxy.config.ssl.origin_session_cachehas been renamed toproxy.config.ssl.origin_session_cache.enabled.The records.yaml entry
proxy.config.ssl.session_cachehas been renamed toproxy.config.ssl.session_cache.enabled.The records.yaml entry
proxy.config.ssl.TLSv1_3has been renamed toproxy.config.ssl.TLSv1_3.enabled.The records.yaml entry
proxy.config.ssl.client.TLSv1_3has been renamed toproxy.config.ssl.client.TLSv1_3.enabled.The records.yaml entry
proxy.config.allocator.iobuf_chunk_sizeshas been added to enable more control of iobuffer allocation.The records.yaml entry
proxy.config.allocator.hugepageswill enable allocating iobuffers and cache volumes from hugepages if configured in the system.
The following changes have been made to the sni.yaml file:
disable_h2has been removed. Usehttp2withoffinstead.The
ip_allowkey can now take a reference to a file containing the ip allow rulesvalid_tls_versions_inhas been deprecated. Usevalid_tls_version_min_inandvalid_tls_version_max_ininstead.Simplify wildcard support and matching order of the
fqdnfieldAllow single left-most
*Do NOT support regex
Allow
$1(capturing) support in thetunnel_routefieldMatching depends on the order of entries (like
remap.config)
Plugins¶
Deprecated Plugins¶
The following plugins have been deprecated.
healthchecks - please use the statichit plugin instead
icap
Removed Plugins¶
The following plugins have been removed from the ATS source code in this version of ATS:
mysql_remap - Dynamic remapping of URLs using data from a MySQL database.
acme
cache_key_genid
fast_cgi
Changes to Features¶
The following plugins have been changed in this version of ATS.
regex_remap - matrix-parameters parameter has been removed. The string that follows a semicolon is now included in path.
header_rewrite - MATRIX part specifier has been removed. The string that follows a semicolon is now included in PATH part.
maxmind_acl - The regex part in its configuration takes the entire URL of a request, not just the path.
rate_limit - Few changes were made on this plugin:
A
YAMLbased configuration, reloadable even as global plugin.SNI aliases
The IP reputation objects are now shareable for many SNIs.
for more details, please check Rate Limit Plugin.
Lua Plugin¶
The following Http config constants have been renamed:
TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES_DEAD_SERVER has been renamed to TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES_DOWN_SERVER.
TS_LUA_CONFIG_HTTP_CONNECT_DEAD_POLICY has been renamed to TS_LUA_CONFIG_HTTP_CONNECT_DOWN_POLICY.
The following functions have been removed:
ts.http.client_packet_tos_set
ts.http.server_packet_tos_set
ts.client_request.get_uri_params
ts.client_request.set_uri_params
ts.server_request.get_uri_params
ts.server_request.set_uri_params
Metrics¶
The HTTP connection metric proxy.process.http.dead_server.no_requests has been renamed to proxy.process.http.down_server.no_requests.
The network metric
proxy.process.net.calls_to_readfromnet_afterpollhas been removedThe network metric
proxy.process.net.calls_to_writetonet_afterpollhas been removedNew cache metrics
proxy.process.cache.stripesandproxy.process.cache.volume_X.stripesthat counts cache stripesAll metric names that ended in
_stathave had that suffix dropped and no longer end with_statThe metric
proxy.node.cache.contents.num_docwas removedThe metric
proxy.node.config.reconfigure_requiredwas renamed toproxy.process.proxy.reconfigure_requiredThe metric
proxy.node.config.reconfigure_timewas renamed toproxy.process.proxy.reconfigure_timeThe metric
proxy.node.config.restart_required.proxywas renamed toproxy.process.proxy.restart_requiredThe metric
proxy.node.restarts.proxy.cache_ready_timewas renamed toproxy.process.proxy.cache_ready_timeThe metric
proxy.node.restarts.proxy.stop_timewas renamed toproxy.process.proxy.start_timeThe following traffic_manager metrics have been removed: - proxy.node.hostname_FQ - proxy.node.hostname - proxy.node.proxy_running - proxy.node.restarts.proxy.restart_count - proxy.node.restarts.proxy.start_time - proxy.node.http.parent_proxy_total_response_bytes
Logging¶
The cqtx log field has been removed, but can be replaced by cqhm pqu cqpv.
The cqhv log field has been removed.
The cpu, cquc, cqup, and cqus log fields have new names, pqu, pquc, pqup, and pqus. The old names have been deprecated.
The chi log field now represents the IP address of the previous hop if Proxy Protocol is used.