davydog187

davydog187

Elixir Blog Post: Elixir Observability: OpenTelemetry, Lightstep, Honeycomb

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!

Most Liked

dimitarvp

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.

dimitarvp

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!

csadewa

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:

  1. How to implement opentelemetry instrumenter in elixir: if you have a custom library/plugin which are not yet included in standard opentelemetry instrumenter for elixir/erlang. how you should develop it or extend existing?
  2. Performance tuning: I once has a performance problem with opentelemetry (memory usage and latency) for high request throughput server, mainly caused by number of span and trace stored by opentelemetry. i was able to fix it at the time with fiddling following variable:
OTEL_BSP_SCHEDULE_DELAY_MILLIS: "500"
OTEL_BSP_MAX_QUEUE_SIZE: "1024"
OTEL_SPAN_SWEEPER_INTERVAL: "120000"
OTEL_SPAN_SWEEPER_STRATEGY: failed_attribute_and_end_span
OTEL_SPAN_SWEEPER_SPAN_TTL: "120000"

Last Post!

pedroassumpcao

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.

Where Next?

Popular in Blog Posts Top

wmnnd
Hey there, I’ve started a little blog series about building and deploying Elixir applications. Now I would like to share with you the fi...
New
pillaiindu
Our very handsome and humble José Valim (@josevalim) just published Kubernetes and the Erlang VM: orchestration on the large and the sma...
New
rms.mrcs
https://medium.com/the-realreal-product-tech-blog/monitoring-hackney-connection-pools-with-telemetry-3aaeafa8eeb8 Hi, everyone! In this ...
New
aymanosman
The desire to produce structured logs is common. In this article, I will survey the major approaches one could take to achieve this goal ...
New
MarcinKasprowicz
What I genuinely value at my workplace is that I can easily explore new languages through internal mobility. Throughout my career within ...
New
lawik
Building on other people’s work I bashed things together and suddenly I can know when someone is speaking using Elixir and Membrane.
New
gaggle
This post explores different ways to do test automation in Elixir, focusing on how to handle dependency injection — covering patterns, li...
New

Other popular topics Top

JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New

We're in Beta

About us Mission Statement