Skip to content

Support prometheus summary metric types on the admin endpoint #30471

@andybradshaw

Description

@andybradshaw

Support prometheus summary metric types on the admin endpoint: The prometheus stats admin endpoint currently supports histograms based on the statically configured buckets, but doesn't support quantile-based summaries

Description:
The prometheus stats endpoint currently only returns histogram metrics for the configured buckets. A potentially more useful way of reporting these would be to use the histogram quantiles and report as a prometheus "summary" metric type. There is some prior art in controlling how histograms are reported (#25812), which could be supported with a query param.

Current behavior:

~ > curl http://127.0.0.1:9901/stats/prometheus
# TYPE envoy_server_initialization_time_ms histogram
envoy_server_initialization_time_ms_bucket{le="0.5"} 0
envoy_server_initialization_time_ms_bucket{le="1"} 0
envoy_server_initialization_time_ms_bucket{le="5"} 0
...
envoy_server_initialization_time_ms_bucket{le="1800000"} 1
envoy_server_initialization_time_ms_bucket{le="3600000"} 1
envoy_server_initialization_time_ms_bucket{le="+Inf"} 1
envoy_server_initialization_time_ms_sum{} 165
envoy_server_initialization_time_ms_count{} 1

Intended Change:

~ > curl http://127.0.0.1:9901/stats/prometheus?histogram_emit_mode=summary
# TYPE envoy_server_initialization_time_ms summary
envoy_server_initialization_time_ms{quantile="0"} 160
envoy_server_initialization_time_ms{quantile="0.25"} 162.5
envoy_server_initialization_time_ms{quantile="0.5"} 165
...
envoy_server_initialization_time_ms{quantile="0.995"} 169.95
envoy_server_initialization_time_ms{quantile="0.999"} 169.99
envoy_server_initialization_time_ms{quantile="1"} 170
envoy_server_initialization_time_ms_sum{} 165
envoy_server_initialization_time_ms_count{} 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementFeature requests. Not bugs or questions.stalestalebot believes this issue/PR has not been touched recently

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions