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

Reply via email to