Semantics of BaseExporter<>.Export()
and removal of instruments.
#3873
Unanswered
Danielku15
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Background Info
Disclaimer: Sorry if I do not use the fully correct terminology. I am still new to OpenTelemetry and we used to have a different terminology for monitoring our processes.
We are in the need of having dynamic instruments to expose metrics. One example is the CPU load on individual threads where threads are spawned and destroyed. We also needed to create a custom exporter for a proprietary Monitoring System (PRTG Network Monitor).
To ensure we are exposing the correct metrics I need the know the overall total instruments+metrics with their current values. The exporter I created is based on the Prometheus Exporter as we are also exposing the values to PRTG through an JSON HTTP endpoint.
Question
I need to know if in the
BaseExporter<>.Export()
is guaranteed to receive a snapshot of all metrics in the process or if it can be only a partial snapshot (e.g. only some changed values).If it is a partial snapshot how can I either obtain an overall list of all metrics/instruments or better: get informed about newly created and destroyed instruments. Only with this I can update and maintain my overall total snapshot of metrics I hold in the collection I provide through the API. I do not want to end up with many dead counters which are not updated anymore in my cache.
From the .net API it seems that as soon a
Meter
is disposed, OpenTelemetry would need to react and signal the exporters accordingly so the instruments can also be updated on the metrics receiving party.Beta Was this translation helpful? Give feedback.
All reactions