Subject: Re: [OPSAWG] Introducing draft-richih-opsawg-openmetrics

From: Richard Hartmann <[email-masked]>
Date: Sat, 13 Mar 2021 11:05:51 +0100

NB: Moving Qin Wu's email to main thread and onto my mailing list account.

On Fri, Mar 12, 2021 at 2:11 PM Qin Wu <[email-masked]> wrote:

> Can you clarify how this open metric work is related meter API, trace API, context API in the opentelemetry.

There's near-endless history and context, the condensed version needed
to reply to your question would be:

OpenTelemetry is an effort to define a variety of APIs, data models,
wire formats, code in various languages, and more. The Signals part is
split into three main areas: Metrics, Logs/Events/Errors, and Traces;
or "three pillars" in Prometheus ecosystem terminology.

Traces, OTel or otherwise can be referred to from OpenMetrics through
exemplars[1]. Traces are in GA in OTel for .NET and Java today. If
anyone is using OpenTracing, OTel Tracing is the official successor
and expansion of that effort.

One of the founding goals of OpenTelemetry is to be compatible with
Prometheus, and thus OpenMetrics. Efforts to make OpenCensus
(precedessor to OpenTelemetry) and OpenMetrics compatible go back to
2017(relevant below). Recently, this effort has picked up substantial
speed with the creation of a dedicated Prometheus WG within
OpenTelemetry. Several members of Prometheus-team have joined this WG,
Tom Wilike and myself even joined OpenTelemetry to help with this.

Logs are out of scope for OpenMetrics, but OpenObservability[2]
OpenMetrics' umbrella org on GitHub, was named as such because it was
a day 1 intention to also specify logs after OpenMetrics is done.
Grafana Loki[3] is a storage backend applying those principles to logs
and other event-type data with the same underlying design of
Prometheus, OpenMetrix, and Cortex[4].

OpenMetrics does not have an API definition, but we officially
consider the Prometheus codebase our reference implementation.

> Also how this open metric is related to Distributed Trace work in W3C?

Morgan McLean, chair emeritus of W3C Distributed Tracing Working
Group, took part in the meeting between OpenCensus, OpenMetrics,
Google, GitLab, InfluxDB, CloudFlare, Robust Perception, and SpacNet
back in 2017. That meeting inspired what are now exemplars in
OpenMetrics. While OpenMetrics deliberately does not constrain what
can be put into exemplars too much to avoid accidentally impeding
innovation, we used Morgan et. al.'s work as the reference for our
examples in the OpenMetrics spec[5]

Grafana Tempo[6] is another result of this effort. It's an
exemplar-focused distributed tracing backend. And fully compatible
with OpenTelemetry Tracing, Jaeger, etc.

The space of people who deeply and intrinsically care about monitoring
is not exactly huge; there's significant overlap between long-running
efforts as evidenced above.

Best,
Richard

[1] https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#exemplars
[2] https://github.com/OpenObservability/
[3] https://github.com/grafana/loki
[4] https://github.com/cortexproject/cortex
[5] https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#exemplars-1
[6] https://github.com/grafana/tempo

---

From: Richard Hartmann <[email-masked]>
Date: Sat, 13 Mar 2021 11:26:36 +0100

PS: I realized that this additional context would be highly
non-obvious outside of CNCF, but potentially interesting to this list:

Explainer on OTel & OM for CNCF TOC:
https://github.com/RichiH/talks/tree/main/2021/01-CNCF_TOC-Open_Explainer
Comparision doc between OpenMetics and OpenTelemetry Metrics data
models and design:
https://docs.google.com/document/d/1hn-u6WKLHxIsqYT1_u6eh94lyQeXrFaAouMshJcQFXs
Prometheus WG repo: https://github.com/open-telemetry/wg-prometheus