Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sending large payloads with 0 values after registry.reset() #40

Open
SergiuB opened this issue Mar 12, 2021 · 1 comment
Open

Sending large payloads with 0 values after registry.reset() #40

SergiuB opened this issue Mar 12, 2021 · 1 comment

Comments

@SergiuB
Copy link

SergiuB commented Mar 12, 2021

registry.reset() resets all existing metrics to 0. But registry.metrics() would still return them, even if 0, making the payload quite large with many useless 0 values in it (those metrics had been sent in previous calls and were reset after). Example:

# HELP fe_hs_app_bundle_load_seconds Time to load an HS app bundle
# TYPE fe_hs_app_bundle_load_seconds histogram
fe_hs_app_bundle_load_seconds_count 0
fe_hs_app_bundle_load_seconds_sum 0
fe_hs_app_bundle_load_seconds_bucket{le="1"} 0
fe_hs_app_bundle_load_seconds_bucket{le="2"} 0
fe_hs_app_bundle_load_seconds_bucket{le="3"} 0
fe_hs_app_bundle_load_seconds_bucket{le="5"} 0
fe_hs_app_bundle_load_seconds_bucket{le="7"} 0
fe_hs_app_bundle_load_seconds_bucket{le="10"} 0
fe_hs_app_bundle_load_seconds_bucket{le="+Inf"} 0
fe_hs_app_bundle_load_seconds_bucket{le="0.25"} 0
fe_hs_app_bundle_load_seconds_bucket{le="0.5"} 0
fe_hs_app_bundle_load_seconds_bucket{le="1.5"} 0
fe_hs_app_bundle_load_seconds_bucket{le="2.5"} 0
fe_hs_app_bundle_load_seconds_count{hsApp="hs-app-composer",hasError="false"} 0
fe_hs_app_bundle_load_seconds_sum{hsApp="hs-app-composer",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="1",hsApp="hs-app-composer",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="2",hsApp="hs-app-composer",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="3",hsApp="hs-app-composer",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="5",hsApp="hs-app-composer",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="7",hsApp="hs-app-composer",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="10",hsApp="hs-app-composer",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="+Inf",hsApp="hs-app-composer",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="0.25",hsApp="hs-app-composer",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="0.5",hsApp="hs-app-composer",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="1.5",hsApp="hs-app-composer",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="2.5",hsApp="hs-app-composer",hasError="false"} 0
fe_hs_app_bundle_load_seconds_count{hsApp="hs-app-directory",hasError="false"} 0
fe_hs_app_bundle_load_seconds_sum{hsApp="hs-app-directory",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="1",hsApp="hs-app-directory",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="2",hsApp="hs-app-directory",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="3",hsApp="hs-app-directory",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="5",hsApp="hs-app-directory",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="7",hsApp="hs-app-directory",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="10",hsApp="hs-app-directory",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="+Inf",hsApp="hs-app-directory",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="0.25",hsApp="hs-app-directory",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="0.5",hsApp="hs-app-directory",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="1.5",hsApp="hs-app-directory",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="2.5",hsApp="hs-app-directory",hasError="false"} 0
fe_hs_app_bundle_load_seconds_count{hsApp="hs-app-inbox",hasError="false"} 1
fe_hs_app_bundle_load_seconds_sum{hsApp="hs-app-inbox",hasError="false"} 29.47082499996759
fe_hs_app_bundle_load_seconds_bucket{le="1",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="2",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="3",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="5",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="7",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="10",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="+Inf",hsApp="hs-app-inbox",hasError="false"} 1
fe_hs_app_bundle_load_seconds_bucket{le="0.25",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="0.5",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="1.5",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="2.5",hsApp="hs-app-inbox",hasError="false"} 0

Would it be possible for registry.metrics() not to return empty metrics (or at least have a param that allows you to do this)?
Using registry.clear() is not feasible in my situation, for the reason mentioned here

Ideally this is the payload I'd like to send instead of the above:

# HELP fe_hs_app_bundle_load_seconds Time to load an HS app bundle
# TYPE fe_hs_app_bundle_load_seconds histogram
fe_hs_app_bundle_load_seconds_count{hsApp="hs-app-inbox",hasError="false"} 1
fe_hs_app_bundle_load_seconds_sum{hsApp="hs-app-inbox",hasError="false"} 29.47082499996759
fe_hs_app_bundle_load_seconds_bucket{le="1",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="2",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="3",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="5",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="7",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="10",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="+Inf",hsApp="hs-app-inbox",hasError="false"} 1
fe_hs_app_bundle_load_seconds_bucket{le="0.25",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="0.5",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="1.5",hsApp="hs-app-inbox",hasError="false"} 0
fe_hs_app_bundle_load_seconds_bucket{le="2.5",hsApp="hs-app-inbox",hasError="false"} 0

I could do this processing on my side, but it would be easier to not add those zero metrics in the first place, and maybe it can be a feature if more peeps find it useful.

@xgqfrms
Copy link

xgqfrms commented Apr 16, 2021

🔖 same question

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants