Remix.run Logo
▲ All you need is Wide Events, not "Metrics, Logs and Traces"(isburmistrov.substack.com)
67 points by bootlegbilly 4 hours ago | 17 comments
▲tclancy an hour ago | parent | next [-]

  > 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.

▲theteapot 37 minutes ago | parent | prev | next [-]

A metric is a measure that can be aggregated over time. You can derive a metric from logs (count) but that doesn't make them the same thing. Spans have start and end times and parent pointer. Logs are arbitrary data, but can be correlated, can have application/org defined structure that's beyond the scope of the observability stack.

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.

▲bcvvvy 38 minutes ago | parent | prev | next [-]

As someone who has been on that side of things for 10 years, can we stop building really complicated stuff that requires this pile of shit and dedicated staff to run it.

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.

▲drdrey an hour ago | parent | prev | next [-]

wide events feel like structured logs, great for high cardinality data but not so much for time series

▲delamon 3 hours ago | parent | prev | next [-]

(2024)

prev. submission - https://news.ycombinator.com/item?id=39529775

▲InsidiousWombat an hour ago | parent | prev | next [-]

Very ignorant take. If all of us had infinite infrastructure there would indeed be no reason to separate the three at generation, but for those that have to actually count the costs, paying for servers to store that amount of duplication is real issue, and even more (for some reason, by order of magnitude or more) if you're using one of big observability providers.

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.

▲eluusive 41 minutes ago | parent | prev | next [-]

Meh. This is just structured logging with some post processing. You can definitely derive metrics and traces based on them, but doing so is more expensive in many ways.

▲4ndrewl 2 hours ago | parent | prev | next [-]

Potential PII nightmare. You're now potentially circumventing access controls from sensitive data.

▲photios an hour ago | parent | next [-]

Tbh, it doesn't seem much different than having to watch out for not stuffing PII in logs.

Besides, with wide events, it seems possible to apply data lineage ideas and mark certain fields as sensitive and restrict access to them.

▲jakewins an hour ago | parent | prev [-]

To me this seems easier than the alternative model (logs, metrics, traces), in that you only have one abstraction to contemplate handling PII in?

In what way is this worse than the alternative?

▲x3n0ph3n3 3 hours ago | parent | prev | next [-]

Why is 77rushi77's comment flagged + dead? Seemed like a good question.

Edit: Looks like it's been restored.

▲gnabgib 3 hours ago | parent [-]

Looks like it's because of:

> 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)

▲kqr 2 hours ago | parent [-]

Doesn't seem particularly robot-generated to me, nor to the classifier I made for a related purpose: https://xkqr.org/aicomment/#lang=none&prior=50&c=Pc_BbcMwEAT...

▲morningsam 39 minutes ago | parent | next [-]

It's very obviously LLM-generated if you've been reading some of the many other LLM-generated comments you'll find at the bottom of the comments on almost all other submissions to this website. Pangram says 100% LLM, too, but you don't need Pangram to see this, just compare the way it's written to all the other ones.

▲fakwandi_priv 2 hours ago | parent | prev [-]

Then that check accounts history and tell me if you see a pattern or not, this one is really obvious.

▲77rushi77 3 hours ago | parent | prev [-]

The Scuba example is convincing for debugging. What the post doesn’t cover is cost. If you keep raw wide events instead of pre-aggregating, how do you handle storage and query cost at scale? Is sampling the main lever, or do teams still keep cheap metrics for alerting and use events only for investigation?

▲reilly3000 2 hours ago | parent [-]

The whole wide events thing is Honeycomb’s marketing pitch. It’s essentially offering developer velocity, ie you don’t have to think about what should be a metric in advance. They have an open source project called Refinery which is a smart sampling proxy that samples successful requests but always forwards errors, slow queries, etc.

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.