Ingest OpenTelemetry metrics with Prometheus natively
last9.io
last9.io
I’d be happy to answer any questions you have.
Currently, it doesn't appear the text format for pull metrics doesn't appear to support it.
OpenTelemetry is push, so if you need pull and no new daemons this PR doesn’t help you.
Can one service A use text-format and service B use protobuf both scrapped by the same Prometheus sidecar?
[0]: https://prometheus.io/docs/operating/integrations/#remote-en...
If you try to use Prometheus as a native push system and push directly, it'll work but you might not have the best experience. https://prometheus.io/docs/prometheus/latest/querying/api/#r...
VictoriaMetrics, Cortex, Mimir are centralised data stores that accept data from multiple Prometheus, but you could also run headless agents scraping and sending the data.
Note if you are on a version before 2.44, try upgrading. Prometheus slimmed down a bit.
[I am a Prometheus and Mimir maintainer]
VM won hands down on pretty much all counts. It's easy and simple to operate and monitor, it scales really well and you can plan around how you want to partition and scale each component, it's incredibly cheap to run as performace is superior to the others, even when backed by spinning HDDs vs the other solutions on SSDs.
It's especially easy to operate on Kubernetes using their CRDs and operators.
I am not associated with Victoria Metrics in any way, just a happy user and sysadmin who ran it for a few years.
Operational nightmare, expensive to run, various parts of the entirely-too-many moving pieces it contains broke all the time and the performance was…unimpressive.
I‘ve heard that some people manage to run this thing successfully, and power to them, but I want nothing more to do with it.
Just save yourself the pain and use Victoria Metrics. Added benefit: you get an implementation of a rate function that’s actually correct.
- Reduced memory usage by up to 10x [1].
- Reduced disk space usage.
- Higher query performance.
- Better query language than InfluxQL and Flux for typical queries over collected metrics [2].
- Compatibility with Prometheus ecosystem.
See also InfluxDB -> VictoriaMetrics migration guide [3].
[1] https://valyala.medium.com/insert-benchmarks-with-inch-influ...
[2] https://docs.victoriametrics.com/MetricsQL.html
[3] https://docs.victoriametrics.com/guides/migrate-from-influx....
I moved away because of 2 primary reasons
1. The cost of stackdriver can add up with large-scale deployments or high-frequency metrics. It's essential to monitor and control usage to avoid unexpected billing.
2. I have experienced delays in metric updates, specifically at high frequency data. While the delays are usually minimal, they may not be ideal for some real-time monitoring use cases. FYI GCP on its own resources makes metrics available after 210s so you are always behind.
Going the TSDB route to reliably run storage has worked for me.
Also if this helps https://last9.io/blog/time-series-database-comparison/
It is interesting to see whether Prometheus will be transformed to multi-model (pull+push) monitoring system after the addition of Opentelemetry protocol.
P.S. VictoriaMetrics, the Prometheus-like monitoring system I work on, also gained support for OpenTelemetry data ingestion in the release v1.92.0. https://docs.victoriametrics.com/CHANGELOG.html