yangbancode

yangbancode

Otel - Pure Elixir implementation of OpenTelemetry

Hi everyone :waving_hand:

I’d like to introduce Otel, a project I recently released — a pure-Elixir implementation of OpenTelemetry that satisfies the full OpenTelemetry Stable specification.

There’s still plenty to refine on the stability and performance side, but it’ll keep getting better — I hope it catches your interest.

Features

  • Signals
    • Traces
    • Metrics
    • Logs
    • Baggage
  • Propagators
    • W3C TraceContext
    • W3C Baggage
  • Exporters
    • Console (stdout)
    • OTLP HTTP
  • Configuration
    • Declarative YAML (OTEL_CONFIG_FILE)
    • Environment variables (OTEL_*)
    • Programmatic (Application env)
  • Semantic Conventions
    • Attribute registry
    • Metric registry
  • Integrations
    • :logger bridge

Thanks!

https://github.com/yangbancode/otel

Most Liked

yangbancode

yangbancode

Hi @hauleth — I see you’re an OpenTelemetry core member. First, I want to sincerely thank you for the work and the community contribution you’ve put in over the years.

About five years ago, I introduced :opentelemetry Traces into a project I was working on, and it was a huge help for performance analysis and bug tracking. We surfaced and quickly resolved a number of issues that had been buried in the system, and that experience has stayed with me strongly ever since. Without the EEF team’s work at that time, I don’t think we would have unraveled those problems as quickly as we did.

Logs and Metrics weren’t officially supported back then, so I remember substituting :telemetry + Prometheus for Metrics and Logger JSON output + the Datadog Agent for Logs. It worked, but having those third-party tools hanging off :opentelemetry from every angle made for a less-than-smooth developer experience. I really wished all three signals would land in one place at stable quality, and I thought about contributing directly — but Erlang syntax never quite agreed with me. Quietly cheering from the user side was about all I could do.

After moving to a different company, I drifted away from :opentelemetry for a while. Recently I had a bit of free time and wanted to take on a fun personal project, and I was curious to actually try out what people are calling “vibe coding” with AI tools like Claude. I also wanted to get a feel for how I might work in the age of AI. While thinking about what topic would suit, the OpenTelemetry experience that had stayed with me most strongly came back to mind, and I thought — what if I tried implementing it myself?

In a sense, this project grew out of how amazing :opentelemetry felt to use back then — it’s not an attempt to replace the official implementation in any way. I started this as a small toy project to play with and run a few experiments, and I’d be grateful if it could be received in that spirit.

mudasobwa

mudasobwa

Creator of Cure

Woud you mind to tell, how is it better compared to opentelemetry?

hauleth

hauleth

Just from the start - your logger implementation will greatly impact performance of the whole system in case of slower exporter as you have no overload protection there.

And as @mudasobwa said - why create new project when there exists official one already?

Where Next?

Popular in Announcing Top

josevalim
EDIT: since Ecto 3.0 final version is out, this post was amended to use the final versions in the instructions below. Hi everyone, We a...
New
devonestes
Introducing assertions, the library that helps you write really great test assertions! GitHub: GitHub - devonestes/assertions: Helpful a...
New
oltarasenko
Dear Elixir community, After a year of development, bug fixes, and improvements, we are proudly ready to share the release of Crawly 0.1...
New
tmbb
I’ve been working on two packages (not on hex.pm yet) to build admin interfaces for phoenix apps: bureaucrat - which contains a bunch ...
New
mbuhot
Leverage Open Api 3.0 (Swagger) to document, test, validate and explore your Plug and Phoenix APIs. Generate and serve a JSON Open API ...
New
type1fool
WebAuthnLiveComponent WebAuthnComponents See this post about renaming the package. Passwordless authentication for Phoenix LiveView app...
New
aditya7iyengar
Rummage.Ecto and Rummage.Phoenix provide ways to perform Searching, Sorting and Pagination over Ecto queries and Phoenix collections. Fo...
New
hpopp
After just over two years in development, this latest version of Pigeon is what I finally consider done in regards to my original vision ...
New
scohen
Lexical Lexical is a next-generation language server for the Elixir programming language. Features Context aware code completion As-you...
New
kevinlang
Hey all, We have made an Ecto3 Adapter for SQLite3, ecto_sqlite3! We have successfully on-boarded the full suite of integration tests (...
New

Other popular topics Top

aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
AstonJ
We’ve put together this wiki for Phoenix LiveView - please feel free to add any info you feel is worth including. What is Phoenix LiveV...
New
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New

We're in Beta

About us Mission Statement