instrumentation automatically setting of datadog Appdynamic and Dynatrace - unix1998/technical_notes GitHub Wiki

AppDynamics and Dynatrace provide automatic instrumentation, meaning they can automatically inject the necessary code to capture trace IDs, span IDs, and other relevant data without requiring you to modify your application code manually. Here's a more detailed explanation:

AppDynamics

Automatic Instrumentation:

  • Java Applications: For Java applications, AppDynamics automatically instruments the application by adding the Java agent to the JVM. This agent captures detailed trace information, including trace IDs and span IDs, without the need for code changes.
  • Other Environments: AppDynamics provides similar automatic instrumentation for .NET, PHP, Node.js, Python, and other environments. Agents are installed and configured to automatically capture performance data and traces.
  • Business Transactions: AppDynamics focuses on business transactions, automatically identifying and monitoring them across the application stack.

Code Modification:

  • While AppDynamics can automatically instrument many applications, you have the option to add custom instrumentation if needed. This might involve adding specific annotations or API calls, but it's not typically required for basic tracing and monitoring.

Dynatrace

Automatic Instrumentation:

  • OneAgent: Dynatrace’s OneAgent automatically instruments applications upon installation. It uses automatic discovery and injection techniques to capture trace information, including trace IDs and span IDs, without manual code changes.
  • Wide Range of Technologies: Dynatrace supports a wide range of environments, including Java, .NET, Node.js, PHP, Python, Go, and more, with automatic instrumentation for each.
  • PurePath Technology: Dynatrace’s PurePath technology provides detailed, end-to-end tracing of transactions across all tiers of the application stack, capturing all necessary IDs and metrics.

Code Modification:

  • Similar to AppDynamics, Dynatrace also allows for custom instrumentation if more detailed or specific data collection is required. However, the automatic instrumentation typically covers most needs for tracing and performance monitoring.

Datadog

Automatic Instrumentation:

  • Auto-instrumentation: Datadog APM also supports automatic instrumentation for various programming languages, including Java, Python, Ruby, Go, Node.js, .NET, and more. This means it can capture trace IDs, span IDs, and other relevant data without requiring code changes.
  • Custom Instrumentation: Like the other tools, Datadog also supports custom instrumentation if additional detail is needed.

Summary

All three tools—Datadog, AppDynamics, and Dynatrace—offer automatic instrumentation capabilities, meaning you do not generally need to modify your application code to capture trace IDs, span IDs, and other tracing information. Here’s a summary:

Feature Datadog AppDynamics Dynatrace
Automatic Instrumentation Yes Yes Yes
Code Modification Required No (for most use cases) No (for most use cases) No (for most use cases)
Custom Instrumentation Supported if additional detail is needed Supported if additional detail is needed Supported if additional detail is needed

So, while custom instrumentation is possible with all three platforms if you need more specific data, the default approach for tracing does not require you to modify your application code manually.