Post by Bryan CallThe 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
Post by Bryan CallI 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.
Post by Bryan CallThe 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
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.
Post by Bryan Call3. 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
Post by Bryan CallMy 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