yujonglee

yujonglee

What is recommended way to send logs to Otel collector?

It seems like GitHub - Nebo15/logger_json: JSON logger formatter with support for Google Cloud, DataDog and other for Elixir. is used a lot, but it is just a formatter, right?

I am not sure why I can not find a single Logger Backend implementation that sends logs to somewhere else, especially to things like Otel collector.

Am I missing something?

Most Liked

RudManusachi

RudManusachi

Hi, @yujonglee :wave:
Sorry for not answering your question directly:
But, logs through Otel in Erlang/Elixir is currently in “experimental” status (see in official Otel page Erlang/Elixir | OpenTelemetry)
You can track opentelemetry_experimental development in here.

I haven’t try it, though, I think currently there is no single success story of what you want, at least I’m not aware of one either. (If there is one - I’like to learn more too :slightly_smiling_face:)

Most of the places I’ve seen are relying on their specific infra setup to deliver logs to their logging application in use (Google Cloud/DataDog/CloudWatch/Loki…). And on the elixir app side only make sure that logs are formatted appropriately and augmented with expected metadata for the logging application.


And just to clarify: “Logger Backends” since elixir 1.15 are deprecated in favor of newer Erlang’s built in :logger api with :logger_filters, :logger_handlers, :logger_formatter etc.
Here more about - Logger Backends and backwards compatibility

gpopides

gpopides

as @RudManusachi mentioned, elixir’s job is to format the logs and then a different tool is used to send those logs to your collectors.

So you can use for example fluentbit to send the logs to the open telemetry agent or the opentelemetry collector itself

Where Next?

Popular in Questions Top

New
quazar
How to set Jason to encode all fields in ecto schema, I don’t care about security and implementing only is taking long list of attributes...
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
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
chensan
I have a User schema with a :from_id field set to type :string: defmodule TweetBot.Repo.Migrations.CreateUsers do use Ecto.Migration ...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? https://hexdocs.pm/ecto/Ecto.Repo.h...
New
johnnyicon
Hi all, I've just started learning Elixir and Phoenix Framework, so please pardon my n00bness at this stage. I'm trying to use Postg...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
sabri
Can someone explain the settings of pool_size of Ecto in config file? and what is the recommend size? Thanks
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New

Other popular topics Top

JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1140 51847 244
New
chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 27727 240
New
qwerescape
Is there a way to get the call stack or stack trace at any point in the code? Not from exceptions, but an expression that returns how the...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 42633 214
New
johnnyicon
Hi all, I've just started learning Elixir and Phoenix Framework, so please pardon my n00bness at this stage. I'm trying to use Postg...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New

We're in Beta

About us Mission Statement