Apache:...inClient(3)

πŸ“¦
version 9.2.16 Β· 2 versions
, in epel 9

πŸ¦‹ NAME

ok so welcome to the Apache::TS::AdminClient(3) page bestie, and honestly? this module is a whole vibe πŸ’…

Apache::TS::AdminClient β€” it's a perl interface to the statistics and configuration settings stored within Apache Traffic Server. that's it, that's the flex ✨


✨ SYNOPSIS ✨

#!/usr/bin/perl
use Apache::TS::AdminClient;

my $cli = Apache::TS::AdminClient->new(%input);
my $string = $cli->get_stat("proxy.config.product_company");
print "$string\n";

like literally that's all it takes 🫢 instant main character energy.


πŸ’– DESCRIPTION πŸ’–

okay so here's the lore: AdminClient opens a TCP connection to a unix domain socket on local disk 🌸 the way it works is β€” once the connection is established, AdminClient will write requests to the socket and then just wait for Apache Traffic Server to return a response, no cap 😭

where do you find valid request strings?? the answers live in RecordsConfig.cc, which is included with the Apache Traffic Server source πŸ‘‘

a list of valid request strings is included with this documentation, but lowkey listen β€” that included list may not be complete, because future releases of Apache Traffic Server may include new request strings or remove existing ones. so vibe check your ATS version before you hardcode anything πŸ™ˆ


πŸŽ€ CONSTRUCTOR πŸŽ€

when the object is created for this module, it assumes the 'Unix Domain Socket' is at the default location from the Apache Traffic Server installation ⭐ that's cute and all, but you can change it when you're creating the object by setting 'socket_path' ✨ for example:

my $cli = AdminClient->new(socket_path=> "/var/trafficserver");

this would make the module look for the 'Unix Domain Socket' in the directory '/var/trafficserver' πŸ’–

and here's the serve: the path can optionally include the name of the Socket file β€” and without it, the constructor defaults to 'mgmtapi.sock' 🧚 periodt.


πŸ”₯ PUBLIC METHODS πŸ”₯

to read a single metric (or configuration), two APIs are available πŸ‘‘

$cli->get_stat($stats_name);
$cli->get_config($config_name);

this will return a (scalar) value for this metric or configuration πŸ’œ like yes, one value, scalars only, that's the assignment.

traffic_ctl

ngl there's a command line tool included with Apache Traffic Server called traffic_ctl and it overlaps with this module 😳 traffic_ctl can be used to read and write statistics or config settings that this module can. hence if you don't want to write a perl one-liner to get to this information, traffic_ctl is your tool 🫢 the way it's just sitting there being convenient.

List of configurations

the Apache Traffic Server Administration Manual will explain what these strings represent 🌈 iykyk, go read it:

https://docs.trafficserver.apache.org/en/latest/

okay bestie we're still in the config list and we are not skipping a single one β€” every name below is verbatim, in order, no cap πŸ’… buckle up πŸŽ€

threads, admin & alarms ✨

  • proxy.config.accept_threads
  • proxy.config.task_threads
  • proxy.config.admin.synthetic_port
  • proxy.config.admin.cli_path
  • proxy.config.admin.user_id
  • proxy.config.alarm.abs_path
  • proxy.config.alarm.bin
  • proxy.config.alarm.script_runtime
  • proxy.config.bandwidth_mgmt.filename
  • proxy.config.bin_path

