-
Notifications
You must be signed in to change notification settings - Fork 2
wkl/channel_stats
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
channel_stats plugin for Apache Traffic Server 3.0.0+
About channel_stats plugin
==========================
channel_stats plugin collect the runtime statistics (speed, request count and
more in the future) for each channel. The stats is exposed with http interface
in json. (The code of interface is from 'stats_over_http' plugin.)
In general, the plugin could be used on reverse proxy with a **fixed** number
of remap rules. It's not designed for the proxy which serves unlimited channels
(like open-relay forward proxy).
Installation
==========================
Compile:
make -f Makefile.tsxs
sudo make install -f Makefile.tsxs
(if 'tsxs' is not in your PATH, run make by appending TSXS=/path/to/ts/bin/tsxs)
Edit:
Add 'channel_stats.so' to plugins.config.
By default, the path of http interface is '_cstats'. For safety, you should
change it by adding a parameter after 'channel_stats.so'.
Example: 'channel_stats.so _my_cstats'.
Start:
Restart Traffic Server: sudo traffic_line -L or sudo trafficserver restart
Viewing Stats
==========================
Visit http://local_IP:port/_cstats (or as you configured in plugin.config)
Output will be in json:
{
"channel": {
"www.example.com": {
"response.bytes.content": "3486995502046",
"response.count.2xx.get": "64040675",
"response.count.5xx.get": "1404",
"speed.ua.bytes_per_sec_64k": "3972287"
},
"www.test.com": {
"response.bytes.content": "3349404916760",
"response.count.2xx.get": "64038172",
"response.count.5xx.get": "30",
"speed.ua.bytes_per_sec_64k": "3989255"
}
},
"global": {
"response.count.2xx.get": "268516715",
"response.bytes.content": "58537730819906",
"channel.count": "10",
"server": "3.0.4"
}
}
Available stats:
- response.bytes.content: transferred content length (not including header)
- response.count.2xx.get: 2xx transaction count
- response.count.5xx.get: 5xx transaction count
- speed.ua.bytes_per_sec_64k: count of transaction whose speed is < 64KBps
Additional parameters:
- topn: only output top N channels order by response count
- channel: only output the channels which contain specific string
- global: also display TS internal stats as 'stats_over_http' plugin
Example:
- http://127.0.0.1/_cstats?global
- http://127.0.0.1/_cstats?topn=5
- http://127.0.0.1/_cstats?channel=test.com
- http://127.0.0.1/_cstats?channel=test.com&topn=5&global
If you have a large number of channels (e.g. more than 10k), those parameters
may not be heavily used due to extra overhead.
Warning
==========================
Security
- As mentioned above, you should change default path of http interface to make
other people harder to access your channel stats.
- For IPv4, plugin will make sure visitor is from private network.
(http://en.wikipedia.org/wiki/Private_network#Private_IPv4_address_spaces)
In addition, you should deny the request to http interface on your L7 front-
end because your L7 server and TS are probably in a same local network. And
currently plugin will deny the request from IPv6 address.
- The number of channels is limited to 100000.
Performance
- According to load test, QPS will decrease by around 5% after enabling plugin.
DEV
==========================
See also "Get Involved" on http://trafficserver.apache.org/
ChangeLog
==========================
Version 0.2
- Count 5xx response
Version 0.1 (11/26/12)
- Initial release
About
channel_stats plugin for Apache Traffic Server 3.0.0+
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published