Replies: 2 comments 1 reply
-
https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Runtime @twenzel has contributed the initial work to enable basic metrics. Its just an initial version. Will iterate on it to make it fully ready. (The current priority is to release stable SDK with Metrics - instrumentations would come after that, from a priority standpoint). |
Beta Was this translation helpful? Give feedback.
-
Its undecided where would the instrumentations would live. By default, the main repo only hosts the components required by the spec. Instrumentations can be in contrib repo, though we have not really finalized if we'd keep some instrumentations in the main repo or not. |
Beta Was this translation helpful? Give feedback.
-
Hi all,
for monitoring dotnet applications I would consider basic cpu and memory metrics essential.
Prometheus provides
node_exporter
as part of their toolkit, which exports system metrics, but not process metrics and asked for that, Prometheus developers argue that those metrics should be exposed by the process in question (source: https://groups.google.com/g/prometheus-developers/c/RD4xIpSaCng)Because of this, other metrics exporters support exporting dotnet runtime metrics (e.g. https://github.com/djluck/prometheus-net.DotNetRuntime).
I looked for a similar solution for OpenTelemetry but was suprised that I didn't find any.
Isn't this absolutely essential info that you would want every process to export and really easy to expose?
Am I overlooking something?
After looking at the prometheus-net implementation, it seems that they use an
EventListener
to subscribe to the EventCounters (https://docs.microsoft.com/en-us/dotnet/core/diagnostics/event-counters) exposed by the dotnet runtime and re-export them.That's how I found this pull request that also uses the
EventListener
to subscribe to EventCounters and re-export them:https://github.com/hananiel/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Contrib.Instrumentation.EventCounters
It seems to do exactly that - provide the minimum counters, but it's neither finished nor in the main repo.
So I guess my question is:
Given that we are already using OpenTelemetry, the OpenTelemetry Collector, Prometheus and export our own domain specific metrics, how are supposed to add essential process metrics like cpu and memory usage to them?
Currently my options are either:
OpenTelemetry.Contrib.Instrumentation.EventCounters
Take care,
Martin
Beta Was this translation helpful? Give feedback.
All reactions