Skip to content
This repository has been archived by the owner on Jul 31, 2023. It is now read-only.

Fix const labels with derived metrics #1221

Commits on Jul 14, 2020

  1. Fix const labels with derived metrics

    Include the const labels in `baseMetric.upsertEntry` in the same way as
    `baseMetric.entryForValues`.
    
    The "Derived" form of metrics use an `UpsertEntry` method to provide the
    function that supplies the metric value as well as the label values.
    These methods use `baseMetric.upsertEntry` to do the work, but that
    method was ignoring any const labels set by `WithConstLabel`.
    
    Commit c31d268 added const labels to metrics and updated
    `baseMetric.entryForValues` to add the const labels, but
    `baseMetric.upsertEntry` was not similarly updated.
    
    This cause `UpsertEntry` to return an `errKeyValueMismatch` error ("must
    supply the same number of label values as keys used to construct this
    metric") when called unless the values for the const labels were
    passed to `UpsertEntry`. That kind of defeats the purpose of const
    labels.
    
    Add a test case for const labels on Int64DerivedGauge. It is not
    necessary to add test cases for all the derived metrics as they all use
    the same `baseMetric` implementation.
    camh- committed Jul 14, 2020
    Copy the full SHA
    3fb0b60 View commit details
    Browse the repository at this point in the history