veneur
tempo
veneur | tempo | |
---|---|---|
2 | 7 | |
1,714 | 3,644 | |
0.1% | 1.5% | |
3.5 | 9.7 | |
about 1 month ago | about 1 hour ago | |
Go | Go | |
MIT License | GNU Affero General Public License v3.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
veneur
-
OpenTelemetry in 2023
This was the idea behind Stripe's Veneur project - spans, logs, and metrics all in the same format, "automatically" rolling up cardinality as needed - which I thought was cool but also that it would be very hard to get non-SRE developers on board with when I saw a talk about it a few years ago.
https://github.com/stripe/veneur
-
Launch HN: Opstrace (YC S19) – open-source Datadog
One pain point with Prometheus is that is has relatively weak support for quantiles, histograms, and sets[1]:
- Histograms require manually specifying the distribution of your data, which is time-consuming, lossy, and can introduce significant error bands around your quantile estimates.
- Quantiles calculated via the Prometheus "summary" feature are specific to a given host, and not aggregatable, which is almost never what you want (you normally want to see e.g. the 95th percentile value of request latency for all servers of a given type, or all servers within a region). Quantiles can be calculated from histograms instead, but that requires a well-specified histogram and can be expensive at query time.
- As far as I know, Prometheus doesn't have any explicit support for unique sets. You can compute this at query time, but persisting and then querying high-cardinality data in this way is expensive.
Understanding the distribution of your data (rather than just averages) is arguably the most important feature you want from a monitoring dashboard, so the weak support for quantiles is very limiting.
Veneur[2] addresses these use-cases for applications that use DogStatsD[3] by using clever data structures for approximate histograms[4] and approximate sets[5], but I believe its integration with Prometheus is limited and currently only one-way - there is a CLI app to poll Prometheus metrics and push them into Veneur, but there's no output sink for Veneur to write to Prometheus (or expose metrics for a Prometheus instance to poll).
It would be extremely useful to have something similar for Prometheus, either by integrating with Veneur or implementing those data structures as an extension to Prometheus.
[1] https://prometheus.io/docs/practices/histograms/
[2] https://github.com/stripe/veneur
[3] https://docs.datadoghq.com/developers/dogstatsd/
[4] https://github.com/stripe/veneur#approximate-histograms
[5] https://github.com/stripe/veneur#approximate-sets
tempo
-
OpenTelemetry in 2023
Grafana Tempo also switched from Protobuf storage format to Apache Parquet last year. It's fully open source, and the proposal is here: https://github.com/grafana/tempo/blob/main/docs/design-propo...
disclosure: I work for Grafana!
-
Monitoring and Testing Cloud Native APIs with Grafana
By combining Grafana Tempo with Tracetest, you can create a robust solution for monitoring and testing APIs with distributed tracing.
-
Introducing Tempo: low latency, cross-platform, end-to-end typesafe APIs
Last point: There's already a major open source project in the backend space called Tempo. You may want to reconsider the name.
-
Waffles, Fries, Beer and Developers; Notes from FOSDEM 2023
I started the day with some Rust and spent the rest of the day in the Monitoring and Observability DevRoom. Most of the talks I attended were about OpenTelemetry and were very Grafana Labs-heavy. I knew Grafana and, to a less extent, Loki, and I had never seen Tempo (distributed tracing) and Phlare (profiling), and Mimir (backend for metrics, more backend-y than Prometheus?).
-
Thoughts on Opentelemetry?
Grafana Tempo yes. Integrates seamlessly with Grafana (the dashboarding)
What are some alternatives?
opstrace - The Open Source Observability Distribution
jaeger - CNCF Jaeger, a Distributed Tracing Platform
cortex - A horizontally scalable, highly available, multi-tenant, long term Prometheus.
blog - SZÉKELYDATA | Erdély, Székelyföld és a nagyvilág a Big Data korszakában
Cortex - Cortex: a Powerful Observable Analysis and Active Response Engine
jaeger-client-go - 🛑 This library is DEPRECATED!
loki - Like Prometheus, but for logs.
mimir - Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus.
influxdb-apply - Define InfluxDB users and databases with a yaml file.
SwiftyTimer - Swifty API for NSTimer
b3-propagation - Repository that describes and sometimes implements B3 propagation
apm-server - APM Server