You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@trafficserver.apache.org by Di Li <di...@apple.com> on 2016/11/09 18:47:56 UTC

ATS stats over http metric and querstions

Hey,

New user on ATS, and find this stats over http plug are super useful, also provide json format to access the metric.

Some questions:

1. what’s the difference between node and process, a lot of values are looks like the same, like current active connection etc

2. what metric make sense for a Forward Proxy to keep a close eye on other than the obvious ones like CPU/MEMROY/DISK etc, like NET or SOCKET ?


Thanks,
Di Li




Re: ATS stats over http metric and querstions

Posted by Bryan Call <bc...@apache.org>.
Yes, some of the process metrics have been duplicated to node.  The history behind that was node metrics are for the single server in the cluster and there were cluster metrics for the entire cluster.  We have removed clustering in ATS 7.0.0 in favor for parent caching or using the carp plugin.  We cleaned up some of the node metrics, but there are still more that need to be removed.

We watch the number of connections.  These are ones that would be helpful to monitor:
proxy.process.http.current_client_connections
proxy.process.http.current_active_client_connections
proxy.process.http.current_server_connections
proxy.process.net.connections_currently_open

Also, the number of requests are helpful to monitor:
proxy.process.http.incoming_requests
proxy.process.http.outgoing_requests

If you are running http/2 then these are helpful too:
proxy.process.http2.current_client_sessions
proxy.process.http2.current_client_streams

Here is a complete list of metrics we track in production:
                # Traffic / load
                 "proxy.process.http.current_server_connections",
                 "proxy.process.http.current_client_connections",
                 "proxy.process.http.incoming_requests",
                 "proxy.process.http.outgoing_requests",
                 "proxy.process.http.total_transactions_time",
                 "proxy.process.http.total_client_connections",
                 "proxy.process.http.total_server_connections",
                 "proxy.process.http.user_agent_response_header_total_size",
                 "proxy.process.http.user_agent_response_document_total_size",
                 "proxy.process.http.origin_server_response_header_total_size",
                 "proxy.process.http.origin_server_response_document_total_size",
                 # Overal cache hit ratios, we use these for more accuracy,
                 # the "ratio" stats only shows two digits.
                 "proxy.process.cache.read.active",
                 "proxy.process.http.transaction_counts.hit_fresh",
                 "proxy.process.http.transaction_counts.hit_revalidated",
                 "proxy.process.http.transaction_counts.miss_cold",
                 "proxy.process.http.transaction_counts.miss_changed",
                 "proxy.process.http.transaction_counts.miss_not_cacheable",
                 "proxy.process.http.transaction_counts.miss_client_no_cache",

                 "proxy.process.http.transaction_totaltime.hit_fresh",
                 "proxy.process.http.transaction_totaltime.hit_revalidated",
                 "proxy.process.http.transaction_totaltime.miss_cold",
                 "proxy.process.http.transaction_totaltime.miss_changed",
                 "proxy.process.http.transaction_totaltime.miss_not_cacheable",
                 "proxy.process.http.transaction_totaltime.miss_client_no_cache",

                 # RAM cache hit ratios, remember everything is a "cache hit",
                 # so this is a ratio of what is served out of RAM vs disk.
                 "proxy.process.cache.ram_cache.hits",
                 "proxy.process.cache.ram_cache.misses",
                 # Errors / problems
                 "proxy.process.http.cache_read_errors",
                 "proxy.process.http.cache_write_errors",
                 "proxy.process.http.missing_host_hdr",
                 "proxy.process.http.transaction_counts.errors.aborts",
                 "proxy.process.http.transaction_counts.errors.possible_aborts",
                 "proxy.process.http.transaction_counts.errors.connect_failed",
                 "proxy.process.http.transaction_counts.errors.pre_accept_hangups",
                 "proxy.process.http.transaction_counts.errors.other",
                 # TLS Errors
                 "proxy.process.ssl.user_agent_other_errors",
                 "proxy.process.ssl.user_agent_expired_cert",
                 "proxy.process.ssl.user_agent_revoked_cert",
                 "proxy.process.ssl.user_agent_unknown_cert",
                 "proxy.process.ssl.user_agent_cert_verify_failed",
                 "proxy.process.ssl.user_agent_bad_cert",
                 “proxy.process.ssl.user_agent_decryption_failed",
                 "proxy.process.ssl.user_agent_wrong_version",
                 "proxy.process.ssl.user_agent_unknown_ca",
                 "proxy.process.ssl.ssl_ocsp_revoked_cert_stat",
                 "proxy.process.ssl.ssl_ocsp_unknown_cert_stat",
                 # SPDY
                 "proxy.process.spdy.total_client_connections",
                 "proxy.process.spdy.total_transactions_time",
                 "proxy.process.spdy.total_client_streams",
                 "proxy.process.spdy.current_client_sessions",
                 "proxy.process.spdy.current_client_streams",
                 # HTTP/2
                 "proxy.process.http2.total_client_connections",
                 "proxy.process.http2.total_transactions_time",
                 "proxy.process.http2.total_client_streams",
                 "proxy.process.http2.current_client_sessions",
                 "proxy.process.http2.current_client_streams",
                 # Request Types
                 "proxy.process.http.head_requests",
                 "proxy.process.http.get_requests",
                 "proxy.process.http.post_requests",
                 "proxy.process.http.put_requests",
                 "proxy.process.http.delete_requests",
                 "proxy.process.http.invalid_client_requests",
                 # Response Types
                 "proxy.process.http.1xx_responses",
                 "proxy.process.http.2xx_responses",
                 "proxy.process.http.3xx_responses",
                 "proxy.process.http.4xx_responses",
                 "proxy.process.http.5xx_responses",

-Bryan




> On Nov 10, 2016, at 3:47 AM, Di Li <di...@apple.com> wrote:
> 
> Hey,
> 
> New user on ATS, and find this stats over http plug are super useful, also provide json format to access the metric.
> 
> Some questions:
> 
> 1. what’s the difference between node and process, a lot of values are looks like the same, like current active connection etc
> 
> 2. what metric make sense for a Forward Proxy to keep a close eye on other than the obvious ones like CPU/MEMROY/DISK etc, like NET or SOCKET ?
> 
> 
> Thanks,
> Di Li
> 
> 
>