body factory (it's giving response-page energy) 🌸

  • proxy.config.body_factory.enable_customizations
  • proxy.config.body_factory.enable_logging
  • proxy.config.body_factory.response_max_size
  • proxy.config.body_factory.response_suppression_mode
  • proxy.config.body_factory.template_sets_dir

cache era πŸ”₯ (the biggest vibe block, honestly)

  • proxy.config.cache.agg_write_backlog
  • proxy.config.cache.alt_rewrite_max_size
  • proxy.config.cache.control.filename
  • proxy.config.cache.dir.sync_frequency
  • proxy.config.cache.enable_checksum
  • proxy.config.cache.enable_read_while_writer
  • proxy.config.cache.hostdb.disable_reverse_lookup
  • proxy.config.cache.hostdb.sync_frequency
  • proxy.config.cache.hosting_filename
  • proxy.config.cache.ip_allow.filename
  • proxy.config.cache.limits.http.max_alts
  • proxy.config.cache.log.alternate.eviction
  • proxy.config.cache.max_disk_errors
  • proxy.config.cache.max_doc_size
  • proxy.config.cache.min_average_object_size
  • proxy.config.cache.volume_filename
  • proxy.config.cache.permit.pinning
  • proxy.config.cache.ram_cache_cutoff
  • proxy.config.cache.ram_cache.size
  • proxy.config.cache.select_alternate
  • proxy.config.cache.threads_per_disk
  • proxy.config.cache.mutex_retry_delay

cop & core limit πŸ‘‘ (yes cop is literally the name, we don't make the rules)

  • proxy.config.cop.core_signal
  • proxy.config.cop.linux_min_memfree_kb
  • proxy.config.cop.linux_min_swapfree_kb
  • proxy.config.core_limit

diags πŸ¦‹ β€” the whole action / debug / output family, all of it:

  • proxy.config.diags.action.enabled
  • proxy.config.diags.action.tags
  • proxy.config.diags.debug.enabled
  • proxy.config.diags.debug.tags
  • proxy.config.diags.output.alert
  • proxy.config.diags.output.debug
  • proxy.config.diags.output.diag
  • proxy.config.diags.output.emergency
  • proxy.config.diags.output.error
  • proxy.config.diags.output.fatal
  • proxy.config.diags.output.note
  • proxy.config.diags.output.status
  • proxy.config.diags.output.warning
  • proxy.config.diags.show_location

DNS girlies 🌈

  • proxy.config.dns.failover_number
  • proxy.config.dns.failover_period
  • proxy.config.dns.lookup_timeout
  • proxy.config.dns.max_dns_in_flight
  • proxy.config.dns.nameservers
  • proxy.config.dns.resolv_conf
  • proxy.config.dns.retries
  • proxy.config.dns.round_robin_nameservers
  • proxy.config.dns.search_default_domains
  • proxy.config.dns.splitDNS.enabled
  • proxy.config.dns.splitdns.filename
ngl the capitalization on those last two is not a typo on my end β€” splitDNS and splitdns are literally typed that way, keep them exactly like that k? 😭

misc runtime snack pack πŸ“

  • proxy.config.dump_mem_info_frequency
  • proxy.config.env_prep
  • proxy.config.exec_thread.autoconfig
  • proxy.config.exec_thread.autoconfig.scale
  • proxy.config.exec_thread.limit
  • proxy.config.header.parse.no_host_url_redirect

hostdb πŸ’œ (whole little family, obsessed)

  • proxy.config.hostdb
  • proxy.config.hostdb.fail.timeout
  • proxy.config.hostdb.filename
  • proxy.config.hostdb.lookup_timeout
  • proxy.config.hostdb.migrate_on_demand
  • proxy.config.hostdb.re_dns_on_reload
  • proxy.config.hostdb.serve_stale_for
  • proxy.config.hostdb.size
  • proxy.config.hostdb.storage_path
  • proxy.config.hostdb.storage_size
  • proxy.config.hostdb.strict_round_robin
  • proxy.config.hostdb.timeout
  • proxy.config.hostdb.ttl_mode
  • proxy.config.hostdb.verify_after

okay now the http block 🌟 β€” this is the main character section, huge, we're doing all of it:

  • proxy.config.http.accept_encoding_filter.filename
  • proxy.config.http.accept_no_activity_timeout
  • proxy.config.http.insert_client_ip
  • proxy.config.http.anonymize_other_header_list
  • proxy.config.http.anonymize_remove_client_ip
  • proxy.config.http.anonymize_remove_cookie
  • proxy.config.http.anonymize_remove_from
  • proxy.config.http.anonymize_remove_referer
  • proxy.config.http.anonymize_remove_user_agent
  • proxy.config.http.background_fill_active_timeout
  • proxy.config.http.background_fill_completed_threshold
  • proxy.config.http.cache.cache_responses_to_cookies
  • proxy.config.http.cache.cache_urls_that_look_dynamic
  • proxy.config.http.cache.guaranteed_max_lifetime
  • proxy.config.http.cache.guaranteed_min_lifetime
  • proxy.config.http.cache.heuristic_lm_factor
  • proxy.config.http.cache.heuristic_max_lifetime
  • proxy.config.http.cache.heuristic_min_lifetime
  • proxy.config.http.cache.http
  • proxy.config.http.cache.ignore_accept_charset_mismatch
  • proxy.config.http.cache.ignore_accept_encoding_mismatch
  • proxy.config.http.cache.ignore_accept_language_mismatch
  • proxy.config.http.cache.ignore_accept_mismatch
  • proxy.config.http.cache.ignore_authentication
  • proxy.config.http.cache.ignore_client_cc_max_age
  • proxy.config.http.cache.ignore_client_no_cache
  • proxy.config.http.cache.ignore_server_no_cache
  • proxy.config.http.cache.ims_on_client_no_cache
  • proxy.config.http.cache.max_open_read_retries
  • proxy.config.http.cache.max_open_write_retries
  • proxy.config.http.cache.max_stale_age
  • proxy.config.http.cache.open_read_retry_time
  • proxy.config.http.cache.range.lookup
  • proxy.config.http.cache.range.write
  • proxy.config.http.cache.required_headers
  • proxy.config.http.cache.when_to_revalidate
  • proxy.config.http.chunking_enabled
  • proxy.config.http.connect_attempts_max_retries
  • proxy.config.http.connect_attempts_max_retries_dead_server
  • proxy.config.http.connect_attempts_rr_retries
  • proxy.config.http.connect_attempts_timeout
  • proxy.config.http.connect_ports
  • proxy.config.http.default_buffer_size
  • proxy.config.http.default_buffer_water_mark
  • proxy.config.http.doc_in_cache_skip_dns
  • proxy.config.http.down_server.cache_time
  • proxy.config.http.enabled
  • proxy.config.http.enable_http_info
  • proxy.config.http.enable_http_stats
  • proxy.config.http.errors.log_error_pages
  • proxy.config.http.forward.proxy_auth_to_parent
  • proxy.config.http.global_user_agent_header
  • proxy.config.http.insert_age_in_response
  • proxy.config.http.insert_request_via_str
  • proxy.config.http.insert_response_via_str
  • proxy.config.http.insert_squid_x_forwarded_for
  • proxy.config.http.keep_alive_enabled_in
  • proxy.config.http.keep_alive_enabled_out
  • proxy.config.http.keep_alive_no_activity_timeout_in
  • proxy.config.http.keep_alive_no_activity_timeout_out
  • proxy.config.http.keep_alive_post_out
  • proxy.config.http.negative_caching_enabled
  • proxy.config.http.negative_caching_list
  • proxy.config.http.negative_caching_lifetime
  • proxy.config.http.negative_revalidating_enabled
  • proxy.config.http.negative_revalidating_lifetime
  • proxy.config.http.no_dns_just_forward_to_parent
  • proxy.config.http.no_origin_server_dns
  • proxy.config.http.normalize_ae_gzip
  • proxy.config.http.number_of_redirections
  • proxy.config.http.per_server.connection.max
  • proxy.config.http.origin_min_keep_alive_connections
  • proxy.config.http.parent_proxies
  • proxy.config.http.parent_proxy.connect_attempts_timeout
  • proxy.config.http.parent_proxy.fail_threshold
  • proxy.config.http.parent_proxy.file
  • proxy.config.http.parent_proxy.per_parent_connect_attempts
  • proxy.config.http.parent_proxy.retry_time
  • proxy.config.http.parent_proxy.total_connect_attempts
  • proxy.config.http.post_connect_attempts_timeout
  • proxy.config.http.post_copy_size
  • proxy.config.http.push_method_enabled
  • proxy.config.http.quick_filter.mask
  • proxy.config.http.record_heartbeat
  • proxy.config.http.referer_default_redirect
  • proxy.config.http.referer_filter
  • proxy.config.http.referer_format_redirect
  • proxy.config.http.request_header_max_size
  • proxy.config.http.request_via_str
  • proxy.config.http.response_header_max_size
  • proxy.config.http.response_server_enabled
  • proxy.config.http.response_server_str
  • proxy.config.http.response_via_str
  • proxy.config.http.send_http11_requests
  • proxy.config.http.server_max_connections
  • proxy.config.http.server_port
  • proxy.config.http.slow.log.threshold
  • proxy.config.http.connect_ports
  • proxy.config.http.transaction_active_timeout_in
  • proxy.config.http.transaction_active_timeout_out
  • proxy.config.http.transaction_no_activity_timeout_in
  • proxy.config.http.transaction_no_activity_timeout_out
  • proxy.config.http_ui_enabled
  • proxy.config.http.uncacheable_requests_bypass_parent
🫢 and yes β€” proxy.config.http.connect_ports shows up twice in this list, once up near the connect_attempts cluster and once down near the slow.log cluster. That's literally how it's printed, so I kept both. Not me fixing it, not me merging it. Both stay. periodt πŸ’…

io / lm / local state 🧚

  • proxy.config.io.max_buffer_size
  • proxy.config.lm.pserver_timeout_msecs
  • proxy.config.lm.pserver_timeout_secs
  • proxy.config.local_state_dir

log πŸ’– (all of it, the whole loggie family)

  • proxy.config.log.ascii_buffer_size
  • proxy.config.log.auto_delete_rolled_files
  • proxy.config.log.file_stat_frequency
  • proxy.config.log.hostname
  • proxy.config.log.log_buffer_size
  • proxy.config.log.logfile_dir
  • proxy.config.log.logfile_perm
  • proxy.config.log.logging_enabled
  • proxy.config.log.max_line_size
  • proxy.config.log.max_secs_per_buffer
  • proxy.config.log.max_space_mb_for_logs
  • proxy.config.log.max_space_mb_headroom
  • proxy.config.log.overspill_report_count
  • proxy.config.log.rolling_enabled
  • proxy.config.log.rolling_interval_sec
  • proxy.config.log.rolling_offset_hr
  • proxy.config.log.rolling_size_mb
  • proxy.config.log.sampling_frequency
  • proxy.config.log.space_used_frequency
  • proxy.config.log.config.filename

manager & net ⭐ β€” sock options galore, we love a buffer size moment

  • proxy.config.manager_binary
  • proxy.config.net.connections_throttle
  • proxy.config.net.listen_backlog
  • proxy.config.net.sock_mss_in
  • proxy.config.net.sock_option_flag_in
  • proxy.config.net.sock_option_flag_out
  • proxy.config.net.sock_recv_buffer_size_in
  • proxy.config.net.sock_recv_buffer_size_out
  • proxy.config.net.sock_send_buffer_size_in
  • proxy.config.net.sock_send_buffer_size_out
  • proxy.config.net.defer_accept

output / plugin / process / product / proxy 🌸

  • proxy.config.output.logfile
  • proxy.config.plugin.plugin_dir
  • proxy.config.process_manager.mgmt_port
  • proxy.config.process_manager.timeout
  • proxy.config.product_company
  • proxy.config.product_name
  • proxy.config.product_vendor
  • proxy.config.proxy.authenticate.basic.realm
  • proxy.config.proxy_binary
  • proxy.config.proxy_binary_opts
  • proxy.config.proxy_name

remap / res / reverse proxy πŸ¦‹

  • proxy.config.remap.num_remap_threads
  • proxy.config.res_track_memory
  • proxy.config.reverse_proxy.enabled
  • proxy.config.reverse_proxy.oldasxbehavior
πŸ™ˆ oldasxbehavior is exactly as written, no space, no underscore β€” do not "clean it up", bestie, that's not our business

socks πŸ‘‘ β€” biggest single family after http, all fourteen:

  • proxy.config.socks.accept_enabled
  • proxy.config.socks.accept_port
  • proxy.config.socks.connection_attempts
  • proxy.config.socks.default_servers
  • proxy.config.socks.http_port
  • proxy.config.socks.per_server_connection_attempts
  • proxy.config.socks.server_connect_timeout
  • proxy.config.socks.server_fail_threshold
  • proxy.config.socks.server_retry_time
  • proxy.config.socks.server_retry_timeout
  • proxy.config.socks.socks_config_file
  • proxy.config.socks.socks_needed
  • proxy.config.socks.socks_timeout
  • proxy.config.socks.socks_version

srv & ssl πŸŽ€ β€” and we're wrapping this stretch of the list here:

  • proxy.config.srv_enabled
  • proxy.config.ssl.CA.cert.filename
  • proxy.config.ssl.CA.cert.path
  • proxy.config.ssl.client.CA.cert.filename
  • proxy.config.ssl.client.CA.cert.path
  • proxy.config.ssl.client.cert.filename
  • proxy.config.ssl.client.certification_level
  • proxy.config.ssl.client.cert.path
  • proxy.config.ssl.client.private_key.filename
  • proxy.config.ssl.client.private_key.path
  • proxy.config.ssl.server.cert_chain.filename
  • proxy.config.ssl.server.cert.path
  • proxy.config.ssl.server.cipher_suite
  • proxy.config.ssl.server.honor_cipher_order
  • proxy.config.ssl.server.dhparams_file
  • proxy.config.ssl.TLSv1
  • proxy.config.ssl.TLSv1_1
  • proxy.config.ssl.TLSv1_2
  • proxy.config.ssl.TLSv1_3
  • proxy.config.ssl.server.multicert.filename
  • proxy.config.ssl.server.private_key.path
  • proxy.config.ssl.keylog_file
  • proxy.config.stat_collector.interval
  • proxy.config.stat_collector.port
  • proxy.config.syslog_facility
  • proxy.config.system.file_max_pct
  • proxy.config.thread.default.stacksize
  • proxy.config.udp.free_cancelled_pkts_sec
  • proxy.config.udp.periodic_cleanup
  • proxy.config.udp.send_retries
  • proxy.config.url_remap.filename
  • proxy.config.url_remap.pristine_host_hdr
  • proxy.config.url_remap.remap_required

And that's the whole list, bestie β€” every single one, no cap, nothing skipped πŸ’…βœ¨


πŸ“œ LICENSE πŸ“œ

Okay so this part is the boring-but-actually-important part, and I'm gonna be real with you: it's the legal bit, so pay attention 🫢

This thing is a Simple Apache Traffic Server client object, and its whole job is to communicate with the local manager.

It's licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. The NOTICE file that ships with this work has additional info about copyright ownership β€” go read it, it's literally right there 😌

The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with the License. You can grab a copy of the License at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied 😭 β€” so like, no promises, fr fr. See the License for the specific language governing permissions and limitations under the License. That's the whole vibe. Read the license, it's giving responsible queen behavior πŸ‘‘πŸ’–


πŸ’€ Ngl, that's the entire page β€” you made it to the end, which is iconic. Go configure something and slay ✨

Okay bye bestie, drink some water, and remember: this page is from perl v5.32.1 and it's dated 2026-10-20 πŸŽ€ That's the source and version and date right there, so if you're quoting it in a group chat you can be like "perl v5.32.1, 2026-10-20, Apache:...inClient(3)" and everyone will think you're a genius πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from