Introducing New Relic's Open Source Elixir Agent

Hi folks. Today I’m proud to announce the open-sourcing of New Relic’s Elixir Agent!

Elixir has been in use by my team in production at New Relic for a few years now. We’ve leveraged it to build stable high throughput web services, and it’s more than lived up to its mission of building scalable and maintainable applications. Of course, as a monitoring company it’s been critical that we have visibility into our own systems. We’ve been running a “stealth” agent in our Elixir services from day 1.

New Relic has also seen a steady increase in Elixir adoption by our user base. We get tons of feature requests from our customers, and the demand for visibility into Elixir services has continued to grow.

Since it’s beginning, New Relic has been connected to the Open Source community, and we continue to invest more. Now we’re open-sourcing an agent for the first time! We believe that visibility into software systems is critical to its success - and we want to help the open-source world bake that into the very foundations.

So here we are, at the intersection of these 3 factors - Elixir’s growth, New Relic’s commitment to open-source, and the grass-roots use of Elixir inside New Relic.

Interested in getting started? As of today you can:

The Agent implements a core set of features including Transaction Monitoring, Transaction Traces, Distributed Tracing, Error Traces and more. We even collect some key BEAM stats to see how the VM is performing. However, we don’t implement everything that our fully supported Agents like Java and Ruby do.

As an open-source project, we’re aiming to provide a stable and extensible foundation to provide observability into Elixir applications.

I’m excited about the future of this project and the future of Elixir!

Reach out to us here in the Forum, in #newrelic on Elixir’s Slack, or through Issues & Pull Requests on Github.

27 Likes

Does the implementation use a NIF to talk to the New Relic C Agent?

1 Like

No, it’s implemented all in Elixir

3 Likes

I’m excited to see this and will check it out. Thanks for your work.

To make sure I understand, though, New Relic still hasn’t released a commercial, full-featured agent. There have been requests for one for years. I’m glad they’re supporting you releasing this, but it means we still don’t have a viable turnkey solution to using new relic in our apps… which is kind of the point of new relic. This doesn’t feel like support of the elixir community to me, but I’m certainly open to being corrected if I’m missing the mark.

And I really do appreciate and applaud your passion.

The most notable things that appears to be missing are Ecto and Phoenix Channels integration. However, with the telemetry project announced in Chris McCords talk at Elixir Conf, hopefully it isn’t necessary that every APM vendor needs to do that. Ideally at some point, New Relic is one of many plugins you can use as a backend to the built in instrumentation.

1 Like

I agree that Telemetry is a promising future for us and I’m quite thankful that it’s in the works. That said, we have applications in production right now. We’ve used New Relic for APM for a few years, but we’re effectively reducing our reliance on it as we increase elixir in our system. It seems like a lost opportunity and, especially given the internal use of elixir, it’s a bit disappointing.

1 Like

This is a New Relic open source project. It’s actually an expression of our belief in open source solutions to instrumentation, of which we think will only continue to grow.

As mentioned, the elixir-telemetry project is an example of that, and so is opencensus.

This is New Relic’s solution for monitoring elixir apps, not just me releasing a personal project.

3 Likes

This really got my attention, anything you can share as to what you guys are doing with it?

1 Like

Yeah our new GraphQL API is built in Elixir with Absinthe!

It’s been in use for a long time inside the product and now we’ve started building a customer facing GraphQL API which will be our standard going forward…

https://docs.newrelic.com/docs/apis/graphql-api/getting-started/introduction-new-relic-graphql-api

There’s a few other things but this is the most noteworthy

4 Likes

I put together a thin Phoenix adapter for the Agent…

It’s an rc right now until Phoenix 1.4 is released… Check it out!

5 Likes

Awesome, thanks for sharing!

1 Like

Now that Phoenix 1.4.0 is out, I’ve released 0.1.0 of the Phoenix adapter for the Agent!

7 Likes