davydog187
Hello all!
I wrote a blog post called Elixir Observability: OpenTelemetry, Lightstep, Honeycomb. The post post covers how to integrate your Elixir application with Open Telemetry to make it observable in Lightstep and Honeycomb’s reliability platform.
Please let me know if you have questions or feedback!
Trending in Blog Posts
Hey folks,
I just published a post about Hologram’s funding and where the project goes next - the short version:
Curiosum as Main Spons...
New
I am seeing a lot of aplications of Argumentum ad Vericundiam in software discussions. They do link some piece of writing and point us to...
New
Hi all,
In this article, I make the case for each test owning its setup.
Usually I forbid my AI agents to use the setup callbacks; I mu...
New
As I’ve leaned into AI code generation on LocalCents, the volume I ship has climbed, and my worry shifted from any single change to the l...
New
A while back, I had to process millions of database updates in a legacy system that was already hitting its 64 GB RAM limit, so scaling t...
New
I recently figured out how to the the Rust hotpath profiling crate running in an elixir benchmark script (for profiling NIFs). I had some...
New
This article demonstrates how to build a minimal stateful process using only Elixir’s core concurrency primitives: spawn/1, send/2, recei...
New
Other Trending Topics
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #blog-post
- #phoenix_html
- #iex
- #graphql
- #ai
- #genstage
- #elixirconf-us
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex










First 8 of 8 Posts
dimitarvp
Really good post, thanks a lot!
I’ve been wrestling with OpenTelemetry in Rust a few months ago and it took me a day or two to even find my way around all the terminology and then be able to send metrics to Jaeger and Zipkin. And Prometheus afterwards, with Grafana.
Your post added a few extra strokes to the picture that I was not clear on. Much appreciated!
davydog187
Thanks for the kind words. If there are sub-topics that you’d like me to dive into, please let me know and I’ll consider them!
dimitarvp
Yes, there’s one thing.
Most OpenTelemetry guides never talk about what piece fits where. A simple diagram showing how on one of the “floors” of this “building” you can have Jaeger, Zipkin, or Prometheus for example would be hugely helpful.
When I was learning OT this was very hard to grasp initially. Nobody seems to care to give the big picture – literally – with a diagram.
So something like: “To have OT work well you need the pieces X, Y and Z – for collecting/ingesting data, aggregating them, and visualizing them. For Y you can choose between Jager and Zipkin, for Z you can choose between this or that (e.g. Grafana and friends)”.
Strangely, such perspective is almost always missing.
the_wildgoose
This is a great post! Thanks
If I might also draw attention to the “Mobius” library for elixir. It doesn’t do anything like the above, however, it solves a similar problem when all you wanted was something simple, right now. So I came across it when I was doing a little embedded stuff and had no desire to setup a bunch of servers, timeseries databases, grafana, etc, etc.
Mobius is just a stupidly simple little mini timeseries database, complete with the ability to plot basic graphs from the command line… It in no way does anything as powerful as all the stuff you described… But you know what! For me at least it created the DEMAND to go and get something better! Before that I had no way to see how useful telemetry was. Mobius let me quickly answer simple questions, which in turn has led me to want more. So I went from having no telemetry to adding stuff to all my key functions. From here I can use opentelemetry/grafana/etc to get proper analysis. However, I don’t think I would have bothered without that leg up
Give it a whirl. I think it’s a great stepping stone to create demand for a proper solution
dimitarvp
Thanks for the reminder, I’ve been meaning to try it for months now.
csadewa
Very cool! 3 months ago i was implementing opentelemetry on elixir and it was a bumpy ride. It would be a smoother ride if i had read your blog post then.
Regarding subtopic, there were some additional problem that i was wrestling with besides basic otel:
csadewa
also, for someone which new to opentelemetry integration on elixir, CNCF Slack for opentelemetry erlang working group is very welcoming and i was able to get a lot of help there GitHub - open-telemetry/opentelemetry-erlang: OpenTelemetry Erlang SDK · GitHub
pedroassumpcao
Great post, I noticed that you focused more on high cardinality data and how that can be exported to Lightstep or Honeycomb, but I am wondering what would be if I would like to export metrics (low cardinality) as well and what would be the main differences.