1. Le concept d'instrumentation
Comment le code émet-il des données ?
OpenTelemetry : Le contrat universel
Avec OpenTelemetry (OTel), vous instrumentez votre code de manière agnostique. Vous utilisez des SDKs standards. Si vous changez de backend (de Honeycomb à Grafana), vous ne touchez pas à votre code. C'est la fin du 'Vendor Lock-in'.
OneAgent : L'injection magique
Le OneAgent de Dynatrace ne demande aucun changement de code. Il s'injecte au runtime (ex: dans la JVM Java ou le process Node.js) et intercepte les appels automatiquement. C'est un gain de temps phénoménal pour les équipes de développement.
2. Maintenance et Contrôle
Effort manuel vs Boîte noire.
L'effort OpenTelemetry
OTel demande plus d'efforts : il faut configurer les SDKs, gérer les collecteurs et s'assurer que les bibliothèques utilisées sont bien supportées. Mais vous avez un contrôle total sur ce qui est envoyé.
La sérénité Dynatrace
Le OneAgent gère tout : propagation du contexte de trace, métriques JMX, logs. Cependant, c'est une 'boîte noire' propriétaire. Vous dépendez de la réactivité de Dynatrace pour supporter de nouvelles versions de frameworks.
3. Conclusion
L'un n'exclut pas l'autre.
Verdict
La bonne nouvelle est que Dynatrace supporte nativement OpenTelemetry. La stratégie moderne consiste à utiliser le OneAgent pour l'essentiel de l'infrastructure et de l'APM automatique, tout en ajoutant des traces OpenTelemetry personnalisées pour les besoins métier spécifiques au cœur de votre code.