A metrics suitable for ingestion in a Datadog time series database.
A metrics suitable for ingestion in a Datadog time series database. Although it can in theory be published anywhere, this is closely modeled after OpenTSDB metric model and binary protocol.
Typically you want to gather data about everything in your system.
Typically you want to gather data about everything in your system. This generates a lot of datapoints, the majority of which don't change very often over time (if ever). However, you want fine-grained resolution when they do change. This filter remembers the last value and timestamp that was sent for all of the time series. If the value doesn't change between sample intervals, it suppresses sending that datapoint. Once the value does change (or 10 minutes have passed), it sends the last suppressed value and timestamp, plus the current value and timestamp. In this way all of your graphs and such are correct. Deduplication typically reduces the number of datapoints TSD needs to collect by a large fraction. This reduces network load and storage in the backend.
Main API for the metrics publisher.
Main API for the metrics publisher. Implement this interface to provide more metrics.
Guarantees that we are not starting an other publication round if previous one has not finished yet.
Publishes some metrics somewhere.
Publishes some metrics somewhere. This is usually called by a scheduler on regular intervals. *
Main entry point for the Triton Counters.
Main entry point for the Triton Counters. This is starting the metrics system and provide various extension points.
Thread safe implementation of Metrics, using Codahale for computing stats.