Status | |
---|---|
Stability | beta: metrics |
Distributions | contrib, k8s |
Warnings | Statefulness |
Issues | |
Code Owners | @TylerHelmuth |
The cumulative to delta processor (cumulativetodeltaprocessor
) converts monotonic, cumulative sum and histogram metrics to monotonic, delta metrics. Non-monotonic sums and exponential histograms are excluded.
Configuration is specified through a list of metrics. The processor uses metric names to identify a set of cumulative metrics and converts them from cumulative to delta.
The following settings can be optionally configured:
include
: List of metrics names or patterns to convert to delta.exclude
: List of metrics names or patterns to not convert to delta. If a metric name matches both include and exclude, exclude takes precedence.max_staleness
: The total time a state entry will live past the time it was last seen. Set to 0 to retain state indefinitely. Default: 0initial_value
: Handling of the first observed point for a given metric identity. When the collector (re)starts, there's no record of how much of a given cumulative counter has already been converted to delta values.auto
(default): Send if and only if the startime is set AND the starttime happens after the component started AND the starttime is different from the timestamp. Suitable for gateway deployments, this heuristic is likedrop
, but keeps values for newly started counters (which could not have had previous observed values).keep
: Send the observed value as the delta value. Suitable for when the incoming metrics have not been observed before, e.g. running the collector as a sidecar, the collector lifecycle is tied to the metric source.drop
: Keep the observed value but don't send. Suitable for gateway deployments, guarantees that all delta counts it produces haven't been observed before, but loses the values between thir first 2 observations.
If neither include nor exclude are supplied, no filtering is applied.
processors:
# processor name: cumulativetodelta
cumulativetodelta:
# list the exact cumulative sum or histogram metrics to convert to delta
include:
metrics:
- <metric_1_name>
- <metric_2_name>
.
.
- <metric_n_name>
match_type: strict
processors:
# processor name: cumulativetodelta
cumulativetodelta:
# Convert cumulative sum or histogram metrics to delta
# if and only if 'metric' is in the name
include:
metrics:
- ".*metric.*"
match_type: regexp
processors:
# processor name: cumulativetodelta
cumulativetodelta:
# Convert cumulative sum or histogram metrics to delta
# if and only if 'metric' is not in the name
exclude:
metrics:
- ".*metric.*"
match_type: regexp
processors:
# processor name: cumulativetodelta
cumulativetodelta:
# If include/exclude are not specified
# convert all cumulative sum or histogram metrics to delta
- Statefulness: The cumulativetodelta processor's calculates delta by remembering the previous value of a metric. For this reason, the calculation is only accurate if the metric is continuously sent to the same instance of the collector. As a result, the cumulativetodelta processor may not work as expected if used in a deployment of multiple collectors. When using this processor it is best for the data source to being sending data to a single collector.