All you need is Wide Events, not "Metrics, Logs and Traces"
Posted by bootlegbilly 3 days ago
Comments
Comment by viraptor 3 days ago
I'm glad the author likes wide events for everything. I do too. But once you try to justify the cost, you understand why it's metrics, logs and (often sampled) traces.
Comment by zbentley 3 days ago
If you do all that on the client side (not in a sidecar, ideally: actually in your client code when deciding what to transmit) you have a fairly nice way to temporarily turn on e.g. rich trace recording to hunt a bug, or start spraying event bodies to a local file when debugging a troublesome service instance, and so on. The rest of the time, things can transmit a few big payloads and a lot of small metrics, and things stay cheap.
In other words, it's easy to go from "recorder.record_rich_typed_event(...)" to capturing any or all of events, traces, metrics, or logs. It's not easy to go from e.g. "metrics.record_integer_metric("somemetric", 15)" to recording a richer, more complex event in a pinch.
Comment by seiflotfy 3 days ago
Comment by theteapot 3 days ago
You could draw a class diagram with "Wide" - or whatever - as the base class, metric, span, log subclasses. Metric class requires an additional metric field, span requires start, end, parent, log is just open.
Comment by tclancy 3 days ago
> I’m going to blame Open Telemetry. Yes, it’s powering the modern observability stack and yet I blame it for the mass confusion
Of course. It’s the classic Internet dev thing of “make a blog post about how using tool X well was a boon to what you were trying to do” and a mass of people walk away with “tool X magically solves things in its default configuration without me learning anything”.The nice bit is this post will then lead to a bunch of companies’ log storage prices spiking and then a post about how you don’t need wide events trending.
Comment by otterley 3 days ago
The question comes down to value. If you’re never actually using the data, fine. But once you need it, and you don’t have it, might the cost sometimes be greater than it would have been to preserve it?
The choice of how much telemetry to keep seems similar to how much you want to spend on an insurance policy. The same kinds of risk evaluation apply.
Comment by tclancy 3 days ago
Comment by zug_zug 3 days ago
Having used scuba at meta, I can authoritatively say it's bottom-tier quality. Especially in the era of having competent LLMS able to write sophisticated queries.
Genuine expert level observability is being able to query things like "Of all the users who updated versions of the APP in the last week, what % of them had fewer errors after the update (per hour of usage) than before"
That will never happen in a "wide event."
Comment by desolate_muffin 3 days ago
Your example seems like it would be a great system to have access to, but it seems like that question would be formed after using a more general system like Scuba where you can iterate on the data rapidly.
Comment by zug_zug 2 days ago
The article's arguments "Look if you squint logs and traces kinda overlap" misses the point that if you want to use traces effectively you need to be able to graph them as flame-graphs and also query these relationships ("count average number of userLogin spans that failed that have a subsequent succeeding userLogin span with the same userId and same originatingIp")
To be fair even the more advanced products struggle with sophisticated queries, though splunk and sumo have usually met my needs just fine. Honestly even SQL has an order of magnitude more powerful querying than scuba.
Comment by delamon 3 days ago
prev. submission - https://news.ycombinator.com/item?id=39529775
Comment by InsidiousWombat 3 days ago
It is divided mostly because database to store metrics, and database to store essentially freeform documents are very different products and need different features from query language, and having "just metrics" allows to store them with compression reaching 1byte per metric data point or less.
Logs and traces I admit, split here is unnecessary, and it should be just presentation difference. But metrics is often just unrelated to any single event summary of the state of the system. Sure you can just log every single log entry with request metadata and get request rate, percentiles etc. by calculating the events, but that is just too wasteful for most.
Comment by seiflotfy 3 days ago
Comment by drdrey 3 days ago
Comment by otterley 3 days ago
Comment by bcvvvy 3 days ago
The whole otel, logging and metrics thing is based around "record everything" and dig through the pile of shit looking for things that might be helpful. Fine until you have 50TB of logs/traces online which is our problem. Oh that and the 50 gig prometheus instance. 99.99999% of all information we record is entirely and utterly useless and costs us money
Make simpler things, log only exceptional things, use the rule of silence.
Comment by otterley 3 days ago
Comment by bcvvvy 3 days ago
Objectively we did the same job without it 15 years ago under the same traffic conditions.
Comment by otterley 3 days ago
That or you’re getting suckered.
Comment by BodyCulture 3 days ago
How do you decide what is exceptional when you have only silence to compare to?
Comment by bcvvvy 3 days ago
Comment by Fysi 3 days ago
Comment by bcvvvy 3 days ago
Comment by seiflotfy 3 days ago
Comment by atoav 3 days ago
Comment by smallnix 3 days ago
You get logs with full content + metrics you can query.
Or am I missing something?
Comment by 4ndrewl 3 days ago
Comment by photios 3 days ago
Besides, with wide events, it seems possible to apply data lineage ideas and mark certain fields as sensitive and restrict access to them.
Comment by desolate_muffin 3 days ago
Comment by jakewins 3 days ago
In what way is this worse than the alternative?
Comment by x3n0ph3n3 3 days ago
Edit: Looks like it's been restored.
Comment by gnabgib 3 days ago
> Don't post generated text or AI-edited text. HN is for conversation between humans.
But who can tell, you could ask the mods (email found in the guidelines)
Comment by kqr 3 days ago
Comment by morningsam 3 days ago
Comment by fakwandi_priv 3 days ago
Comment by eluusive 3 days ago
Comment by camel_gopher 3 days ago
Comment by 77rushi77 3 days ago
Comment by reilly3000 3 days ago
You can do anything you like with any approach but if they are mostly about ad hoc queries, dumping everything into BigQuery as a wide event can be the most economical. However if you want to run alerting, SLOs, etc with frequent queries over aggregated metrics, the best bet is using OTel Collector and metrics store of your choice like Prometheus or Mimir.
Most companies could save a bundle on observability if they were to move to a hybrid that includes both of those approaches instead of cloud provider logging, log-based metrics, and alerting.
Comment by seiflotfy 3 days ago
Comment by bone_421 3 days ago