1. The concept of instrumentation #
How does code emit data?
OpenTelemetry: the universal contract #
With OpenTelemetry (OTel), you instrument your code in a vendor-agnostic way, using standard SDKs. If you change backends (from Honeycomb to Grafana), you don't touch your code. It is the end of vendor lock-in.
OneAgent: magic injection #
Dynatrace OneAgent requires no code changes. It injects itself at runtime (e.g. into the Java JVM or the Node.js process) and intercepts calls automatically. It is a phenomenal time saver for development teams.
2. Maintenance and control #
Manual effort vs black box.
The OpenTelemetry effort #
OTel requires more effort: you have to configure the SDKs, manage collectors and make sure the libraries you use are supported. But you have full control over what is sent.
Dynatrace peace of mind #
OneAgent handles everything: trace context propagation, JMX metrics, logs. However, it is a proprietary 'black box'. You depend on Dynatrace's responsiveness to support new framework versions.
3. Conclusion #
One does not exclude the other.
Verdict #
The good news is that Dynatrace natively supports OpenTelemetry. The modern strategy is to use OneAgent for most of the infrastructure and automatic APM, while adding custom OpenTelemetry traces for specific business needs at the heart of your code.
