While going through ATS to rewrite the metrics (still being evaluated if
viable), I’ve come to realize that we have a number of metrics that are not
particularly useful. What’s worse, there’s some serious implications for these
particular metrics making the calculation of them expensive and complicated.
The list of metrics in question is below.
What I’d like to do is the following:
1. For those metrics here that already are backed by a a “total count” metric,
we simply remove them.
2. For metrics which don’t have a “total count”, we replace and rename the
metric to be a total.
It’s then upon the metrics collection system to make calculations such as doing
deltas between collections, and calculate the rolling average for that time
period. Not only does this simplify our ATS metrics system, I think it
generally adds more flexibility for the metric collection system (e.g.
Prometheus), for the # 2 case at least.
As an example, the metric
proxy.process.http.avg_transactions_per_client_connection
would be renamed to
proxy.process.http.client_transactions
And to calculate the average transactions / client, you’d divide this new
metric with the existing metric proxy.process.http.total_incoming_connections .
But now having the total number of client_transactions you can do other
calculations as well, such as average time / transaction. You could do this
before too, by looking at all possible transaction results, but I feel that
changing this existing “avg” metric to a total count not only simplifies the
ATS code, but is overall more powerful and useful.
Any concerns? Thoughts?
— Leif
proxy.process.http.origin_server_speed_bytes_per_sec_100 0
proxy.process.http.origin_server_speed_bytes_per_sec_100K 0
proxy.process.http.origin_server_speed_bytes_per_sec_100M 125
proxy.process.http.origin_server_speed_bytes_per_sec_10K 0
proxy.process.http.origin_server_speed_bytes_per_sec_10M 2
proxy.process.http.origin_server_speed_bytes_per_sec_1K 0
proxy.process.http.origin_server_speed_bytes_per_sec_1M 0
proxy.process.http.avg_transactions_per_client_connection 10
proxy.process.http.avg_transactions_per_server_connection 127
proxy.process.http.user_agent_speed_bytes_per_sec_100 0
proxy.process.http.user_agent_speed_bytes_per_sec_100K 0
proxy.process.http.user_agent_speed_bytes_per_sec_100M 0
proxy.process.http.user_agent_speed_bytes_per_sec_10K 0
proxy.process.http.user_agent_speed_bytes_per_sec_10M 0
proxy.process.http.user_agent_speed_bytes_per_sec_1K 0
proxy.process.http.user_agent_speed_bytes_per_sec_1M 0
proxy.process.dns.fail_avg_time 0
proxy.process.dns.lookup_avg_time 1
proxy.process.dns.success_avg_time 3
proxy.process.cache.read_per_sec 0
proxy.process.cache.write_per_sec 0
proxy.process.cache.KB_read_per_sec 0
proxy.process.cache.KB_write_per_sec 0