svilen

svilen

Author of Concurrent Data Processing in Elixir

Recommendations for Phoenix/Ecto app metrics platform (alternative to AppSignal)

We’ve been using AppSignal for a while but we’re now looking for an alternative. I’m getting an impression that rolling something custom is getting easier now with Telemetry, but I’m looking for a (mostly) plug and play solution that captures exceptions and gathers performance data. We can allocate time to roll out something on our own but I would leave that as the last option.

I know of a few services myself, but I’m curious to find out what are people’s recommendations?

Most Liked

hauleth

hauleth

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 - logger and 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.

akoutmos

akoutmos

Author of Build a Weather Station with Elixir and Nerves

I usually end up hosting my own instances of Prometheus and Grafana and then use GitHub - prometheus-erl/prometheus.ex: Prometheus.io Elixir client · GitHub along with all the relevant collectors for out of the box Phoenix+Ecto metrics. I then also add my own metrics when appropriate to keep track of business metrics and what not.

chasers

chasers

@svilen if you’re still looking, and open to trying something new … I’d love it if you check out Logflare. I’ve been using our Logger backend for a while now, which powers the dashboard I use to manage our infrastructure.

From a logging perspective, we’re pretty much on par with the typical solutions out there. From the metrics side, you just log structured data and create dashboards from that.

I’d love to give you a rundown. If you’re interested, perhaps you guys can play a role in shaping the future of the product. I’m working closely with engaged early adopters.

Currently handling about a billion events a week…

Appreciate it!

</pitch>

Where Next?

Popular in Discussions Top

Donovan
Hello everyone, I’m so glad to have discovered this awesome community. Thanks for creating it! This is my second post, and apologies for...
New
nunobernardes99
Hi there Elixir friends :vulcan_salute: In a recent task I was on, I needed to check in two dates which of them is the maximum and which...
New
AlexMcConnell
The reason that Rails is as popular as it is is because it’s very easy for relatively inexperienced developers to get a lot of work done....
588 19652 166
New
Crowdhailer
I’ve been hearing much about the new formatter and it’s something I have been keen to try. I find examples buy far the most illuminating...
248 19327 150
New
mbenatti
Following https://github.com/tbrand/which_is_the_fastest |&gt; https://raw.githubusercontent.com/tbrand/which_is_the_fastest/master/imgs...
New
rower687
Hi all, I’ve been reading a lot about the “let it crash” term and how supervising processes and the whole messaging passing make an elixi...
New
rms.mrcs
A couple of days ago I was discussing with a friend about different approaches to write microservices. He said that if he was going to w...
New
joeerl
I’m playing with Elixir - It’s fun. I think @rvirding does give Elixir courses these days. Re: files and database - when I given Erlang ...
New
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New
New

Other popular topics Top

New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 43487 311
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
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
grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 52673 488
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
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
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement