influxdb-apply
veneur
Our great sponsors
influxdb-apply | veneur | |
---|---|---|
1 | 2 | |
0 | 1,714 | |
- | 0.5% | |
0.0 | 3.5 | |
about 4 years ago | about 1 month ago | |
Python | Go | |
MIT License | MIT License |
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.
influxdb-apply
-
Launch HN: Opstrace (YC S19) – open-source Datadog
Yes, `apply` is hard. It's just as hard as deploying, maintaining, and turning down a service. When adding an `apply` command to a devops tool, the tool authors must think through the entire lifecycle of their service in the user's workflow and make it work well.
The tool creators are the ones with the knowledge to figure these things out. If they don't provide `apply`, then users must research and experiment and learn by making mistakes. This is a colossal waste of effort. Users end up with brittle poorly-documented scripts to do all the things that `apply` would do. These scripts cause ongoing waste of engineering effort, customer frustration from downtime, and lost business growth and revenue.
I spent several weeks making `apply` commands for InfluxDB [0] and Grafana. This proved extremely difficult for Grafana because of deficiencies in its API. Both InfluxDB and Grafana need some work to make them fit into a modern infrastructure-as-code ops environment. Grafana's cofounder and product lead were not interested in my feedback [1] [2].
[0] https://github.com/cozydate/influxdb-apply
[1] https://news.ycombinator.com/item?id=23136582
[2] https://news.ycombinator.com/item?id=23233468
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
What are some alternatives?
loki - Like Prometheus, but for logs.
opstrace - The Open Source Observability Distribution
Cortex - Cortex: a Powerful Observable Analysis and Active Response Engine
cortex - A horizontally scalable, highly available, multi-tenant, long term Prometheus.
b3-propagation - Repository that describes and sometimes implements B3 propagation
skywalking - APM, Application Performance Monitoring System
docs - Prometheus documentation: content and static site generator
tempo - Grafana Tempo is a high volume, minimal dependency distributed tracing backend.