mirror of
https://github.com/google/nomulus.git
synced 2025-06-27 06:44:51 +02:00
Change to metrics to keep track of when the metric value was first set
This CL also adds IncrementableMetric#reset() methods to allow resetting the value and start timestamp of IncrementableMetrics. This is necessary because some backends, like Stackdriver, use non-monotonic changes in cumulative metric values to detect timeseries restarts. Tracking and re-setting the start timestamp allows users to track mostly monotonic metrics which may have non-monotonic discontinuities. See https://cloud.google.com/monitoring/api/ref_v3/rest/v3/TimeSeries#Point for more details. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=130795229
This commit is contained in:
parent
b6eaba08eb
commit
91f8b6da38
7 changed files with 192 additions and 26 deletions
|
@ -23,9 +23,9 @@ package google.registry.monitoring.metrics;
|
|||
public interface IncrementableMetric extends Metric<Long> {
|
||||
|
||||
/**
|
||||
* Increments a metric by 1 for the given set of label values.
|
||||
* Increments a metric by 1 for the given label values.
|
||||
*
|
||||
* Use this method rather than {@link IncrementableMetric#incrementBy(long, String...)} if the
|
||||
* <p>Use this method rather than {@link IncrementableMetric#incrementBy(long, String...)} if the
|
||||
* increment value is zero, as it will be slightly more performant.
|
||||
*
|
||||
* <p>If the metric is undefined for given label values, it will be incremented from zero.
|
||||
|
@ -37,7 +37,7 @@ public interface IncrementableMetric extends Metric<Long> {
|
|||
void increment(String... labelValues);
|
||||
|
||||
/**
|
||||
* Increments a metric by the given non-negative offset for the given set of label values.
|
||||
* Increments a metric by the given non-negative offset for the given label values.
|
||||
*
|
||||
* <p>If the metric is undefined for given label values, it will be incremented from zero.
|
||||
*
|
||||
|
@ -48,4 +48,20 @@ public interface IncrementableMetric extends Metric<Long> {
|
|||
* @throws IllegalArgumentException if the offset is negative.
|
||||
*/
|
||||
void incrementBy(long offset, String... labelValues);
|
||||
|
||||
/**
|
||||
* Resets the value and start timestamp of the metric for the given label values.
|
||||
*
|
||||
* <p>This is useful if the counter is tracking a value that is reset as part of a retrying
|
||||
* transaction, for example.
|
||||
*/
|
||||
void reset(String... labelValues);
|
||||
|
||||
/**
|
||||
* Atomically resets the value and start timestamp of the metric for all label values.
|
||||
*
|
||||
* <p>This is useful if the counter is tracking values that are reset as part of a retrying
|
||||
* transaction, for example.
|
||||
*/
|
||||
void reset();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue