3 ms·
This matches my conclusion as well. Just use Prometheus and whatever client library for your language of choice, it's 1000x simpler than the OTEL story.
by sethops1 2y ago
This matches my conclusion as well. Just use Prometheus and whatever client library for your language of choice, it's 1000x simpler than the OTEL story.
- bushbaba 2y agoSimpler near-term, but more painful long term when you want to switch vendors/stacks.
- hinkley 2y agoAnd switching log implementations can be a pain in the butt. Ask me how I know. But I’d rather do that three more times before I want to see OpenTelemetry again. Also Prometheus is getting OTEL interop.
- pphysch 2y agoIs this the same scam as "standard SQL"? Switching database products is never straightforward in practice, despite any marketing copy or wishful thinking. Prometheus ecosystem is very interoperable, by the way.
- pdimitar 2y agoIt's not a "scam", the protocols and clients are 100% scrutable. Not sure why you used that word.
- kemitche 2y agoNine times out of ten, I've got more valuable problems to solve than a theoretical future change of our vendor/stack for telemetry. I'll gladly borrow from my future self's time if it means I can focus on something more important right now.
- hinkley 2y agoI did our migration from StatsD to OTEL because our third party StatsD service was getting flaky. The first person from OPs to get to me pushed OTEL. The rest were fine with Prometheus and it was late in the process before they realized what had happened. I believe if we had gone straight to Prometheus I would have been done in half the time and solved half the problems I had to solve anyway for OTEL. If someone had to replace it again in the future I fully believe it would have taken cumulatively as much time to go StatsD->Prometheus->OTEL as it took to go StatsD->OTEL, especially when you consider that OTEL is not quite baked. Meanwhile functionality to retain and recruit new customers sat in the backlog. Edit to add: also regarding the perf issues I saw: do you really want to pay for an extra server or half a server in your cluster just in case some day comes? These decisions were much fuzzier when you ordered hardware once every two years and just had to live with the capacity you got.
- whalesalad 2y agoCan you even achieve this with prometheus? Afaik it operates by exposing metrics that are scraped at some interval. High level stuff, not per-trace stuff. How would you build the "holy grail" map that shows a trace of every sub component in a transaction broken down by start/stop time etc... for instance show the load balancer see a request, the request get handled by middlewares etc, then go onto some kind of handler/controller, the sub-queries inside of that like database calls or cache calls. I don't think that is possible with prometheus?
- baby_souffle 2y ago> Can you even achieve this with prometheus? Afaik it operates by exposing metrics that are scraped at some interval. High level stuff, not per-trace stuff. Correct. Prometheus is just metrics. The main argument for oTel is that instead of one proprietary vendor SDK or importing prometheus and jaeger and whatever you want to use for logging, just import oTel and all that will be done with a common / open data format. I still believe in that dream but it's clear that the whole project needs some time/resources to mature a bit more. If anybody remembers the Terraform/ToFu drama, it's been really wild to see how much support everybody pledged for ToFu but all the traditional observability providers have just kinda tolerated oTel :/
- niftaystory 2y agoCode traces are metrics. Run times per function calls metrics, count of specific function call metrics. Otel is an attempt to package such arithmetic. Web apps have added so many layers of syntax sugar and semantic wank, we’ve lost sight its all just the same old math operations relative to different math objects. Sets are not triangles but both are tested, quantified, and compared with the same old mathematical ops we learn by middle school.
- mikestorrent 2y agoNo, code traces are not just metrics; and while you can knit together something approximating traces from metrics, you'll quickly run into the reason why traces are a distinct thing. First, in a distributed system, you'll discover that you can't rely on clocks to get the timing of subsecond events correct. Second, you'll be contextless about code paths. So, you might independantly reinvent the idea of passing along a context - and now you're just making your own tracing system but without any of the benefit of building on years of existing discoveries in this field. OTel does feel a little bit heavy, unless you're already used to e.g. New Relic, Dynatrace, etc. where you have to run an agent process and instrumentize your code to some extent; it's never going to be free to audit every function call! This is why (a) you sample down and don't keep every trace, and (b) unless your company is extremely flush with cash you probably don't run tracing in every environment. If you can get away with it just in a staging or perf test env you can reap most of the benefit without the production impact and cost.
- paulddraper 2y agoPrometheus is good, but let's be clear...you don't get tracing.
- PeterCorless 2y agoFor tracing FOSS: Grafana Tempo. https://grafana.com/oss/tempo/ https://grafana.com/oss/tempo/
- flurie 2y agoTempo's a backend/sink for traces, but if you click through to the Tempo docs and find out how to generate tracing data[1], you learn that you have two options: OpenTelemetry, which they recommend, and Zipkin, which they do not recommend. [1] https://grafana.com/docs/tempo/latest/getting-started/instrumentation/ https://grafana.com/docs/tempo/latest/getting-started/instru...
- paulddraper 2y ago"I don't want solutions, I want to be mad."
- thephyber 2y agoTempo is a traces server. Prometheus is a metrics server. Grafana, the same company that develops and sells Tempo created a horizontally scalable version of Prometheus called Mimir. OpenTelemetry is an ecosystem, not just 1 app. It’s protocols, libraries, specs, a Collector (which acts as a clearinghouse for metrics+traces+logs data). It’s bigger than just Tempo. The intention of Patel seems to be to decouple the protocol from the app by having adapters for all of the pieces.
- Too 2y agoPrometheus is not only a metrics server, it's also become the de-facto metrics exposition format.
- Thaxll 2y agoYou probably don´t understand what Otel is if you think that Prometheus is an alternative.
- seadan83 2y agoWhy Otel compared to prometheus+syslog+(favorite way to do request tagging, eg: MDC in slf4j)+grep? Syslog is kinda a pain, but it's an hour of work and log aggregation is set up. Is the difference the pain of doing simple things with elastic compute and kubernetes?
- phillipcarter 2y agoTypically this is a subset of OTel that's being compared. Almost everything (aside from Datadog's proprietary stuff) is just smaller than OTel is, which is why it's often chosen for many different needs. In my experience, it's often folks who have experience setting up metrics or log collection with something smaller (e.g., StatsD) and sometimes for purposes with less scope, who have the most frustration with OTel. All the concepts are different, carry different names, have different configs, have different quirks, etc. There's often an expectation that things will largely the same as before and that they can carry over the cursed knowledge they had from the other toolset.
- MathMonkeyMan 2y agoYou'd do better to point out which distinction you think the parent poster is missing. My guess is that Prometheus cannot do distributed tracing, while OpenTelemetry can. Is that what you meant?
- csomar 2y agoOtel is a spec. You can create your own clients/aggregators/etc.. The problem is that if nobody does it, there will be no tooling. So Otel created some tooling (and yes, it's bad) for people to use. Some companies (ie: Datadog) are contributing to the tooling but I think most companies would rather spend dev time on their own platforms than something that anybody (competitor) can use.