Accessing Statistics
There are currently two methods provided with Traffic Server to view statistics: Traffic Control and Stats Over HTTP.
Traffic Control
The command line utility traffic_ctl offers a text based interface for viewing Traffic Server statistics. Invocation is simple and requires knowing the specific name of the statistic you wish you view:
traffic_ctl metric get <statistic name>
You may notice that this is the same utility, and argument, used for viewing configuration variables of a running Traffic Server instance. Unlike configuration variables, you cannot modify a statistic value with the traffic_ctl program.
This utility is enabled and built by default, and will be located in the
bin/
subdirectory of your Traffic Server installation. There are no required changes
to your configuration to allow traffic_ctl to function, however it
may only be run by users with permissions to access the Traffic Server Unix socket. This
will typically limit use to root as well as the system user you have configured
Traffic Server to run under or any other system users which share the same group as you
have configured Traffic Server to use.
Stats Over HTTP
Traffic Server includes a stable plugin, Stats Over HTTP Plugin, which provides HTTP access to all Traffic Server statistics. The plugin returns a JSON object with all statistics and their current values. It is not possible to return a subset of the statistics. The plugin must be enabled before you may use it.
Enabling Stats Over HTTP
To enable the Stats Over HTTP Plugin plugin, you must add the
following to your plugin.config
:
stats_over_http.so
Once the plugin is enabled and Traffic Server has reloaded, you can test that it is
working properly by issuing a simple HTTP request with curl
. Assuming your
Traffic Server installation is using the default interface and port bindings, running the
following command on the same host as Traffic Server should now work:
curl http://localhost:8080/_stats
You should be presented with an HTTP response containing a single JSON object which lists all the available statistics and their current values. If you have configured Traffic Server to only listen on a specific interface, or to use a different port, you may need to adjust the URL in the command above.
If you wish to have the stats made available at a non-default path, then that path should be given as the sole argument to the plugin, as so:
stats_over_http.so 81c075bc0cca1435ea899ba4ad72766b
The above plugin.config
entry will result in your Traffic Server statistics being
located at /81c075bc0cca1435ea899ba4ad72766b
on any host and port on which
you have your Traffic Server instance listening.
Statistics Security and Privacy
Simply changing the path at which your statistics are available should be considered very weak security. While cache objects themselves cannot be accessed through the plugin’s JSON output, and no modifications to the configuration or operation of Traffic Server may be made through the plugin, the statistics may reveal much more about your network’s traffic and architecture than you wish to be publicly available.
A better method is to use an ACL Filter in
remap.config
to restrict access to clients. For instance, if your Traffic Server
host resides on a private network in the 10.1.1.0/24 IPv4 address space
listening on the address 10.1.1.10, separate from its public interface(s) used
to serve client requests, you could add the following remap configuration:
map http://10.1.1.10/_stats http://10.1.1.10/_stats @action=deny @src_ip=0.0.0.0-255.255.255.255
map http://10.1.1.10/_stats http://10.1.1.10/_stats @action=allow @src_ip=10.1.1.0-10.1.1.255
The above configuration sets the default policy for the entirety of IPv4 address space to deny, but then exempts the 10.1.1.0/24 network by permitting their requests to be processed by Traffic Server. If your monitoring infrastructure makes use of locally-installed data collection agents, you may even wish to restrict access to the Stats Over HTTP plugin to all but localhost.