Ok, I will try to make it straight for you:
logger is new Erlang module in
kernel application that is meant as a general-purpose logging frontend. Right now (Elixir 1.9.x) its messages are intercepted by Elixir’s
Logger application and are displayed alongside its messages. In next release (Elixir 1.10) it will slightly change, as
Logger module will now be wrapper over Erlang’s
logger and these two will be unified (with compatibility layer for legacy code).
telemetry is simple events dispatcher, think about it as a message bus, that is meant to dispatch events about applications. In theory we could use
logger for that, but
telemetry is much simpler and less complicated solution (no levels, no formatters, no filters, etc. just messages and handlers)
- OpenTelemetry is CNCF project which is meant to bring iter-technology solution for monitoring (metrics and traces, no logs). The idea is to make it as a backend to the Erlang’s
telemetry, so you will be able to seamlessly introduce it into your project and most of the things will work almost OotB.
- Prometheus is another CNCF project that is meant to be TSDB and query language for metrics.
So in the end:
- If you are writing library -
telemetry are your friends
- If you are building application - OpenTelemetry is something you should look into
Prometheus is for operations, there are backends for
telemetry and I am pretty sure that there also will be such feature in OpenTelemetry, so in the end, OpenTelemetry will be all you need. However currently the OpenTelemetry Erlang is still in pre-alpha phase, so if you want to use it here and now, then you should check OpenCensus (which is previous project, and all the people that were working on that one currently are working on OpenTelemetry).
About error tracking - check out Sentry, it has official support for Elixir and it is pretty decent software. I have used it in the past and it was bliss.
About visualisation - Grafana is the best, unless you want unified hosted solution, then most of the above can be achieved via DataDog.