Here's my [naive] attempt to consider tracing instead of logging.
The UI of everything just sucks. So much whitespace. So many clicks.
Grafana & tempo
It's free and opensource. It works. You can't seem to force the thing to order spans by timestamp so **sometimes** the top span isn't the latest one. The table view sucks because it has columns you never asked for, leaving less space for columns you asked for. The trace view requires A LOT of clicks to drill down. 16" window size minimum or things get weird.
Datadog
Very frontend-oriented. All the attributes are mixed up together so good luck finding the ones you care about in a modal window. I'd have to sell my horse to afford it, too.
openobserve.ai
Whatever that thing is. It's theoretically FOSS and runs on elastic. Data density is ok but it repeats itself, confuses things, and doesn't allow to drill down in any reasonable manner.
Sentry
It doesn't play nicely with otel spans, missing the events data completely. Meh.
Google Cloud
The "list of traces" UI is seemingly nonexistent, so you can't really use it as a logs replacement at all. The attributes are mixed together and sorted alphabetically, so once again the ones you care for will be interleaved with things like `process.runtime.description`.
AWS
Only shows you the attributes if you look at the raw JSON representation. Talk about UX.
Funnily enough, I started with grafana, looked over all this stuff and came back to grafana realizing that it's actually not that bad! Still, you can't easily work on a live application and rely on traces instead of logs because they aren't just presented in a way that's easy for a human to digest. And yes, I wrote a custom nodejs otel span processor that logs the traces in stdout in a way that looks like semantic logs now.