Elastic APM agent VS OpenTelemetry client

Now that Elastic Stack has native support for OpenTelemetry I guess there are (at least) two ways to do APM from a .Net application (the same question is probably valid for java and others as well).

  1. Using the Elastic APM .NET Agent.
  2. Using the The OpenTelemetry .NET Client.

Looking at Github stats (number of stars, contributers, pulse) OpenTelemetry is way ahead of the Elastic one. Also OT is an open standard implemented by several vendors.

As an Elastic Stack customer, is there any reason to not choose the OpenTelemetry client?

Hi @AThomsen,

the observation is correct - Elastic does support OpenTelemetry and you can certainly send data to APM Server by any OpenTelemetry SDK, and this means - as you correctly point out - you have typically 2 options for most technologies.

In general, we support both our custom agents and OTel SDKs (aka clients/agents) as well and we don't specifically push any of the options. We suggest you use whichever is a better fit for you.

And to complete this, our custom agents actually do support OTel directly as well - they are able to ship OTel spans directly (.NET docs can be seen here) - and we are working on soon shipping OTel metrics as well from the custom Elastic APM Agents.

As an Elastic Stack customer, is there any reason to not choose the OpenTelemetry client?

Yes, there can be many scenarios, where you may choose to go with an Elastic agent. For example we offer some features which are not present in OTel, e.g. span compression, central configuration, inferred spans in Java, and specifically in .NET we have a zero code change integrations to add a profiler based agent which has some integrations that may not yet be covered by OTel (list of library support can be seen here).

Furthermore, most of our agents predate OTel and they have an extremely broad user-base. For those users, it'd be not acceptable to completely switch to another agent - potentially in thousands of services. They also can keep using those agents but still utilize OTel by using the bridge linked above. We definitely don't want to break existing users.

So use whichever agent supports your needs the most - and to be clear if you start completely new and your goal is to just use open standards, then we also agree that you should choose the OTel Client.

2 Likes

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.