Elastic APM agent VS 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