deadtrickster / prometheus.erl

Prometheus.io client in Erlang
MIT License
341 stars 117 forks source link

Reading quantile summary metrics fails intermittently when no labels are used #146

Open Scott2e opened 1 year ago

Scott2e commented 1 year ago

For the life of me I can't reproduce this in dev and uat, it only seems to fail when run in prod (where this library is getting used more heavily), and not all the time which is weird. This issue seems to occur only when labels haven't been used for quantile summary metrics.

** (exit) an exception was raised:
    ** (MatchError) no match of right hand side value: true
        (quantile_estimator 0.2.1) /quantile_estimator/src/quantile_estimator.erl:141: :quantile_estimator.merge/2
        (quantile_estimator 0.2.1) /quantile_estimator/src/quantile_estimator.erl:133: :quantile_estimator.compress/4
        (quantile_estimator 0.2.1) /quantile_estimator/src/quantile_estimator.erl:133: :quantile_estimator.compress/4
        (quantile_estimator 0.2.1) /quantile_estimator/src/quantile_estimator.erl:106: :quantile_estimator.compress/1
        (prometheus 4.9.1) src/metrics/prometheus_quantile_summary.erl:354: anonymous fn/3 in :prometheus_quantile_summary.collect_metrics/2
        (stdlib 3.16.1) lists.erl:1267: :lists.foldl/3
        (prometheus 4.9.1) src/metrics/prometheus_quantile_summary.erl:348: :prometheus_quantile_summary.collect_metrics/2
        (prometheus 4.9.1) src/model/prometheus_model_helpers.erl:131: :prometheus_model_helpers.create_mf/5

Sorry I can't be more helpful with this. I did take a look through prometheus_quantile_summary.erl but my inability to read Erlang code is letting me down.. A failing of mine I wish to correct at some point..