This interface exists to be used and re-implemented by downstream forks. Updates shouldn’t be
done without ensuring they won’t cause breakages in dependent codebases.
Logs a counter with the given descriptor as aux. data. A descriptor is
generally an enum value or error code.
Logs a counter with no aux. data.
Logs a counter with additional data.
Logs a high frequency counter with the supplied aux. data and value.
Logs a histogram metric with the supplied value. Note: step is a value to
be added to the distribution.
Logs a real valued metric (e.g. a data transfer rate, a latency value, etc)
with the supplied value.