I didn’t think about ipv4 and ipv6.  If we want to break out all the stats so 
you can figure out any combination we would need to have a stat hierarchy such 
as: proxy.transport.process.encryption.http_version.scheme (e.g. 
proxy.process.{ipv4,ipv6}.{tls,non-tls}.{http1,http2}.{http,https}).

The current client connection stats would be:

proxy.process.ipv4.non-tls.http1.total_client_connections
proxy.process.ipv6.non-tls.http1.total_client_connections
proxy.process.ipv4.tls.http1.total_client_connections
proxy.process.ipv6.tls.http1.total_client_connections
proxy.process.ipv4.tls.http2.total_client_connections
proxy.process.ipv6.tls.http2.total_client_connections

You can figure out any combination, such as all ipv4 requests that are 
encrypted.  However, this might be too much for a normal user to understand.

-Bryan



> On Oct 17, 2018, at 5:08 AM, Masaori Koshiba <masa...@apache.org> wrote:
> 
>> The proxy.process.https stats (only 2 stats) should also be considered
> when overhauling the stats.  They are really TLS or non-TLS stats and not
> tied to the scheme. I recommend breaking up TLS and non-TLS metric and
> calling them proxy.process.ssl. and proxy.process.non-ssl.
> 
> Good point. I didn't cover them.
> 
> Do you mean breaking every `proxy.process.{http,http1,http2}.*` metrics
> into `proxy.process.ssl.{http,http1,http2}.*` and
> `proxy.process.non-ssl.{http,http1}.*` ?
> 
> If we add `encryption`, why don't we add all transport protocols? I’d like
> to avoid exposing underlying protocols on every metrics.
> It looks like we're interested in underlying protocol stack on *some*
> metrics but not on all. Also I'd like to minimize incompatible changes.
> 
> # As for `proxy.process.https.total_client_connections`
> 
> This is a counter for "HTTP/1.1 over TLS". We have similar metrics.
> ```
> proxy.process.http.total_client_connections
> proxy.process.http.total_client_connections_ipv4
> proxy.process.http.total_client_connections_ipv6
> ```
> 
> All of them are HTTP/1.1 specific, so how about this changes?
> 
> ```
> proxy.process.http1.total_client_connections
> proxy.process.http1.total_client_connections.ipv4
> proxy.process.http1.total_client_connections.ipv6
> proxy.process.http1.total_client_connections.tls
> ```
> 
> I agree it's bit weird, but if someone want to break them up more, he or
> she can do that add the protocol stack at the last later.
> 
> ```
> proxy.process.http1.total_client_connections.ipv4
> proxy.process.http1.total_client_connections.ipv4_tls
> proxy.process.http1.total_client_connections.ipv6
> proxy.process.http1.total_client_connections.ipv6_tls
> ```
> 
> # As for `proxy.process.https.incoming_requests`
> 
> This is a count for HTTP request over TLS (regardless HTTP version).
> And non-encrypted version is `proxy.process.http.incoming_requests`
> 
> To follow above changes, I suggest
> 
> ```
> proxy.process.http.incoming_requests
> proxy.process.http.incoming_requests.tls
> ```
> 
> Thanks,
> Masaori
> 
> 2018年10月17日(水) 6:25 Susan Hinrichs <shinr...@oath.com.invalid>:
> 
>> I completely agree with the stats re-normalizing.  I've been messed up
>> multiple times by assuming that a http metric covers both protocols but was
>> in fact http/1.x specific.
>> 
>> On Tue, Oct 16, 2018 at 12:44 PM Bryan Call <bc...@apache.org> wrote:
>> 
>>> The proxy.process.https stats (only 2 stats) should also be considered
>>> when overhauling the stats.  They are really TLS or non-TLS stats and not
>>> tied to the scheme.  I recommend breaking up TLS and non-TLS metric and
>>> calling them proxy.process.ssl. and proxy.process.non-ssl.
>>> 
>>> Another option to build a hierarchy of stats and have it be
>>> proxy.process.encryption.http_version.scheme (e.g.
>>> proxy.process.{ssl,non-ssl}.{http1,http2}.{http,https}). Where scheme I
>>> don’t see being used very much or at all, so it would only be mainly
>>> encryption and http_version.  For http2 encryption would always be ssl.
>>> 
>>> Also, I would be for modernizing the stats and configuration and calling
>>> everything tls instead of ssl.
>>> 
>>> -Bryan
>>> 
>>> 
>>> 
>>> On Oct 15, 2018, at 7:23 PM, Masaori Koshiba <masa...@apache.org> wrote:
>>> 
>>> Hi all,
>>> 
>>> I’d like to propose some HTTP metrics changes. Because current HTTP
>>> metrics doesn’t have consistent naming rules.
>>> 
>>> ----
>>> 1. Define `proxy.process.http.*` is HTTP version general metrics.
>>> 2. Introduce `proxy.process.http1.*` metrics for HTTP/1.1 specific
>> metrics.
>>> 3. Split general metric into version specific metrics if needed.
>>> ----
>>> 
>>> More details are in
>>> - https://github.com/apache/trafficserver/issues/4415
>>> -
>>> 
>> https://docs.google.com/spreadsheets/d/1zux3OPiDNJlWALluhr8ciKypg_sYVxbG9fdmeuDD-Bo/edit?usp=sharing
>>> 
>>> My proposal has incompatible changes. And it requires some actions to
>>> people who is tracking these metrics.
>>> Please comment on the issue or this thread if you have any opinions.
>>> 
>>> My current target of these incompatible changes are next major release
>>> (9.0.0).
>>> 
>>> Thanks,
>>> Masaori
>>> 
>>> 
>>> 
>> 

Reply via email to