Post

Hypothetically speaking... if I were to build an Elixir-focused error and performance tracking tool, what would you like to see in it? 🧐 #ElixirLang

1 repost11 likes

Full opentelemetry support for all signals (logs, metrics, traces) and auto instrumentation of popular libraries that doesn't flood with noise. Exceptions are just trace events with a certain type :) But, I don't know why you'd put yourself in such pain implementing this ;)

I'm assuming you use dependencies like those listed in opentelemetry.io/docs/languag.... Do you like the experience from Elixir's side? I've often wondered if it wouldn't be nicer for me to report from my app with Elixir's telemetry, and the library translates that to OpenTelemetry stuff.

opentelemetry.ioGetting StartedWelcome to the OpenTelemetry for Erlang/Elixir getting started guide! This guide will walk you through the basic steps in installing, configuring, and exporting data from OpenTelemetry. Phoenix This p...

These telemetry/otel hooks pretty much give you every opportunity to send anything: logs, metrics, traces, generic events, deployment markers, exceptions. It's just a matter of organizing the info at various levels (app, collector, reporting, etc).

I did, and then didn't, because of various issues or deprecations or flexibility. The phoenix and cowboy ones are too noisy, the liveview one was useless. The oban one polluted Ecto iirc, and at the time Datadog was using deprecated keys, so I had to roll my own. No tail sampling made things hard

I'd appreciate "OpenException" so that you can easily report to Sentry/Bugsnag and have that logic bundled up and only have adapters to actually send the event. But I don't think the need is too high. I'd appreciate an elixir focussed tool, friend of mine once built one.

The idea is for an error app to model "deployments" as a timestamp with metadata and expose their creation over API: - usually as a POST request in CI post-deployment - with a required unique identifier, often a repo sha - with an optional link, often a PR or JIRA release - and other arbitrary meta

Support for development deployments that would not require me to setup any accounts or do any fancy setup. I want just be able to run observability stack locally. I was even planning on writing something like that with just in-memory storage, so I can test and use it in development as well.

- Better grouping of errors than the big player give (they both group things that absolutely are not related, and fail to group things that a human can tell are obviously the same) - Hosting in our own infra would be a huge plus, because we wouldn't have to worry about PII in backtraces

Things we do not really need: - Creating or assigning tickets from a crash (we trigger that via Slack) - Uptime monitoring (we get that from a bunch of other tools) - Response time monitoring (we get that from Grafana, and to be honest if something's not triggering DB timeouts, we just don't worry)