diff --git a/config/_default/menus/main.en.yaml b/config/_default/menus/main.en.yaml index 21daf6a33db37..1f69e24a2b51b 100644 --- a/config/_default/menus/main.en.yaml +++ b/config/_default/menus/main.en.yaml @@ -2947,7 +2947,7 @@ menu: parent: automatic_instrumentation identifier: single_step_apm weight: 2011 - - name: Using Datadog Tracing Libraries + - name: Using Datadog APM SDKs url: tracing/trace_collection/automatic_instrumentation/dd_libraries/ parent: automatic_instrumentation identifier: auto_dd_libraries @@ -3022,12 +3022,12 @@ menu: parent: custom_instrumentation identifier: custom_instrumentation_elixir weight: 2033 - - name: Library Compatibility + - name: APM SDK Compatibility url: tracing/trace_collection/compatibility/ parent: tracing_trace_collection identifier: tracing_compatibility weight: 203 - - name: Library Configuration + - name: APM SDK Configuration url: tracing/trace_collection/library_config/ parent: tracing_trace_collection identifier: tracing_library_config @@ -5225,7 +5225,7 @@ menu: parent: appsec_threats_management_setup identifier: appsec_threats_setup_using_single_step weight: 702 - - name: Using Datadog Tracing Libraries + - name: Using APM SDKs url: security/application_security/threats/setup/threat_detection/ parent: appsec_threats_management_setup identifier: appsec_threats_setup_threat_detection_setup diff --git a/content/en/tracing/_index.md b/content/en/tracing/_index.md index ec7b1283a69b5..200d6ffecbae2 100644 --- a/content/en/tracing/_index.md +++ b/content/en/tracing/_index.md @@ -54,7 +54,7 @@ For an introduction to terminology used in Datadog APM, see [APM Terms and Conce The simplest way to start with Datadog APM is with Single Step Instrumentation. This approach installs the Datadog Agent and instruments your application in one step, with no additional configuration steps required. To learn more, read [Single Step Instrumentation][27]. -For setups that require more customization, Datadog supports custom instrumentation with Datadog tracing libraries. To learn more, read [Application Instrumentation][2]. +For setups that require more customization, Datadog supports custom instrumentation with Datadog APM SDKs. To learn more, read [Application Instrumentation][2].
If you're new to Datadog APM, read Getting Started with APM to learn how to send your first trace to Datadog.
diff --git a/content/en/tracing/configure_data_security/_index.md b/content/en/tracing/configure_data_security/_index.md index 34a46119b8b93..12f6cd9527fc4 100644 --- a/content/en/tracing/configure_data_security/_index.md +++ b/content/en/tracing/configure_data_security/_index.md @@ -16,15 +16,15 @@ further_reading: --- ## Overview -Datadog tracing libraries collect data from an instrumented application. That data is sent to Datadog as traces and it may contain sensitive data such as personally identifiable information (PII). If you are ingesting sensitive data as traces into Datadog, remediations can be added at ingestion with [Sensitive Data Scanner][12]. You can also configure the Datadog Agent or the tracing library to remediate sensitive data at collection before traces are sent to Datadog. +Datadog APM SDKs collect data from an instrumented application. That data is sent to Datadog as traces and it may contain sensitive data such as personally identifiable information (PII). If you are ingesting sensitive data as traces into Datadog, remediations can be added at ingestion with [Sensitive Data Scanner][12]. You can also configure the Datadog Agent or the APM SDK to remediate sensitive data at collection before traces are sent to Datadog. If the configurations described here do not cover your compliance requirements, reach out to [the Datadog support team][1]. ### Personal information in trace data -Datadog's APM tracing libraries collect relevant observability data about your applications. Because these libraries collect hundreds of unique attributes in trace data, this page describes categories of data, with a focus on attributes that may contain personal information about your employees and end-users. +Datadog's APM SDKs collect relevant observability data about your applications. Because these libraries collect hundreds of unique attributes in trace data, this page describes categories of data, with a focus on attributes that may contain personal information about your employees and end-users. -The table below describes the personal data categories collected by the automatic instrumentation provided by the tracing libraries, with some common examples listed. +The table below describes the personal data categories collected by the automatic instrumentation provided by the APM SDKs, with some common examples listed. | Category | Description | |:--------------------|:-----------------------------------------------------------------------------------------------------------------------| @@ -36,7 +36,7 @@ The table below describes the personal data categories collected by the automati | URI parameters | The parameter values in the variable part of the URI path or the URI query. | | URI userinfo | The userinfo subcomponent of the URI that may contain the user name. | -The table below describes the default behavior of each language tracing library with regard to whether a data category is collected and whether it is obfuscated by default. +The table below describes the default behavior of each language APM SDK with regard to whether a data category is collected and whether it is obfuscated by default. {{% tabs %}} @@ -215,7 +215,7 @@ The table below describes the default behavior of each language tracing library {{% /tabs %}} -If you use Datadog Application Security Management (ASM), the tracing libraries collect HTTP request data to help you understand the nature of a security trace. Datadog ASM automatically redacts certain data, and you can configure your own detection rules. Learn more about these defaults and configuration options in the Datadog ASM [data privacy][13] documentation. +If you use Datadog Application Security Management (ASM), the APM SDKs collect HTTP request data to help you understand the nature of a security trace. Datadog ASM automatically redacts certain data, and you can configure your own detection rules. Learn more about these defaults and configuration options in the Datadog ASM [data privacy][13] documentation. ## Agent @@ -570,8 +570,8 @@ If you are running in a containerized environment, set `DD_APM_IGNORE_RESOURCES` ### HTTP -Datadog is standardizing [span tag semantics][3] across tracing libraries. Information from HTTP requests are added as span tags prefixed with `http.`. The libraries have the following configuration options to control sensitive data collected in HTTP spans. - +Datadog is standardizing [span tag semantics][3] across APM SDKs. Information from HTTP requests are added as span tags prefixed with `http.`. The libraries have the following configuration options to control sensitive data collected in HTTP spans. + #### Redact query strings The `http.url` tag is assigned the full URL value, including the query string. The query string could contain sensitive data, so by default Datadog parses it and redacts suspicious-looking values. This redaction process is configurable. To modify the regular expression used for redaction, set the `DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP` environment variable to a valid regex of your choice. Valid regex is platform-specific. When the regex finds a suspicious key-value pair, it replaces it with ``. @@ -586,9 +586,9 @@ To collect trace header tags, set the `DD_TRACE_HEADER_TAGS` environment variabl DD_TRACE_HEADER_TAGS=CASE-insensitive-Header:my-tag-name,User-ID:userId,My-Header-And-Tag-Name ``` -### Processing +### Processing -Some tracing libraries provide an interface for processing spans to manually modify or remove sensitive data collected in traces: +Some APM SDKs provide an interface for processing spans to manually modify or remove sensitive data collected in traces: * Java: [TraceInterceptor interface][9] * Ruby: [Processing Pipeline][10] @@ -596,7 +596,7 @@ Some tracing libraries provide an interface for processing spans to manually mod ## Telemetry collection -Datadog may gather environmental and diagnostic information about your tracing libraries for processing; this may include information about the host running an application, operating system, programming language and runtime, APM integrations used, and application dependencies. Additionally, Datadog may collect information such as diagnostic logs, crash dumps with obfuscated stack traces, and various system performance metrics. +Datadog may gather environmental and diagnostic information about your APM SDKs for processing; this may include information about the host running an application, operating system, programming language and runtime, APM integrations used, and application dependencies. Additionally, Datadog may collect information such as diagnostic logs, crash dumps with obfuscated stack traces, and various system performance metrics. You can disable this telemetry collection using either of these settings: @@ -654,7 +654,7 @@ PCI compliance for APM is not available for the {{< region-param key="dd_site_na [6]: /tracing/guide/ignoring_apm_resources/ [7]: /agent/docker/apm/?tab=standard#docker-apm-agent-environment-variables [8]: /tracing/guide/send_traces_to_agent_by_api/ -[9]: /tracing/trace_collection/custom_instrumentation/java/#extending-tracers +[9]: /tracing/trace_collection/custom_instrumentation/java/#extending-apm-sdks [10]: /tracing/trace_collection/custom_instrumentation/ruby/?tab=activespan#post-processing-traces [11]: https://ddtrace.readthedocs.io/en/stable/advanced_usage.html#trace-filtering [12]: /sensitive_data_scanner/ diff --git a/content/en/tracing/error_tracking/_index.md b/content/en/tracing/error_tracking/_index.md index f630f822dccfe..737cfcb958970 100644 --- a/content/en/tracing/error_tracking/_index.md +++ b/content/en/tracing/error_tracking/_index.md @@ -36,7 +36,7 @@ To get started with configuring your repository, see the [Source Code Integratio ## Use span tags to track error spans -The Datadog tracers collect errors through integrations and the manual instrumentation of your backend services' source code. Error spans within a trace are processed by Error Tracking **if the error is located in a service entry span** (the uppermost service span). This span must also contain the `error.stack`, `error.message`, and `error.type` [span tags][1] to be tracked. +The Datadog APM SDKs collect errors through integrations and the manual instrumentation of your backend services' source code. Error spans within a trace are processed by Error Tracking **if the error is located in a service entry span** (the uppermost service span). This span must also contain the `error.stack`, `error.message`, and `error.type` [span tags][1] to be tracked. {{< img src="tracing/error_tracking/flamegraph_with_errors.png" alt="Flame graph with errors" style="width:100%;" >}} @@ -57,4 +57,4 @@ Issues created from APM include the distribution of impacted spans, the latest m [3]: /tracing/error_tracking/explorer [4]: /tracing [5]: https://app.datadoghq.com/apm/error-tracking -[6]: /integrations/guide/source-code-integration \ No newline at end of file +[6]: /integrations/guide/source-code-integration diff --git a/content/en/tracing/faq/app_analytics_agent_configuration.md b/content/en/tracing/faq/app_analytics_agent_configuration.md index 38f4ed5c97509..4075d381b40b8 100644 --- a/content/en/tracing/faq/app_analytics_agent_configuration.md +++ b/content/en/tracing/faq/app_analytics_agent_configuration.md @@ -14,7 +14,7 @@ Migrate to Trace Retention and Ingestion [App Analytics][1] is used to filter APM data by user-defined tags such as `customer_id`, `error_type`, or `app_name` to help troubleshoot and filter your requests. To enable it, either: -* Configure your APM tracer to emit the relevant analytics from your services—either [automatically][2] or [manually][3]. +* Configure your APM SDK to emit the relevant analytics from your services—either [automatically][2] or [manually][3]. * Configure the Datadog Agent to emit the relevant analytics from your services (instructions below). **Note**: To enable App Analytics with the Agent, [services][1] must be already flowing into Datadog. diff --git a/content/en/tracing/glossary/_index.md b/content/en/tracing/glossary/_index.md index 79098892afc06..0769cfce235d6 100644 --- a/content/en/tracing/glossary/_index.md +++ b/content/en/tracing/glossary/_index.md @@ -31,7 +31,7 @@ further_reading: The APM UI provides many tools to troubleshoot application performance and correlate it throughout the product, enabling you to find and resolve issues in distributed systems. -For additional definitions and descriptions of important APM terms such as _spans_ and _indexed_, see the [main Glossary][22]. +For additional definitions and descriptions of important APM terms such as _spans_ and _indexed_, see the [main Glossary][22]. | Concept | Description | |---------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -70,7 +70,7 @@ Don't see the HTTP endpoints you were expecting on the Service page? In APM, end ## Resources -Resources represent a particular domain of a customer application. They could typically be an instrumented web endpoint, database query, or background job. For a web service, these resources can be dynamic web endpoints that are grouped by a static span name - `web.request`. In a database service, these would be database queries with the span name `db.query`. For example the `web-store` service has automatically instrumented resources - web endpoints - which handle checkouts, updating carts, adding items, and so on. A Resource name can be the HTTP method and the HTTP route, for example `GET /productpage` or `ShoppingCartController#checkout`. +Resources represent a particular domain of a customer application. They could typically be an instrumented web endpoint, database query, or background job. For a web service, these resources can be dynamic web endpoints that are grouped by a static span name - `web.request`. In a database service, these would be database queries with the span name `db.query`. For example the `web-store` service has automatically instrumented resources - web endpoints - which handle checkouts, updating carts, adding items, and so on. A Resource name can be the HTTP method and the HTTP route, for example `GET /productpage` or `ShoppingCartController#checkout`. Each resource has its own [Resource page][7] with [trace metrics][15] scoped to the specific endpoint. Trace metrics can be used like any other Datadog metric - they are exportable to a dashboard or can be used to create monitors. The Resource page also shows the span summary widget with an aggregate view of [spans][21] for all [traces](#trace), latency distribution of requests, and traces which show requests made to this endpoint. @@ -100,7 +100,7 @@ For more information, see the [propagating the trace context][27] for your appli Instrumentation is the process of adding code to your application to capture and report observability data to Datadog, such as traces, metrics, and logs. Datadog provides instrumentation libraries for various programming languages and frameworks. -You can automatically instrument your application when you install the Datadog Agent with [Single Step Instrumentation][24] or when you [manually add Datadog tracing libraries][25] to your code. +You can automatically instrument your application when you install the Datadog Agent with [Single Step Instrumentation][24] or when you [manually add Datadog APM SDKs][25] to your code. You can use custom instrumentation by embedding tracing code directly into your application code. This allows you to programmatically create, modify, or delete traces to send to Datadog. @@ -135,4 +135,4 @@ To learn more, read [Application Instrumentation][26]. [24]: /tracing/trace_collection/automatic_instrumentation/single-step-apm [25]: /tracing/trace_collection/automatic_instrumentation/dd_libraries/ [26]: /tracing/trace_collection/ -[27]: /tracing/trace_collection/trace_context_propagation \ No newline at end of file +[27]: /tracing/trace_collection/trace_context_propagation diff --git a/content/en/tracing/guide/_index.md b/content/en/tracing/guide/_index.md index b279d5eb60579..cc5b53bf83ea8 100644 --- a/content/en/tracing/guide/_index.md +++ b/content/en/tracing/guide/_index.md @@ -77,6 +77,6 @@ These tutorials walk you through setting up a sample multi-service application w {{< nextlink href="tracing/guide/serverless_enable_aws_xray/" >}}Decide When to Use Datadog APM and AWS X-Ray {{< /nextlink >}} {{< nextlink href="/tracing/guide/setting_up_apm_with_cpp/" >}}Setting Up APM with C++{{< /nextlink >}} {{< nextlink href="/tracing/guide/leveraging_diversity_sampling/" >}}Understand Datadog Trace Retention Policy{{< /nextlink >}} - {{< nextlink href="/tracing/guide/agent_tracer_hostnames" >}}Understand the Difference Between the Agent Host and the Tracer Host{{< /nextlink >}} + {{< nextlink href="/tracing/guide/agent_tracer_hostnames" >}}Understand the Difference Between the Agent Host and the APM SDK Host{{< /nextlink >}} {{< nextlink href="/tracing/guide/setting_up_apm_with_kubernetes_service/" >}}Setting up APM with Kubernetes Service{{< /nextlink >}} {{< /whatsnext >}} diff --git a/content/en/tracing/guide/agent_tracer_hostnames.md b/content/en/tracing/guide/agent_tracer_hostnames.md index b7d011dfc14e0..cda29c7f62092 100644 --- a/content/en/tracing/guide/agent_tracer_hostnames.md +++ b/content/en/tracing/guide/agent_tracer_hostnames.md @@ -1,5 +1,5 @@ --- -title: Understand the Difference Between the Agent Host and the Tracer Host +title: Understand the Difference Between the Agent Host and the APM SDK Host --- @@ -7,25 +7,25 @@ title: Understand the Difference Between the Agent Host and the Tracer Host In Datadog APM, the `host` tag correlates spans and traces to infrastructure monitoring data, so host metrics are associated with hosts from spans and traces. -## Datadog Agent vs. Tracer hostname +## Datadog Agent vs. APM SDK hostname -The **Agent host** is the host on which the Datadog Agent is running. The **Tracer host** is the host on which the application instrumented with the tracing library is running. +The **Agent host** is the host on which the Datadog Agent is running. The **APM SDK host** is the host on which the application instrumented with the APM SDK is running. -The Agent host and the Tracer host may differ based on how you deploy the Datadog Agent on your infrastructure: +The Agent host and the APM SDK host may differ based on how you deploy the Datadog Agent on your infrastructure: -When the Agent is deployed on the same host as the application (for example, using a [DaemonSet][1]), the Agent host and the Tracer host are the same. +When the Agent is deployed on the same host as the application (for example, using a [DaemonSet][1]), the Agent host and the APM SDK host are the same. {{< img src="/tracing/guide/agent_tracer_hostnames/agent_host.png" alt="Agent deployed on the same host as the application" style="width:80%;" >}} -When the Agent is deployed on a remote host, the Agent host is different from the Tracer host. +When the Agent is deployed on a remote host, the Agent host is different from the APM SDK host. {{< img src="/tracing/guide/agent_tracer_hostnames/remote_host.png" alt="Agent deployed on a remote host, different from the application" style="width:80%;" >}} -### When are the Tracer and Agent hosts set on spans? +### When are the APM SDK and Agent hosts set on spans? - The Datadog Agent hostname is always set on spans. -- The Tracer hostname is set on spans if `DD_TRACE_REPORT_HOSTNAME` is `true` (default is `false`). +- The APM SDK hostname is set on spans if `DD_TRACE_REPORT_HOSTNAME` is `true` (default is `false`). Language | Config | Environment Variable ----------|--------|--------------------- @@ -37,7 +37,7 @@ Python | - | `DD_TRACE_REPORT_HOSTNAME` PHP | `datadog.trace.report_hostname` | `DD_TRACE_REPORT_HOSTNAME` Java | `dd.trace.report-hostname` | `DD_TRACE_REPORT_HOSTNAME` -### When does APM use host information? +### When does APM use host information? APM uses host information when you create [retention filters][2], generate [metrics from spans][3], or create [sensitive data scanner rules][4] using host tag filters in queries. For example, host tag filters like `availability-zone` and `cluster-name` are enriched from the Datadog Agent host information. @@ -49,4 +49,4 @@ APM uses host information when you create [retention filters][2], generate [metr [1]: /containers/kubernetes/apm/?tab=daemonset [2]: /tracing/trace_pipeline/trace_retention [3]: /tracing/trace_pipeline/generate_metrics -[4]: /sensitive_data_scanner/ \ No newline at end of file +[4]: /sensitive_data_scanner/ diff --git a/content/en/tracing/guide/ignoring_apm_resources.md b/content/en/tracing/guide/ignoring_apm_resources.md index ab2ea06c9b498..d47e0cf5056a9 100644 --- a/content/en/tracing/guide/ignoring_apm_resources.md +++ b/content/en/tracing/guide/ignoring_apm_resources.md @@ -7,7 +7,7 @@ A service can handle a variety of requests, some of which you might not want tra There are two ways to specify that such an endpoint should be untraced and excluded from trace metrics: - [Trace Agent configuration](#trace-agent-configuration-options) (in Datadog Agent), or -- [Tracer configuration](#tracer-configuration-options). +- [APM SDK configuration](#tracer-configuration-options).
Note: Filtering traces using any of the following options removes these requests from trace metrics. For information on how to reduce ingestion without affecting the trace metrics, see ingestion controls.
@@ -18,7 +18,7 @@ If you need assistance, contact [Datadog support][1]. The Trace Agent component within the Datadog Agent has two methods to prevent certain traces from coming through: ignoring span tags or ignoring resources. If traces are dropped due to these settings, the trace metrics exclude these requests. -Configuring the Trace Agent to ignore certain spans or resources applies to all services that send traces to this particular Datadog Agent. If you have application-specific requirements, use the [Tracer configuration](#tracer-configuration) method instead. +Configuring the Trace Agent to ignore certain spans or resources applies to all services that send traces to this particular Datadog Agent. If you have application-specific requirements, use the [APM SDK configuration](#tracer-configuration) method instead. ### Ignoring based on span tags @@ -114,7 +114,7 @@ On the backend, Datadog creates and adds the following span tags to spans after | `http.useragent_details.device.family` | The device family reported by the User-Agent. |
Note: Starting from October 1st 2022, Datadog backend applies a remapping in order to apply Span Tags Semantics - across tracers on all ingested spans. If you want to drop spans based on tags at the Datadog Agent level, use tags in the Remap from column.
+ across APM SDKs on all ingested spans. If you want to drop spans based on tags at the Datadog Agent level, use tags in the Remap from column. #### Network communications @@ -210,7 +210,7 @@ apm_config: Consider a trace that contains calls to `/api/healthcheck` that you don't want traces from: -{{< img src="tracing/guide/ignoring_apm_resources/ignoreresources.png" alt="Flame graph of a resource you want the tracer to ignore" style="width:90%;">}} +{{< img src="tracing/guide/ignoring_apm_resources/ignoreresources.png" alt="Flame graph of a resource you want the APM SDK to ignore" style="width:90%;">}} Take note of the resource name of the global root span. @@ -385,9 +385,9 @@ If you use Amazon ECS (such as on EC2), in your Datadog Agent container definiti
Note: Filtering traces this way removes these requests from trace metrics. For information on how to reduce ingestion without affecting the trace metrics, see ingestion controls.
-## Tracer configuration options +## APM SDK configuration options -Some of the language-specific tracers have an option to modify spans before they are sent to the Datadog Agent. Use this option if you have application-specific requirements and are using a language listed below. +Some of the language-specific APM SDKs have an option to modify spans before they are sent to the Datadog Agent. Use this option if you have application-specific requirements and are using a language listed below.
Important: If the request is associated with a distributed trace, the resulting trace can have sampling inaccuracy if you drop portions of it due to these filtering rules.
@@ -396,7 +396,7 @@ Some of the language-specific tracers have an option to modify spans before they {{< programming-lang lang="ruby" >}} -The Ruby tracer has a post-processing pipeline that removes traces that meet certain criteria. More information and examples can be found in [Post-processing traces][1]. +The Ruby APM SDK has a post-processing pipeline that removes traces that meet certain criteria. More information and examples can be found in [Post-processing traces][1]. For example, if the resource name is `Api::HealthchecksController#index`, use the `Datadog::Tracing::Pipeline::SpanFilter` class to remove traces that contain the resource name. This filter can also be used to match on other metadata available for the [span object][2]. @@ -412,7 +412,7 @@ Datadog::Tracing.before_flush( {{< programming-lang lang="python" >}} -The Python tracer has a `FilterRequestsOnUrl` filter you can configure to remove traces from certain endpoints. Alternatively, you can write a custom filter. See [Trace Filtering][1] for more information. +The Python APM SDK has a `FilterRequestsOnUrl` filter you can configure to remove traces from certain endpoints. Alternatively, you can write a custom filter. See [Trace Filtering][1] for more information. Suppose the root span's `http.url` span tag has a value of `http:///healthcheck`. Use the following regex to match against any endpoint ending in `healthcheck`: @@ -450,14 +450,14 @@ tracer.use('http', { //import http ``` -
Note: The tracer configuration for the integration must come before that instrumented module is imported.
+
Note: The APM SDK configuration for the integration must come before that instrumented module is imported.
[1]: https://datadoghq.dev/dd-trace-js/interfaces/export_.plugins.connect.html#blocklist {{< /programming-lang >}} {{< programming-lang lang="java" >}} -The Java tracer has an option for a custom `TraceInterceptor` to filter out certain spans. See [Extending Tracers][1]. +The Java APM SDK has an option for a custom `TraceInterceptor` to filter out certain spans. See [Extending APM SDKs][1]. For example, if your resource name is `GET /healthcheck`, write a trace interceptor that drops traces containing this resource name. Adjust the logic to meet your use case. @@ -484,7 +484,7 @@ public class GreetingController { } ``` -[1]: /tracing/trace_collection/custom_instrumentation/java/#extending-tracers +[1]: /tracing/trace_collection/custom_instrumentation/java/#extending-apm-sdks {{< /programming-lang >}} {{< /programming-lang-wrapper >}} diff --git a/content/en/tracing/guide/inferred-service-opt-in.md b/content/en/tracing/guide/inferred-service-opt-in.md index 7c0f1c8359c38..24c1a76d19161 100644 --- a/content/en/tracing/guide/inferred-service-opt-in.md +++ b/content/en/tracing/guide/inferred-service-opt-in.md @@ -12,7 +12,7 @@ further_reading: text: "Sending Traces to Datadog" - link: "/tracing/trace_collection/dd_libraries/" tag: "Documentation" - text: "Add the Datadog Tracing Library" + text: "Add the Datadog APM SDK" --- {{< callout url="https://docs.google.com/forms/d/1imGm-4SfOPjwAr6fwgMgQe88mp4Y-n_zV0K3DcNW4UA/edit" d_target="#signupModal" btn_hidden="true" btn_hidden="false" header="Opt in to the private beta!" >}} @@ -27,7 +27,7 @@ With the new inferred entities experience, you can filter [Service Catalog][3] e To determine the names and types of the inferred service dependencies, Datadog uses standard span attributes and maps them to `peer.*` attributes. For the full list of `peer.*` attributes, see [Inferred service dependencies nomenclature](#inferred-service-dependencies-nomemclature). Inferred external APIs use the default naming scheme `net.peer.name`. For example, `api.stripe.com`, `api.twilio.com`, `us6.api.mailchimp.com`. Inferred databases use the default naming scheme `db.instance`. -If you're using the Go, Java, NodeJS, PHP, .NET, or Ruby tracer, you can customize the default names for inferred entities. +If you're using the Go, Java, NodeJS, PHP, .NET, or Ruby APM SDK you can customize the default names for inferred entities. **Note:** If you configure monitors, dashboards, or notebooks for a given inferred service during the beta, you may need to update them if the naming scheme changes. Read more about migration steps in the [opt-in instructions](#opt-in). @@ -43,7 +43,7 @@ Use the dependency map to visualize service-to-service communication and gain in To opt in, Datadog recommends you adjust your: - [Datadog Agent](#datadog-agent-configuration) (or [OpenTelemetry collector](#opentelemetry-collector)) configuration -- [APM tracing libraries](#apm-tracing-library-configuration) configuration +- [APM SDKs](#apm-sdk-configuration) configuration ### Datadog Agent configuration @@ -63,7 +63,7 @@ Alternatively, configure this by setting the following environment variables in {{< code-block collapsible="true" lang="yaml" >}} -DD_APM_COMPUTE_STATS_BY_SPAN_KIND=true +DD_APM_COMPUTE_STATS_BY_SPAN_KIND=true DD_APM_PEER_TAGS_AGGREGATION=true {{< /code-block >}} @@ -85,18 +85,18 @@ Alternatively, configure this by setting the following environment variables in {{< code-block collapsible="true" lang="yaml" >}} -DD_APM_COMPUTE_STATS_BY_SPAN_KIND=true +DD_APM_COMPUTE_STATS_BY_SPAN_KIND=true DD_APM_PEER_TAGS_AGGREGATION=true DD_APM_PEER_TAGS='["_dd.base_service","amqp.destination","amqp.exchange","amqp.queue","aws.queue.name","aws.s3.bucket","bucketname","cassandra.keyspace","db.cassandra.contact.points","db.couchbase.seed.nodes","db.hostname","db.instance","db.name","db.namespace","db.system","grpc.host","hostname","http.host","http.server_name","messaging.destination","messaging.destination.name","messaging.kafka.bootstrap.servers","messaging.rabbitmq.exchange","messaging.system","mongodb.db","msmq.queue.path","net.peer.name","network.destination.name","peer.hostname","peer.service","queuename","rpc.service","rpc.system","server.address","streamname","tablename","topicname"]' {{< /code-block >}} -#### Helm +#### Helm Include the same set of environment variables in your `values.yaml` [file][8]. -### OpenTelemetry Collector +### OpenTelemetry Collector Minimum version recommended: opentelemetry-collector-contrib >= [v0.95.0][7]. @@ -123,23 +123,23 @@ exporters: traces: compute_stats_by_span_kind: true peer_tags_aggregation: true - peer_tags: ["_dd.base_service","amqp.destination","amqp.exchange","amqp.queue","aws.queue.name","aws.s3.bucket","bucketname","db.cassandra.contact.points","db.couchbase.seed.nodes","db.hostname","db.instance","db.name","db.namespace","db.system","grpc.host","hostname","http.host","http.server_name","messaging.destination","messaging.destination.name","messaging.kafka.bootstrap.servers","messaging.rabbitmq.exchange","messaging.system","mongodb.db","msmq.queue.path","net.peer.name","network.destination.name","peer.hostname","peer.service","queuename","rpc.service","rpc.system","server.address","streamname","tablename","topicname"] + peer_tags: ["_dd.base_service","amqp.destination","amqp.exchange","amqp.queue","aws.queue.name","aws.s3.bucket","bucketname","db.cassandra.contact.points","db.couchbase.seed.nodes","db.hostname","db.instance","db.name","db.namespace","db.system","grpc.host","hostname","http.host","http.server_name","messaging.destination","messaging.destination.name","messaging.kafka.bootstrap.servers","messaging.rabbitmq.exchange","messaging.system","mongodb.db","msmq.queue.path","net.peer.name","network.destination.name","peer.hostname","peer.service","queuename","rpc.service","rpc.system","server.address","streamname","tablename","topicname"] {{< /code-block >}} -### APM tracing library configuration +### APM SDK configuration
The following steps introduce a breaking change: Datadog will change the way service names are captured by default. Refer to Global default service naming migration, to determine if you need to take any migration actions.
{{< tabs >}} {{% tab "Java" %}} -The minimum Java tracer version required is 1.16.0. Regular updates to the latest version are recommended to access changes and bug fixes. +The minimum Java APM SDK version required is 1.16.0. Regular updates to the latest version are recommended to access changes and bug fixes. -[Download the latest Java tracer version][1]. +[Download the latest Java APM SDK version][1]. -To opt in, add the following environment variables or system properties to your tracer settings: +To opt in, add the following environment variables or system properties to your APM SDK settings: | Environment variable | System property | | --- | ----------- | @@ -159,9 +159,9 @@ Remove the following settings from your configuration: {{% tab "Go" %}} -The minimum Go tracer version required is [v1.52.0][1]. Regular updates to the latest version are recommended to access changes and bug fixes. +The minimum Go APM SDK version required is [v1.52.0][1]. Regular updates to the latest version are recommended to access changes and bug fixes. -To opt in, add the following environment variables or system properties to your tracer settings: +To opt in, add the following environment variables or system properties to your APM SDK settings: | Environment variable | System property | | --- | ----------- | @@ -173,9 +173,9 @@ To opt in, add the following environment variables or system properties to your {{% tab "NodeJS" %}} -The minimum NodeJS tracer versions required are [2.44.0][1], [3.31.0][2], or [4.10.0][3]. Regular updates to the latest version are recommended to access changes and bug fixes. +The minimum NodeJS APM SDK versions required are [2.44.0][1], [3.31.0][2], or [4.10.0][3]. Regular updates to the latest version are recommended to access changes and bug fixes. -To opt in, add the following environment variables or system properties to your tracer settings: +To opt in, add the following environment variables or system properties to your APM SDK settings: | Environment variable | System property | | --- | ----------- | @@ -188,9 +188,9 @@ To opt in, add the following environment variables or system properties to your {{% /tab %}} {{% tab "PHP" %}} -The minimum PHP tracer version required is [0.90.0][1]. Regular updates to the latest version are recommended to access changes and bug fixes. +The minimum PHP APM SDK version required is [0.90.0][1]. Regular updates to the latest version are recommended to access changes and bug fixes. -To opt in, add the following environment variables or system properties to your tracer settings: +To opt in, add the following environment variables or system properties to your APM SDK settings: | Environment variable | System property | | --- | ----------- | @@ -201,9 +201,9 @@ To opt in, add the following environment variables or system properties to your {{% tab ".NET" %}} -The minimum .NET tracer version required is [v2.35.0][1]. Regular updates to the latest version are recommended to access changes and bug fixes. +The minimum .NET APM SDK version required is [v2.35.0][1]. Regular updates to the latest version are recommended to access changes and bug fixes. -To opt in, add the following environment variable to your tracer settings or system properties: +To opt in, add the following environment variable to your APM SDK settings or system properties: - `DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED=true` [1]: https://github.com/DataDog/dd-trace-dotnet/releases/tag/v2.35.0 @@ -212,23 +212,23 @@ To opt in, add the following environment variable to your tracer settings or sys {{% tab "Python" %}} -The minimum Python tracer version required is [v1.16.0][1]. Regular updates to the latest version are recommended to access changes and bug fixes. +The minimum Python APM SDK version required is [v1.16.0][1]. Regular updates to the latest version are recommended to access changes and bug fixes. -To opt in, add the following environment variables to your tracer settings or system properties: +To opt in, add the following environment variables to your APM SDK settings or system properties: -Add the following environment variables to your tracer settings or system properties: +Add the following environment variables to your APM SDK settings or system properties: - `DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED=true` -As of tracer version `v1.16.0` all libraries are supported except for Boto2. +As of APM SDK version `v1.16.0` all libraries are supported except for Boto2. [1]: https://github.com/DataDog/dd-trace-py/releases/tag/v1.16.0 {{% /tab %}} {{% tab "Ruby" %}} -The minimum Ruby tracer version required is [v1.13.0][1]. Regular updates to the latest version are recommended to access changes and bug fixes. +The minimum Ruby APM SDK version required is [v1.13.0][1]. Regular updates to the latest version are recommended to access changes and bug fixes. -To opt in, add the following environment variables to your tracer settings or system properties: +To opt in, add the following environment variables to your APM SDK settings or system properties: - `DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED=true` [1]: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.13.0 @@ -240,7 +240,7 @@ To opt in, add the following environment variables to your tracer settings or sy ## The new nomenclature: What is changing -### List of newly introduced peer.* tags +### List of newly introduced peer.* tags `peer.*` dimensions | Remapped from ... --------------------|------------------- @@ -262,20 +262,20 @@ To opt in, add the following environment variables to your tracer settings or sy ### Global default service naming migration -When you enable the `DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED` environment variable, it improves how service-to-service connections and inferred services are represented in Datadog visualizations, across all supported tracing library languages and integrations. +When you enable the `DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED` environment variable, it improves how service-to-service connections and inferred services are represented in Datadog visualizations, across all supported APM SDK languages and integrations. -Previously, some tracing libraries included the name of the associated integration in service name tagging. For example, .NET tagged gRPC calls as `service:-grpc-client` while Python tagged them as `service:grpc-client`. With this option enabled, all supported tracing libraries tag spans from the downstream services with the calling service's name, `service:`, thereby providing a _global default service name_. +Previously, some APM SDKs included the name of the associated integration in service name tagging. For example, .NET tagged gRPC calls as `service:-grpc-client` while Python tagged them as `service:grpc-client`. With this option enabled, all supported APM SDKs tag spans from the downstream services with the calling service's name, `service:`, thereby providing a _global default service name_. _ | Before | After --|-------|-------- -Service name | `service:my-service-grpc-client` or `service:grpc-client` | `service:myservice` +Service name | `service:my-service-grpc-client` or `service:grpc-client` | `service:myservice` additional `peer.*` attributes | _No `peer.*` tags set_ | `@peer.service:otherservice` (`otherservice` being the name of the remote service being called with gRPC) Similarly, for a span representing a call to a mySQL database: _ | Before | After --|-------|-------- -Service name | `service:my-service-mysql` or `service:mysql` | `service:myservice` +Service name | `service:my-service-mysql` or `service:mysql` | `service:myservice` additional `peer.*` attributes | _No `peer.*` tags set_ | `@peer.db.name:user-db`, `@peer.db.system:mysql` Consequently, if you have existing: @@ -285,7 +285,7 @@ Consequently, if you have existing: - Trace analytics - Retention filters - Sensitive data scans -- Monitors, dashboards, or notebooks +- Monitors, dashboards, or notebooks And these target similar service names, update those items to use the global default service tag (`service:`) instead. @@ -298,5 +298,5 @@ And these target similar service names, update those items to use the global def [5]: /agent/guide/agent-configuration-files/?tab=agentv6v7 [6]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/collector.yaml#L335-L357 [7]: https://github.com/open-telemetry/opentelemetry-collector-contrib/releases -[8]: https://github.com/DataDog/helm-charts/blob/main/charts/datadog/values.yaml#L517-L538 +[8]: https://github.com/DataDog/helm-charts/blob/main/charts/datadog/values.yaml#L517-L538 [9]: https://github.com/DataDog/datadog-agent/releases/tag/7.55.1 diff --git a/content/en/tracing/guide/ingestion_sampling_use_cases.md b/content/en/tracing/guide/ingestion_sampling_use_cases.md index d470c41123369..e7c440580e320 100644 --- a/content/en/tracing/guide/ingestion_sampling_use_cases.md +++ b/content/en/tracing/guide/ingestion_sampling_use_cases.md @@ -11,7 +11,7 @@ further_reading: Trace data tends to be repetitive. A problem in your application is rarely identified in only one trace and no others. For high throughput services, particularly for incidents that require your attention, an issue shows symptoms repeatedly in multiple traces. Consequently, there's usually no need for you to collect every single trace for a service or endpoint, or every span within a trace. Datadog APM [ingestion control mechanisms][1] help you keep the visibility that you need to troubleshoot problems, while cutting down the noise and managing costs. -Ingestion mechanisms are configurations within the Datadog Agent and Datadog tracing libraries. If you are using OpenTelemetry SDKs to instrument your applications, read [Ingestion Sampling with OpenTelemetry][2]. +Ingestion mechanisms are configurations within the Datadog Agent and Datadog APM SDKs. If you are using OpenTelemetry SDKs to instrument your applications, read [Ingestion Sampling with OpenTelemetry][2]. This guide helps you understand when and how to use ingestion control configurations depending on the main use cases you might encounter. It covers: @@ -28,9 +28,9 @@ To identify which ingestion mechanisms are currently used in your Datadog enviro The table gives insights on ingested volumes *by service*. The Configuration column provides a first indication of the current set up. It shows: - `AUTOMATIC` if the sampling rate calculated in the Datadog Agent is applied to the traces that start from the service. Read more about the specifics of [Datadog Agent ingestion logic][5]. -- `CONFIGURED` if a custom trace sampling rate configured in the tracing library is applied to the traces that start from the service. +- `CONFIGURED` if a custom trace sampling rate configured in the APM SDK is applied to the traces that start from the service. -Click on services to see details about what sampling decision makers (for example Agent or tracing library, rules or sample rates) are used for each service, as well as what [ingestion sampling mechanisms][1] are leveraged for ingested spans' services. +Click on services to see details about what sampling decision makers (for example Agent or APM SDK, rules or sample rates) are used for each service, as well as what [ingestion sampling mechanisms][1] are leveraged for ingested spans' services. {{< img src="/tracing/guide/ingestion_sampling_use_cases/service-ingestion-summary.png" alt="Service Ingestion Summary" style="width:90%;" >}} @@ -72,7 +72,7 @@ If some services and requests are critical to your business, you want higher vis #### Solution: Sampling rules -By default, sampling rates are calculated to target 10 traces per second per Datadog Agent. You can override the default calculated sampling rate by configuring [sampling rules][6] in the tracing library. +By default, sampling rates are calculated to target 10 traces per second per Datadog Agent. You can override the default calculated sampling rate by configuring [sampling rules][6] in the APM SDK. You can configure sampling rules by service. For traces that start from the rule's specified service, the defined percentage sampling rate is applied instead of the Agent's default sampling rate. @@ -100,7 +100,7 @@ In addition to head-based sampled traces, you can increase the error sampling ra **Notes:** - Distributed pieces of the trace chunks might not be ingested as the sampling happens locally at the Datadog Agent level. -- Starting with **Datadog Agent 6/7.41.0 and higher**, `DD_APM_FEATURES=error_rare_sample_tracer_drop` can be set to include spans dropped by tracing library rules or `manual.drop`. More details can be found in the [Error traces section of the Ingestion Mechanisms doc][9]. +- Starting with **Datadog Agent 6/7.41.0 and higher**, `DD_APM_FEATURES=error_rare_sample_tracer_drop` can be set to include spans dropped by APM SDK rules or `manual.drop`. More details can be found in the [Error traces section of the Ingestion Mechanisms doc][9]. #### Configuring error sampling @@ -156,7 +156,7 @@ The backend service `web-store` is calling a Mongo database multiple times per t [3]: https://app.datadoghq.com/apm/traces/ingestion-control [4]: /tracing/trace_pipeline/ingestion_mechanisms/#head-based-sampling [5]: /tracing/trace_pipeline/ingestion_mechanisms/#in-the-agent -[6]: /tracing/trace_pipeline/ingestion_mechanisms/#in-tracing-libraries-user-defined-rules +[6]: /tracing/trace_pipeline/ingestion_mechanisms/#in-apm-sdk-user-defined-rules [7]: /tracing/trace_pipeline/ingestion_controls/#service-ingestion-summary [8]: /tracing/trace_pipeline/generate_metrics/ [9]: /tracing/trace_pipeline/ingestion_mechanisms/?tab=java#error-and-rare-traces diff --git a/content/en/tracing/guide/monitor-kafka-queues.md b/content/en/tracing/guide/monitor-kafka-queues.md index b5afb7406c99a..dec473fc85ea2 100644 --- a/content/en/tracing/guide/monitor-kafka-queues.md +++ b/content/en/tracing/guide/monitor-kafka-queues.md @@ -79,7 +79,7 @@ A classic Kafka setup shows a trace with a producer span, and as a child, a cons {{% tab "Java" %}} -See [Java's tracer documentation][7] for configuration of Kafka. +See [Java's APM SDK documentation][7] for configuration of Kafka. [7]: /tracing/trace_collection/compatibility/java/#networking-framework-compatibility @@ -91,7 +91,7 @@ The [Kafka .NET Client documentation][9] states that a typical Kafka consumer ap When a message is not processed completely before consuming the next one, or when multiple messages are consumed at once, you can set `DD_TRACE_KAFKA_CREATE_CONSUMER_SCOPE_ENABLED` to `false` in your consuming application. When this setting is `false`, the consumer span is created and immediately closed. If you have child spans to trace, follow [the headers extraction and injection documentation for .NET custom instrumentation][10] to extract the trace context. -The .NET tracer allows tracing Confluent.Kafka since [v1.27.0][11]. The trace context propagation API is available since [v2.7.0][12]. +The .NET APM SDK allows tracing Confluent.Kafka since [v1.27.0][11]. The trace context propagation API is available since [v2.7.0][12]. [9]: https://docs.confluent.io/kafka-clients/dotnet/current/overview.html#the-consume-loop [10]: /tracing/trace_collection/custom_instrumentation/dotnet/#headers-extraction-and-injection @@ -102,7 +102,7 @@ The .NET tracer allows tracing Confluent.Kafka since [v1.27.0][11]. The trace co {{% tab "Ruby" %}} -The Kafka integration provides tracing of the `ruby-kafka` gem. Follow [Ruby's tracer documentation][8] to enable it. +The Kafka integration provides tracing of the `ruby-kafka` gem. Follow [Ruby's APM SDK documentation][8] to enable it. [8]: /tracing/trace_collection/dd_libraries/ruby/#kafka diff --git a/content/en/tracing/guide/resource_based_sampling.md b/content/en/tracing/guide/resource_based_sampling.md index a444c49f38456..1ee1fd53654a8 100644 --- a/content/en/tracing/guide/resource_based_sampling.md +++ b/content/en/tracing/guide/resource_based_sampling.md @@ -26,9 +26,9 @@ Remote configuration allows you to dynamically set ingestion [sampling rates by - [Remote Configuration][3] enabled for your Agent. - `APM Remote Configuration Write` [permissions][4]. If you don’t have these permissions, ask your Datadog admin to update your permissions from your organization settings. -### Tracing library version +### APM SDK version -Find below the minimum tracing library version required for the feature: +Find below the minimum APM SDK version required for the feature: Language | Minimum version required ----------|-------------------------- @@ -48,14 +48,14 @@ To see configured sampling rates by resource, navigate to the Ingestion controls {{< img src="/tracing/guide/resource_based_sampling/resource_sampling_rates.png" alt="Sampling rates table by resource" style="width:100%;">}} - The `Ingested bytes` column surfaces the ingested bytes from spans of the service and resource, while the `Downstream bytes` column surfaces the ingested bytes from spans where the sampling decision is made starting from that service and resource, including bytes from downstream services in the call chain. -- The `Configuration` column surfaces where the resource sampling rate is being applied from: +- The `Configuration` column surfaces where the resource sampling rate is being applied from: - `Automatic` if the [default head-based sampling mechanism][8] from the Agent applies. - - `Local Configured` if a [sampling rule][7] was set locally in the tracing library. + - `Local Configured` if a [sampling rule][7] was set locally in the APM SDK. - `Remote Configured` if a remote sampling rule was set from the Datadog UI. To learn how to configure sampling rules from the Ingestion Control page, read the section on [remotely configuring sampling rules](#remotely-configure-sampling-rules-for-the-service). ## Remotely configure sampling rules for the service -To configure sampling rates for the service by resource name: +To configure sampling rates for the service by resource name: 1. Click **Manage Ingestion rate**. If the remote configuration option is disabled, make sure that the listed [requirements](#compatibility-requirements) are all met. {{< img src="/tracing/guide/resource_based_sampling/sampling_configuration_modal.png" alt="Configuration Modal" style="width:100%;">}} 1. Click **Add new rule** to set sampling rates for some resources. Sampling rules use glob pattern matching, so you can use wildcards (`*`) to match against multiple resources at the same time. @@ -77,10 +77,10 @@ From the **Service Ingestion Summary**, resources for which the sampling rate ar [4]: /account_management/rbac/permissions/ [5]: https://github.com/DataDog/dd-trace-java/releases/tag/v1.34.0 [6]: https://github.com/DataDog/dd-trace-go/releases/tag/v1.63.1 -[7]: /tracing/trace_pipeline/ingestion_mechanisms#in-tracing-libraries-user-defined-rules +[7]: /tracing/trace_pipeline/ingestion_mechanisms#in-apm-sdks-user-defined-rules [8]: /tracing/trace_pipeline/ingestion_mechanisms#in-the-agent [9]: /tracing/trace_explorer/#live-search-for-15-minutes [10]: https://github.com/DataDog/dd-trace-py/releases/tag/v2.9.0 [11]: https://github.com/DataDog/dd-trace-rb/releases/tag/v2.0.0 [12]: https://github.com/DataDog/dd-trace-js/releases/tag/v5.16.0 -[13]: https://github.com/DataDog/dd-trace-dotnet/releases/tag/v2.53.2 \ No newline at end of file +[13]: https://github.com/DataDog/dd-trace-dotnet/releases/tag/v2.53.2 diff --git a/content/en/tracing/guide/sdks.md b/content/en/tracing/guide/sdks.md new file mode 100644 index 0000000000000..30bfd27c8ef47 --- /dev/null +++ b/content/en/tracing/guide/sdks.md @@ -0,0 +1,65 @@ +--- +title: APM SDKs +further_reading: + - link: '/tracing/' + tag: 'Documentation' + text: 'Learn about Datadog APM tracing' + - link: '/tracing/glossary/' + tag: 'Documentation' + text: 'APM Terminology and Overview' + - link: 'tracing/trace_collection/automatic_instrumentation/dd_libraries/' + tag: 'Documentation' + text: 'Add the Datadog APM SDK' +algolia: + tags: ['tracer', 'tracing library'] +--- + +## Overview + +Datadog uses the term **APM SDK** to refer to Datadog Application Performance Monitoring tools, previously known as **tracing libraries** or **tracers**. + +The terminology update does not affect the functionality of Datadog's APM tools. You can continue using them as before without any required actions on your part. + +## What is an APM SDK? + +An APM SDK is a language-specific library that allows you to instrument your application for application performance monitoring. The APM SDK terminology more accurately reflects the following: + +- **Expanded capabilities**: APM SDKs offer you comprehensive toolset, including tracing, profiling, and trace metrics collection. +- **OpenTelemetry**: [APM SDKs support OpenTelemetry tracing APIs][11], giving you more flexible ways to instrument your applications. +- **Industry alignment**: APM SDKs align with industry standards, making it easier for you to compare and integrate tools across your tech stack. + +Datadog offers APM SDKs for various programming languages, including: + +| Language | SDK | +|------------|----------------------| +| C++ | [dd-trace-cpp][1] | +| .NET | [dd-trace-dotnet][2] | +| Go | [dd-trace-go][3] | +| Java | [dd-trace-java][4] | +| JavaScript | [dd-trace-js][5] | +| PHP | [dd-trace-php][6] | +| Ruby | [dd-trace-rb][7] | +| Python | [dd-trace-py][8] | + +## APIs vs. SDKs + +APM SDKs are distinct from APIs, which provide a standardized interface for instrumenting your applications to collect telemetry data. + +- **API**: The interface that defines how to instrument your application. It provides methods and classes for creating spans, adding tags, and managing traces. For more information, read [Custom Instrumentation][9] using the Datadog API or OpenTelemetry API. +- **SDK**: The implementation of the API. It includes all the logic for processing, managing, and sending telemetry data to the Datadog Agent. For more information, read [Add the APM SDK][10]. + +## Further reading + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://github.com/DataDog/dd-trace-cpp +[2]: https://github.com/DataDog/dd-trace-dotnet +[3]: https://github.com/DataDog/dd-trace-go +[4]: https://github.com/DataDog/dd-trace-java +[5]: https://github.com/DataDog/dd-trace-js +[6]: https://github.com/DataDog/dd-trace-php +[7]: https://github.com/DataDog/dd-trace-rb +[8]: https://github.com/DataDog/dd-trace-py +[9]: /tracing/trace_collection/automatic_instrumentation/dd_libraries/ +[10]: /tracing/trace_collection/custom_instrumentation/ +[11]: /opentelemetry/interoperability/instrumentation_libraries diff --git a/content/en/tracing/guide/send_traces_to_agent_by_api.md b/content/en/tracing/guide/send_traces_to_agent_by_api.md index 18cbe24fa2693..87cedf8a9d62c 100644 --- a/content/en/tracing/guide/send_traces_to_agent_by_api.md +++ b/content/en/tracing/guide/send_traces_to_agent_by_api.md @@ -16,7 +16,7 @@ aliases: Datadog APM allows you to collect performance metrics by tracing your code to determine which parts of your application are slow or inefficient. -Tracing data is sent from your instrumented code to the Datadog Agent through an HTTP API. Datadog tracing libraries simplify sending metrics to the Datadog Agent. However you might want to interact directly with the API to instrument applications that cannot use the libraries or are written in languages that don't yet have an official Datadog tracing library. +Tracing data is sent from your instrumented code to the Datadog Agent through an HTTP API. Datadog APM SDKs simplify sending metrics to the Datadog Agent. However you might want to interact directly with the API to instrument applications that cannot use the libraries or are written in languages that don't yet have an official Datadog APM SDK. The tracing API is an Agent API rather than a service side API. Submit your traces to the `http://localhost:8126/v0.3/traces` local endpoint so your Agent can forward them to Datadog. @@ -42,7 +42,7 @@ and each span is a dictionary with a `trace_id`, `span_id`, `resource` and so on ### Model -
Datadog tracing libraries support both 64-bit and 128-bit trace IDs. Read Span and Trace ID formats to learn more.
+
Datadog APM SDKs support both 64-bit and 128-bit trace IDs. Read Span and Trace ID formats to learn more.
| Field | Type | Description | |------------|---------|---------------------------------------| diff --git a/content/en/tracing/guide/serverless_enable_aws_xray.md b/content/en/tracing/guide/serverless_enable_aws_xray.md index 76a0854c398a4..583eeda5da869 100644 --- a/content/en/tracing/guide/serverless_enable_aws_xray.md +++ b/content/en/tracing/guide/serverless_enable_aws_xray.md @@ -28,7 +28,7 @@ xray:GetTraceSummaries To get the most out of the AWS X-Ray integration: - Enable it on your Lambda functions and API Gateways, either using the Serverless Framework plugin or manually; and -- Install the tracing libraries in your Lambda functions. +- Install the APM SDKs in your Lambda functions. #### [Recommended] Datadog Serverless Framework plugin diff --git a/content/en/tracing/guide/setting_primary_tags_to_scope.md b/content/en/tracing/guide/setting_primary_tags_to_scope.md index 78fb5e179cfb5..b523d56409a01 100644 --- a/content/en/tracing/guide/setting_primary_tags_to_scope.md +++ b/content/en/tracing/guide/setting_primary_tags_to_scope.md @@ -29,18 +29,18 @@ Primary tags must follow a different set of rules from those of conventional [Da The default and mandatory primary tag is the environment your traces are collected from. Its tag key is `env`, and its default value for un-tagged data is `env:none`. -#### Tracer environment +#### APM SDK environment -Datadog recommends having the tracer set `env`. It also allows for greater flexibility because the definition of `env` lives within the actual runtime of the service. +Datadog recommends having the APM SDK set `env`. It also allows for greater flexibility because the definition of `env` lives within the actual runtime of the service. -If `DD_ENV` is exposed to your service's process, the tracer will use it automatically. See [Unified Service Tagging][3] to learn about setting `DD_ENV` and other standard service environment variables. +If `DD_ENV` is exposed to your service's process, the APM SDK will use it automatically. See [Unified Service Tagging][3] to learn about setting `DD_ENV` and other standard service environment variables. -You may also manually set `env` as a global tag for the tracer in code. See [assigning tags in APM][4] for more information. +You may also manually set `env` as a global tag for the APM SDK in code. See [assigning tags in APM][4] for more information. #### Agent environment The `env` tag can be set in your Agent configuration. -**Do not set different `env` tags on the Tracer and Agent. This may cause duplicate tagging on [trace metrics][5].** +**Do not set different `env` tags on the APM SDK and Agent. This may cause duplicate tagging on [trace metrics][5].** Options: @@ -70,7 +70,7 @@ Environments appear at the top of APM pages. Use the `env` dropdown to scope the ## Add a second primary tag in Datadog If you need to aggregate your trace metrics across additional dimensions, we recommend setting up a second primary tag in addition to the -default and mandatory primary tag `env:`. Once configured, a second dropdown is available in the **Service Catalog Performance** tab. +default and mandatory primary tag `env:`. Once configured, a second dropdown is available in the **Service Catalog Performance** tab. Go to the [APM Settings][6] page to define, change, or remove your primary tags. @@ -78,7 +78,7 @@ Go to the [APM Settings][6] page to define, change, or remove your primary tags. * Only organization administrators have access to this page. * Changes may take up to two hours to be reflected in the UI. -* The tracer always adds `resource`, `name`, and `service` tags to spans. Datadog recommends never adding these as host level tags to avoid confusion. +* The APM SDK always adds `resource`, `name`, and `service` tags to spans. Datadog recommends never adding these as host level tags to avoid confusion. * The second primary tag supports up to 30 unique values. See [APM Data Volume Guidelines][9] for details. If you change a previously set primary tag, be aware of the following: @@ -148,7 +148,7 @@ DD_APM_FEATURES=enable_cid_stats {{% /tab %}} {{< /tabs >}} -Restart the Agent. Go to the [APM Settings][6] page and select the second primary tag you want to use. It can take up to two hours for changes to this setting to take effect. +Restart the Agent. Go to the [APM Settings][6] page and select the second primary tag you want to use. It can take up to two hours for changes to this setting to take effect. Now you can filter your services in the [Service Catalog][7] by the tag being sent by your containerized services. Trace metrics used by Dashboards and Monitors can also be aggregated by the container primary tag. diff --git a/content/en/tracing/guide/setting_up_APM_with_cpp.md b/content/en/tracing/guide/setting_up_APM_with_cpp.md index 630d5aedc2872..1c4cdd6f43a9f 100644 --- a/content/en/tracing/guide/setting_up_APM_with_cpp.md +++ b/content/en/tracing/guide/setting_up_APM_with_cpp.md @@ -94,7 +94,7 @@ int main(int argc, char* argv[]) { } ``` -This creates a tracer that generates two spans, a parent span `span_a` and a child span `span_b`, and tags them. +This creates a APM SDK that generates two spans, a parent span `span_a` and a child span `span_b`, and tags them. Then, compile and link against `libdd_trace_cpp` with: diff --git a/content/en/tracing/guide/setting_up_apm_with_kubernetes_service.md b/content/en/tracing/guide/setting_up_apm_with_kubernetes_service.md index dbc4bfb60d790..2531e5463d72c 100644 --- a/content/en/tracing/guide/setting_up_apm_with_kubernetes_service.md +++ b/content/en/tracing/guide/setting_up_apm_with_kubernetes_service.md @@ -12,9 +12,9 @@ further_reading: ## Overview -In Kubernetes, Datadog tracers can send data to the Datadog Agent in three ways: Unix Domain Socket (UDS), host IP, or a Kubernetes service. Each option ensures that when an application pod sends APM data, the data arrives at a Datadog Agent pod on the same node. This strategy is meant to properly balance traffic and ensure the correct tagging of your data. Datadog recommends that you use UDS to send data. +In Kubernetes, Datadog APM SDKs can send data to the Datadog Agent in three ways: Unix Domain Socket (UDS), host IP, or a Kubernetes service. Each option ensures that when an application pod sends APM data, the data arrives at a Datadog Agent pod on the same node. This strategy is meant to properly balance traffic and ensure the correct tagging of your data. Datadog recommends that you use UDS to send data. -However, if the `hostPath` volumes required for UDS (and the `hostPort` ports required for using host IP) are not available, you can use a Kubernetes service as an alternative option. +However, if the `hostPath` volumes required for UDS (and the `hostPort` ports required for using host IP) are not available, you can use a Kubernetes service as an alternative option. This guide describes how to configure using a Kubernetes service to send data to the Datadog Agent. @@ -53,7 +53,7 @@ Update your `datadog-values.yaml` to set `datadog.apm.portEnabled` to `true`. datadog: apm: portEnabled: true -``` +``` {{% k8s-helm-redeploy %}} @@ -104,7 +104,7 @@ clusterAgent: {{% /tab %}} {{< /tabs >}} -**Note:** In mixed node (Linux/Windows) environments, the Cluster Agent and its Admission Controller are relative to the Linux deployment. This may inject the wrong environment variables for the service connectivity in the Windows pods. +**Note:** In mixed node (Linux/Windows) environments, the Cluster Agent and its Admission Controller are relative to the Linux deployment. This may inject the wrong environment variables for the service connectivity in the Windows pods. ### Manual configuration For manual configuration, set the environment variable `DD_AGENT_HOST` within your pod manifest, with a value of `..svc.cluster.local`. diff --git a/content/en/tracing/guide/span_and_trace_id_format.md b/content/en/tracing/guide/span_and_trace_id_format.md index 7b8551fd0a98b..b40304513d7ae 100644 --- a/content/en/tracing/guide/span_and_trace_id_format.md +++ b/content/en/tracing/guide/span_and_trace_id_format.md @@ -11,23 +11,23 @@ further_reading: --- {{< jqmath-vanilla >}} -This page details Datadog tracing library support for trace and span IDs. +This page details Datadog APM SDK support for trace and span IDs. -- **Generated IDs**: By default, all tracing libraries generate 128-bit trace IDs and 64-bit span IDs. +- **Generated IDs**: By default, all APM SDKs generate 128-bit trace IDs and 64-bit span IDs. - **Accepted IDs**: Datadog accepts 128-bit or 64-bit trace IDs, and 64-bit span IDs. ## 128-bit trace IDs -128-bit trace IDs are generated and accepted by default in the latest versions of Datadog tracing libraries: +128-bit trace IDs are generated and accepted by default in the latest versions of Datadog APM SDKs: - [Node.js][1] -- [Java][2] -- [Go][3] -- [Python][4] -- [Ruby][5] -- [.NET][6] -- [PHP][7] -- [C++][8] +- [Java][2] +- [Go][3] +- [Python][4] +- [Ruby][5] +- [.NET][6] +- [PHP][7] +- [C++][8] ## 64-bit trace and span IDs diff --git a/content/en/tracing/guide/trace_ingestion_volume_control.md b/content/en/tracing/guide/trace_ingestion_volume_control.md index fb634559eea1d..bdff23f134f4b 100644 --- a/content/en/tracing/guide/trace_ingestion_volume_control.md +++ b/content/en/tracing/guide/trace_ingestion_volume_control.md @@ -9,7 +9,7 @@ further_reading: ## Overview -The [Ingestion control page][1] provides granular visibility into the ingestion configuration for all services, in the agent and in the tracing libraries. All [Ingestion Mechanisms][2] are publicly documented and configurable. +The [Ingestion control page][1] provides granular visibility into the ingestion configuration for all services, in the Agent and in the APM SDKs. All [Ingestion Mechanisms][2] are publicly documented and configurable. With the ingestion control page, you have full visibility and complete control of your span volume. Consequently, you are be able to: - Ingest the data that is most relevant to your business and your observability goals. @@ -42,7 +42,7 @@ Count-based [**Trace analytics**][6] monitors are impacted as well. Check if you ## Assess your services' ingestion configuration -To assess the current state of applications' instrumentation, leverage the [Trace Ingestion Control page][1] that provides detailed information on agent and tracing library configuration. +To assess the current state of applications' instrumentation, leverage the [Trace Ingestion Control page][1] that provides detailed information on agent and APM SDK configuration. ### Understanding if you are within your monthly ingestion allocation @@ -78,7 +78,7 @@ The **Configuration** column tells you whether or not your services are configur To reduce the ingestion volume at the Agent level, configure `DD_APM_MAX_TPS` (set to `10` by default) to reduce the share of head-based sampling volume. Read more about the [default sampling mechanism][7]. -**Note**: This configuration option only goes into effect when using **Datadog tracing libraries**. If the OTLP Ingest in the Agent collects data from applications instrumented with OpenTelemetry, modifying `DD_APM_MAX_TPS` does not change sampling rates that are applied in tracing libraries. +**Note**: This configuration option only goes into effect when using **Datadog APM SDKs**. If the OTLP Ingest in the Agent collects data from applications instrumented with OpenTelemetry, modifying `DD_APM_MAX_TPS` does not change sampling rates that are applied in APM SDKs. Additionally, to reduce the volume of [error][9] and [rare][10] traces: - Configure `DD_APM_ERROR_TPS` to reduce the share of error sampling. @@ -90,7 +90,7 @@ By configuring sampling rates for a few high-throughput services, most of the "e Click on a service to view the **Service Ingestion Summary**. Look at the **Ingestion reasons breakdown** in the side panel, which gives an overview of the share of ingestion volume attributed to each mechanism. -If the main reason for most of the ingestion volume is head-based sampling (`auto` or `rule`), the volume can be configured by setting a sampling rule at the tracing library level. +If the main reason for most of the ingestion volume is head-based sampling (`auto` or `rule`), the volume can be configured by setting a sampling rule at the APM SDK level. Click the **Manage Ingestion Rate** button to configure a sampling rate for the service. Select the service language and the ingestion sampling rate you want to apply. @@ -111,12 +111,12 @@ _Know which ingestion mechanisms are responsible for most of the ingestion volum The default mechanism to sample traces is head-based sampling. The decision whether to sample a trace or not is taken at the beginning of its lifecycle, and propagated downstream in the context of the requests in order to ensure that you can always view and analyze complete traces. -Head-based sampling is configurable in the tracing libraries or from the Datadog Agent: +Head-based sampling is configurable in the APM SDKs or from the Datadog Agent: | ingestion reason | Where | Ingestion Mechanism Description | Default | |--------------------|-------------------|-----------------------|---------| -| `auto` | [Agent](#globally-configure-the-ingestion-sampling-rate-at-the-agent-level) | The Datadog Agent distributes sampling rates to tracing libraries. | 10 traces per second per Agent | -| `rule` | [Tracing Libraries](#independently-configure-the-ingestion-sampling-rate-for-services-at-the-library-level) | The libraries' defined sampling percentage for specific services. | null | +| `auto` | [Agent](#globally-configure-the-ingestion-sampling-rate-at-the-agent-level) | The Datadog Agent distributes sampling rates to APM SDKs. | 10 traces per second per Agent | +| `rule` | [APM SDKs](#independently-configure-the-ingestion-sampling-rate-for-services-at-the-library-level) | The libraries' defined sampling percentage for specific services. | null | Several other ingestion reasons are surfaced in the Ingestion Control page and as a tag on the `datadog.estimated_usage.apm.ingested_bytes` metric. These ingestion reasons may be responsible for your ingestion volume: @@ -126,7 +126,7 @@ Several other ingestion reasons are surfaced in the Ingestion Control page and a | `error` | [Agent](#globally-configure-the-ingestion-sampling-rate-at-the-agent-level) | Sampling of errors uncaught by the head-based sampling. | 10 traces per second per Agent (null, if rules are defined) | | `rare` | [Agent](#globally-configure-the-ingestion-sampling-rate-at-the-agent-level) | Sampling of rare traces (catching all combinations of a set of span tags). | 5 traces per second per Agent (null, if rules are defined) | | `manual` | In-code | In-code decision override to keep/drop a span and its children. | null | -| `analytics` | Agent and Tracing Libraries | [Deprecated ingestion mechanism][16] that samples single spans without the full trace. | null | +| `analytics` | Agent and APM SDKs | [Deprecated ingestion mechanism][16] that samples single spans without the full trace. | null | Additionally, other products can be responsible for sampled span volume: @@ -150,7 +150,7 @@ Read more about ingestion reasons in the [Ingestion Mechanisms documentation][2] [8]: /tracing/trace_pipeline/metrics/ [9]: /tracing/trace_pipeline/ingestion_mechanisms/#error-traces [10]: /tracing/trace_pipeline/ingestion_mechanisms/#rare-traces -[11]: /tracing/trace_pipeline/ingestion_mechanisms/?tab=environmentvariables#in-tracing-libraries-user-defined-rules +[11]: /tracing/trace_pipeline/ingestion_mechanisms/?tab=environmentvariables#in-apm-sdks-libraries-user-defined-rules [12]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#traceidratiobased [13]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#parentbased [14]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/tailsamplingprocessor/README.md diff --git a/content/en/tracing/guide/tutorial-enable-go-aws-ecs-ec2.md b/content/en/tracing/guide/tutorial-enable-go-aws-ecs-ec2.md index 9a45a7f1c6988..042de1cc79999 100644 --- a/content/en/tracing/guide/tutorial-enable-go-aws-ecs-ec2.md +++ b/content/en/tracing/guide/tutorial-enable-go-aws-ecs-ec2.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Go Application on Amazon ECS with EC2 further_reading: - link: /tracing/trace_collection/library_config/go/ tag: Documentation - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/go/ tag: Documentation - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/go/ tag: Documentation text: Supported Go frameworks for automatic instrumentation @@ -19,7 +19,7 @@ further_reading: text: Ingestion mechanisms - link: https://github.com/DataDog/dd-trace-Go tag: Source Code - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -105,7 +105,7 @@ Your application (without tracing enabled) is containerized and available for EC ### Deploy the application -Start the application and send some requests without tracing. After you've seen how the application works, you'll instrument it using the tracing library and Datadog Agent. +Start the application and send some requests without tracing. After you've seen how the application works, you'll instrument it using the APM SDK and Datadog Agent. To start, use a Terraform script to deploy to Amazon ECS: diff --git a/content/en/tracing/guide/tutorial-enable-go-aws-ecs-fargate.md b/content/en/tracing/guide/tutorial-enable-go-aws-ecs-fargate.md index b401ba3c760fb..a93b6e7096abd 100644 --- a/content/en/tracing/guide/tutorial-enable-go-aws-ecs-fargate.md +++ b/content/en/tracing/guide/tutorial-enable-go-aws-ecs-fargate.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Go Application on Amazon ECS with Farga further_reading: - link: /tracing/trace_collection/library_config/go/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/go/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/go/ tag: "Documentation" text: Supported Go frameworks for automatic instrumentation @@ -19,7 +19,7 @@ further_reading: text: Ingestion mechanisms - link: https://github.com/DataDog/dd-trace-Go tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -107,7 +107,7 @@ Your application (without tracing enabled) is containerized and available for EC ### Deploy the application -Start the application and send some requests without tracing. After you've seen how the application works, you'll instrument it using the tracing library and Datadog Agent. +Start the application and send some requests without tracing. After you've seen how the application works, you'll instrument it using the APM SDK and Datadog Agent. To start, use a Terraform script to deploy to Amazon ECS: diff --git a/content/en/tracing/guide/tutorial-enable-go-containers.md b/content/en/tracing/guide/tutorial-enable-go-containers.md index 92fa3a702605c..94975ffa2f169 100644 --- a/content/en/tracing/guide/tutorial-enable-go-containers.md +++ b/content/en/tracing/guide/tutorial-enable-go-containers.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Go Application and Datadog Agent in Con further_reading: - link: /tracing/trace_collection/library_config/go/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/go/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/go/ tag: "Documentation" text: Supported Go frameworks for automatic instrumentation @@ -19,7 +19,7 @@ further_reading: text: Ingestion mechanisms - link: https://github.com/DataDog/dd-trace-Go tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -184,7 +184,7 @@ Add the Datadog Agent in the services section of your `all-docker-compose.yaml` ## Launch the containers to explore automatic instrumentation -Now that the Tracing Library is installed, spin up your application containers and start receiving traces. Run the following commands: +Now that the APM SDK is installed, spin up your application containers and start receiving traces. Run the following commands: {{< code-block lang="shell" >}} docker-compose -f all-docker-compose.yaml build @@ -234,7 +234,7 @@ A `GET /notes` trace looks something like this: ## Tracing configuration -You can configure the tracing library to add tags to the telemetry it sends to Datadog. Tags help group, filter, and display data meaningfully in dashboards and graphs. To add tags, specify environment variables when running the application. The project `Makefile` includes the environment variables `DD_ENV`, `DD_SERVICE`, and `DD_VERSION`, which are set to enable [Unified Service Tagging][17]: +You can configure the APM SDK to add tags to the telemetry it sends to Datadog. Tags help group, filter, and display data meaningfully in dashboards and graphs. To add tags, specify environment variables when running the application. The project `Makefile` includes the environment variables `DD_ENV`, `DD_SERVICE`, and `DD_VERSION`, which are set to enable [Unified Service Tagging][17]: {{< code-block lang="go" filename="docker/all-docker-compose.yaml" disable_copy="true" >}} environment: @@ -243,9 +243,9 @@ environment: - DD_APM_NON_LOCAL_TRAFFIC=true {{< /code-block >}} -For more information on available configuration options, see [Configuring the Go Tracing Library][14]. +For more information on available configuration options, see [Configuring the Go APM SDK][14]. -### Use automatic tracing libraries +### Use automatic APM SDKs Datadog has several fully supported libraries for Go that allow for automatic tracing when implemented in the code. In the `cmd/notes/main.go` file, you can see the `go-chi`, `sql`, and `http` libraries being aliased to the corresponding Datadog libraries: `chitrace`, `sqltrace`, and `httptrace` respectively: diff --git a/content/en/tracing/guide/tutorial-enable-go-host.md b/content/en/tracing/guide/tutorial-enable-go-host.md index ea2025704cf47..4500a00a105cd 100644 --- a/content/en/tracing/guide/tutorial-enable-go-host.md +++ b/content/en/tracing/guide/tutorial-enable-go-host.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Go Application on the Same Host as the further_reading: - link: /tracing/trace_collection/library_config/go/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/go/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/go/ tag: "Documentation" text: Supported Go frameworks for automatic instrumentation @@ -19,7 +19,7 @@ further_reading: text: Ingestion mechanisms - link: https://github.com/DataDog/dd-trace-Go tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -99,7 +99,7 @@ Next, install the Go tracer. From your `apm-tutorial-golang` directory, run: go get gopkg.in/DataDog/dd-trace-go.v1/ddtrace {{< /code-block >}} -Now that the tracing library has been added to `go.mod`, enable tracing support. +Now that the APM SDK has been added to `go.mod`, enable tracing support. Uncomment the following imports in `apm-tutorial-golang/cmd/notes/main.go`: {{< code-block lang="go" filename="cmd/notes/main.go" >}} @@ -197,7 +197,7 @@ A `GET /notes` trace looks something like this: ## Tracing configuration -You can configure the tracing library to add tags to the telemetry it sends to Datadog. Tags help group, filter, and display data meaningfully in dashboards and graphs. To add tags, specify environment variables when running the application. The project `Makefile` includes the environment variables `DD_ENV`, `DD_SERVICE`, and `DD_VERSION`, which are set to enable [Unified Service Tagging][17]: +You can configure the APM SDK to add tags to the telemetry it sends to Datadog. Tags help group, filter, and display data meaningfully in dashboards and graphs. To add tags, specify environment variables when running the application. The project `Makefile` includes the environment variables `DD_ENV`, `DD_SERVICE`, and `DD_VERSION`, which are set to enable [Unified Service Tagging][17]: {{< code-block lang="go" filename="Makefile" disable_copy="true" collapsible="true" >}} run: build @@ -206,9 +206,9 @@ run: build
The Makefile also sets the DD_TRACE_SAMPLE_RATE environment variable to 1, which represents a 100% sample rate. A 100% sample rate ensures that all requests to the notes service are sent to the Datadog backend for analysis and display for the purposes of this tutorial. In an actual production or high-volume environment, you wouldn't specify this high of a rate. Setting a high sample rate with this variable in the application overrides the Agent configuration and results in a very large volume of data being sent to Datadog. For most use cases, allow the Agent to automatically determine the sampling rate.
-For more information on available configuration options, see [Configuring the Go Tracing Library][14]. +For more information on available configuration options, see [Configuring the Go APM SDK][14]. -### Use automatic tracing libraries +### Use automatic APM SDKs Datadog has several fully supported libraries for Go that allow for automatic tracing when implemented in the code. In the `cmd/notes/main.go` file, you can see the `go-chi`, `sql`, and `http` libraries being aliased to the corresponding Datadog libraries: `chitrace`, `sqltrace`, and `httptrace` respectively: diff --git a/content/en/tracing/guide/tutorial-enable-java-admission-controller.md b/content/en/tracing/guide/tutorial-enable-java-admission-controller.md index ad80adf5a1794..8b33d49ed376d 100644 --- a/content/en/tracing/guide/tutorial-enable-java-admission-controller.md +++ b/content/en/tracing/guide/tutorial-enable-java-admission-controller.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Java Application with the Admission Con further_reading: - link: /tracing/trace_collection/library_config/java/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/java/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/java/ tag: "Documentation" text: Supported Java frameworks for automatic instrumentation @@ -16,7 +16,7 @@ further_reading: text: Manually configuring traces and spans - link: https://github.com/DataDog/dd-trace-java tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository - link: /containers/cluster_agent/troubleshooting/ tag: "Documentation" text: Troubleshooting the Datadog Cluster Agent @@ -53,7 +53,7 @@ git clone https://github.com/DataDog/springblog.git The repository contains a multi-service Java application pre-configured to be run within Docker and Kubernetes. The sample app is a basic Spring app using REST. -## Start and run the sample application +## Start and run the sample application 1. Switch to to the `/k8s` subdirectory in the springblog repo: {{< code-block lang="shell" >}} @@ -75,7 +75,7 @@ kubectl get pods{{< /code-block >}} springfront-797b78d6db-p5c84 1/1 Terminating 0 2m41s ``` - The service is started and listens on port 8080. It exposes an `/upstream` endpoint. + The service is started and listens on port 8080. It exposes an `/upstream` endpoint. 4. Check that communication takes place by running the following curl command: {{< code-block lang="shell" >}} @@ -95,7 +95,7 @@ After you have your application working, instrument it using the Datadog Admissi 3. [Annotate][7] your pod for library injection. 4. [Label][8] your pod to instruct the Datadog Admission controller to mutate the pod. -There's no need to add the tracing library because it's automatically injected. You don't need to redeploy your app yet. This section of the tutorial steps you through the process of adding Datadog variables and deploying a new image or version of your app. +There's no need to add the APM SDK because it's automatically injected. You don't need to redeploy your app yet. This section of the tutorial steps you through the process of adding Datadog variables and deploying a new image or version of your app. 1. From the `k8s` subdirectory, use the following command to install the Datadog Cluster Agent, specifying the `values-with-lib-inj.yaml` config file and your [Datadog API key](/account_management/api-app-keys/): {{< code-block lang="shell" >}} @@ -122,12 +122,12 @@ labels: tags.datadoghq.com/service: "springfront" tags.datadoghq.com/version: "12"{{< /code-block >}} -4. Configure the Datadog Admission Controller to inject a Java tracing library to the app container by adding the following annotation to the pod: +4. Configure the Datadog Admission Controller to inject a Java APM SDK to the app container by adding the following annotation to the pod: {{< code-block lang="yaml" >}} annotations: admission.datadoghq.com/java-lib.version: "latest"{{< /code-block >}} - This annotation specifies the latest version of the Java tracing library. You can also reference a specific version of the library, such as `"v1.5.0"`. + This annotation specifies the latest version of the Java APM SDK. You can also reference a specific version of the library, such as `"v1.5.0"`. The final pod definition should look like the excerpt below. See also the full [YAML file][10] in the sample repo. The instructions you added to instrument the app are highlighted: @@ -202,7 +202,7 @@ kubectl describe pod springfront{{< /code-block >}} Normal Started 2s kubelet Started container springfront ``` - As you can see, an init-container is added to your pod. This container includes the Datadog Java tracing libraries to a volume mount. Also `JAVA_TOOL_OPTIONS` is modified to include `javaagent`. And Datadog-specific environment variables are added to the container: + As you can see, an init-container is added to your pod. This container includes the Datadog Java APM SDKs to a volume mount. Also `JAVA_TOOL_OPTIONS` is modified to include `javaagent`. And Datadog-specific environment variables are added to the container: ``` Environment: @@ -219,7 +219,7 @@ kubectl describe pod springfront{{< /code-block >}} /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-qvmtk (ro) ``` -8. Verify that the Datadog tracing library is injected into the pod by checking the pod logs. For example:: +8. Verify that the Datadog APM SDK is injected into the pod by checking the pod logs. For example:: {{< code-block lang="shell" >}} kubectl logs -f springfront-797b78d6db-jqjdl{{< /code-block >}} @@ -272,4 +272,4 @@ If you're not receiving traces as expected, set up debug mode for the Java trace [10]: https://github.com/DataDog/springblog/blob/main/k8s/depl-with-lib-inj.yaml [11]: https://app.datadoghq.com/services [12]: /tracing/trace_collection/admission_controller -[13]: /tracing/troubleshooting/tracer_debug_logs/#enable-debug-mode \ No newline at end of file +[13]: /tracing/troubleshooting/tracer_debug_logs/#enable-debug-mode diff --git a/content/en/tracing/guide/tutorial-enable-java-aws-ecs-ec2.md b/content/en/tracing/guide/tutorial-enable-java-aws-ecs-ec2.md index be757e79b536c..3b87dc1504abd 100644 --- a/content/en/tracing/guide/tutorial-enable-java-aws-ecs-ec2.md +++ b/content/en/tracing/guide/tutorial-enable-java-aws-ecs-ec2.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Java Application on Amazon ECS with EC2 further_reading: - link: /tracing/trace_collection/library_config/java/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/java/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/java/ tag: "Documentation" text: Supported Java frameworks for automatic instrumentation @@ -16,7 +16,7 @@ further_reading: text: Manually configuring traces and spans - link: https://github.com/DataDog/dd-trace-java tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -105,7 +105,7 @@ Your application (without tracing enabled) is containerized and available for EC ### Deploy the application -Start the application and send some requests without tracing. After you've seen how the application works, you'll instrument it using the tracing library and Datadog Agent. +Start the application and send some requests without tracing. After you've seen how the application works, you'll instrument it using the APM SDK and Datadog Agent. To start, use a terraform script to deploy to Amazon ECS: @@ -311,7 +311,7 @@ Now that you have a working Java application, configure it to enable tracing. ### Tracing configuration -The Java tracing library uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` in the Dockerfile tells the JVM where to find the Java tracing library so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. +The Java APM SDK uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` in the Dockerfile tells the JVM where to find the Java APM SDK so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. The `dd.trace.sample.rate` flag sets the sample rate for this application. The ENTRYPOINT command in the Dockerfile sets its value to `1`, meaning that 100% of all service requests are sent to the Datadog backend for analysis and display. For a low-volume test application, this is fine. Do not do this in production or in any high-volume environment, because this results in a very large volume of data. Instead, sample some of your requests. Pick a value between 0 and 1. For example, `-Ddd.trace.sample.rate=0.1` sends traces for 10% of your requests to Datadog. Read more about [tracing configuration settings][14] and [sampling mechanisms][15]. diff --git a/content/en/tracing/guide/tutorial-enable-java-aws-ecs-fargate.md b/content/en/tracing/guide/tutorial-enable-java-aws-ecs-fargate.md index 1b0031d9ce074..d6ed44b97a6ca 100644 --- a/content/en/tracing/guide/tutorial-enable-java-aws-ecs-fargate.md +++ b/content/en/tracing/guide/tutorial-enable-java-aws-ecs-fargate.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Java Application on Amazon ECS with Far further_reading: - link: /tracing/trace_collection/library_config/java/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/java/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/java/ tag: "Documentation" text: Supported Java frameworks for automatic instrumentation @@ -16,7 +16,7 @@ further_reading: text: Manually configuring traces and spans - link: https://github.com/DataDog/dd-trace-java tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -105,7 +105,7 @@ Your application (without tracing enabled) is containerized and available for EC ### Deploy the application -Start the application and send some requests without tracing. After you've seen how the application works, you'll instrument it using the tracing library and Datadog Agent. +Start the application and send some requests without tracing. After you've seen how the application works, you'll instrument it using the APM SDK and Datadog Agent. To start, use a terraform script to deploy to Amazon ECS: @@ -315,7 +315,7 @@ Now that you have a working Java application, configure it to enable tracing. ### Tracing configuration -The Java tracing library uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` in the Dockerfile tells the JVM where to find the Java tracing library so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. +The Java APM SDK uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` in the Dockerfile tells the JVM where to find the Java APM SDK so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. The `dd.trace.sample.rate` flag sets the sample rate for this application. The ENTRYPOINT command in the Dockerfile sets its value to `1`, meaning that 100% of all service requests are sent to the Datadog backend for analysis and display. For a low-volume test application, this is fine. Do not do this in production or in any high-volume environment, because this results in a very large volume of data. Instead, sample some of your requests. Pick a value between 0 and 1. For example, `-Ddd.trace.sample.rate=0.1` sends traces for 10% of your requests to Datadog. Read more about [tracing configuration settings][14] and [sampling mechanisms][15]. diff --git a/content/en/tracing/guide/tutorial-enable-java-aws-eks.md b/content/en/tracing/guide/tutorial-enable-java-aws-eks.md index 41cbe016d927b..98e428bb3c5ae 100644 --- a/content/en/tracing/guide/tutorial-enable-java-aws-eks.md +++ b/content/en/tracing/guide/tutorial-enable-java-aws-eks.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Java Application on AWS Elastic Kuberne further_reading: - link: /tracing/trace_collection/library_config/java/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/java/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/java/ tag: "Documentation" text: Supported Java frameworks for automatic instrumentation @@ -16,7 +16,7 @@ further_reading: text: Manually configuring traces and spans - link: https://github.com/DataDog/dd-trace-java tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -267,7 +267,7 @@ A `GET /notes` trace looks something like this: ### Tracing configuration -The Java tracing library uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` in the Dockerfile tells the JVM where to find the Java tracing library so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. +The Java APM SDK uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` in the Dockerfile tells the JVM where to find the Java APM SDK so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. The `dd.trace.sample.rate` flag sets the sample rate for this application. The ENTRYPOINT command in the Dockerfile sets its value to `1`, which means that 100% of all requests to the `notes` service are sent to the Datadog backend for analysis and display. For a low-volume test application, this is fine. Do not do this in production or in any high-volume environment, because this results in a very large volume of data. Instead, sample some of your requests. Pick a value between 0 and 1. For example, `-Ddd.trace.sample.rate=0.1` sends traces for 10% of your requests to Datadog. Read more about [tracing configuration settings][14] and [sampling mechanisms][15]. @@ -277,7 +277,7 @@ Notice that the sampling rate flag in the command appears _before_ the `-jar` fl Automatic instrumentation is convenient, but sometimes you want more fine-grained spans. Datadog's Java DD Trace API allows you to specify spans within your code using annotations or code. -The following steps walk you through modifying the build scripts to download the Java tracing library and adding some annotations to the code to trace into some sample methods. +The following steps walk you through modifying the build scripts to download the Java APM SDK and adding some annotations to the code to trace into some sample methods. 1. Delete the current application deployments: {{< code-block lang="sh" >}} diff --git a/content/en/tracing/guide/tutorial-enable-java-container-agent-host.md b/content/en/tracing/guide/tutorial-enable-java-container-agent-host.md index 7748454d118ee..780827ae3eed8 100644 --- a/content/en/tracing/guide/tutorial-enable-java-container-agent-host.md +++ b/content/en/tracing/guide/tutorial-enable-java-container-agent-host.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Java Application in a Container and an further_reading: - link: /tracing/trace_collection/library_config/java/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/java/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/java/ tag: "Documentation" text: Supported Java frameworks for automatic instrumentation @@ -16,7 +16,7 @@ further_reading: text: Manually configuring traces and spans - link: https://github.com/DataDog/dd-trace-java tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -199,7 +199,7 @@ The `notes` section of your compose file should look something like this: ## Launch the containers to see automatic tracing -Now that the Tracing Library is installed and the Agent is running, restart your application to start receiving traces. Run the following commands: +Now that the APM SDK is installed and the Agent is running, restart your application to start receiving traces. Run the following commands: ``` docker-compose -f service-docker-compose.yaml build notes @@ -244,7 +244,7 @@ A `GET /notes` trace looks something like this: ### Tracing configuration -The Java tracing library uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` in the Dockerfile tells the JVM where to find the Java tracing library so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. +The Java APM SDK uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` in the Dockerfile tells the JVM where to find the Java APM SDK so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. The `dd.trace.sample.rate` flag sets the sample rate for this application. The ENTRYPOINT command in the Dockerfile sets its value to `1`, which means that 100% of all requests to the `notes` service are sent to the Datadog backend for analysis and display. For a low-volume test application, this is fine. Do not do this in production or in any high-volume environment, because this results in a very large volume of data. Instead, sample some of your requests. Pick a value between 0 and 1. For example, `-Ddd.trace.sample.rate=0.1` sends traces for 10% of your requests to Datadog. Read more about [tracing configuration settings][17] and [sampling mechanisms][16]. diff --git a/content/en/tracing/guide/tutorial-enable-java-containers.md b/content/en/tracing/guide/tutorial-enable-java-containers.md index 97ea56f1e0e25..09de03126f297 100644 --- a/content/en/tracing/guide/tutorial-enable-java-containers.md +++ b/content/en/tracing/guide/tutorial-enable-java-containers.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Java Application and Datadog Agent in C further_reading: - link: /tracing/trace_collection/library_config/java/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/java/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/java/ tag: "Documentation" text: Supported Java frameworks for automatic instrumentation @@ -16,7 +16,7 @@ further_reading: text: Manually configuring traces and spans - link: https://github.com/DataDog/dd-trace-java tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -185,7 +185,7 @@ Add the Datadog Agent in the services section of your `all-docker-compose.yaml` ## Launch the containers to see automatic tracing -Now that the Tracing Library is installed, restart your application and start receiving traces. Run the following commands: +Now that the APM SDK is installed, restart your application and start receiving traces. Run the following commands: ``` docker-compose -f all-docker-compose.yaml build notes @@ -234,7 +234,7 @@ A `GET /notes` trace looks something like this: ### Tracing configuration -The Java tracing library uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` in the Dockerfile tells the JVM where to find the Java tracing library so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. +The Java APM SDK uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` in the Dockerfile tells the JVM where to find the Java APM SDK so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. The `dd.trace.sample.rate` flag sets the sample rate for this application. The ENTRYPOINT command in the Dockerfile sets its value to `1`, which means that 100% of all requests to the `notes` service are sent to the Datadog backend for analysis and display. For a low-volume test application, this is fine. Do not do this in production or in any high-volume environment, because this results in a very large volume of data. Instead, sample some of your requests. Pick a value between 0 and 1. For example, `-Ddd.trace.sample.rate=0.1` sends traces for 10% of your requests to Datadog. Read more about [tracing configuration settings][14] and [sampling mechanisms][15]. diff --git a/content/en/tracing/guide/tutorial-enable-java-gke.md b/content/en/tracing/guide/tutorial-enable-java-gke.md index ad1ca6acaa61f..0c357d1a96b9b 100644 --- a/content/en/tracing/guide/tutorial-enable-java-gke.md +++ b/content/en/tracing/guide/tutorial-enable-java-gke.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Java Application on Google Kubernetes E further_reading: - link: /tracing/trace_collection/library_config/java/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/java/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/java/ tag: "Documentation" text: Supported Java frameworks for automatic instrumentation @@ -16,7 +16,7 @@ further_reading: text: Manually configuring traces and spans - link: https://github.com/DataDog/dd-trace-java tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -267,7 +267,7 @@ A `GET /notes` trace looks something like this: ### Tracing configuration -The Java tracing library uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` in the Dockerfile tells the JVM where to find the Java tracing library so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. +The Java APM SDK uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` in the Dockerfile tells the JVM where to find the Java APM SDK so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. The `dd.trace.sample.rate` flag sets the sample rate for this application. The ENTRYPOINT command in the Dockerfile sets its value to `1`, which means that 100% of all requests to the `notes` service are sent to the Datadog backend for analysis and display. For a low-volume test application, this is fine. Do not do this in production or in any high-volume environment, because this results in a very large volume of data. Instead, sample some of your requests. Pick a value between 0 and 1. For example, `-Ddd.trace.sample.rate=0.1` sends traces for 10% of your requests to Datadog. Read more about [tracing configuration settings][14] and [sampling mechanisms][15]. @@ -277,7 +277,7 @@ Notice that the sampling rate flag in the command appears _before_ the `-jar` fl Automatic instrumentation is convenient, but sometimes you want more fine-grained spans. Datadog's Java DD Trace API allows you to specify spans within your code using annotations or code. -The following steps walk you through modifying the build scripts to download the Java tracing library and adding some annotations to the code to trace into some sample methods. +The following steps walk you through modifying the build scripts to download the Java APM SDK and adding some annotations to the code to trace into some sample methods. 1. Delete the current application deployments: {{< code-block lang="sh" >}} diff --git a/content/en/tracing/guide/tutorial-enable-java-host.md b/content/en/tracing/guide/tutorial-enable-java-host.md index ff6b90ca7b5d3..9146a954455d8 100644 --- a/content/en/tracing/guide/tutorial-enable-java-host.md +++ b/content/en/tracing/guide/tutorial-enable-java-host.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Java Application on the Same Host as th further_reading: - link: /tracing/trace_collection/library_config/java/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/java/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/java/ tag: "Documentation" text: Supported Java frameworks for automatic instrumentation @@ -16,7 +16,7 @@ further_reading: text: Manually configuring traces and spans - link: https://github.com/DataDog/dd-trace-java tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -149,7 +149,7 @@ Run more API calls to see the application in action. When you're done, type Ctrl ## Install Datadog tracing -Next, download the Java tracing library (sometimes called the Java Agent). From your `apm-tutorial-java-host` directory, run: +Next, download the Java APM SDK (sometimes called the Java Agent). From your `apm-tutorial-java-host` directory, run: {{< code-block lang="sh" >}} curl -Lo dd-java-agent.jar 'https://dtdg.co/latest-java-tracer' @@ -240,7 +240,7 @@ A `GET /notes` trace looks something like this: ### Tracing configuration -The Java tracing library uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` tells the JVM where to find the Java tracing library so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. +The Java APM SDK uses Java's built-in agent and monitoring support. The flag `-javaagent:../dd-java-agent.jar` tells the JVM where to find the Java APM SDK so it can run as a Java Agent. Learn more about Java Agents at [https://www.baeldung.com/java-instrumentation][7]. In addition to the `javaagent` flag, which enables the Java Agent, the launch commands specify three [Unified Service Tagging][10] settings to uniquely identify your application within Datadog. Always specify `env`, `service`, and `version` tags for every monitored application. diff --git a/content/en/tracing/guide/tutorial-enable-python-container-agent-host.md b/content/en/tracing/guide/tutorial-enable-python-container-agent-host.md index a88f47c8954a2..9b7e221170cda 100644 --- a/content/en/tracing/guide/tutorial-enable-python-container-agent-host.md +++ b/content/en/tracing/guide/tutorial-enable-python-container-agent-host.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Python Application in a Container and a further_reading: - link: /tracing/trace_collection/library_config/python/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/python/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/python/ tag: "Documentation" text: Supported Python frameworks for automatic instrumentation @@ -16,7 +16,7 @@ further_reading: text: Manually configuring traces and spans - link: https://github.com/DataDog/dd-trace-py tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -33,7 +33,7 @@ See [Tracing Python Applications][2] for general comprehensive tracing setup doc - A Datadog account and [organization API key][3] - Git -- Python that meets the [tracing library requirements][4] +- Python that meets the [APM SDK requirements][4] ## Install the Agent @@ -48,7 +48,7 @@ To send data to a Datadog site other than `datadoghq.com`, replace the `DD_SITE` Ensure your Agent is configured to receive trace data from containers. Open its [configuration file][15] and ensure `apm_config:` is uncommented, and `apm_non_local_traffic` is uncommented and set to `true`. -If you have an Agent already installed on the host, ensure it is at least version 7.28. The minimum version of Datadog Agent required to use `ddtrace` to trace Python applications is documented in the [tracing library developer docs][7]. +If you have an Agent already installed on the host, ensure it is at least version 7.28. The minimum version of Datadog Agent required to use `ddtrace` to trace Python applications is documented in the [APM SDK developer docs][7]. ## Install the sample Dockerized Python application @@ -218,7 +218,7 @@ Verify that the Agent is running and sending data to Datadog by going to [**Even ## Launch the containers to see automatic tracing -Now that the Tracing Library is installed and the Agent is running, restart your application to start receiving traces. Run the following commands: +Now that the APM SDK is installed and the Agent is running, restart your application to start receiving traces. Run the following commands: ``` docker-compose -f docker/host-and-containers/exercise/docker-compose.yaml build notes_app @@ -280,7 +280,7 @@ from ddtrace import tracer{{< /code-block >}} logging.info("Hello from the long running process") self.__private_method_1(){{< /code-block >}} - Now, the tracer automatically labels the resource with the function name it is wrapped around, in this case, `long_running_process`. + Now, the APM SDK automatically labels the resource with the function name it is wrapped around, in this case, `long_running_process`. 4. Rebuild the containers by running: {{< code-block lang="sh" >}} diff --git a/content/en/tracing/guide/tutorial-enable-python-containers.md b/content/en/tracing/guide/tutorial-enable-python-containers.md index 0412a1d10320d..9ea83946c97c0 100644 --- a/content/en/tracing/guide/tutorial-enable-python-containers.md +++ b/content/en/tracing/guide/tutorial-enable-python-containers.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Python Application and Datadog Agent in further_reading: - link: /tracing/trace_collection/library_config/python/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/python/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/python/ tag: "Documentation" text: Supported Python frameworks for automatic instrumentation @@ -16,7 +16,7 @@ further_reading: text: Manually configuring traces and spans - link: https://github.com/DataDog/dd-trace-py tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -33,7 +33,7 @@ See [Tracing Python Applications][2] for general comprehensive tracing setup doc - A Datadog account and [organization API key][3] - Git -- Python that meets the [tracing library requirements][4] +- Python that meets the [APM SDK requirements][4] ## Install the sample Dockerized Python application @@ -59,7 +59,7 @@ docker-compose -f docker/containers/exercise/docker-compose.yaml build notes_app docker-compose -f docker/containers/exercise/docker-compose.yaml up db notes_app {{< /code-block >}} - The application is ready to use when you see the following output in the terminal: + The application is ready to use when you see the following output in the terminal: ``` notes | * Debug mode: on @@ -125,7 +125,7 @@ Now that you have a working Python application, configure it to enable tracing. 2. Within the notes application Dockerfile, `docker/containers/exercise/Dockerfile.notes`, change the CMD line that starts the application to use the `ddtrace` package: ``` - # Run the application with Datadog + # Run the application with Datadog CMD ["ddtrace-run", "python", "-m", "notes_app.app"] ``` @@ -139,7 +139,7 @@ Now that you have a working Python application, configure it to enable tracing. ENV DD_VERSION="0.1.0" ``` -4. Add Docker labels that correspond to the Universal Service Tags. This allows you also to get Docker metrics once your application is running. +4. Add Docker labels that correspond to the Universal Service Tags. This allows you also to get Docker metrics once your application is running. ``` LABEL com.datadoghq.tags.service="notes" @@ -162,8 +162,8 @@ Add the Datadog Agent in the services section of the `docker/containers/exercise - DD_API_KEY= - DD_SITE=datadoghq.com # Default. Change to eu.datadoghq.com, us3.datadoghq.com, us5.datadoghq.com as appropriate for your org - DD_APM_ENABLED=true # Enable APM - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro - /proc/:/host/proc/:ro - /sys/fs/cgroup/:/host/sys/fs/cgroup:ro ``` @@ -178,7 +178,7 @@ To check that you've set things up correctly, compare your `docker-compose.yaml` ## Launch the containers to see automatic tracing -Now that the Tracing Library is installed, restart your application and start receiving traces. Run the following commands: +Now that the APM SDK is installed, restart your application and start receiving traces. Run the following commands: ``` docker-compose -f docker/containers/exercise/docker-compose.yaml build notes_app @@ -211,9 +211,9 @@ If you don't see traces after several minutes, clear any filter in the Traces Se ### Examine a trace -On the Traces page, click on a `POST /notes` trace to see a flame graph that shows how long each span took and what other spans occurred before a span completed. The bar at the top of the graph is the span you selected on the previous screen (in this case, the initial entry point into the notes application). +On the Traces page, click on a `POST /notes` trace to see a flame graph that shows how long each span took and what other spans occurred before a span completed. The bar at the top of the graph is the span you selected on the previous screen (in this case, the initial entry point into the notes application). -The width of a bar indicates how long it took to complete. A bar at a lower depth represents a span that completes during the lifetime of a bar at a higher depth. +The width of a bar indicates how long it took to complete. A bar at a lower depth represents a span that completes during the lifetime of a bar at a higher depth. The flame graph for a `POST` trace looks something like this: @@ -244,7 +244,7 @@ from ddtrace import tracer{{< /code-block >}} logging.info("Hello from the long running process") self.__private_method_1(){{< /code-block >}} - Now, the tracer automatically labels the resource with the function name it is wrapped around, in this case, `long_running_process`. + Now, the APM SDK automatically labels the resource with the function name it is wrapped around, in this case, `long_running_process`. 4. Rebuild the containers by running: {{< code-block lang="sh" >}} @@ -255,20 +255,20 @@ docker-compose -f docker/containers/exercise/docker-compose.yaml up db datadog n 5. On the Trace Explorer, click on one of the new `GET` requests, and see a flame graph like this: {{< img src="tracing/guide/tutorials/tutorial-python-container-custom-flame.png" alt="A flame graph for a GET trace with custom instrumentation." style="width:100%;" >}} - + Note the higher level of detail in the stack trace now that the `get_notes` function has custom tracing. For more information, read [Custom Instrumentation][12]. ## Add a second application to see distributed traces -Tracing a single application is a great start, but the real value in tracing is seeing how requests flow through your services. This is called _distributed tracing_. +Tracing a single application is a great start, but the real value in tracing is seeing how requests flow through your services. This is called _distributed tracing_. The sample project includes a second application called `calendar_app` that returns a random date whenever it is invoked. The `POST` endpoint in the Notes application has a second query parameter named `add_date`. When it is set to `y`, Notes calls the calendar application to get a date to add to the note. 1. Configure the calendar app for tracing by adding `dd_trace` to the startup command in the Dockerfile, like you previously did for the notes app. Open `docker/containers/exercise/Dockerfile.calendar` and update the CMD line like this: ``` - CMD ["ddtrace-run", "python", "-m", "calendar_app.app"] + CMD ["ddtrace-run", "python", "-m", "calendar_app.app"] ``` 3. Apply Universal Service Tags, just like we did for the notes app. Add the following environment variables in the `Dockerfile.calendar` file: @@ -279,7 +279,7 @@ The sample project includes a second application called `calendar_app` that retu ENV DD_VERSION="0.1.0" ``` -4. Again, add Docker labels that correspond to the Universal Service Tags, allowing you to also get Docker metrics once your application runs. +4. Again, add Docker labels that correspond to the Universal Service Tags, allowing you to also get Docker metrics once your application runs. ``` LABEL com.datadoghq.tags.service="calendar" @@ -321,7 +321,7 @@ The sample project includes a second application called `calendar_app` that retu You can add custom instrumentation by using code. Suppose you want to further instrument the calendar service to better see the trace: -1. Open `notes_app/notes_logic.py`. +1. Open `notes_app/notes_logic.py`. 2. Add the following import ```python diff --git a/content/en/tracing/guide/tutorial-enable-python-host.md b/content/en/tracing/guide/tutorial-enable-python-host.md index 2618040d93815..97af8c2910a4a 100644 --- a/content/en/tracing/guide/tutorial-enable-python-host.md +++ b/content/en/tracing/guide/tutorial-enable-python-host.md @@ -4,10 +4,10 @@ title: Tutorial - Enabling Tracing for a Python Application on the Same Host as further_reading: - link: /tracing/trace_collection/library_config/python/ tag: "Documentation" - text: Additional tracing library configuration options + text: Additional APM SDK configuration options - link: /tracing/trace_collection/dd_libraries/python/ tag: "Documentation" - text: Detailed tracing library setup instructions + text: Detailed APM SDK setup instructions - link: /tracing/trace_collection/compatibility/python/ tag: "Documentation" text: Supported Python frameworks for automatic instrumentation @@ -16,7 +16,7 @@ further_reading: text: Manually configuring traces and spans - link: https://github.com/DataDog/dd-trace-py tag: "Source Code" - text: Tracing library open source code repository + text: APM SDK open source code repository --- ## Overview @@ -33,7 +33,7 @@ See [Tracing Python Applications][2] for general comprehensive tracing setup doc - A Datadog account and [organization API key][3] - Git -- Python that meets the [tracing library requirements][4] +- Python that meets the [APM SDK requirements][4] ## Install the Agent @@ -45,7 +45,7 @@ DD_AGENT_MAJOR_VERSION=7 DD_API_KEY= DD_SITE="datadoghq.com" bash To send data to a Datadog site other than `datadoghq.com`, replace the `DD_SITE` environment variable with [your Datadog site][6]. -If you have an Agent already installed on the host, ensure it is at least version 7.28. The minimum version of Datadog Agent required to use `ddtrace` to trace Python applications is documented in the [tracing library developer docs][7]. +If you have an Agent already installed on the host, ensure it is at least version 7.28. The minimum version of Datadog Agent required to use `ddtrace` to trace Python applications is documented in the [APM SDK developer docs][7]. Verify that the Agent is running and sending data to Datadog by going to [**Events > Explorer**][8], optionally filtering by the `Datadog` Source facet, and looking for an event that confirms the Agent installation on the host: @@ -130,7 +130,7 @@ Run more API calls to see the application in action. When you're done, type Ctrl ## Install Datadog tracing -Next, install the tracing library by using Poetry or pip (minimum version 18). From your `apm-tutorial-python` directory, run: +Next, install the APM SDK by using Poetry or pip (minimum version 18). From your `apm-tutorial-python` directory, run: {{< tabs >}} {{% tab "Poetry" %}} @@ -235,7 +235,7 @@ from ddtrace import tracer{{< /code-block >}} logging.info("Hello from the long running process") self.__private_method_1(){{< /code-block >}} - Now, the tracer automatically labels the resource with the function name it is wrapped around, in this case, `long_running_process`. + Now, the APM SDK automatically labels the resource with the function name it is wrapped around, in this case, `long_running_process`. 4. Resend some HTTP requests, specifically some `GET` requests. 5. On the Trace Explorer, click on one of the new `GET` requests, and see a flame graph like this: @@ -270,7 +270,7 @@ The sample project includes a second application called `calendar_app` that retu DD_SERVICE=calendar DD_ENV=dev DD_VERSION=0.1.0 \ ddtrace-run python -m calendar_app.app ``` - + {{% /tab %}} {{< /tabs >}} diff --git a/content/en/tracing/legacy_app_analytics/_index.md b/content/en/tracing/legacy_app_analytics/_index.md index e2377963cada6..88908b76f1e6d 100644 --- a/content/en/tracing/legacy_app_analytics/_index.md +++ b/content/en/tracing/legacy_app_analytics/_index.md @@ -14,13 +14,13 @@ This page describes deprecated features with configuration information relevant Navigate to the [ingestion control page][1] to see services with legacy configurations. These are flagged with a `Legacy Setup` status. -To migrate to the new configuration options, remove all legacy App Analytics [configuration options](#app-analytics-setup) from the services flagged with `Legacy Setup`. Then, implement the Datadog Agent and tracing libraries' [sampling mechanisms][2] to send traces. +To migrate to the new configuration options, remove all legacy App Analytics [configuration options](#app-analytics-setup) from the services flagged with `Legacy Setup`. Then, implement the Datadog Agent and APM SDKs' [sampling mechanisms][2] to send traces. ## App Analytics setup -App Analytics configuration options are located in the Tracing Libraries and in the Datadog Agent. In the libraries, analytics spans from your services are generated either [automatically](#automatic-configuration) or [manually](#custom-instrumentation). +App Analytics configuration options are located in the APM SDKs and in the Datadog Agent. In the libraries, analytics spans from your services are generated either [automatically](#automatic-configuration) or [manually](#custom-instrumentation). -### In Tracing Libraries +### In APM SDKs #### Automatic configuration @@ -37,7 +37,7 @@ App Analytics is available starting in version 0.25.0 of the Java tracing client App Analytics is available starting in version 0.19.0 of the Python tracing client. Enable App Analytics globally for all **web** integrations with one configuration parameter in the Tracing Client: -* Tracer Configuration: `ddtrace.config.analytics_enabled = True` +* APM SDK Configuration: `ddtrace.config.analytics_enabled = True` * Environment Variable: `DD_TRACE_ANALYTICS_ENABLED=true` {{< /programming-lang >}} @@ -153,12 +153,12 @@ Integration names can be found on the [integrations table][1]. In addition to setting globally, you can enable or disable App Analytics for individual integrations using the following setting: -* Tracer Configuration: `ddtrace.config..analytics_enabled = True` +* APM SDK Configuration: `ddtrace.config..analytics_enabled = True` * Environment Variable: `DD__ANALYTICS_ENABLED=true` Use this in addition to the global configuration for any integrations that submit custom services. For example, for Boto spans which comes in as a custom service, set the following to enable all Boto Tracing in App Analytics: -* Tracer Configuration: `ddtrace.config.boto.analytics_enabled = True` +* APM SDK Configuration: `ddtrace.config.boto.analytics_enabled = True` * Environment Variable: `DD_BOTO_ANALYTICS_ENABLED=true` **Note**: Several integrations require non-standard configuration due to the integration-specific implementation of the tracer. Consult the library documentation on [App Analytics][1] for details. @@ -279,7 +279,7 @@ Database tracing is not captured by App Analytics by default and you must enable Database tracing is not captured by App Analytics by default and you must enable collection manually for each integration. For example: -* Tracer Configuration: `ddtrace.config.psycopg.analytics_enabled = True` +* APM SDK Configuration: `ddtrace.config.psycopg.analytics_enabled = True` * Environment Variable: `DD_PSYCOPG_ANALYTICS_ENABLED=true` {{< /programming-lang >}} diff --git a/content/en/tracing/metrics/_index.md b/content/en/tracing/metrics/_index.md index eb7e11055ce7e..bddbaf886e044 100644 --- a/content/en/tracing/metrics/_index.md +++ b/content/en/tracing/metrics/_index.md @@ -24,7 +24,7 @@ Ingested span and traces are kept for 15 minutes. Indexed spans and traces that ## Runtime metrics -Enable [runtime metrics collection][3] in supported tracing libraries to gain insights into an application's performance. These metrics are sent to the Datadog Agent over the configured DogStatsD port. +Enable [runtime metrics collection][3] in supported APM SDKs to gain insights into an application's performance. These metrics are sent to the Datadog Agent over the configured DogStatsD port. ## Next steps diff --git a/content/en/tracing/metrics/runtime_metrics/dotnet.md b/content/en/tracing/metrics/runtime_metrics/dotnet.md index 8b5e8acd9bed8..745f282c49139 100644 --- a/content/en/tracing/metrics/runtime_metrics/dotnet.md +++ b/content/en/tracing/metrics/runtime_metrics/dotnet.md @@ -23,16 +23,16 @@ further_reading: ## Runtime metrics compatibility -- .NET Framework 4.6.1+ +- .NET Framework 4.6.1+ - .NET Core 3.1 - .NET 5 - .NET 6 - .NET 7 - .NET 8 - + ## Automatic configuration -Enable runtime metrics collection in the .NET Tracer 1.23.0+ with the `DD_RUNTIME_METRICS_ENABLED=true` environment variable. +Enable runtime metrics collection in the .NET APM SDK 1.23.0+ with the `DD_RUNTIME_METRICS_ENABLED=true` environment variable. View runtime metrics in correlation with your .NET services. See the [Service Catalog][1] in Datadog. diff --git a/content/en/tracing/metrics/runtime_metrics/go.md b/content/en/tracing/metrics/runtime_metrics/go.md index 064f118537707..11cd6fc905356 100644 --- a/content/en/tracing/metrics/runtime_metrics/go.md +++ b/content/en/tracing/metrics/runtime_metrics/go.md @@ -20,7 +20,7 @@ further_reading: ## Automatic configuration -To enable Go runtime metrics collection, start the tracer using the `WithRuntimeMetrics` option: +To enable Go runtime metrics collection, start the APM SDK using the `WithRuntimeMetrics` option: ```go tracer.Start(tracer.WithRuntimeMetrics()) @@ -30,7 +30,7 @@ View runtime metrics in correlation with your Go services on the [Service Catalo By default, runtime metrics from your application are sent every 10 seconds to the Datadog Agent with DogStatsD. Make sure that [DogStatsD is enabled for the Agent][2]. If your Datadog Agent DogStatsD address differs from the default `localhost:8125`, use the [`WithDogstatsdAddress`][3] option (available starting in 1.18.0) or the environment variables `DD_AGENT_HOST` and `DD_DOGSTATSD_PORT`. -If `WithDogstatsdAddress` is not used, the tracer attempts to determine the address of the statsd service according to the following rules: +If `WithDogstatsdAddress` is not used, the APM SDK attempts to determine the address of the statsd service according to the following rules: 1. Look for `/var/run/datadog/dsd.socket` and use it if present. IF NOT, continue to #2. 2. The host is determined by `DD_AGENT_HOST`, and defaults to "localhost". 3. The port is retrieved from the Agent. If not present, it is determined by `DD_DOGSTATSD_PORT`, and defaults to `8125`. @@ -61,4 +61,4 @@ Along with displaying these metrics in your APM Service Page, Datadog provides a [5]: /developers/dogstatsd/?tab=kubernetes#agent [6]: /agent/amazon_ecs/#create-an-ecs-task [7]: https://app.datadoghq.com/dash/integration/30587/go-runtime-metrics -[8]: /developers/dogstatsd/unix_socket/ \ No newline at end of file +[8]: /developers/dogstatsd/unix_socket/ diff --git a/content/en/tracing/metrics/runtime_metrics/java.md b/content/en/tracing/metrics/runtime_metrics/java.md index 7d8577bece84d..fec4bfa15398b 100644 --- a/content/en/tracing/metrics/runtime_metrics/java.md +++ b/content/en/tracing/metrics/runtime_metrics/java.md @@ -20,7 +20,7 @@ further_reading: ## Automatic configuration -JVM metrics collection is enabled by default for Java tracer v0.29.0+. It can be disabled with one configuration parameter in the tracing client, either through a system property, `-Ddd.jmxfetch.enabled=false`, or through an environment variable, `DD_JMXFETCH_ENABLED=false`. As of v0.64.0+, you can also use the `DD_RUNTIME_METRICS_ENABLED=false` environment variable to disable it. +JVM metrics collection is enabled by default for Java APM SDK v0.29.0+. It can be disabled with one configuration parameter in the tracing client, either through a system property, `-Ddd.jmxfetch.enabled=false`, or through an environment variable, `DD_JMXFETCH_ENABLED=false`. As of v0.64.0+, you can also use the `DD_RUNTIME_METRICS_ENABLED=false` environment variable to disable it. JVM metrics can be viewed in correlation with your Java services. See the [Service Catalog][1] in Datadog. diff --git a/content/en/tracing/metrics/runtime_metrics/nodejs.md b/content/en/tracing/metrics/runtime_metrics/nodejs.md index c2850cb038886..2548bb75d5cf1 100644 --- a/content/en/tracing/metrics/runtime_metrics/nodejs.md +++ b/content/en/tracing/metrics/runtime_metrics/nodejs.md @@ -24,7 +24,7 @@ This feature is in public beta. ## Automatic configuration -Runtime metrics collection can be enabled with one configuration parameter in the tracing client either through the tracer option: `tracer.init({ runtimeMetrics: true })` or through the environment variable: `DD_RUNTIME_METRICS_ENABLED=true` +Runtime metrics collection can be enabled with one configuration parameter in the tracing client either through the APM SDK option: `tracer.init({ runtimeMetrics: true })` or through the environment variable: `DD_RUNTIME_METRICS_ENABLED=true` {{< tabs >}} @@ -78,4 +78,4 @@ Along with displaying these metrics in your APM Service Page, Datadog provides a [4]: /developers/dogstatsd/?tab=kubernetes#agent [5]: /agent/amazon_ecs/#create-an-ecs-task [6]: https://app.datadoghq.com/dash/integration/30269/node-runtime-metrics -[7]: /developers/dogstatsd/unix_socket/ \ No newline at end of file +[7]: /developers/dogstatsd/unix_socket/ diff --git a/content/en/tracing/other_telemetry/connect_logs_and_traces/_index.md b/content/en/tracing/other_telemetry/connect_logs_and_traces/_index.md index a98761e9139f6..9050f18927796 100644 --- a/content/en/tracing/other_telemetry/connect_logs_and_traces/_index.md +++ b/content/en/tracing/other_telemetry/connect_logs_and_traces/_index.md @@ -13,7 +13,7 @@ algolia: The correlation between Datadog APM and Datadog Log Management is improved by the injection of trace IDs, span IDs, `env`, `service`, and `version` as attributes in your logs. With these fields you can find the exact logs associated with a specific service and version, or all logs correlated to an observed [trace][1]. -It is recommended to configure your application's tracer with `DD_ENV`, `DD_SERVICE`, and `DD_VERSION`. This will provide the best experience for adding `env`, `service`, and `version`. See the [unified service tagging][2] documentation for more details. +It is recommended to configure your application's APM SDK with `DD_ENV`, `DD_SERVICE`, and `DD_VERSION`. This will provide the best experience for adding `env`, `service`, and `version`. See the [unified service tagging][2] documentation for more details. Before correlating traces with logs, ensure your logs are either sent as JSON, or [parsed by the proper language level log processor][3]. Your language level logs _must_ be turned into Datadog attributes in order for traces and logs correlation to work. diff --git a/content/en/tracing/other_telemetry/connect_logs_and_traces/dotnet.md b/content/en/tracing/other_telemetry/connect_logs_and_traces/dotnet.md index 07c0df051f404..634835654d269 100644 --- a/content/en/tracing/other_telemetry/connect_logs_and_traces/dotnet.md +++ b/content/en/tracing/other_telemetry/connect_logs_and_traces/dotnet.md @@ -23,9 +23,9 @@ further_reading: You can set up your logging library and .NET tracing configurations so that trace and span IDs are injected into application logs, providing you with application performance monitoring data correlated with log data. -Configure the .NET Tracer with [Unified Service Tagging][1] for the best experience and helpful context when correlating application traces and logs. +Configure the .NET APM SDK with [Unified Service Tagging][1] for the best experience and helpful context when correlating application traces and logs. -The .NET Tracer supports the following logging libraries: +The .NET APM SDK supports the following logging libraries: - [Serilog][2] (v1.4+) - [log4net][3] - [NLog][4] @@ -50,12 +50,12 @@ To inject correlation identifiers into your log messages, follow the instruction {{% tab "Serilog" %}}
- Note: Starting with .NET Tracer version 2.0.1, automatic injection for the Serilog logging library requires the application to be instrumented with automatic instrumentation. + Note: Starting with .NET APM SDK version 2.0.1, automatic injection for the Serilog logging library requires the application to be instrumented with automatic instrumentation.
To automatically inject correlation identifiers into your log messages: -1. Configure the .NET Tracer with the following tracer settings: +1. Configure the .NET APM SDK with the following settings: - `DD_ENV` - `DD_SERVICE` - `DD_VERSION` @@ -67,12 +67,12 @@ To automatically inject correlation identifiers into your log messages: {{% tab "log4net" %}}
- Note: Starting with .NET Tracer version 1.29.0, automatic injection for the log4net logging library requires the application to be instrumented with automatic instrumentation. + Note: Starting with .NET APM SDK version 1.29.0, automatic injection for the log4net logging library requires the application to be instrumented with automatic instrumentation.
To automatically inject correlation identifiers into your log messages: -1. Configure the .NET Tracer with the following tracer settings: +1. Configure the .NET APM SDK with the following APM SDK settings: - `DD_ENV` - `DD_SERVICE` - `DD_VERSION` @@ -112,12 +112,12 @@ For additional examples, see [the log4net automatic trace ID injection project][ {{% tab "NLog" %}}
- Note: Starting with .NET Tracer version 2.0.1, automatic injection for the NLog logging library requires the application to be instrumented with automatic instrumentation. + Note: Starting with .NET APM SDK version 2.0.1, automatic injection for the NLog logging library requires the application to be instrumented with automatic instrumentation.
To automatically inject correlation identifiers into your log messages: -1. Configure the .NET Tracer with the following tracer settings: +1. Configure the .NET APM SDK with the following APM SDK settings: - `DD_ENV` - `DD_SERVICE` - `DD_VERSION` @@ -170,7 +170,7 @@ For additional examples, see the automatic trace ID injection projects using [NL {{% tab "Microsoft.Extensions.Logging" %}} To automatically inject correlation identifiers into your log messages: -1. Configure the .NET Tracer with the following tracer settings: +1. Configure the .NET APM SDK with the following settings: - `DD_ENV` - `DD_SERVICE` - `DD_VERSION` @@ -212,7 +212,7 @@ Next, complete the setup for either automatic or manual injection. The final step to enable automatic correlation identifier injection is to: -1. Enable `DD_LOGS_INJECTION=true` in the .NET Tracer's environment variables. To configure the .NET Tracer with a different method, see [Configuring the .NET Tracer][6]. +1. Enable `DD_LOGS_INJECTION=true` in the .NET Tracer's environment variables. To configure the .NET APM SDK with a different method, see [Configuring the .NET Tracer][6]. After configuring the correlation identifier injection, see [C# Log Collection][7] to configure your log collection. diff --git a/content/en/tracing/other_telemetry/connect_logs_and_traces/go.md b/content/en/tracing/other_telemetry/connect_logs_and_traces/go.md index 04e04e1d6cc35..00aa1b1ab2779 100644 --- a/content/en/tracing/other_telemetry/connect_logs_and_traces/go.md +++ b/content/en/tracing/other_telemetry/connect_logs_and_traces/go.md @@ -23,7 +23,7 @@ further_reading: ## Manual injection -The Go tracer API allows printing span information along with log statements using the `%v` format specifier: +The Go APM SDK API allows printing span information along with log statements using the `%v` format specifier: ```go package main @@ -68,8 +68,8 @@ func main() { logrus.SetFormatter(&logrus.JSONFormatter{}) // Add Datadog context log hook - logrus.AddHook(&dd_logrus.DDContextLogHook{}) - + logrus.AddHook(&dd_logrus.DDContextLogHook{}) + // ... } ``` diff --git a/content/en/tracing/other_telemetry/connect_logs_and_traces/java.md b/content/en/tracing/other_telemetry/connect_logs_and_traces/java.md index 2eaa5d37c4ddd..944c0e23de801 100644 --- a/content/en/tracing/other_telemetry/connect_logs_and_traces/java.md +++ b/content/en/tracing/other_telemetry/connect_logs_and_traces/java.md @@ -26,7 +26,7 @@ Ensure log collection is configured. See [Java Log Collection][1] for Log4j, Log ## Automatic injection -Starting in version 0.74.0, the Java tracer automatically injects trace correlation identifiers into JSON formatted logs. For earlier versions, enable automatic injection in the Java tracer by adding `dd.logs.injection=true` as a system property, or through the environment variable `DD_LOGS_INJECTION=true`. Full configuration details can be found on the [Java tracer configuration][2] page. +Starting in version 0.74.0, the Java APM SDK automatically injects trace correlation identifiers into JSON formatted logs. For earlier versions, enable automatic injection in the Java APM SDK by adding `dd.logs.injection=true` as a system property, or through the environment variable `DD_LOGS_INJECTION=true`. Full configuration details can be found on the [Java APM SDK configuration][2] page. **Notes**: - Automatic injection of trace correlation is available for Log4j2, Log4j, or SLF4J and Logback. diff --git a/content/en/tracing/other_telemetry/connect_logs_and_traces/nodejs.md b/content/en/tracing/other_telemetry/connect_logs_and_traces/nodejs.md index 8988d662f43a8..cff9f82f2ef31 100644 --- a/content/en/tracing/other_telemetry/connect_logs_and_traces/nodejs.md +++ b/content/en/tracing/other_telemetry/connect_logs_and_traces/nodejs.md @@ -23,7 +23,7 @@ further_reading: ## Automatic injection -Enable injection with the environment variable `DD_LOGS_INJECTION=true` or by configuring the tracer directly: +Enable injection with the environment variable `DD_LOGS_INJECTION=true` or by configuring the APM SDK directly: ```javascript // This line must come before importing the logger. @@ -34,7 +34,7 @@ const tracer = require('dd-trace').init({ This enables automatic trace ID injection for `bunyan`, `paperplane`, `pino`, and `winston`. -If you haven't done so already, configure the Node.js tracer with `DD_ENV`, `DD_SERVICE`, and `DD_VERSION`. This will provide the best +If you haven't done so already, configure the Node.js APM SDK with `DD_ENV`, `DD_SERVICE`, and `DD_VERSION`. This will provide the best experience for adding `env`, `service`, and `version` (see [Unified Service Tagging][1] for more details). **Note**: Automatic injection only works for logs formatted as JSON. diff --git a/content/en/tracing/other_telemetry/connect_logs_and_traces/php.md b/content/en/tracing/other_telemetry/connect_logs_and_traces/php.md index b001c3442d8b2..ccbd42ff11944 100644 --- a/content/en/tracing/other_telemetry/connect_logs_and_traces/php.md +++ b/content/en/tracing/other_telemetry/connect_logs_and_traces/php.md @@ -23,9 +23,9 @@ further_reading: ## Automatic injection -Starting in version `0.89.0`, the PHP tracer automatically injects trace correlation identifiers into application logs. To enable automatic injection, set the environment variable `DD_LOGS_INJECTION` (INI setting `datadog.logs_injection`) to `true`. +Starting in version `0.89.0`, the PHP APM SDK automatically injects trace correlation identifiers into application logs. To enable automatic injection, set the environment variable `DD_LOGS_INJECTION` (INI setting `datadog.logs_injection`) to `true`. -The PHP tracer supports PSR-3 compliant loggers, such as [Monolog][4] or [Laminas Log][5]. +The PHP APM SDK supports PSR-3 compliant loggers, such as [Monolog][4] or [Laminas Log][5].
Note: Set up your logging library to produce logs in JSON format so that: @@ -37,15 +37,15 @@ The PHP tracer supports PSR-3 compliant loggers, such as [Monolog][4] or [Lamina ### Configure injection in logs -If you haven't done so already, configure the PHP tracer with `DD_ENV`, `DD_SERVICE`, and `DD_VERSION`. This provides the best experience for adding `env`, `service`, and `version` to your logs (see [Unified Service Tagging][6] for more details). +If you haven't done so already, configure the PHP APM SDK with `DD_ENV`, `DD_SERVICE`, and `DD_VERSION`. This provides the best experience for adding `env`, `service`, and `version` to your logs (see [Unified Service Tagging][6] for more details). -The PHP tracer provides various ways to configure the injection of trace correlation identifiers into your logs: +The PHP APM SDK provides various ways to configure the injection of trace correlation identifiers into your logs: - [Add the trace correlation identifiers to the log context](#add-the-trace-correlation-identifiers-to-the-log-context) - [Use placeholders in your message](#use-placeholders-in-your-message) #### Add the trace correlation identifiers to the log context {#add-the-trace-correlation-identifiers-to-the-log-context} -The default behavior of the PHP tracer is to add the trace correlation identifiers to the log context. +The default behavior of the PHP APM SDK is to add the trace correlation identifiers to the log context. For example, if you are using the [Monolog][4] library in a Laravel application as follows: @@ -55,17 +55,17 @@ use Illuminate\Support\Facades\Log; Log::debug('Hello, World!'); ``` -The PHP tracer adds the available trace correlation identifiers to the log context. The logged message above could be transformed into: +The PHP APM SDK adds the available trace correlation identifiers to the log context. The logged message above could be transformed into: ``` [2022-12-09 16:02:42] production.DEBUG: Hello, World! {"dd.trace_id":"1234567890abcdef","dd.span_id":"1234567890abcdef","dd.service":"laravel","dd.version":"8.0.0","dd.env":"production","status":"debug"} ``` -**Note**: If there is a placeholder in your message or if a trace ID is already present in the message, the PHP tracer does **not** add the trace correlation identifiers to the log context. +**Note**: If there is a placeholder in your message or if a trace ID is already present in the message, the PHP APM SDK does **not** add the trace correlation identifiers to the log context. #### Use placeholders in your message {#use-placeholders-in-your-message} -You can use placeholders in your message to automatically inject trace correlation identifiers into your logs. The PHP tracer supports the following placeholders: +You can use placeholders in your message to automatically inject trace correlation identifiers into your logs. The PHP APM SDK supports the following placeholders: - `%dd.trace_id%`: the trace ID - `%dd.span_id%`: the span ID - `%dd.service%`: the service name @@ -82,7 +82,7 @@ use Illuminate\Support\Facades\Log; Log::info('Hello, World! [%dd.trace_id% %dd.span_id% %status%]'); ``` -The PHP tracer replaces the placeholders with the corresponding values. For example, the logged message above could be transformed into: +The PHP APM SDK replaces the placeholders with the corresponding values. For example, the logged message above could be transformed into: ``` [2022-12-09 16:02:42] production.INFO: Hello, World! [dd.trace_id="1234567890abcdef" dd.span_id="1234567890abcdef" status="info"] diff --git a/content/en/tracing/other_telemetry/connect_logs_and_traces/python.md b/content/en/tracing/other_telemetry/connect_logs_and_traces/python.md index a821240dc5cc9..c757a00e720d5 100644 --- a/content/en/tracing/other_telemetry/connect_logs_and_traces/python.md +++ b/content/en/tracing/other_telemetry/connect_logs_and_traces/python.md @@ -36,7 +36,7 @@ To correlate your [traces][1] with your logs, complete the following steps: #### Step 1 - Activate automatic instrumentation Activate automatic instrumentation using one of the following options: - + Option 1: [Library Injection][5]: 1. Set the environment variable `DD_LOGS_INJECTION=true` in the application `deployment/manifest` file. 2. Follow the instructions in [Library Injection][5] to set up tracing. @@ -45,7 +45,7 @@ Option 2: `ddtrace-run`: 1. Set the environment variable `DD_LOGS_INJECTION=true` in the environment where the application is running. 2. Import **ddtrace** into the application. 3. Run the application with `ddtrace-run` (for example, `ddtrace-run python appname.py`). - + Option 3: `patch`: 1. Import **ddtrace** into the application. 2. Add `ddtrace.patch(logging=True)` to the start of the application code. @@ -82,7 +82,7 @@ To learn more about logs injection, read the [ddtrace documentation][6]. ### No standard library logging -If you are not using the standard library `logging` module, you can use the following code snippet to inject tracer information into your logs: +If you are not using the standard library `logging` module, you can use the following code snippet to inject APM SDK information into your logs: ```python from ddtrace import tracer diff --git a/content/en/tracing/trace_collection/_index.md b/content/en/tracing/trace_collection/_index.md index e3f7c78b36243..e2fad4a6a99f7 100644 --- a/content/en/tracing/trace_collection/_index.md +++ b/content/en/tracing/trace_collection/_index.md @@ -22,7 +22,7 @@ further_reading: To get started with Datadog APM, you need to follow these key steps: -1. Install and configure the Datadog Agent. +1. Install and configure the Datadog Agent. 2. Instrument your application.
Simplify your setup! Install the Agent and instrument your application in one step with Single Step Instrumentation.
@@ -40,7 +40,7 @@ There are two main approaches to instrument your application: automatic or custo Create spans for your application with minimal manual steps. To automatically instrument your application, you can use either of these options: - [Single Step Instrumentation (Beta)][7]: Run a one-line install command to install the Datadog Agent, enable APM, and instrument all of your services on your Linux host, VM, or container. -- [Datadog libraries][8]: Add Datadog tracing libraries to your application. +- [Datadog SDKs][8]: Add Datadog SDKs to your application. To learn more, see [automatic instrumentation][5]. @@ -48,14 +48,14 @@ To learn more, see [automatic instrumentation][5]. Capture observability data from in-house code or complex functions that aren't captured by automatic instrumentation. To custom instrument your application, you can use either of these options: -- [Datadog libraries][9]: Use Datadog tracing libraries to add and customize observability within Datadog. +- [Datadog APIs][9]: Use the Datadog API to add and customize observability within Datadog. - [OpenTelemetry APIs][10]: Use OpenTelemetry API support in Datadog libraries to have vendor-neutral instrumentation of your code. To learn more, see [custom instrumentation][6]. ## APM setup tutorials -The following tutorials guide you through setting up distributed tracing for a sample application on various infrastructure scenarios, with both automatic and custom instrumentation, using the Datadog tracing libraries: +The following tutorials guide you through setting up distributed tracing for a sample application on various infrastructure scenarios, with both automatic and custom instrumentation, using the Datadog SDKs: {{< whatsnext desc="Choose your language and environment:" >}} {{< nextlink href="tracing/guide/tutorial-enable-python-host" >}} Enabling Tracing on a Python Application on the Same Host as Datadog Agent{{< /nextlink >}} diff --git a/content/en/tracing/trace_collection/automatic_instrumentation/_index.md b/content/en/tracing/trace_collection/automatic_instrumentation/_index.md index 9837426aea9ef..e9a3eb50f2686 100644 --- a/content/en/tracing/trace_collection/automatic_instrumentation/_index.md +++ b/content/en/tracing/trace_collection/automatic_instrumentation/_index.md @@ -10,7 +10,7 @@ further_reading: ## Overview -Automatic instrumentation allows you to create spans automatically for your application. It allows you to capture observability data from a wide range of standard operations and popular frameworks with minimal manual intervention. You can automatically instrument your application when you install the Datadog Agent with [Single Step Instrumentation][5] or when you [manually add Datadog tracing libraries][6] to your code. +Automatic instrumentation allows you to create spans automatically for your application. It allows you to capture observability data from a wide range of standard operations and popular frameworks with minimal manual intervention. You can automatically instrument your application when you install the Datadog Agent with [Single Step Instrumentation][5] or when you [manually add APM SDKs][6] to your code. ## Use cases @@ -35,12 +35,12 @@ To get started, read the [Single Step Instrumentation][1] documentation. {{% /tab %}} -{{% tab "Datadog libraries" %}} +{{% tab "Datadog SDKs" %}} To automatically instrument your application with Datadog libraries: 1. [Install and configure the Agent](#install-and-configure-the-agent). -2. [Add the Datadog tracing library to your code](#instrument-your-application). +2. [Add the APM SDK to your code](#instrument-your-application). ### Install and configure the Agent @@ -87,7 +87,7 @@ For other environments, see the [Integrations][14] documentation for that enviro ### Instrument your application -Set up your application to send traces using one of the following official Datadog tracing libraries: +Set up your application to send traces using one of the following official APM SDKs: {{< partial name="apm/apm-languages.html" >}} diff --git a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/_index.md b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/_index.md index 10c7c807c8683..a1d5ace5b440f 100644 --- a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/_index.md +++ b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/_index.md @@ -1,5 +1,5 @@ --- -title: Add the Datadog Tracing Library +title: Add the APM SDK type: multi-code-lang aliases: - /tracing/languages @@ -8,7 +8,7 @@ aliases: - /tracing/trace_collection/dd_libraries/ --- -Set up your application to send [traces][1] using one of the following official Datadog tracing libraries: +Set up your application to send [traces][1] using one of the following official APM SDKs: {{< partial name="apm/apm-compatibility.html" >}} diff --git a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/cpp.md b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/cpp.md index a8beb2fed61a6..17eca8a3c8520 100644 --- a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/cpp.md +++ b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/cpp.md @@ -28,7 +28,7 @@ further_reading:
## Compatibility requirements -The C++ tracing library requires C++17 toolchain to build. For a full list of Datadog's tracing library compatiblity requirements and processor architecture support, visit the [Compatibility Requirements][3] page. +The C++ APM SDK requires C++17 toolchain to build. For a full list of Datadog's APM SDK compatiblity requirements and processor architecture support, visit the [Compatibility Requirements][3] page. ## Getting started Before you begin, make sure you have already [installed and configured the Agent][6]. @@ -36,7 +36,7 @@ Before you begin, make sure you have already [installed and configured the Agent ## Instrument your application Here is an example application that can be used for testing `dd-trace-cpp`. -This application creates a tracer instance with the default settings and generates a trace with two spans, which is reported under the service name `my-service`. +This application creates an APM SDK instance with the default settings and generates a trace with two spans, which is reported under the service name `my-service`. ```cpp // tracer_example.cpp @@ -192,7 +192,7 @@ DATADOG TRACER CONFIGURATION - {"collector":{"config":{"event_scheduler":{"type" ## Configuration -If needed, configure the tracing library to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][5] for details. +If needed, configure the APM SDK to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][5] for details. ## Further Reading diff --git a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-core.md b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-core.md index cef80e32a9624..627d6bb23b8fc 100644 --- a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-core.md +++ b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-core.md @@ -49,7 +49,7 @@ further_reading: ### Supported .NET Core runtimes -The .NET Tracer supports instrumentation on .NET Core 2.1, .NET Core 3.1, .NET 5, .NET 6, .NET 7, and .NET 8. +The .NET APM SDK supports instrumentation on .NET Core 2.1, .NET Core 3.1, .NET 5, .NET 6, .NET 7, and .NET 8. For a full list of Datadog's .NET Core library and processor architecture support (including legacy and maintenance versions), see [Compatibility Requirements][1]. @@ -60,7 +60,7 @@ For a full list of Datadog's .NET Core library and processor architecture suppor
- Note: Datadog's automatic instrumentation relies on the .NET CLR Profiling API. This API allows only one subscriber (for example, Datadog APM). To ensure maximum visibility, run only one APM solution in your application environment. + Note: Datadog's automatic instrumentation relies on the .NET CLR Profiling API. This API allows only one subscriber (for example, Datadog APM). To ensure maximum visibility, run only one APM solution in your application environment.
@@ -71,25 +71,25 @@ For a full list of Datadog's .NET Core library and processor architecture suppor Before you begin, make sure you've already [installed and configured the Agent][12]. -1. [Install the tracer.](#install-the-tracer) -2. [Enable the tracer for your service.](#enable-the-tracer-for-your-service) +1. [Install the APM SDK.](#install-the-apm-sdk) +2. [Enable the APM SDK for your service.](#enable-the-apm-sdk-for-your-service) 3. [View your live data.](#view-your-live-data) -### Install the tracer +### Install the APM SDK -After you install and configure your Datadog Agent, the next step is to add the tracing library directly in the application to instrument it. Read more about [compatibility information][1]. +After you install and configure your Datadog Agent, the next step is to add the APM SDK directly in the application to instrument it. Read more about [compatibility information][1]. -You can install the Datadog .NET Tracer machine-wide so that all services on the machine are instrumented, or you can install it on a per-application basis to allow developers to manage the instrumentation through the application's dependencies. To see machine-wide installation instructions, click the Windows or Linux tab. To see per-application installation instructions, click the NuGet tab. +You can install the Datadog .NET APM SDK machine-wide so that all services on the machine are instrumented, or you can install it on a per-application basis to allow developers to manage the instrumentation through the application's dependencies. To see machine-wide installation instructions, click the Windows or Linux tab. To see per-application installation instructions, click the NuGet tab. {{< tabs >}} {{% tab "Windows" %}} -To install the .NET Tracer machine-wide: +To install the .NET APM SDK machine-wide: -1. Download the [.NET Tracer MSI installer][1]. Select the MSI installer for the architecture that matches the operating system (x64 or x86). +1. Download the [.NET APM SDK MSI installer][1]. Select the MSI installer for the architecture that matches the operating system (x64 or x86). -2. Run the .NET Tracer MSI installer with administrator privileges. +2. Run the .NET APM SDK MSI installer with administrator privileges. You can also script the MSI setup by running the following in PowerShell: `Start-Process -Wait msiexec -ArgumentList '/qn /i datadog-apm.msi'` @@ -98,11 +98,11 @@ You can also script the MSI setup by running the following in PowerShell: `Start {{% tab "Linux" %}} -To install the .NET Tracer machine-wide: +To install the .NET APM SDK machine-wide: -1. Download the latest [.NET Tracer package][1] that supports your operating system and architecture. +1. Download the latest [.NET APM SDK package][1] that supports your operating system and architecture. -2. Run one of the following commands to install the package and create the .NET tracer log directory `/var/log/datadog/dotnet` with the appropriate permissions: +2. Run one of the following commands to install the package and create the .NET SDK log directory `/var/log/datadog/dotnet` with the appropriate permissions: Debian or Ubuntu : `sudo dpkg -i ./datadog-dotnet-apm__amd64.deb && /opt/datadog/createLogPath.sh` @@ -118,9 +118,9 @@ To install the .NET Tracer machine-wide: #### Chiseled containers -To install the .NET Tracer in chiseled or distroless Docker images (without a shell), use the following Dockerfile commands: +To install the .NET APM SDK in chiseled or distroless Docker images (without a shell), use the following Dockerfile commands: -- Use `ADD` to put the tracer files in the container. +- Use `ADD` to put the APM SDK files in the container. - Use `COPY --chown=$APP_UID` with an empty folder as source to create the logs path. For example, in your Dockerfile: @@ -139,7 +139,7 @@ COPY --chown=$APP_UID --from= /empty/ /var/log/datadog/dotnet/ Note: This installation does not instrument applications running in IIS. For applications running in IIS, follow the Windows machine-wide installation process.
-To install the .NET Tracer per-application: +To install the .NET APM SDK per-application: 1. Add the `Datadog.Trace.Bundle` [NuGet package][1] to your application. @@ -148,9 +148,9 @@ To install the .NET Tracer per-application: {{< /tabs >}} -### Enable the tracer for your service +### Enable the APM SDK for your service -To enable the .NET Tracer for your service, set the required environment variables and restart the application. +To enable the .NET APM SDK for your service, set the required environment variables and restart the application. For information about the different methods for setting environment variables, see [Configuring process environment variables](#configuring-process-environment-variables). @@ -160,7 +160,7 @@ For information about the different methods for setting environment variables, s #### Internet Information Services (IIS) -1. The .NET Tracer MSI installer adds all required environment variables. There are no environment variables you need to configure. +1. The .NET APM SDK MSI installer adds all required environment variables. There are no environment variables you need to configure.
Note: You must set the .NET CLR version for the application pool to No Managed Code as recommended by Microsoft. @@ -175,13 +175,13 @@ For information about the different methods for setting environment variables, s ```
- Note: Always use the commands above to completely stop and restart IIS to enable the tracer. Avoid using the IIS Manager GUI application or iisreset.exe. + Note: Always use the commands above to completely stop and restart IIS to enable the APM SDK. Avoid using the IIS Manager GUI application or iisreset.exe.
#### Services not in IIS -
Starting v2.14.0, you don't need to set CORECLR_PROFILER if you installed the tracer using the MSI.
+
Starting v2.14.0, you don't need to set CORECLR_PROFILER if you installed the APM SDK using the MSI.
1. Set the following required environment variables for automatic instrumentation to attach to your application: @@ -221,7 +221,7 @@ Docker examples are also available in the [repository][2]. ### View your live data -After enabling the .NET Tracer for your service: +After enabling the .NET APM SDK for your service: 1. Restart your service. @@ -231,7 +231,7 @@ After enabling the .NET Tracer for your service: ## Configuration -If needed, configure the tracing library to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][4] for details. +If needed, configure the APM SDK to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][4] for details. ## Custom instrumentation @@ -248,7 +248,7 @@ Your setup for custom instrumentation depends on your automatic instrumentation To use custom instrumentation in your .NET application: 1. Add the `Datadog.Trace` [NuGet package][1] to your application. -2. In your application code, access the global tracer through the `Datadog.Trace.Tracer.Instance` property to create new spans. +2. In your application code, access the global APM SDK through the `Datadog.Trace.Tracer.Instance` property to create new spans. [1]: https://www.nuget.org/packages/Datadog.Trace @@ -262,7 +262,7 @@ To use custom instrumentation in your .NET application: To use custom instrumentation in your .NET application: 1. Add the `Datadog.Trace` [NuGet package][1] to your application. -2. In your application code, access the global tracer through the `Datadog.Trace.Tracer.Instance` property to create new spans. +2. In your application code, access the global APM SDK through the `Datadog.Trace.Tracer.Instance` property to create new spans. [1]: https://www.nuget.org/packages/Datadog.Trace @@ -272,7 +272,7 @@ To use custom instrumentation in your .NET application: To use custom instrumentation in your .NET application: -1. In your application code, access the global tracer through the `Datadog.Trace.Tracer.Instance` property to create new spans. +1. In your application code, access the global APM SDK through the `Datadog.Trace.Tracer.Instance` property to create new spans. {{% /tab %}} @@ -282,13 +282,13 @@ For more information on adding spans and tags for custom instrumentation, see th ## Configuring process environment variables -To attach automatic instrumentation to your service, you must set the required environment variables before starting the application. See [Enable the tracer for your service](#enable-the-tracer-for-your-service) section to identify which environment variables to set based on your .NET Tracer installation method and follow the examples below to correctly set the environment variables based on the environment of your instrumented service. +To attach automatic instrumentation to your service, you must set the required environment variables before starting the application. See [Enable the APM SDK for your service](#enable-the-tracer-for-your-service) section to identify which environment variables to set based on your .NET APM SDK installation method and follow the examples below to correctly set the environment variables based on the environment of your instrumented service. ### Windows #### Windows services -
Starting v2.14.0, you don't need to set CORECLR_PROFILER if you installed the tracer using the MSI.
+
Starting v2.14.0, you don't need to set CORECLR_PROFILER if you installed the APM SDK using the MSI.
{{< tabs >}} @@ -340,7 +340,7 @@ To automatically instrument a console application, set the environment variables ```bat rem Set environment variables SET CORECLR_ENABLE_PROFILING=1 -rem Unless v2.14.0+ and you installed the tracer with the MSI +rem Unless v2.14.0+ and you installed the SDK with the MSI SET CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8} rem Set additional Datadog environment variables diff --git a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-framework.md b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-framework.md index 5c699a501e51b..60144208dec62 100644 --- a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-framework.md +++ b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-framework.md @@ -53,7 +53,7 @@ further_reading: ### Supported .NET Framework runtimes -The .NET Tracer supports instrumentation on .NET Framework >= 4.6.1. +The .NET APM SDK supports instrumentation on .NET Framework >= 4.6.1. For a full list of Datadog's .NET Framework library and processor architecture support (including legacy and maintenance versions), see [Compatibility Requirements][1]. @@ -71,25 +71,25 @@ For a full list of Datadog's .NET Framework library and processor architecture s Before you begin, make sure you've already [installed and configured the Agent][12]. -1. [Install the tracer.](#install-the-tracer) -3. [Enable the tracer for your service.](#enable-the-tracer-for-your-service) +1. [Install the APM SDK.](#install-the-apm-sdk) +3. [Enable the APM SDK for your service.](#enable-the-apm-sdk-for-your-service) 4. [View your live data.](#view-your-live-data) -### Install the tracer +### Install the APM SDK -After you install and configure your Datadog Agent, the next step is to add the tracing library directly in the application to instrument it. Read more about [compatibility information][1]. +After you install and configure your Datadog Agent, the next step is to add the APM SDK directly in the application to instrument it. Read more about [compatibility information][1]. -Install the Datadog .NET Tracer machine-wide so that all services on the machine are instrumented or on a per-application basis, so developers can manage the instrumentation through the application's dependencies. To see machine-wide installation instructions, click the Windows tab. To see per-application installation instructions, click the NuGet tab. +Install the Datadog .NET APM SDK machine-wide so that all services on the machine are instrumented or on a per-application basis, so developers can manage the instrumentation through the application's dependencies. To see machine-wide installation instructions, click the Windows tab. To see per-application installation instructions, click the NuGet tab. {{< tabs >}} {{% tab "Windows" %}} -To install the .NET Tracer machine-wide: +To install the .NET APM SDK machine-wide: -1. Download the [.NET Tracer MSI installer][1]. Select the MSI installer for the architecture that matches the operating system (x64 or x86). +1. Download the [.NET APM SDK MSI installer][1]. Select the MSI installer for the architecture that matches the operating system (x64 or x86). -2. Run the .NET Tracer MSI installer with administrator privileges. +2. Run the .NET APM SDK MSI installer with administrator privileges. You can also script the MSI setup by running the following in PowerShell: `Start-Process -Wait msiexec -ArgumentList '/qn /i datadog-apm.msi'` @@ -102,7 +102,7 @@ You can also script the MSI setup by running the following in PowerShell: `Start Note: This installation does not instrument applications running in IIS. For applications running in IIS, follow the Windows machine-wide installation process.
-To install the .NET Tracer per-application: +To install the .NET APM SDK per-application: 1. Add the `Datadog.Trace.Bundle` [NuGet package][1] to your application. @@ -112,9 +112,9 @@ To install the .NET Tracer per-application: {{< /tabs >}} -### Enable the tracer for your service +### Enable the APM SDK for your service -To enable the .NET Tracer for your service, set the required environment variables and restart the application. +To enable the .NET APM SDK for your service, set the required environment variables and restart the application. For information about the different methods for setting environment variables, see [Configuring process environment variables](#configuring-process-environment-variables). @@ -124,7 +124,7 @@ For information about the different methods for setting environment variables, s #### Internet Information Services (IIS) -1. The .NET Tracer MSI installer adds all required environment variables. There are no environment variables you need to configure. +1. The .NET APM SDK MSI installer adds all required environment variables. There are no environment variables you need to configure. 2. To automatically instrument applications hosted in IIS, completely stop and start IIS by running the following commands as an administrator: @@ -135,13 +135,13 @@ For information about the different methods for setting environment variables, s ```
- Note: Always use the commands above to completely stop and restart IIS to enable the tracer. Avoid using the IIS Manager GUI application or iisreset.exe. + Note: Always use the commands above to completely stop and restart IIS to enable the APM SDK. Avoid using the IIS Manager GUI application or iisreset.exe.
#### Services not in IIS -
Starting v2.14.0, you don't need to set COR_PROFILER if you installed the tracer using the MSI.
+
Starting v2.14.0, you don't need to set COR_PROFILER if you installed the APM SDK using the MSI.
1. Set the following required environment variables for automatic instrumentation to attach to your application: @@ -168,7 +168,7 @@ Docker examples are also available in the [repository][2]. ### View your live data -After enabling the .NET Tracer for your service: +After enabling the .NET APM SDK for your service: 1. Restart your service. @@ -178,7 +178,7 @@ After enabling the .NET Tracer for your service: ## Configuration -If needed, configure the tracing library to send application performance telemetry data, including setting up Unified Service Tagging. Read [Library Configuration][4] for details. +If needed, configure the APM SDK to send application performance telemetry data, including setting up Unified Service Tagging. Read [Library Configuration][4] for details. ## Custom instrumentation @@ -195,7 +195,7 @@ Your setup for custom instrumentation depends on your automatic instrumentation To use custom instrumentation in your .NET application: 1. Add the `Datadog.Trace` [NuGet package][1] to your application. -2. In your application code, access the global tracer through the `Datadog.Trace.Tracer.Instance` property to create new spans. +2. In your application code, access the global APM SDK through the `Datadog.Trace.Tracer.Instance` property to create new spans. [1]: https://www.nuget.org/packages/Datadog.Trace @@ -205,7 +205,7 @@ To use custom instrumentation in your .NET application: To use custom instrumentation in your .NET application: -1. In your application code, access the global tracer through the `Datadog.Trace.Tracer.Instance` property to create new spans. +1. In your application code, access the global APM SDK through the `Datadog.Trace.Tracer.Instance` property to create new spans. {{% /tab %}} @@ -215,11 +215,11 @@ For more information on adding spans and tags for custom instrumentation, see th ## Configuring process environment variables -To attach automatic instrumentation to your service, set the required environment variables before starting the application. See [Enable the tracer for your service](#enable-the-tracer-for-your-service) section to identify which environment variables to set based on your .NET Tracer installation method and follow the examples below to correctly set the environment variables based on the environment of your instrumented service. +To attach automatic instrumentation to your service, set the required environment variables before starting the application. See [Enable the APM SDK for your service](#enable-the-apm-sdk-for-your-service-for-your-service) section to identify which environment variables to set based on your .NET APM SDK installation method and follow the examples below to correctly set the environment variables based on the environment of your instrumented service. ### Windows -
Starting v2.14.0, you don't need to set COR_PROFILER if you installed the tracer using the MSI.
+
Starting v2.14.0, you don't need to set COR_PROFILER if you installed the APM SDK using the MSI.
#### Windows services @@ -273,7 +273,7 @@ To automatically instrument a console application, set the environment variables ```bat rem Set environment variables SET COR_ENABLE_PROFILING=1 -rem Unless v2.14.0+ and you installed the tracer with the MSI +rem Unless v2.14.0+ and you installed the SDK with the MSI SET COR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8} rem Set additional Datadog environment variables diff --git a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/go.md b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/go.md index e3cafd323345c..eb72a7bd9ca5d 100644 --- a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/go.md +++ b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/go.md @@ -25,7 +25,7 @@ further_reading: ## Compatibility requirements -The Go Tracer requires Go `1.18+` and Datadog Agent `>= 5.21.1`. For a full list of Datadog's Go version and framework support (including legacy and maintenance versions), see the [Compatibility Requirements][1] page. +The Go APM SDK requires Go `1.18+` and Datadog Agent `>= 5.21.1`. For a full list of Datadog's Go version and framework support (including legacy and maintenance versions), see the [Compatibility Requirements][1] page. ## Getting started @@ -37,7 +37,7 @@ Datadog has a series of pluggable packages which provide out-of-the-box support ## Configuration -If needed, configure the tracing library to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][3] for details. +If needed, configure the APM SDK to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][3] for details. For configuration instructions and details about using the API, see the Datadog [API documentation][4]. diff --git a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/java.md b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/java.md index 7d93f6f4fa6b2..f1164cb4ef74b 100644 --- a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/java.md +++ b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/java.md @@ -21,7 +21,7 @@ further_reading: --- ## Compatibility requirements -The latest Java Tracer supports all JVMs version 8 and higher. For additional information about JVM versions below 8, read [Supported JVM runtimes][10]. +The latest Java APM SDK supports all JVMs version 8 and higher. For additional information about JVM versions below 8, read [Supported JVM runtimes][10]. For a full list of Datadog's Java version and framework support (including legacy and maintenance versions), read [Compatibility Requirements][1]. @@ -31,11 +31,11 @@ Before you begin, make sure you've already [installed and configured the Agent][ ### Instrument your application -After you install and configure your Datadog Agent, the next step is to add the tracing library directly in the application to instrument it. Read more about [compatibility information][1]. +After you install and configure your Datadog Agent, the next step is to add the APM SDK directly in the application to instrument it. Read more about [compatibility information][1]. To begin tracing your applications: -1. Download `dd-java-agent.jar` that contains the latest tracer class files, to a folder that is accessible by your Datadog user: +1. Download `dd-java-agent.jar` that contains the latest APM SDK class files, to a folder that is accessible by your Datadog user: {{< tabs >}} {{% tab "Wget" %}} @@ -82,7 +82,7 @@ To begin tracing your applications: Additional [configuration options](#configuration) are described below. -### Add the Java Tracer to the JVM +### Add the Java APM SDK to the JVM Use the documentation for your application server to figure out the right way to pass in `-javaagent` and other JVM arguments. Here are instructions for some commonly used frameworks: @@ -229,7 +229,7 @@ Instrumentation may come from auto-instrumentation, the OpenTracing API, or a mi ## Configuration -If needed, configure the tracing library to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][9] for details. +If needed, configure the APM SDK to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][9] for details. ## Further Reading diff --git a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/nodejs.md b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/nodejs.md index e548077cb008a..0a983115401ae 100644 --- a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/nodejs.md +++ b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/nodejs.md @@ -29,35 +29,35 @@ further_reading: --- ## Compatibility requirements -The latest Node.js Tracer supports Node.js versions `>=18`. For a full list of Datadog's Node.js version and framework support (including legacy and maintenance versions), see the [Compatibility Requirements][1] page. +The latest Node.js APM SDK supports Node.js versions `>=18`. For a full list of Datadog's Node.js version and framework support (including legacy and maintenance versions), see the [Compatibility Requirements][1] page. ## Getting started -Before you begin, make sure you've already [installed and configured the Agent][13]. Then, complete the following steps to add the Datadog tracing library to your Node.js application to instrument it. +Before you begin, make sure you've already [installed and configured the Agent][13]. Then, complete the following steps to add the Datadog APM SDK to your Node.js application to instrument it. -### Install the Datadog tracing library +### Install the Datadog APM SDK -To install the Datadog tracing library using npm for Node.js 18+, run: +To install the Datadog APM SDK using npm for Node.js 18+, run: ```shell npm install dd-trace --save ``` -To install the Datadog tracing library (version 4.x of `dd-trace`) for end-of-life Node.js version 16, run: +To install the Datadog APM SDK (version 4.x of `dd-trace`) for end-of-life Node.js version 16, run: ```shell npm install dd-trace@latest-node16 ``` For more information on Datadog's distribution tags and Node.js runtime version support, see the [Compatibility Requirements][1] page. If you are upgrading from a previous major version of the library (0.x, 1.x, 2.x, 3.x or 4.x) to another major version, read the [Migration Guide][5] to assess any breaking changes. -### Import and initialize the tracer +### Import and initialize the APM SDK -Import and initialize the tracer either in code or with command line arguments. The Node.js tracing library needs to be imported and initialized **before** any other module. +Import and initialize the APM SDK either in code or with command line arguments. The Node.js APM SDK needs to be imported and initialized **before** any other module. -After you have completed setup, if you are not receiving complete traces, including missing URL routes for web requests, or disconnected or missing spans, **confirm the tracer has been imported and initialized correctly**. The tracing library being initialized first is necessary for the tracer to properly patch all of the required libraries for automatic instrumentation. +After you have completed setup, if you are not receiving complete traces, including missing URL routes for web requests, or disconnected or missing spans, **confirm the SDK has been imported and initialized correctly**. The APM SDK being initialized first is necessary to properly patch all of the required libraries for automatic instrumentation. -When using a transpiler such as TypeScript, Webpack, Babel, or others, import and initialize the tracer library in an external file and then import that file as a whole when building your application. +When using a transpiler such as TypeScript, Webpack, Babel, or others, import and initialize the APM SDK in an external file and then import that file as a whole when building your application. -#### Option 1: Add the tracer in code +#### Option 1: Add the APM SDK in code ##### JavaScript @@ -68,7 +68,7 @@ const tracer = require('dd-trace').init(); ##### TypeScript and bundlers -For TypeScript and bundlers that support EcmaScript Module syntax, initialize the tracer in a separate file to maintain correct load order. +For TypeScript and bundlers that support EcmaScript Module syntax, initialize the APM SDK in a separate file to maintain correct load order. ```typescript // server.ts @@ -88,19 +88,19 @@ initializes in one step. import 'dd-trace/init'; ``` -#### Option 2: Add the tracer with command line arguments +#### Option 2: Add the APM SDK with command line arguments -Use the `--require` option to Node.js to load and initialize the tracer in one step. +Use the `--require` option to Node.js to load and initialize the SDK in one step. ```sh node --require dd-trace/init app.js ``` -**Note:** This approach requires using environment variables for all configuration of the tracer. +**Note:** This approach requires using environment variables for all configuration of the APM SDK. #### ESM applications only: Import the loader -EcmaScript Modules (ESM) applications require an additional command line argument. Run this command regardless of how the tracer is imported and initialized. +EcmaScript Modules (ESM) applications require an additional command line argument. Run this command regardless of how the SDK is imported and initialized. **Node.js < v20.6** ```shell @@ -119,12 +119,12 @@ node --import dd-trace/register.js entrypoint.js Bundlers crawl all of the `require()` calls that an application makes to files on disk. It replaces the `require()` calls with custom code and combines all of the resulting JavaScript into one "bundled" file. When a built-in module is loaded, such as `require('fs')`, that call can then remain the same in the resulting bundle. APM tools like `dd-trace` stop working at this point. They can continue to intercept the calls for built-in modules but don't intercept calls to third party libraries. This means that when you bundle a `dd-trace` app with a bundler it is likely to capture information about disk access (through `fs`) and outbound HTTP requests (through `http`), but omit calls to third party libraries. For example: -- Extracting incoming request route information for the `express` framework. +- Extracting incoming request route information for the `express` framework. - Showing which query is run for the `mysql` database client. A common workaround is to treat all third party modules that the APM needs to instrument as being "external" to the bundler. With this setting the instrumented modules remain on disk and continue to be loaded with `require()` while the non-instrumented modules are bundled. However, this results in a build with many extraneous files and starts to defeat the purpose of bundling. -Datadog recommends you have custom-built bundler plugins. These plugins are able to instruct the bundler on how to behave, inject intermediary code and intercept the "translated" `require()` calls. As a result, more packages are included in the bundled JavaScript file. +Datadog recommends you have custom-built bundler plugins. These plugins are able to instruct the bundler on how to behave, inject intermediary code and intercept the "translated" `require()` calls. As a result, more packages are included in the bundled JavaScript file. **Note**: Some applications can have 100% of modules bundled, however native modules still need to remain external to the bundle. @@ -168,7 +168,7 @@ esbuild.build({ }) ``` -**Note**: Due to the usage of native modules in the tracer, which are compiled C++ code, (usually ending with a `.node` file extension), you need to add entries to your `external` list. Currently native modules used in the Node.js tracer live inside of `@datadog` prefixed packages. This will also require that you ship a `node_modules/` directory alongside your bundled application. You don't need to ship your entire `node_modules/` directory as it would contain many superfluous packages that should be contained in your bundle. +**Note**: Due to the usage of native modules in the APM SDK, which are compiled C++ code, (usually ending with a `.node` file extension), you need to add entries to your `external` list. Currently native modules used in the Node.js APM SDK live inside of `@datadog` prefixed packages. This will also require that you ship a `node_modules/` directory alongside your bundled application. You don't need to ship your entire `node_modules/` directory as it would contain many superfluous packages that should be contained in your bundle. To generate a smaller `node_modules/` directory with only the required native modules, (and their dependencies) you can first determine the versions of packages that you need, then create a temporary directory to install them into, and copy the resulting `node_modules/` directory from it. For example: @@ -190,9 +190,9 @@ At this stage you should be able to deploy your bundle, (which is your applicati ## Configuration -If needed, configure the tracing library to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][4] for details. +If needed, configure the APM SDK to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][4] for details. -Read [tracer settings][3] for a list of initialization options. +Read [APM SDK settings][3] for a list of initialization options. ## Further Reading diff --git a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/php.md b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/php.md index 1abcf89468828..064bdc1f053b1 100644 --- a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/php.md +++ b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/php.md @@ -31,7 +31,7 @@ further_reading: --- ## Compatibility requirements -The minimum PHP version requirement for the latest version of `dd-trace-php` is PHP 7. If you are using PHP 5, you can still use the PHP tracer up to version [0.99](https://github.com/DataDog/dd-trace-php/releases/tag/0.99.0). PHP 5 is EOL as of version 1.0 of the PHP library. +The minimum PHP version requirement for the latest version of `dd-trace-php` is PHP 7. If you are using PHP 5, you can still use the PHP APM SDK up to version [0.99](https://github.com/DataDog/dd-trace-php/releases/tag/0.99.0). PHP 5 is EOL as of version 1.0 of the PHP library. For a full list of Datadog's PHP version and framework support (including legacy and maintenance versions), see the [Compatibility Requirements][1] page. @@ -91,7 +91,7 @@ If the PHP CLI binary is built as NTS (non thread-safe), while Apache uses a ZTS
SELinux: -If the httpd SELinux policies are configured on the host, functionality of the tracer may be limited, unless writing and executing temporary files is explicitly allowed in SELinux configuration: +If the httpd SELinux policies are configured on the host, functionality of the APM SDK may be limited, unless writing and executing temporary files is explicitly allowed in SELinux configuration: `allow httpd_t httpd_tmpfs_t:file { execute execute_no_trans };` @@ -101,7 +101,7 @@ If the httpd SELinux policies are configured on the host, functionality of the t Tracing is automatically enabled by default. Once the extension is installed, **ddtrace** traces your application and sends traces to the Agent. -Datadog supports all web frameworks out of the box. Automatic instrumentation works by modifying PHP's runtime to wrap certain functions and methods to trace them. The PHP tracer supports automatic instrumentation for several libraries. +Datadog supports all web frameworks out of the box. Automatic instrumentation works by modifying PHP's runtime to wrap certain functions and methods to trace them. The PHP APM SDK supports automatic instrumentation for several libraries. Automatic instrumentation captures: @@ -112,7 +112,7 @@ Automatic instrumentation captures: ## Configuration -If needed, configure the tracing library to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][6] for details. +If needed, configure the APM SDK to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][6] for details. ## Tracing short- and long-running CLI scripts @@ -120,7 +120,7 @@ Additional steps are required for instrumenting CLI scripts. Read [Trace PHP CLI ## Upgrading -To upgrade the PHP tracer, [download the latest release][5] and follow the same steps as [installing the extension](#install-the-extension). +To upgrade the PHP APM SDK, [download the latest release][5] and follow the same steps as [installing the extension](#install-the-extension). Once the installation is completed restart PHP (PHP-FPM or the Apache SAPI). @@ -128,7 +128,7 @@ Once the installation is completed restart PHP (PHP-FPM or the Apache SAPI). ## Removing -To remove the PHP tracer: +To remove the PHP APM SDK: 1. For php-fpm, stop the php-fpm service, otherwise stop the Apache web server. 2. Unlink files `98-ddtrace.ini` and `99-ddtrace-custom.ini` from your php configuration folder. @@ -138,7 +138,7 @@ To remove the PHP tracer: ## Troubleshooting an application crash -In the unusual event of an application crash caused by the PHP tracer, typically because of a segmentation fault, the best thing to do is obtain a core dump or a Valgrind trace and contact Datadog support. +In the unusual event of an application crash caused by the PHP APM SDK, typically because of a segmentation fault, the best thing to do is obtain a core dump or a Valgrind trace and contact Datadog support. ### Install debug symbols diff --git a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/python.md b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/python.md index d984d1df141c0..4203bfc3c3e8b 100644 --- a/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/python.md +++ b/content/en/tracing/trace_collection/automatic_instrumentation/dd_libraries/python.md @@ -34,9 +34,9 @@ Before you begin, make sure you've already [installed and configured the Agent][ ### Instrument your application -After you install and configure your Datadog Agent, the next step is to add the tracing library directly in the application to instrument it. Read more about [compatibility information][1]. +After you install and configure your Datadog Agent, the next step is to add the APM SDK directly in the application to instrument it. Read more about [compatibility information][1]. -To begin tracing applications written in Python, install the Datadog Tracing library, `ddtrace`, using pip: +To begin tracing applications written in Python, install the Datadog APM SDK, `ddtrace`, using pip: ```python pip install ddtrace @@ -56,11 +56,11 @@ For example, if your application is started with `python app.py` then: ddtrace-run python app.py ``` -Once you've finished setup and are running the tracer with your application, you can run `ddtrace-run --info` to check that configurations are working as expected. Note that the output from this command does not reflect configuration changes made during runtime in code. +Once you've finished setup and are running the APM SDK with your application, you can run `ddtrace-run --info` to check that configurations are working as expected. Note that the output from this command does not reflect configuration changes made during runtime in code. ## Configuration -If needed, configure the tracing library to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][3] for details. +If needed, configure the APM SDK to send application performance telemetry data as you require, including setting up Unified Service Tagging. Read [Library Configuration][3] for details. The connection for traces can also be configured in code: diff --git a/content/en/tracing/trace_collection/automatic_instrumentation/single-step-apm.md b/content/en/tracing/trace_collection/automatic_instrumentation/single-step-apm.md index 469de6dd7d6b3..f48774d812f8d 100644 --- a/content/en/tracing/trace_collection/automatic_instrumentation/single-step-apm.md +++ b/content/en/tracing/trace_collection/automatic_instrumentation/single-step-apm.md @@ -135,7 +135,7 @@ To enable Single Step Instrumentation with the Datadog Operator: features: apm: instrumentation: - enabled: true + enabled: true ``` Replace `` with your [Datadog site][12] and `` with the environment your Agent is installed on (for example, `env:staging`).
See Advanced options for more options.
@@ -145,7 +145,7 @@ To enable Single Step Instrumentation with the Datadog Operator: kubectl apply -f /path/to/your/datadog-agent.yaml ``` 5. After waiting a few minutes for the Datadog Cluster Agent changes to apply, restart your applications. -{{< /collapse-content >}} +{{< /collapse-content >}} {{< collapse-content title="Installing with Helm" level="h4" >}} Follow these steps to enable Single Step Instrumentation across your entire cluster with Helm. This automatically sends traces for all applications in the cluster that are written in supported languages. @@ -182,7 +182,7 @@ To enable Single Step Instrumentation with Helm: ``` 5. After waiting a few minutes for the Datadog Cluster Agent changes to apply, restart your applications. -{{< /collapse-content >}} +{{< /collapse-content >}} [1]: https://v3.helm.sh/docs/intro/install/ [2]: https://kubernetes.io/docs/tasks/tools/install-kubectl/ @@ -205,19 +205,19 @@ When you run the one-line installation command, there are a few options to custo {{< tabs >}} {{% tab "Linux host or VM" %}} -### Specifying tracing library versions {#lib-linux} +### Specifying APM SDK versions {#lib-linux} By default, enabling APM on your server installs support for Java, Python, Ruby, Node.js, and .NET Core services. If you only have services implemented in some of these languages, set `DD_APM_INSTRUMENTATION_LIBRARIES` in your one-line installation command. -For example, to install support for only v1.25.0 of the Java tracing library and the latest Python tracing library, add the following to the installation command: +For example, to install support for only v1.25.0 of the Java APM SDK and the latest Python APM SDK, add the following to the installation command: ```shell DD_APM_INSTRUMENTATION_LIBRARIES="java:1.25.0,python" DD_API_KEY= DD_SITE="" DD_APM_INSTRUMENTATION_ENABLED=host DD_ENV=staging bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_agent7.sh)" ``` -You can optionally provide a version number for the tracing library by placing a colon after the language name and specifying the tracing library version. If you don't specify a version, it defaults to the latest version. Language names are comma-separated. +You can optionally provide a version number for the APM SDK by placing a colon after the language name and specifying the APM SDK version. If you don't specify a version, it defaults to the latest version. Language names are comma-separated. -Available versions are listed in tracer source repositories for each language: +Available versions are listed in SDK source repositories for each language: - [Java][8] (`java`) - [Node.js][9] (`js`) @@ -237,19 +237,19 @@ Available versions are listed in tracer source repositories for each language: {{% tab "Docker" %}} -### Specifying tracing library versions {#lib-docker} +### Specifying APM SDK versions {#lib-docker} By default, enabling APM on your server installs support for Java, Python, Ruby, Node.js, and .NET services. If you only have services implemented in some of these languages, set `DD_APM_INSTRUMENTATION_LIBRARIES` when running the installation script. -For example, to install support for only v1.25.0 of the Java tracing library and the latest Python tracing library, add the following to the installation command: +For example, to install support for only v1.25.0 of the Java APM SDK and the latest Python APM SDK, add the following to the installation command: ```shell DD_APM_INSTRUMENTATION_ENABLED=docker DD_NO_AGENT_INSTALL=true DD_APM_INSTRUMENTATION_LIBRARIES="java:1.25.0,python" bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_agent7.sh)" ``` -You can optionally provide a version number for the tracing library by placing a colon after the language name and specifying the tracing library version. If you don't specify a version, it defaults to the latest version. Language names are comma-separated. +You can optionally provide a version number for the APM SDK by placing a colon after the language name and specifying the APM SDK version. If you don't specify a version, it defaults to the latest version. Language names are comma-separated. -Available versions are listed in tracer source repositories for each language: +Available versions are listed in SDK source repositories for each language: - [Java][8] (`java`) - [Node.js][9] (`js`) @@ -283,7 +283,7 @@ To enable instrumentation for specific namespaces, add `enabledNamespaces` confi features: apm: instrumentation: - enabled: true + enabled: true enabledNamespaces: # Add namespaces to instrument - default - applications @@ -295,7 +295,7 @@ To disable instrumentation for specific namespaces, add `disabledNamespaces` con features: apm: instrumentation: - enabled: true + enabled: true disabledNamespaces: # Add namespaces to not instrument - default - applications @@ -331,16 +331,16 @@ To disable instrumentation for specific namespaces, add `disabledNamespaces` con {{< /collapse-content >}} -### Specifying tracing library versions +### Specifying APM SDK versions -
Starting with Datadog Cluster Agent v7.52.0+, you can automatically instrument a subset of your applications, based on the tracing libraries you specify.
+
Starting with Datadog Cluster Agent v7.52.0+, you can automatically instrument a subset of your applications, based on the APM SDKs you specify.
-Specify Datadog tracing libraries and their versions to automatically instrument applications written in those languages. You can configure this in two ways, which are applied in the following order of precedence: +Specify Datadog APM SDKs and their versions to automatically instrument applications written in those languages. You can configure this in two ways, which are applied in the following order of precedence: 1. [Specify at the service level](#specifying-at-the-service-level), or 2. [Specify at the cluster level](#specifying-at-the-cluster-level). -**Default**: If you don't specify any library versions and `apm.instrumentation.enabled=true`, applications written in supported languages are automatically instrumented using the latest tracing library versions. +**Default**: If you don't specify any library versions and `apm.instrumentation.enabled=true`, applications written in supported languages are automatically instrumented using the latest APM SDK versions. #### Specifying at the service level @@ -354,7 +354,7 @@ To automatically instrument applications in specific pods, add the appropriate l | .NET | `admission.datadoghq.com/dotnet-lib.version: ""` | | Ruby | `admission.datadoghq.com/ruby-lib.version: ""` | -Replace `` with the desired library version. Available versions are listed in the [Datadog container registries](#container-registries) and tracer source repositories for each language: +Replace `` with the desired library version. Available versions are listed in the [Datadog container registries](#container-registries) and SDK source repositories for each language: - [Java][31] - [Node.js][32] @@ -437,7 +437,7 @@ Datadog publishes instrumentation libraries images on gcr.io, Docker Hub, and Am The `DD_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_CONTAINER_REGISTRY` environment variable in the Datadog Cluster Agent configuration specifies the registry used by the Admission Controller. The default value is `gcr.io/datadoghq`. -You can pull the tracing library from a different registry by changing it to `docker.io/datadog`, `public.ecr.aws/datadog`, or another URL if you are hosting the images in a local container registry. +You can pull the APM SDK from a different registry by changing it to `docker.io/datadog`, `public.ecr.aws/datadog`, or another URL if you are hosting the images in a local container registry. For instructions on changing your container registry, see [Changing Your Container Registry][30]. diff --git a/content/en/tracing/trace_collection/compatibility/_index.md b/content/en/tracing/trace_collection/compatibility/_index.md index 906e20632f870..cc9f9b2a9c58b 100644 --- a/content/en/tracing/trace_collection/compatibility/_index.md +++ b/content/en/tracing/trace_collection/compatibility/_index.md @@ -5,7 +5,7 @@ description: further_reading: - link: "/tracing/trace_collection/" tag: "Documentation" - text: "Add the tracing library to your application" + text: "Add the APM SDK to your application" aliases: - /tracing/compatibility - /tracing/compatibility_requirements diff --git a/content/en/tracing/trace_collection/compatibility/dotnet-core.md b/content/en/tracing/trace_collection/compatibility/dotnet-core.md index 2f3a295d56033..0c38662e9eb84 100644 --- a/content/en/tracing/trace_collection/compatibility/dotnet-core.md +++ b/content/en/tracing/trace_collection/compatibility/dotnet-core.md @@ -1,6 +1,6 @@ --- title: .NET and .NET Core Compatibility Requirements -description: 'Compatibility Requirements for the .NET Tracer' +description: 'Compatibility Requirements for the .NET APM SDK' aliases: - /tracing/compatibility_requirements/dotnet-core - /tracing/setup_overview/compatibility_requirements/dotnet-core @@ -20,13 +20,13 @@ further_reading: --- -The Datadog .NET Tracer supports all .NET-based languages (for example, C#, F#, Visual Basic). It has [beta support for trimmed apps][12]. +The Datadog .NET APM SDK supports all .NET-based languages (for example, C#, F#, Visual Basic). It has [beta support for trimmed apps][12]. -The .NET Tracer is open source. For more information, see the [.NET Tracer repository][1]. +The .NET APM SDK is open source. For more information, see the [.NET APM SDK repository][1]. ## Supported .NET and .NET Core runtimes -The .NET Tracer supports automatic instrumentation on the following .NET and .NET Core versions. It also supports [.NET Framework][2]. +The .NET APM SDK supports automatic instrumentation on the following .NET and .NET Core versions. It also supports [.NET Framework][2]. | .NET Version | Microsoft End of Life | Support level | Package version | | -------------------- | --------------------- | -------------------- | -------------------- | @@ -44,7 +44,7 @@ Additional information can be found in [Microsoft's .NET and .NET Core Lifecycle ## Supported processor architectures -The .NET Tracer supports automatic instrumentation on the following architectures: +The .NET APM SDK supports automatic instrumentation on the following architectures: | Processor architectures | Support level | Package version | | ------------------------------------------|-----------------------|----------------------------------------| @@ -56,7 +56,7 @@ The .NET Tracer supports automatic instrumentation on the following architecture ## Integrations -The [latest version of the .NET Tracer][4] can automatically instrument the following libraries: +The [latest version of the .NET APM SDK][4] can automatically instrument the following libraries: | Framework or library | NuGet package | Integration Name | | ------------------------------- | ---------------------------------------------------------------------------------------------------- | -------------------- | @@ -92,9 +92,13 @@ The [latest version of the .NET Tracer][4] can automatically instrument the foll Don't see the library you're looking for? First, check if the library produces observability data compatible with OpenTelemetry (see [Using OpenTelemetry Instrumentation Libraries][13] for more details). If not, Datadog is continually adding additional support. [Check with the Datadog team][5] for help. +### Azure SDK + +Azure SDK provides built-in OpenTelemetry support. Enable it by setting the `AZURE_EXPERIMENTAL_ENABLE_ACTIVITY_SOURCE` environment variable to `true` or by setting the `Azure.Experimental.EnableActivitySource` context switch to `true` in your application code. See [Azure SDK documentation][14] for more details. + ## End of life .NET runtime versions -The .NET Tracer works on .NET Core 2.0, 2.1, 2.2, 3.0, and 3.1, and on .NET 5 and 7, but these versions reached their end of life and are no longer supported by Microsoft. See [Microsoft's support policy][3] for more details. Datadog recommends using the latest patch version of .NET 6 or .NET 8. Older versions of .NET and .NET Core may encounter the following runtime issues when enabling automatic instrumentation: +The .NET APM SDK works on .NET Core 2.0, 2.1, 2.2, 3.0, and 3.1, and on .NET 5 and 7, but these versions reached their end of life and are no longer supported by Microsoft. See [Microsoft's support policy][3] for more details. Datadog recommends using the latest patch version of .NET 6 or .NET 8. Older versions of .NET and .NET Core may encounter the following runtime issues when enabling automatic instrumentation: | Issue | Affected .NET Versions | Solution | More information | |-----------------------------------------------|-------------------------------------------|------------------------------------------------------------------------|-----------------------------------------| @@ -115,7 +119,7 @@ The .NET Tracer works on .NET Core 2.0, 2.1, 2.2, 3.0, and 3.1, and on .NET 5 an ## .NET runtime support policy -The .NET Tracer depends on the host operating system, .NET runtime, certain .NET libraries, and the Datadog Agent/API. These third party software systems support specific versions of .NET and .NET Core. When the external software no longer supports a version of .NET, the .NET Tracer also limits its support for that version. +The .NET APM SDK depends on the host operating system, .NET runtime, certain .NET libraries, and the Datadog Agent/API. These third party software systems support specific versions of .NET and .NET Core. When the external software no longer supports a version of .NET, the .NET APM SDK also limits its support for that version. ### Levels of support @@ -129,7 +133,7 @@ The .NET Tracer depends on the host operating system, .NET runtime, certain .NET ### Package versioning -The .NET Tracer practices [semantic versioning][11]. +The .NET APM SDK practices [semantic versioning][11]. Version updates imply the following changes to runtime support: - **Major version updates** (for example `1.0.0` to `2.0.0`) may change support for any runtime from [Beta](#support-beta)/[GA](#support-ga) to [Maintenance](#support-maintenance)/[EOL](#support-eol). diff --git a/content/en/tracing/trace_collection/compatibility/dotnet-framework.md b/content/en/tracing/trace_collection/compatibility/dotnet-framework.md index 5ccd34b7854de..93ffef0b734cb 100644 --- a/content/en/tracing/trace_collection/compatibility/dotnet-framework.md +++ b/content/en/tracing/trace_collection/compatibility/dotnet-framework.md @@ -1,6 +1,6 @@ --- title: .NET Framework Compatibility Requirements -description: 'Compatibility Requirements for the .NET Tracer' +description: 'Compatibility Requirements for the .NET APM SDK' aliases: - /tracing/compatibility_requirements/dotnet-framework - /tracing/setup_overview/compatibility_requirements/dotnet-framework @@ -17,13 +17,13 @@ further_reading: --- -The Datadog .NET Tracer supports all .NET-based languages (for example, C#, F#, Visual Basic). +The Datadog .NET APM SDK supports all .NET-based languages (for example, C#, F#, Visual Basic). -The .NET Tracer is open source. For more information, see the [.NET Tracer repository][1]. +The .NET APM SDK is open source. For more information, see the [.NET APM SDK repository][1]. ## Supported .NET Framework runtimes -The .NET Tracer supports automatic and custom instrumentation on the following .NET Framework versions. It also supports [.NET Core and .NET 5+][2]. The .NET Tracer does not support code running in partial trust environments. +The .NET APM SDK supports automatic and custom instrumentation on the following .NET Framework versions. It also supports [.NET Core and .NET 5+][2]. The .NET APM SDK does not support code running in partial trust environments. | .NET Framework Version | Microsoft End of Life | Support level | Package version | Datadog End of Life | | ----------------------- | --------------------- | ----------------------------------- | -------------------------- | ------------------- | @@ -41,13 +41,13 @@ The .NET Tracer supports automatic and custom instrumentation on the following . Additional information can be found in [Microsoft's .NET Framework Lifecycle Policy][4] and in [.NET runtime support policy](#net-runtime-support-policy).
-
Note: When deciding which tracer version to use for an automatic instrumentation, use the .NET Framework version installed on the application server. For example, if you compile your application to target .NET Framework 4.5.1, but the application runs on a server that has .NET Framework 4.8 installed, use the latest version of the tracer. To determine which version of .NET Framework is installed on a machine, follow the guidance provided by Microsoft. +
Note: When deciding which APM SDK version to use for an automatic instrumentation, use the .NET Framework version installed on the application server. For example, if you compile your application to target .NET Framework 4.5.1, but the application runs on a server that has .NET Framework 4.8 installed, use the latest version of the tracer. To determine which version of .NET Framework is installed on a machine, follow the guidance provided by Microsoft.
## Supported processor architectures -The .NET Tracer supports automatic instrumentation on the following architectures: +The .NET APM SDK supports automatic instrumentation on the following architectures: | Processor architectures | Support level | Package version | | ------------------------------------------------------------------------|-----------------------|----------------------------------------| @@ -95,6 +95,10 @@ The [latest version of the .NET Tracer][5] can automatically instrument the foll Don't see the library you're looking for? First, check if the library produces observability data compatible with OpenTelemetry (see [Using OpenTelemetry Instrumentation Libraries][11] for more details). If not, Datadog is continually adding additional support. [Check with the Datadog team][6] for help. +### Azure SDK + +Azure SDK provides built-in OpenTelemetry support. Enable it by setting the `AZURE_EXPERIMENTAL_ENABLE_ACTIVITY_SOURCE` environment variable to `true` or by setting the `Azure.Experimental.EnableActivitySource` context switch to `true` in your application code. See [Azure SDK documentation][12] for more details. + ## Supported Datadog Agent versions | **Datadog Agent version** | **Package version** | @@ -105,7 +109,7 @@ Don't see the library you're looking for? First, check if the library produces o ## .NET runtime support policy -The .NET Tracer depends on the host operating system, .NET Framework runtime, certain .NET Framework libraries, and the Datadog Agent/API. These third party software systems support specific versions of .NET Framework. When the external software no longer supports a version of .NET Framework, the .NET Tracer also limits its support for that version. +The .NET APM SDK depends on the host operating system, .NET Framework runtime, certain .NET Framework libraries, and the Datadog Agent/API. These third party software systems support specific versions of .NET Framework. When the external software no longer supports a version of .NET Framework, the .NET APM SDK also limits its support for that version. ### Levels of support diff --git a/content/en/tracing/trace_collection/compatibility/go.md b/content/en/tracing/trace_collection/compatibility/go.md index 7976dfee0d691..d2f125598a365 100644 --- a/content/en/tracing/trace_collection/compatibility/go.md +++ b/content/en/tracing/trace_collection/compatibility/go.md @@ -1,6 +1,6 @@ --- title: Go Compatibility Requirements -description: 'Compatibility Requirements for the Go tracer' +description: 'Compatibility Requirements for the Go APM SDK' aliases: - /tracing/compatibility_requirements/go - /tracing/setup_overview/compatibility_requirements/go @@ -17,18 +17,18 @@ further_reading: The Go Datadog Trace library is open source. View the [GitHub repository][1] for more information. -The Go Datadog Trace Library has a [version support policy][2] defined for Go versions. The two latest releases of Go are fully supported, while the third newest release is considered in [maintenance][3]. Older versions may function, but no support is provided by default. For special requests, [contact support][4]. +The Go APM SDK has a [version support policy][2] defined for Go versions. The two latest releases of Go are fully supported, while the third newest release is considered in [maintenance][3]. Older versions may function, but no support is provided by default. For special requests, [contact support][4]. ### Requirements - Datadog Agent v5.21.1+. -- [Add and initialize the Datadog Go tracer][77] before configuring integrations. +- [Add and initialize the Datadog Go APM SDK][77] before configuring integrations. ### Integrations #### Framework compatibility -Integrate the Go tracer with the following list of web frameworks using one of the following helper packages. +Integrate the Go APM SDK with the following list of web frameworks using one of the following helper packages. **Note**: The [integrations documentation][5] provides a detailed overview of the supported packages and their APIs, along with usage examples. @@ -45,7 +45,7 @@ Integrate the Go tracer with the following list of web frameworks using one of t #### Library compatibility -The Go tracer includes support for the following data stores and libraries. +The Go APM SDK includes support for the following data stores and libraries. | Library | Support Type | Examples and Documentation | |-------------------------|-----------------|---------------------------------------------------------------------------------| diff --git a/content/en/tracing/trace_collection/compatibility/java.md b/content/en/tracing/trace_collection/compatibility/java.md index 5d2f5a27df219..784a5d89e2139 100644 --- a/content/en/tracing/trace_collection/compatibility/java.md +++ b/content/en/tracing/trace_collection/compatibility/java.md @@ -1,6 +1,6 @@ --- title: Java Compatibility Requirements -description: 'Compatibility Requirements for the Java tracer' +description: 'Compatibility Requirements for the Java APM SDK' code_lang: java type: multi-code-lang code_lang_weight: 0 @@ -20,9 +20,9 @@ The Java Datadog Trace library is open source - view the [GitHub repository][1] ### Supported Java runtimes -The Java Tracer supports automatic instrumentation for the following Oracle JDK, OpenJDK JVM, and [GraalVM](#graalvm-native-image-support) runtimes. +The Java APM SDK supports automatic instrumentation for the following Oracle JDK, OpenJDK JVM, and [GraalVM](#graalvm-native-image-support) runtimes. -#### Java Tracer v1 (latest) +#### Java APM SDK v1 (latest) @@ -53,7 +53,7 @@ The Java Tracer supports automatic instrumentation for the following Oracle JDK, Datadog does not officially support any early-access versions of Java. -#### Java Tracer v0 (maintenance) +#### Java APM SDK v0 (maintenance) | Java versions | Operating Systems | Support level | |--------------------|---------------------------------------------------------------------------------|-----------------------------------| @@ -170,7 +170,7 @@ Don't see your desired web frameworks? Datadog is continually adding additional | Spring SessionAwareMessageListener | 3.1+ | Fully Supported | `spring-jms-3.1` | | Spring WebClient | 5.0+ | Fully Supported | `spring-webflux`, `spring-webflux-client` | -**Kafka Note**: Datadog's Kafka integration works with Kafka version `0.11+`, which supports the Header API. This API is used to inject and extract trace context. If you are running a mixed version environment, the Kafka broker can incorrectly report the newer version of Kafka. This causes an issue when the tracer tries to inject headers that are not supported by the local producer. Additionally, older consumers are unable to consume the message because of the presence of headers. To prevent these issues, if you are running a mixed version Kafka environment with versions older than 0.11, disable context propagation with the environment variable: `DD_KAFKA_CLIENT_PROPAGATION_ENABLED=false`. +**Kafka Note**: Datadog's Kafka integration works with Kafka version `0.11+`, which supports the Header API. This API is used to inject and extract trace context. If you are running a mixed version environment, the Kafka broker can incorrectly report the newer version of Kafka. This causes an issue when the APM SDK tries to inject headers that are not supported by the local producer. Additionally, older consumers are unable to consume the message because of the presence of headers. To prevent these issues, if you are running a mixed version Kafka environment with versions older than 0.11, disable context propagation with the environment variable: `DD_KAFKA_CLIENT_PROPAGATION_ENABLED=false`. **JMS Note**: Datadog's JMS integration automatically adds and reads message object properties `x__dash__datadog__dash__trace__dash__id` and `x__dash__datadog__dash__parent__dash__id` to maintain context propagation between consumer and producer services. @@ -279,25 +279,25 @@ Integrations can be enabled or disabled individually (overriding the default abo ### Known issues -- Running the Java tracer in Bitbucket is not supported. +- Running the Java APM SDK in Bitbucket is not supported. - Loading multiple Java Agents that perform APM/tracing functions is not a recommended or supported configuration. ## GraalVM Native Image support -GraalVM Native Image is a technology that allows you to compile Java applications into native executables. The Datadog Java tracer supports GraalVM Native Image. This allows you to compile your applications into native executables while still benefiting from the tracing capabilities offered by the library. +GraalVM Native Image is a technology that allows you to compile Java applications into native executables. The Datadog Java APM SDK supports GraalVM Native Image. This allows you to compile your applications into native executables while still benefiting from the tracing capabilities offered by the library. ### Requirements Use the latest versions of: - [GraalVM][7] -- [Datadog Java tracer][1] +- [Datadog Java APM SDK][1] ### Setup {{< tabs >}} {{% tab "GraalVM" %}} -To set up the Datadog Java tracer with GraalVM Native Image, follow these steps: +To set up the Datadog Java APM SDK with GraalVM Native Image, follow these steps: 1. Instrument your application, following the steps described on [Tracing Java Applications][6]. 2. When you build a native executable with the `native-image` command, add the `-J-javaagent:/path/to/dd-java-agent.jar` argument. For example: @@ -311,7 +311,7 @@ To set up the Datadog Java tracer with GraalVM Native Image, follow these steps: {{% /tab %}} {{% tab "Quarkus Native" %}} -To set up the Datadog Java tracer with Quarkus Native, follow these steps: +To set up the Datadog Java APM SDK with Quarkus Native, follow these steps: 1. Instrument your application, following the steps described in [Tracing Java Applications][6]. 2. When you build a native executable, use the `quarkus.native.additional-build-args` property. For example: @@ -325,7 +325,7 @@ To set up the Datadog Java tracer with Quarkus Native, follow these steps: {{% /tab %}} {{% tab "Spring Native" %}} -To set up the Datadog Java tracer with Spring Native, follow these steps: +To set up the Datadog Java APM SDK with Spring Native, follow these steps: 1. Instrument your application, following the steps described on [Tracing Java Applications][6]. 2. For Spring Native builds based on Buildpacks, enable the [Paketo Buildpack for Datadog][8] using `BP_DATADOG_ENABLED=true`. diff --git a/content/en/tracing/trace_collection/compatibility/nodejs.md b/content/en/tracing/trace_collection/compatibility/nodejs.md index d4422b4562260..0de778cbfd10c 100644 --- a/content/en/tracing/trace_collection/compatibility/nodejs.md +++ b/content/en/tracing/trace_collection/compatibility/nodejs.md @@ -1,6 +1,6 @@ --- title: Node.js Compatibility Requirements -description: 'Compatibility Requirements for the Node.js tracer' +description: 'Compatibility Requirements for the Node.js APM SDK' aliases: - /tracing/compatibility_requirements/nodejs - /tracing/setup_overview/compatibility_requirements/nodejs @@ -16,7 +16,7 @@ further_reading: ### Versioning -Versioning of the Datadog Node.js tracing library follows [semver][1]. When a new major version is released it becomes the primary release line, where all new features, bug fixes and security patches land. Here's an outline of what constitutes each type of semver change: +Versioning of the Datadog Node.js APM SDK follows [semver][1]. When a new major version is released it becomes the primary release line, where all new features, bug fixes and security patches land. Here's an outline of what constitutes each type of semver change: | Major | Minor | Patch | |---------------------------------|-------------------------------------------------------------------------|----------------------| @@ -82,7 +82,7 @@ For details about how to how to toggle and configure plugins, check out the [API | [koa][13] | `>=2` | Fully supported | | | [microgateway-core][14] | `>=2.1` | Fully supported | Core library for Apigee Edge. Support for the [edgemicro][15] CLI requires static patching using [@datadog/cli][16]. | | [moleculer][17] | `>=0.14` | Fully supported | | -| [next][18] | `>=9.5` | Fully supported | See note on Complex framework usage.

The tracer supports the following Next.js features:
  • Standalone (`output: 'standalone'`)
  • App Router
  • Middleware: Not traced, use tracer versions `4.18.0` and `3.39.0` or higher for best experience.
| +| [next][18] | `>=9.5` | Fully supported | See note on Complex framework usage.

The APM SDK supports the following Next.js features:
  • Standalone (`output: 'standalone'`)
  • App Router
  • Middleware: Not traced, use APM SDK versions `4.18.0` and `3.39.0` or higher for best experience.
| | [paperplane][19] | `>=2.3` | Fully supported | Not supported in [serverless-mode][20] | | [restify][21] | `>=3` | Fully supported | | @@ -90,9 +90,9 @@ For details about how to how to toggle and configure plugins, check out the [API Some modern complex Node.js frameworks, such as Next.js and Nest.js, provide their own entry-point into an application. For example, instead of running `node app.js`, you may need to run `next start`. In these cases, the entry point is a file that ships in the framework package, not a local application file (`app.js`). -Loading the Datadog tracer early in your application code isn't effective because the framework could have already loaded modules that should be instrumented. +Loading the Datadog APM SDK early in your application code isn't effective because the framework could have already loaded modules that should be instrumented. -To load the tracer before the framework, use one of the following methods: +To load the APM SDK before the framework, use one of the following methods: Prefix all commands you run with an environment variable: diff --git a/content/en/tracing/trace_collection/compatibility/php.md b/content/en/tracing/trace_collection/compatibility/php.md index c148e73468431..02865d23724da 100644 --- a/content/en/tracing/trace_collection/compatibility/php.md +++ b/content/en/tracing/trace_collection/compatibility/php.md @@ -1,6 +1,6 @@ --- title: PHP Compatibility Requirements -description: 'Compatibility Requirements for the PHP tracer' +description: 'Compatibility Requirements for the PHP APM SDK' aliases: - /tracing/compatibility_requirements/php - /tracing/setup_overview/compatibility_requirements/php @@ -12,7 +12,7 @@ further_reading: tag: 'Documentation' text: 'Instrument Your Application' --- -
This documentation is for the PHP tracer v1.x. If you are looking for the PHP tracer v0.x documentation, see the legacy PHP Compatibility Requirements + ## Runtime support policy for PHP APM @@ -39,7 +39,7 @@ PHP APM supports the following PHP versions (both ZTS and NTS):
Note: -PHP 5.x is not supported starting version 1.0.0. If you are using PHP 5, you can still use the PHP tracer up to version 0.99. +PHP 5.x is not supported starting version 1.0.0. If you are using PHP 5, you can still use the PHP APM SDK up to version 0.99.
If you are using PHP 5.x version in your application and have a feature request which is critical for your business needs, contact Datadog Support.
@@ -107,7 +107,7 @@ The following table enumerates some of the frameworks and versions Datadog succe | FuelPHP | 1.1 | All supported PHP versions | Generic web tracing | | Laminas | | All supported PHP versions | Framework-level instrumentation | | Laravel | 4.2, 5.x, 6.x | All supported PHP versions | Framework-level instrumentation | -| Laravel 8+ | 8.x, 9.x, 10.x, 11.x (tracer `0.52.0+`) | All supported PHP versions | Framework-level instrumentation | +| Laravel 8+ | 8.x, 9.x, 10.x, 11.x (SDK `0.52.0+`) | All supported PHP versions | Framework-level instrumentation | | Lumen | 5.2+ | All supported PHP versions | Framework-level instrumentation | | Magento | 1 | All supported PHP versions | Generic web tracing | | Magento | 2 | All supported PHP versions | Framework-level instrumentation | @@ -121,7 +121,7 @@ The following table enumerates some of the frameworks and versions Datadog succe | Zend Framework | 1.12, 1.21 | All supported PHP versions | Framework-level instrumentation | | Zend Framework | 2.x | All supported PHP versions | Generic web tracing | -Note that even if you don't see your web framework in this list, it is supported out of the box with the latest release of the tracer. +Note that even if you don't see your web framework in this list, it is supported out of the box with the latest release of the APM SDK. Datadog is continuously adding more support for in-depth tracing for PHP web-frameworks. To request support for additional span metadata and framework internals, contact our awesome [support team][3]. @@ -181,7 +181,7 @@ Instrumenting [generators][6] is not supported on PHP 5 and PHP 7. Datadog supports tracing forked processes using [pcntl][7]. When a call to `pcntl_fork` is detected, a dedicated span is created, and the forked process is instrumented. This can be disabled with `DD_TRACE_FORKED_PROCESS`. Refer to the [library configuration page][9] for more details. -If the application invokes `pcntl_unshare(CLONE_NEWUSER);` and the tracer is installed, the application fatally crashes. This happens because `unshare` with `CLONE_NEWUSER` requires the process [not to be threaded][8], while the PHP tracer uses a separate thread to send traces to the Datadog Agent without blocking the main process. +If the application invokes `pcntl_unshare(CLONE_NEWUSER);` and the APM SDK is installed, the application fatally crashes. This happens because `unshare` with `CLONE_NEWUSER` requires the process [not to be threaded][8], while the PHP APM SDK uses a separate thread to send traces to the Datadog Agent without blocking the main process. ## Further Reading diff --git a/content/en/tracing/trace_collection/compatibility/php_v0.md b/content/en/tracing/trace_collection/compatibility/php_v0.md index 324f8c8fa8096..8d17310b76a78 100644 --- a/content/en/tracing/trace_collection/compatibility/php_v0.md +++ b/content/en/tracing/trace_collection/compatibility/php_v0.md @@ -1,12 +1,12 @@ --- title: (Legacy) PHP Compatibility Requirements -description: 'Compatibility Requirements for the PHP tracer' +description: 'Compatibility Requirements for the PHP APM SDK' further_reading: - link: 'tracing/trace_collection/dd_libraries/php' tag: 'Documentation' text: 'Instrument Your Application' --- -
This documentation is for the PHP tracer v0.x. If you are looking for the PHP tracer v1.x documentation, see the latest PHP Compatibility Requirements + ## Runtime support policy for PHP APM @@ -98,7 +98,7 @@ The following table enumerates some of the frameworks and versions Datadog succe | FuelPHP | 1.1 | PHP 7+ | Generic web tracing | | Laminas | | All supported PHP versions | Framework-level instrumentation | | Laravel | 4.2, 5.x, 6.x | All supported PHP versions | Framework-level instrumentation | -| Laravel 8+ | 8.x, 9.x, 10.x, 11.x (tracer `0.52.0+`) | All supported PHP versions | Framework-level instrumentation | +| Laravel 8+ | 8.x, 9.x, 10.x, 11.x (SDK `0.52.0+`) | All supported PHP versions | Framework-level instrumentation | | Lumen | 5.2+ | All supported PHP versions | Framework-level instrumentation | | Magento | 1 | All supported PHP versions | Generic web tracing | | Magento | 2 | PHP 7+ | Framework-level instrumentation | @@ -112,7 +112,7 @@ The following table enumerates some of the frameworks and versions Datadog succe | Zend Framework | 1.12, 1.21 | All supported PHP versions | Framework-level instrumentation | | Zend Framework | 2.x | All supported PHP versions | Generic web tracing | -Note that even if you don't see your web framework in this list, it is supported out of the box with the latest release of the tracer. +Note that even if you don't see your web framework in this list, it is supported out of the box with the latest release of the APM SDK. Datadog is continuously adding more support for in-depth tracing for PHP web-frameworks. To request support for additional span metadata and framework internals, contact our awesome [support team][3]. @@ -170,7 +170,7 @@ Instrumenting [generators][6] is not supported on PHP 5 and PHP 7. Datadog supports tracing forked processes using [pcntl][7]. When a call to `pcntl_fork` is detected, a dedicated span is created, and the forked process is instrumented. This can be disabled with `DD_TRACE_FORKED_PROCESS`. Refer to the [library configuration page][9] for more details. -If the application invokes `pcntl_unshare(CLONE_NEWUSER);` and the tracer is installed, the application fatally crashes. This happens because `unshare` with `CLONE_NEWUSER` requires the process [not to be threaded][8], while the PHP tracer uses a separate thread to send traces to the Datadog Agent without blocking the main process. +If the application invokes `pcntl_unshare(CLONE_NEWUSER);` and the APM SDK is installed, the application fatally crashes. This happens because `unshare` with `CLONE_NEWUSER` requires the process [not to be threaded][8], while the PHP APM SDK uses a separate thread to send traces to the Datadog Agent without blocking the main process. ## Further Reading @@ -178,4 +178,4 @@ If the application invokes `pcntl_unshare(CLONE_NEWUSER);` and the tracer is ins [1]: https://github.com/DataDog/dd-trace-php [2]: https://www.datadoghq.com/support/ -[3]: /help \ No newline at end of file +[3]: /help diff --git a/content/en/tracing/trace_collection/custom_instrumentation/_index.md b/content/en/tracing/trace_collection/custom_instrumentation/_index.md index 9ffa0068ac675..714edcacb15f7 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/_index.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/_index.md @@ -15,7 +15,7 @@ algolia: ## Overview -Custom instrumentation allows for precise monitoring of specific components in your application. It allows you to capture observability data from in-house code or complex functions that aren't captured by automatic instrumentation. Automatic instrumentation includes [Single Step Instrumentation][5] or using [Datadog tracing libraries][6]. +Custom instrumentation allows for precise monitoring of specific components in your application. It allows you to capture observability data from in-house code or complex functions that aren't captured by automatic instrumentation. Automatic instrumentation includes [Single Step Instrumentation][5] or using [Datadog SDKs][6]. Custom instrumentation involves embedding tracing code directly into your application code. This allows for the programmatic creation, modification, or deletion of traces to send to Datadog. @@ -47,7 +47,7 @@ Use the Datadog API to add custom instrumentation that allows you to programmati {{% tab "OpenTelemetry API" %}} -Datadog tracing libraries provide an implementation of the OpenTelemetry API for instrumenting your code. This means you can maintain vendor-neutral instrumentation of all your services, while still taking advantage of Datadog's native implementation, features, and products. You can configure it to generate Datadog-style spans and traces to be processed by the Datadog tracing library for your language, and send those to Datadog. +APM SDKs provide an implementation of the OpenTelemetry API for instrumenting your code. This means you can maintain vendor-neutral instrumentation of all your services, while still taking advantage of Datadog's native implementation, features, and products. You can configure it to generate Datadog-style spans and traces to be processed by the APM SDK for your language, and send those to Datadog. {{< partial name="apm/apm-otel-instrumentation-custom.html" >}} @@ -57,7 +57,7 @@ Datadog tracing libraries provide an implementation of the OpenTelemetry API for {{% tab "OpenTracing (legacy)" %}} -If [OpenTelemetry][1] or [`ddtrace`][2] custom instrumentation doesn't work for you, each of the supported languages also has support for sending [OpenTracing][3] data to Datadog. OpenTracing is archived and the project is unsupported. +If [OpenTelemetry][1] or [`ddtrace`][2] custom instrumentation doesn't work for you, each of the supported languages also has support for sending [OpenTracing][3] data to Datadog. OpenTracing is archived and the project is unsupported. {{< partial name="apm/apm-opentracing-custom.html" >}} diff --git a/content/en/tracing/trace_collection/custom_instrumentation/dotnet/dd-api.md b/content/en/tracing/trace_collection/custom_instrumentation/dotnet/dd-api.md index 18e202b2094a3..51478bd82dfa7 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/dotnet/dd-api.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/dotnet/dd-api.md @@ -77,7 +77,7 @@ namespace Store.Managers ## Custom instrumentation with code
- Note: This feature requires adding the Datadog.Trace NuGet package. to your application. It provides an API to directly access the Tracer and the active span. + Note: This feature requires adding the Datadog.Trace NuGet package. to your application. It provides an API to directly access the APM SDK and the active span.
@@ -215,7 +215,7 @@ DD_TAGS=datacenter:njc,key2:value2 ## Resource filtering -You can exclude traces based on the resource name to remove Synthetics traffic such as health checks. For more information about security and additional configurations, see [Configure the Datadog Agent or Tracer for Data Security][10]. +You can exclude traces based on the resource name to remove Synthetics traffic such as health checks. For more information about security and additional configurations, see [Configure the Datadog Agent or APM SDK for Data Security][10]. ## Further Reading diff --git a/content/en/tracing/trace_collection/custom_instrumentation/dotnet/otel.md b/content/en/tracing/trace_collection/custom_instrumentation/dotnet/otel.md index 53e07208450e5..ecf98b2264f11 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/dotnet/otel.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/dotnet/otel.md @@ -22,9 +22,9 @@ further_reading: To configure OpenTelemetry to use the Datadog trace provider: -1. Add your desired manual OpenTelemetry instrumentation to your .NET code following the [OpenTelemetry .NET Manual Instrumentation documentation][5]. **Note**: Where those instructions indicate that your code should call the OpenTelemetry SDK, call the Datadog tracing library instead. +1. Add your desired manual OpenTelemetry instrumentation to your .NET code following the [OpenTelemetry .NET Manual Instrumentation documentation][5]. **Note**: Where those instructions indicate that your code should call the OpenTelemetry SDK, call the Datadog APM SDK instead. -2. Install the Datadog .NET tracing library and enable the tracer for your [.NET Framework service][10] or your [.NET Core (and .NET 5+) service][11]. **Beta**: You can optionally do this with [Single Step APM Instrumentation][13]. +2. Install the Datadog .NET APM SDK and enable the APM SDK for your [.NET Framework service][10] or your [.NET Core (and .NET 5+) service][11]. **Beta**: You can optionally do this with [Single Step APM Instrumentation][13]. 3. Set `DD_TRACE_OTEL_ENABLED` environment variable to `true`. @@ -128,4 +128,4 @@ You can configure the propagation of context for distributed traces by injecting [10]: /tracing/trace_collection/dd_libraries/dotnet-framework/#installation-and-getting-started [11]: /tracing/trace_collection/dd_libraries/dotnet-core/#installation-and-getting-started [13]: /tracing/trace_collection/single-step-apm/ -[14]: /tracing/trace_collection/trace_context_propagation/dotnet/ \ No newline at end of file +[14]: /tracing/trace_collection/trace_context_propagation/dotnet/ diff --git a/content/en/tracing/trace_collection/custom_instrumentation/go/dd-api.md b/content/en/tracing/trace_collection/custom_instrumentation/go/dd-api.md index 7a6db91541380..9a3572f9738c1 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/go/dd-api.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/go/dd-api.md @@ -7,7 +7,7 @@ aliases: - /tracing/setup_overview/custom_instrumentation/go - /tracing/trace_collection/custom_instrumentation/go - /tracing/trace_collection/custom_instrumentation/dd_libraries/go -description: 'Instrument your code with the Datadog Go APM tracer.' +description: 'Instrument your code with the Datadog Go APM APM SDK.' code_lang: dd-api type: multi-code-lang code_lang_weight: 1 @@ -84,7 +84,7 @@ func handler(w http.ResponseWriter, r *http.Request) { ### Adding tags globally to all spans -Add [tags][1] to all [spans][2] by configuring the tracer with the `WithGlobalTag` option: +Add [tags][1] to all [spans][2] by configuring the APM SDK with the `WithGlobalTag` option: ```go package main @@ -114,7 +114,7 @@ span.Finish(tracer.WithError(err)) If you aren't using supported library instrumentation (see [Library compatibility][3]), you may want to to manually instrument your code.
-Unlike other Datadog tracing libraries, when tracing Go applications, it's recommended that you explicitly manage and pass the Go context of your spans. This approach ensures accurate span relationships and meaningful tracing. For more information, see the Go context library documentation or documentation for any third-party libraries integrated with your application. +Unlike other Datadog APM SDKs, when tracing Go applications, it's recommended that you explicitly manage and pass the Go context of your spans. This approach ensures accurate span relationships and meaningful tracing. For more information, see the Go context library documentation or documentation for any third-party libraries integrated with your application.
### Manually creating a new span @@ -223,4 +223,4 @@ Traces can be excluded based on their resource name, to remove synthetic traffic [6]: https://pkg.go.dev/gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer#StartSpanFromContext [7]: /tracing/glossary/#trace [9]: /tracing/security -[11]: /tracing/trace_collection/trace_context_propagation/go/ \ No newline at end of file +[11]: /tracing/trace_collection/trace_context_propagation/go/ diff --git a/content/en/tracing/trace_collection/custom_instrumentation/go/otel.md b/content/en/tracing/trace_collection/custom_instrumentation/go/otel.md index fb2212a229932..d4c8fdc97501a 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/go/otel.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/go/otel.md @@ -19,7 +19,7 @@ further_reading: {{% otel-custom-instrumentation-lang %}} ## Imports - + Import the following packages to setup the Datadog trace provider and use cases demonstrated below: ```go @@ -41,7 +41,7 @@ import ( To configure OpenTelemetry to use the Datadog trace provider: -1. Add your desired manual OpenTelemetry instrumentation to your Go code following the [OpenTelemetry Go Manual Instrumentation documentation][5]. **Important!** Where those instructions indicate that your code should call the OpenTelemetry SDK, call the Datadog tracing library instead. +1. Add your desired manual OpenTelemetry instrumentation to your Go code following the [OpenTelemetry Go Manual Instrumentation documentation][5]. **Important!** Where those instructions indicate that your code should call the OpenTelemetry SDK, call the Datadog APM SDK instead. 2. Install the OpenTelemetry package `go.opentelemetry.io/otel` using the command: @@ -76,7 +76,7 @@ To configure OpenTelemetry to use the Datadog trace provider: ```go otel.SetTracerProvider(provider) ``` - + 7. Run your application. Datadog combines these OpenTelemetry spans with other Datadog APM spans into a single trace of your application. @@ -96,10 +96,10 @@ span.SetAttributes(attribute.String(ext.ResourceName, "test.json")) ### Adding tags globally to all spans -Add tags to all spans by configuring the tracer with the `WithGlobalTag` option: +Add tags to all spans by configuring the APM SDK with the `WithGlobalTag` option: ```go -// Here we can leverage the Datadog tracer options by passing them into the +// Here we can leverage the Datadog tracer options by passing them into the // NewTracerProvider function. provider := ddotel.NewTracerProvider( ddtracer.WithGlobalTag("datacenter", "us-1"), @@ -126,7 +126,7 @@ ctx, span := t.Start(context.Background(), "span_name") // Set an error on a span with 'span.SetAttributes'. span.SetAttributes(attribute.String(ext.ErrorMsg, "error_message")) -// ALternatively, it is possible to set an error on a span via end span options. +// ALternatively, it is possible to set an error on a span via end span options. EndOptions(sp, tracer.WithError(errors.New("persisted_option"))) sp.End() @@ -151,7 +151,7 @@ s.End() ## Adding spans -Unlike other Datadog tracing libraries, when tracing Go applications, Datadog recommends that you explicitly manage and pass the Go context of your spans. This approach ensures accurate span relationships and meaningful tracing. For more information, see the [Go context library documentation][16] or documentation for any third-party libraries integrated with your application. +Unlike other Datadog APM SDKs, when tracing Go applications, Datadog recommends that you explicitly manage and pass the Go context of your spans. This approach ensures accurate span relationships and meaningful tracing. For more information, see the [Go context library documentation][16] or documentation for any third-party libraries integrated with your application. ```go // Can only be done after the setup steps. diff --git a/content/en/tracing/trace_collection/custom_instrumentation/ios/otel.md b/content/en/tracing/trace_collection/custom_instrumentation/ios/otel.md index 387e69d0ee6d9..c790181a112e6 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/ios/otel.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/ios/otel.md @@ -227,7 +227,7 @@ Datadog.verbosityLevel = .debug {{% /tab %}} {{< /tabs >}} -3. Datadog tracer implements the [Open Telemetry standard][13]. Enable the Datadog tracer, register the tracer provider, and get the tracer instance: +3. Datadog APM SDK implements the [Open Telemetry standard][13]. Enable the Datadog APM SDK, register the TracerProvider, and get the SDK instance: {{< tabs >}} {{% tab "Swift" %}} diff --git a/content/en/tracing/trace_collection/custom_instrumentation/java/dd-api.md b/content/en/tracing/trace_collection/custom_instrumentation/java/dd-api.md index a05116eba20e4..5574815637a99 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/java/dd-api.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/java/dd-api.md @@ -7,7 +7,7 @@ aliases: - /tracing/setup_overview/custom_instrumentation/java - /tracing/trace_collection/custom_instrumentation/java - /tracing/trace_collection/custom_instrumentation/dd_libraries/java -description: 'Instrument your code with the Datadog Java APM tracer.' +description: 'Instrument your code with the Datadog Java APM APM SDK.' code_lang: dd-api type: multi-code-lang code_lang_weight: 1 @@ -22,7 +22,7 @@ further_reading: This page details common use cases for adding and customizing observability with Datadog APM. If you have not read the setup instructions for automatic instrumentation, start with the [Java Setup Instructions][11]. -
The Datadog Java tracer is built on OpenTracing. Although OpenTracing is deprecated in favor of OpenTelemetry, the following examples correctly import the opentracing library.
+
The Datadog Java APM SDK is built on OpenTracing. Although OpenTracing is deprecated in favor of OpenTelemetry, the following examples correctly import the opentracing library.
## Adding tags @@ -87,7 +87,7 @@ import io.opentracing.log.Fields; } ``` -**Note**: `Span.log()` is a generic OpenTracing mechanism for associating events to the current timestamp. The Java Tracer only supports logging error events. +**Note**: `Span.log()` is a generic OpenTracing mechanism for associating events to the current timestamp. The Java APM SDK only supports logging error events. Alternatively, you can set error tags directly on the span without `log()`: ```java @@ -261,9 +261,9 @@ class SomeClass { } ``` -### Extending tracers +### Extending APM SDKs -The tracing libraries are designed to be extensible. Customers may consider writing a custom post-processor called a `TraceInterceptor` to intercept Spans then adjust or discard them accordingly (for example, based on regular expressions). The following example implements two interceptors to achieve complex post-processing logic. +The APM SDKs are designed to be extensible. Customers may consider writing a custom post-processor called a `TraceInterceptor` to intercept Spans then adjust or discard them accordingly (for example, based on regular expressions). The following example implements two interceptors to achieve complex post-processing logic. ```java import java.util.List; @@ -358,4 +358,4 @@ Traces can be excluded based on their resource name, to remove synthetic traffic [8]: /tracing/trace_collection/trace_context_propagation/java/ [9]: /tracing/security [10]: /tracing/guide/ignoring_apm_resources/ -[11]: /tracing/setup/java/ \ No newline at end of file +[11]: /tracing/setup/java/ diff --git a/content/en/tracing/trace_collection/custom_instrumentation/nodejs/dd-api.md b/content/en/tracing/trace_collection/custom_instrumentation/nodejs/dd-api.md index f5203009d3936..4248113f74ded 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/nodejs/dd-api.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/nodejs/dd-api.md @@ -72,7 +72,7 @@ span.addTags({ {{% tab "Globally" %}} -You can add tags to every span by configuring them directly on the tracer, either with with the comma-separated `DD_TAGS` environment variable or with the `tags` option on the tracer initialization: +You can add tags to every span by configuring them directly on the APM SDK, either with the comma-separated `DD_TAGS` environment variable or with the `tags` option on the tracer initialization: ```javascript // equivalent to DD_TAGS=foo:bar,baz:qux diff --git a/content/en/tracing/trace_collection/custom_instrumentation/nodejs/otel.md b/content/en/tracing/trace_collection/custom_instrumentation/nodejs/otel.md index 5a8caa6f7b5c2..4bbf005152178 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/nodejs/otel.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/nodejs/otel.md @@ -23,7 +23,7 @@ further_reading: To configure OpenTelemetry to use the Datadog trace provider: -1. Add your desired manual OpenTelemetry instrumentation to your Node.js code following the [OpenTelemetry Node.js Manual Instrumentation documentation][1]. **Note**: Where those instructions indicate that your code should call the OpenTelemetry SDK, call the Datadog tracing library instead. +1. Add your desired manual OpenTelemetry instrumentation to your Node.js code following the [OpenTelemetry Node.js Manual Instrumentation documentation][1]. **Note**: Where those instructions indicate that your code should call the OpenTelemetry SDK, call the Datadog APM SDK instead. 2. Add the `dd-trace` module to your package.json: @@ -76,7 +76,7 @@ function processData(i, param1, param2) { // Add an attribute to the span span.setAttribute('app.processedData', result.toString()); - + span.end(); return result; }); diff --git a/content/en/tracing/trace_collection/custom_instrumentation/otel_instrumentation/_index.md b/content/en/tracing/trace_collection/custom_instrumentation/otel_instrumentation/_index.md index 3b8dd938b5a22..97d02b4d459fe 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/otel_instrumentation/_index.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/otel_instrumentation/_index.md @@ -1,7 +1,7 @@ --- title: Custom Instrumentation with the OpenTelemetry API type: multi-code-lang -description: 'Sending spans from custom instrumentation through the OpenTelemetry API to the Datadog tracing libraries.' +description: 'Sending spans from custom instrumentation through the OpenTelemetry API to the Datadog APM SDKs.' aliases: - /tracing/trace_collection/otel_instrumentation/ - /opentelemetry/otel_tracing/ diff --git a/content/en/tracing/trace_collection/custom_instrumentation/php/dd-api.md b/content/en/tracing/trace_collection/custom_instrumentation/php/dd-api.md index 1fe1720ad8f6d..4c6021d46f38e 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/php/dd-api.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/php/dd-api.md @@ -29,7 +29,7 @@ If you have not yet read the instructions for auto-instrumentation and setup, st ## Annotations -If you are using PHP 8, as of v0.84 of the tracer, you can add attributes to your code to instrument it. It is a lighter alternative to [custom instrumentation written in code](#writing-custom-instrumentation). For example, add the `#[DDTrace\Trace]` attribute to methods for Datadog to trace them. +If you are using PHP 8, as of v0.84 of the APM SDK, you can add attributes to your code to instrument it. It is a lighter alternative to [custom instrumentation written in code](#writing-custom-instrumentation). For example, add the `#[DDTrace\Trace]` attribute to methods for Datadog to trace them. ```php Support for span links is in beta and requires the PHP tracer v0.87.2+.
+
Support for span links is in beta and requires the PHP APM SDK v0.87.2+.
Span links associate one or more spans together that don't have a typical parent-child relationship. They may associate spans within the same trace or spans across different traces. @@ -750,7 +750,7 @@ Done. ### Zend framework 1 manual instrumentation -Zend framework 1 is automatically instrumented by default, so you are not required to modify your ZF1 project. However, if automatic instrumentation is disabled, enable the tracer manually. +Zend framework 1 is automatically instrumented by default, so you are not required to modify your ZF1 project. However, if automatic instrumentation is disabled, enable the APM SDK manually. First, [download the latest source code from the releases page][6]. Extract the zip file and copy the `src/DDTrace` folder to your application's `/library` folder. Then add the following to your `application/configs/application.ini` file: diff --git a/content/en/tracing/trace_collection/custom_instrumentation/php/otel.md b/content/en/tracing/trace_collection/custom_instrumentation/php/otel.md index 864a588bf61fe..fccaca3ac0435 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/php/otel.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/php/otel.md @@ -26,9 +26,9 @@ To configure OpenTelemetry to use the Datadog trace provider: ```php composer require open-telemetry/sdk ``` -2. Add your desired manual OpenTelemetry instrumentation to your PHP code following the [OpenTelemetry PHP Manual Instrumentation documentation][5]. +2. Add your desired manual OpenTelemetry instrumentation to your PHP code following the [OpenTelemetry PHP Manual Instrumentation documentation][5]. -3. Install the [Datadog PHP tracing library][6]. +3. Install the [Datadog PHP APM SDK][6]. 4. Set `DD_TRACE_OTEL_ENABLED` to `true`. @@ -63,7 +63,7 @@ $span = $tracer->spanBuilder('mySpan')->startSpan(); throw new \Exception('Oops!'); -// 'mySpan' will be flagged as erroneous and have +// 'mySpan' will be flagged as erroneous and have // the stack trace and exception message attached as tags ``` diff --git a/content/en/tracing/trace_collection/custom_instrumentation/ruby/dd-api.md b/content/en/tracing/trace_collection/custom_instrumentation/ruby/dd-api.md index 5e33b38f205b1..2a4d6f3d78a33 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/ruby/dd-api.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/ruby/dd-api.md @@ -27,7 +27,7 @@ This page details describes use cases for adding and customizing observability w ## Requirements -Make sure you require the appropriate gem for your [Ruby tracer version][8]: +Make sure you require the appropriate gem for your [Ruby APM SDK version][8]: - For v2.x, require the `datadog` gem: ```ruby @@ -49,7 +49,7 @@ Add custom tags to your spans corresponding to any dynamic value within your app #### Active spans -Access the current active [span][1] from any method within your code. +Access the current active [span][1] from any method within your code. **Note**: If the method is called and there is no active span, `active_span` is `nil`. @@ -91,7 +91,7 @@ end ### Adding tags globally to all spans -Add [tags][1] to all [spans][2] by configuring the tracer with the `tags` option: +Add [tags][1] to all [spans][2] by configuring the APM SDK with the `tags` option: ```ruby Datadog.configure do |c| @@ -259,7 +259,7 @@ Datadog::Tracing.before_flush do |trace| trace.spans.each do |span| originalPrice = span.get_tag('order.price')) discount = span.get_tag('order.discount')) - + # Set a tag from a calculation from other tags if (originalPrice != nil && discount != nil) span.set_tag('order.value', originalPrice - discount) @@ -309,4 +309,4 @@ Traces can be excluded based on their resource name, to remove synthetic traffic [5]: /tracing/trace_collection/dd_libraries/ruby/#manual-instrumentation [6]: /tracing/trace_collection/trace_context_propagation/ruby/ [7]: /tracing/security -[8]: https://github.com/DataDog/dd-trace-rb/releases \ No newline at end of file +[8]: https://github.com/DataDog/dd-trace-rb/releases diff --git a/content/en/tracing/trace_collection/custom_instrumentation/ruby/otel.md b/content/en/tracing/trace_collection/custom_instrumentation/ruby/otel.md index 003f981936640..f0a6b79163a22 100644 --- a/content/en/tracing/trace_collection/custom_instrumentation/ruby/otel.md +++ b/content/en/tracing/trace_collection/custom_instrumentation/ruby/otel.md @@ -21,23 +21,23 @@ further_reading: ## Requirements and limitations -- Datadog Ruby tracing library `dd-trace-rb` version 1.9.0 or greater. +- Datadog Ruby APM SDK `dd-trace-rb` version 1.9.0 or greater. - Gem version support 1.1.0 or greater. The following OpenTelemetry features implemented in the Datadog library as noted: | Feature | Support notes | |---------------------------------------|--------------------------------------| -| [OpenTelemetry Context propagation][1] | [Datadog and W3C Trace Context header formats][9] are enabled by default. | -| [Span processors][2] | Unsupported | +| [OpenTelemetry Context propagation][1] | [Datadog and W3C Trace Context header formats][9] are enabled by default. | +| [Span processors][2] | Unsupported | | [Span Exporters][3] | Unsupported | | `OpenTelemetry.logger` | `OpenTelemetry.logger` is set to the same object as `Datadog.logger`. Configure through [custom logging][10]. | -| Trace/span [ID generators][4] | ID generation is performed by the tracing library, with support for [128-bit trace IDs][12]. | +| Trace/span [ID generators][4] | ID generation is performed by the APM SDK, with support for [128-bit trace IDs][12]. | -## Configuring OpenTelemetry to use the Datadog tracing library +## Configuring OpenTelemetry to use the Datadog APM SDK -1. Add your desired manual OpenTelemetry instrumentation to your Ruby code following the [OpenTelemetry Ruby Manual Instrumentation documentation][5]. **Important!** Where those instructions indicate that your code should call the OpenTelemetry SDK, call the Datadog tracing library instead. +1. Add your desired manual OpenTelemetry instrumentation to your Ruby code following the [OpenTelemetry Ruby Manual Instrumentation documentation][5]. **Important!** Where those instructions indicate that your code should call the OpenTelemetry SDK, call the Datadog APM SDK instead. 1. Add the `datadog` gem to your Gemfile: @@ -54,7 +54,7 @@ The following OpenTelemetry features implemented in the Datadog library as noted require 'datadog/opentelemetry' ``` -1. Add a configuration block to your application where you can activate integrations and change tracer settings. Without additional configuration here, only code you have instrumented with OpenTelemetry is traced: +1. Add a configuration block to your application where you can activate integrations and change APM SDK settings. Without additional configuration here, only code you have instrumented with OpenTelemetry is traced: ```ruby Datadog.configure do |c| diff --git a/content/en/tracing/trace_collection/library_config/_index.md b/content/en/tracing/trace_collection/library_config/_index.md index b6c3cb66ed31d..df4a8d0abf601 100644 --- a/content/en/tracing/trace_collection/library_config/_index.md +++ b/content/en/tracing/trace_collection/library_config/_index.md @@ -1,9 +1,9 @@ --- -title: Configure the Datadog Tracing Library +title: Configure the Datadog APM SDK type: multi-code-lang --- -For information about configuration options for tracing libraries, choose your language: +For information about configuration options for APM SDKs, choose your language: {{< partial name="apm/apm-compatibility.html" >}} diff --git a/content/en/tracing/trace_collection/library_config/cpp.md b/content/en/tracing/trace_collection/library_config/cpp.md index 5d3030780eef7..875a068e8767f 100644 --- a/content/en/tracing/trace_collection/library_config/cpp.md +++ b/content/en/tracing/trace_collection/library_config/cpp.md @@ -1,5 +1,5 @@ --- -title: Configuring the C++ Tracing Library +title: Configuring the C++ APM SDK code_lang: cpp type: multi-code-lang code_lang_weight: 50 @@ -15,12 +15,12 @@ further_reading: text: "Propagating trace context" --- -After you set up the tracing library with your code and configure the Agent to collect APM data, optionally configure the tracing library as desired, including setting up [Unified Service Tagging][1]. +After you set up the APM SDK with your code and configure the Agent to collect APM data, optionally configure the APM SDK as desired, including setting up [Unified Service Tagging][1]. It is recommended to use `DD_SERVICE`, `DD_ENV`, and `DD_VERSION` to set `env`, `service` and `version` for your services. Refer to the [Unified Service Tagging][1] docummentation recommendations on which value to set for environment variables. ## Environment variables -To configure the tracer using environment variables, set the variables before launching the instrumented application. +To configure the APM SDK using environment variables, set the variables before launching the instrumented application. `DD_SERVICE` : **Since**: v0.1.0
@@ -121,13 +121,13 @@ Adds the `hostname` tag with the result of `gethostname`. `DD_TRACE_STARTUP_LOGS` : **Since**: 0.1.0
**Default**: `true`
-Log the tracer configuration once the tracer is fully initialized.
+Log the APM SDK configuration once the SDK is fully initialized.
`DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED` : **Since**: 0.1.6
**Default**: `true`
-If `true`, the tracer will generate 128-bit trace IDs.
-If `false`, the tracer will generate legacy 64-bit trace IDs. +If `true`, the APM SDK generates 128-bit trace IDs.
+If `false`, the APM SDK generates legacy 64-bit trace IDs. `DD_INSTRUMENTATION_TELEMETRY_ENABLED` : **Since**: 0.1.12
@@ -137,7 +137,7 @@ Datadog may collect [environmental and diagnostic information about your system] `DD_REMOTE_CONFIGURATION_ENABLED` : **Since**: 0.2.0
**Default**: `true`
-Enable the capability that allows to remotely configure and change the behavior of the tracer.
+Enable the capability that allows to remotely configure and change the behavior of the APM SDK.
When `false` this feature is disabled.
For more information, see [Remote Configuration][5]. diff --git a/content/en/tracing/trace_collection/library_config/dotnet-core.md b/content/en/tracing/trace_collection/library_config/dotnet-core.md index 7f93116657a2a..286d041533113 100644 --- a/content/en/tracing/trace_collection/library_config/dotnet-core.md +++ b/content/en/tracing/trace_collection/library_config/dotnet-core.md @@ -1,5 +1,5 @@ --- -title: Configuring the .NET Core Tracing Library +title: Configuring the .NET Core APM SDK code_lang: dotnet-core type: multi-code-lang code_lang_weight: 60 @@ -36,24 +36,24 @@ further_reading: text: "OpenTelemetry Environment Variable Configurations" --- -After you set up the tracing library with your code and configure the Agent to collect APM data, optionally configure the tracing library as desired, including setting up [Unified Service Tagging][4]. +After you set up the APM SDK with your code and configure the Agent to collect APM data, optionally configure the APM SDK as desired, including setting up [Unified Service Tagging][4]. -{{< img src="tracing/dotnet/dotnet_core_configuration.png" alt=".NET Core Tracer configuration setting precedence" style="width:100%" >}} +{{< img src="tracing/dotnet/dotnet_core_configuration.png" alt=".NET Core APM SDK configuration setting precedence" style="width:100%" >}} -You can set configuration settings in the .NET Tracer with any of the following methods: +You can set configuration settings in the .NET APM SDK with any of the following methods: {{< tabs >}} {{% tab "Environment variables" %}} -To configure the tracer using environment variables, set the variables before launching the instrumented application. To learn how to set environment variables in different environments, see [Configuring process environment variables][1]. +To configure the APM SDK using environment variables, set the variables before launching the instrumented application. To learn how to set environment variables in different environments, see [Configuring process environment variables][1]. [1]: /tracing/trace_collection/dd_libraries/dotnet-core/#configuring-process-environment-variables {{% /tab %}} {{% tab "Code" %}} -To configure the tracer in application code, create a `TracerSettings` instance from the default configuration sources. Set properties on this `TracerSettings` instance before calling `Tracer.Configure()`. For example: +To configure the APM SDK in application code, create a `TracerSettings` instance from the default configuration sources. Set properties on this `TracerSettings` instance before calling `Tracer.Configure()`. For example:
Note: Settings must be set on TracerSettings before creating the Tracer. Changes made to TracerSettings properties after the Tracer is created are ignored. @@ -80,7 +80,7 @@ Tracer.Configure(settings); {{% tab "JSON file" %}} -To configure the tracer using a JSON file, create `datadog.json` in the instrumented application's directory. The root JSON object must be an object with a key-value pair for each setting. For example: +To configure the APM SDK using a JSON file, create `datadog.json` in the instrumented application's directory. The root JSON object must be an object with a key-value pair for each setting. For example: ```json { @@ -113,7 +113,7 @@ If specified, adds the `env` tag with the specified value to all generated spans `DD_SERVICE` : **TracerSettings property**: `ServiceName`
-If specified, sets the service name. Otherwise, the .NET Tracer tries to determine service name automatically from the application name (IIS application name, process entry assembly, or process name). Added in version 1.17.0. +If specified, sets the service name. Otherwise, the .NET APM SDK tries to determine service name automatically from the application name (IIS application name, process entry assembly, or process name). Added in version 1.17.0. `DD_VERSION` : **TracerSettings property**: `ServiceVersion`
@@ -178,7 +178,7 @@ If the **Request** has a header `User-ID`, its value is applied as tag `http.req If the **Response** has a header `User-ID`, its value is applied as tag `http.response.headers.User-ID`.

Added in version 1.18.3.
Response header support and entries without tag names added in version 1.26.0.
-**Beta**: Starting in version 2.35.0, if [Agent Remote Configuration][16] is enabled where this service runs, you can set `DD_TRACE_HEADER_TAGS` in the [Service Catalog][17] UI. +**Beta**: Starting in version 2.35.0, if [Agent Remote Configuration][16] is enabled where this service runs, you can set `DD_TRACE_HEADER_TAGS` in the [Service Catalog][17] UI. `DD_TRACE_CLIENT_IP_ENABLED` : Enables client IP collection from relevant IP headers.
@@ -198,11 +198,11 @@ If specified, adds all of the specified tags to all generated spans.
Added in version 1.17.0.
`DD_TRACE_LOG_DIRECTORY` -: Sets the directory for .NET Tracer logs.
+: Sets the directory for .NET APM SDK logs.
**Default**: `%ProgramData%\Datadog .NET Tracer\logs\` on Windows, `/var/log/datadog/dotnet` on Linux `DD_TRACE_LOGFILE_RETENTION_DAYS` -: During the tracer's startup, this configuration uses the tracer's current log directory to delete log files the same age and older than the given number of days. Added in version 2.19.0.
+: During the APM SDK's startup, this configuration uses the SDK's current log directory to delete log files the same age and older than the given number of days. Added in version 2.19.0.
**Default**: `31` `DD_TRACE_LOGGING_RATE` @@ -309,7 +309,7 @@ The following configuration variables are for features that are available for us #### Deprecated settings `DD_TRACE_LOG_PATH` -: Sets the path for the automatic instrumentation log file and determines the directory of all other .NET Tracer log files. Ignored if `DD_TRACE_LOG_DIRECTORY` is set. +: Sets the path for the automatic instrumentation log file and determines the directory of all other .NET APM SDK log files. Ignored if `DD_TRACE_LOG_DIRECTORY` is set. `DD_TRACE_ROUTE_TEMPLATE_RESOURCE_NAMES_ENABLED` : Enables improved resource names for web spans when set to `true`. Uses route template information where available, adds an additional span for ASP.NET Core integrations, and enables additional tags. Added in version 1.26.0. Enabled by default in 2.0.0
diff --git a/content/en/tracing/trace_collection/library_config/dotnet-framework.md b/content/en/tracing/trace_collection/library_config/dotnet-framework.md index 3c5078608fa70..6c96390630ef0 100644 --- a/content/en/tracing/trace_collection/library_config/dotnet-framework.md +++ b/content/en/tracing/trace_collection/library_config/dotnet-framework.md @@ -1,5 +1,5 @@ --- -title: Configuring the .NET Framework Tracing Library +title: Configuring the .NET Framework APM SDK code_lang: dotnet-framework type: multi-code-lang code_lang_weight: 70 @@ -39,17 +39,17 @@ further_reading: text: "OpenTelemetry Environment Variable Configurations" --- -After you set up the tracing library with your code and configure the Agent to collect APM data, optionally configure the tracing library as desired, including setting up [Unified Service Tagging][4]. +After you set up the APM SDK with your code and configure the Agent to collect APM data, optionally configure the APM SDK as desired, including setting up [Unified Service Tagging][4]. -{{< img src="tracing/dotnet/dotnet_framework_configuration.png" alt=".NET Framework Tracer configuration setting precedence" style="width:100%" >}} +{{< img src="tracing/dotnet/dotnet_framework_configuration.png" alt=".NET Framework APM SDK configuration setting precedence" style="width:100%" >}} -You can set configuration settings in the .NET Tracer with any of the following methods: +You can set configuration settings in the .NET APM SDK with any of the following methods: {{< tabs >}} {{% tab "Environment variables" %}} -To configure the tracer using environment variables, set the variables before launching the instrumented application. To learn how to set environment variables in different environments, see [Configuring process environment variables][1]. +To configure the APM SDK using environment variables, set the variables before launching the instrumented application. To learn how to set environment variables in different environments, see [Configuring process environment variables][1]. [1]: /tracing/trace_collection/dd_libraries/dotnet-framework/#configuring-process-environment-variables @@ -57,7 +57,7 @@ To configure the tracer using environment variables, set the variables before la {{% tab "Code" %}} -To configure the Tracer in application code, create a `TracerSettings` instance from the default configuration sources. Set properties on this `TracerSettings` instance before calling `Tracer.Configure()`. For example: +To configure the APM SDK in application code, create a `TracerSettings` instance from the default configuration sources. Set properties on this `TracerSettings` instance before calling `Tracer.Configure()`. For example:
Note: Settings must be set on TracerSettings before creating the Tracer. Changes made to TracerSettings properties after the Tracer is created are ignored. @@ -84,7 +84,7 @@ Tracer.Configure(settings); {{% tab "web.config" %}} -To configure the Tracer using an `app.config` or `web.config` file, use the `` section. For example: +To configure the APM SDK using an `app.config` or `web.config` file, use the `` section. For example: ```xml @@ -101,7 +101,7 @@ To configure the Tracer using an `app.config` or `web.config` file, use the ` -If specified, sets the service name. Otherwise, the .NET Tracer tries to determine service name automatically from application name (IIS application name, process entry assembly, or process name). Added in version 1.17.0. +If specified, sets the service name. Otherwise, the .NET APM SDK tries to determine service name automatically from application name (IIS application name, process entry assembly, or process name). Added in version 1.17.0. `DD_VERSION` : **TracerSettings property**: `ServiceVersion`
@@ -214,7 +214,7 @@ If specified, adds all of the specified tags to all generated spans.
Added in version 1.17.0.
`DD_TRACE_LOG_DIRECTORY` -: Sets the directory for .NET Tracer logs.
+: Sets the directory for .NET APM SDK logs.
**Default**: `%ProgramData%\Datadog .NET Tracer\logs\` `DD_TRACE_LOGFILE_RETENTION_DAYS` @@ -325,7 +325,7 @@ The following configuration variables are for features that are available for us #### Deprecated settings `DD_TRACE_LOG_PATH` -: Sets the path for the automatic instrumentation log file and determines the directory of all other .NET Tracer log files. Ignored if `DD_TRACE_LOG_DIRECTORY` is set. +: Sets the path for the automatic instrumentation log file and determines the directory of all other .NET APM SDK log files. Ignored if `DD_TRACE_LOG_DIRECTORY` is set. `DD_TRACE_ROUTE_TEMPLATE_RESOURCE_NAMES_ENABLED` : Enables improved resource names for web spans when set to `true`. Uses route template information where available, adds an additional span for ASP.NET Core integrations, and enables additional tags. Added in version 1.26.0. Enabled by default in 2.0.0
diff --git a/content/en/tracing/trace_collection/library_config/go.md b/content/en/tracing/trace_collection/library_config/go.md index 8eb34fd7fdcd5..53e2a8d2e4529 100644 --- a/content/en/tracing/trace_collection/library_config/go.md +++ b/content/en/tracing/trace_collection/library_config/go.md @@ -1,5 +1,5 @@ --- -title: Configuring the Go Tracing Library +title: Configuring the Go APM SDK code_lang: go type: multi-code-lang code_lang_weight: 20 @@ -21,13 +21,13 @@ further_reading: text: "OpenTelemetry Environment Variable Configurations" --- -After you [set up the tracing library with your code, configure the Agent to collect APM data, and activate the Go integration][1], optionally configure the tracing library as desired. +After you [set up the APM SDK with your code, configure the Agent to collect APM data, and activate the Go integration][1], optionally configure the APM SDK as desired. Datadog recommends using `DD_ENV`, `DD_SERVICE`, and `DD_VERSION` to set `env`, `service`, and `version` for your services. -Read the [Unified Service Tagging][2] documentation for recommendations on how to configure these environment variables. These variables are available for versions 1.24.0+ of the Go tracer. +Read the [Unified Service Tagging][2] documentation for recommendations on how to configure these environment variables. These variables are available for versions 1.24.0+ of the Go APM SDK. -You may also elect to provide `env`, `service`, and `version` through the tracer's API: +You may also elect to provide `env`, `service`, and `version` through the APM SDK's API: ```go package main @@ -49,7 +49,7 @@ func main() { } ``` -The Go tracer supports additional environment variables and functions for configuration. +The Go APM SDK supports additional environment variables and functions for configuration. See all available options in the [configuration documentation][3]. `DD_VERSION` @@ -114,7 +114,7 @@ Enable startup configuration and the diagnostic log. `DD_TRACE_DEBUG` : **Default**: `false`
-Enable debug logging in the tracer. +Enable debug logging in the APM SDK. `DD_TRACE_ENABLED` : **Default**: `true`
@@ -162,7 +162,7 @@ Configures trace header injection and extraction style. See [Propagating Go Trac ## Configure APM environment name -The [APM environment name][7] may be configured [in the Agent][8] or using the [WithEnv][3] start option of the tracer. +The [APM environment name][7] may be configured [in the Agent][8] or using the [WithEnv][3] start option of the APM SDK. ## Further reading diff --git a/content/en/tracing/trace_collection/library_config/java.md b/content/en/tracing/trace_collection/library_config/java.md index 663820de8b48b..3ff6be5f01b1d 100644 --- a/content/en/tracing/trace_collection/library_config/java.md +++ b/content/en/tracing/trace_collection/library_config/java.md @@ -1,5 +1,5 @@ --- -title: Configuring the Java Tracing Library +title: Configuring the Java APM SDK code_lang: java type: multi-code-lang code_lang_weight: 0 @@ -18,7 +18,7 @@ further_reading: text: "OpenTelemetry Environment Variable Configurations" --- -After you set up the tracing library with your code and configure the Agent to collect APM data, optionally configure the tracing library as desired, including setting up [Unified Service Tagging][1]. +After you set up the APM SDK with your code and configure the Agent to collect APM data, optionally configure the APM SDK as desired, including setting up [Unified Service Tagging][1]. All configuration options below have system property and environment variable equivalents. If the same key type is set for both, the system property configuration takes priority. @@ -32,7 +32,7 @@ Unless otherwise stated, you can convert between system properties and environme - To set an environment variable as a system property, lowercase the variable name and replace `_` with `.` For example, `DD_TAGS` becomes `dd.tags`. -**Note**: When using the Java tracer's system properties, list the properties before `-jar`. This ensures the properties are read in as JVM options. +**Note**: When using the Java APM SDK's system properties, list the properties before `-jar`. This ensures the properties are read in as JVM options. ## Configuration options @@ -154,7 +154,7 @@ List of class/interface and methods to trace. Similar to adding `@Trace`, but wi : **Environment Variable**: `DD_TRACE_CLASSES_EXCLUDE`
**Default**: `null`
**Example**: `package.ClassName,package.ClassName$Nested,package.Foo*,package.other.*`
-A list of fully qualified classes (that may end with a wildcard to denote a prefix) which will be ignored (not modified) by the tracer. Must use the jvm internal representation for names (eg package.ClassName$Nested and not package.ClassName.Nested) +A list of fully qualified classes (that may end with a wildcard to denote a prefix) which will be ignored (not modified) by the APM SDK. Must use the jvm internal representation for names (eg package.ClassName$Nested and not package.ClassName.Nested) `dd.trace.partial.flush.min.spans` : **Environment Variable**: `DD_TRACE_PARTIAL_FLUSH_MIN_SPANS`
@@ -190,7 +190,7 @@ When set to `true`, the query string parameters are added to Elasticsearch and O `dd.trace.health.metrics.enabled` : **Environment Variable**: `DD_TRACE_HEALTH_METRICS_ENABLED`
**Default**: `true`
-When set to `true` sends tracer health metrics +When set to `true` sends APM SDK health metrics `dd.trace.health.metrics.statsd.host` : **Environment Variable**: `DD_TRACE_HEALTH_METRICS_STATSD_HOST`
@@ -282,7 +282,7 @@ A regex to redact sensitive data from incoming requests' query string reported i `dd.integration.opentracing.enabled` : **Environment Variable**: `DD_INTEGRATION_OPENTRACING_ENABLED`
**Default**: `true`
-By default the tracing client detects if a GlobalTracer is being loaded and dynamically registers a tracer into it. By turning this to false, this removes any tracer dependency on OpenTracing. +By default the tracing client detects if a GlobalTracer is being loaded and dynamically registers an APM SDK into it. By turning this to false, this removes any APM SDK dependency on OpenTracing. `dd.hystrix.tags.enabled` : **Environment Variable**: `DD_HYSTRIX_TAGS_ENABLED`
@@ -307,17 +307,17 @@ When `true`, user principal is collected. Available for versions 0.61+. `dd.instrumentation.telemetry.enabled` : **Environment Variable**: `DD_INSTRUMENTATION_TELEMETRY_ENABLED`
**Default**: `true`
-When `true`, the tracer collects [telemetry data][8]. Available for versions 0.104+. Defaults to `true` for versions 0.115+. +When `true`, the APM SDK collects [telemetry data][8]. Available for versions 0.104+. Defaults to `true` for versions 0.115+. `dd.trace.128.bit.traceid.generation.enabled` : **Environment Variable**: `DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED`
**Default**: `true`
-When `true`, the tracer generates 128 bit Trace IDs, and encodes Trace IDs as 32 lowercase hexadecimal characters with zero padding. +When `true`, the APM SDK generates 128 bit Trace IDs, and encodes Trace IDs as 32 lowercase hexadecimal characters with zero padding. `dd.trace.128.bit.traceid.logging.enabled` : **Environment Variable**: `DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED`
**Default**: `false`
-When `true`, the tracer will inject 128 bit Trace IDs as 32 lowercase hexadecimal characters with zero padding, and 64 bit Trace IDs as decimal numbers. Otherwise, the tracer always injects Trace IDs as decimal numbers. +When `true`, the APM SDK injects 128 bit Trace IDs as 32 lowercase hexadecimal characters with zero padding, and 64 bit Trace IDs as decimal numbers. Otherwise, the APM SDK always injects Trace IDs as decimal numbers. `dd.trace.otel.enabled` : **Environment Variable**: `DD_TRACE_OTEL_ENABLED`
@@ -519,4 +519,4 @@ Deprecated since version 1.9.0 [14]: /integrations/java/?tab=host#metric-collection [15]: /tracing/trace_collection/trace_context_propagation/java/ [16]: /tracing/trace_collection/custom_instrumentation/java/otel/ -[17]: /opentelemetry/interoperability/environment_variable_support \ No newline at end of file +[17]: /opentelemetry/interoperability/environment_variable_support diff --git a/content/en/tracing/trace_collection/library_config/nodejs.md b/content/en/tracing/trace_collection/library_config/nodejs.md index fe0369557b3e4..98714836f63f2 100644 --- a/content/en/tracing/trace_collection/library_config/nodejs.md +++ b/content/en/tracing/trace_collection/library_config/nodejs.md @@ -1,5 +1,5 @@ --- -title: Configuring the Node.js Tracing Library +title: Configuring the Node.js APM SDK code_lang: nodejs type: multi-code-lang code_lang_weight: 30 @@ -24,9 +24,9 @@ further_reading: text: "OpenTelemetry Environment Variable Configurations" --- -After you set up the tracing library with your code and configure the Agent to collect APM data, optionally configure the tracing library as desired, including setting up [Unified Service Tagging][1]. +After you set up the APM SDK with your code and configure the Agent to collect APM data, optionally configure the APM SDK as desired, including setting up [Unified Service Tagging][1]. -Tracer settings can be configured with the following environment variables: +APM SDK settings can be configured with the following environment variables: ### Tagging @@ -75,7 +75,7 @@ When `true`, OpenTelemetry-based tracing for [custom][15] instrumentation is ena `DD_TRACE_DEBUG` : **Configuration**: N/A
**Default**: `false`
-Enable debug logging in the tracer. +Enable debug logging in the APM SDK. `DD_TRACING_ENABLED` : **Configuration**: N/A
@@ -85,22 +85,22 @@ Whether to enable tracing. `DD_TRACE_AGENT_URL` : **Configuration**: `url`
**Default**: `http://localhost:8126`
-The URL of the Trace Agent that the tracer submits to. Takes priority over hostname and port, if set. If the [Agent configuration][13] sets `receiver_port` or `DD_APM_RECEIVER_PORT` to something other than the default `8126`, then `DD_TRACE_AGENT_PORT` or `DD_TRACE_AGENT_URL` must match it. Supports Unix Domain Sockets in combination with the `apm_config.receiver_socket` in your `datadog.yaml` file, or the `DD_APM_RECEIVER_SOCKET` environment variable. +The URL of the Trace Agent that the APM SDK submits to. Takes priority over hostname and port, if set. If the [Agent configuration][13] sets `receiver_port` or `DD_APM_RECEIVER_PORT` to something other than the default `8126`, then `DD_TRACE_AGENT_PORT` or `DD_TRACE_AGENT_URL` must match it. Supports Unix Domain Sockets in combination with the `apm_config.receiver_socket` in your `datadog.yaml` file, or the `DD_APM_RECEIVER_SOCKET` environment variable. `DD_TRACE_AGENT_HOSTNAME` : **Configuration**: `hostname`
**Default**: `localhost`
-The address of the Agent that the tracer submits to. +The address of the Agent that the APM SDK submits to. `DD_TRACE_AGENT_PORT` : **Configuration**: `port`
**Default**: `8126`
-The port of the Trace Agent that the tracer submits to. If the [Agent configuration][13] sets `receiver_port` or `DD_APM_RECEIVER_PORT` to something other than the default `8126`, then `DD_TRACE_AGENT_PORT` or `DD_TRACE_AGENT_URL` must match it. +The port of the Trace Agent that the APM SDK submits to. If the [Agent configuration][13] sets `receiver_port` or `DD_APM_RECEIVER_PORT` to something other than the default `8126`, then `DD_TRACE_AGENT_PORT` or `DD_TRACE_AGENT_URL` must match it. `DD_DOGSTATSD_PORT` : **Configuration**: `dogstatsd.port`
**Default**: `8125`
-The port of the DogStatsD Agent that metrics are submitted to. If the [Agent configuration][13] sets `dogstatsd_port` or `DD_DOGSTATSD_PORT` to something other than the default `8125`, then this tracing library `DD_DOGSTATSD_PORT` must match it. +The port of the DogStatsD Agent that metrics are submitted to. If the [Agent configuration][13] sets `dogstatsd_port` or `DD_DOGSTATSD_PORT` to something other than the default `8125`, then this APM SDK `DD_DOGSTATSD_PORT` must match it. `DD_LOGS_INJECTION` : **Configuration**: `logInjection`
@@ -120,7 +120,7 @@ The maximum number of traces per second per service instance.
`DD_TRACE_SAMPLING_RULES` : **Configuration**: `samplingRules`
**Default**: `[]`
-Sampling rules to apply to priority sampling. A JSON array of objects. Each object must have a `sample_rate` value between 0.0 and 1.0 (inclusive). Each rule has optional `name` and `service` fields, which are regex strings to match against a trace's `service` and `name`. Rules are applied in configured order to determine the trace's sample rate. If omitted, the tracer defers to the Agent to dynamically adjust sample rate across all traces. +Sampling rules to apply to priority sampling. A JSON array of objects. Each object must have a `sample_rate` value between 0.0 and 1.0 (inclusive). Each rule has optional `name` and `service` fields, which are regex strings to match against a trace's `service` and `name`. Rules are applied in configured order to determine the trace's sample rate. If omitted, the APM SDK defers to the Agent to dynamically adjust sample rate across all traces. `DD_SPAN_SAMPLING_RULES` : **Configuration**: `spanSamplingRules`
@@ -150,17 +150,17 @@ Provide service names for each plugin. Accepts comma separated `plugin:service-n : **Configuration**: N/A
**Default**: N/A
**Example**: `DD_TRACE_DISABLED_PLUGINS=express,dns`
-A comma-separated string of integration names automatically disabled when the tracer is initialized. +A comma-separated string of integration names automatically disabled when the APM SDK is initialized. `DD_TRACE_LOG_LEVEL` : **Configuration**: `logLevel`
**Default**: `debug`
-A string for the minimum log level for the tracer to use when debug logging is enabled, for example, `error`, `debug`. +A string for the minimum log level for the APM SDK to use when debug logging is enabled, for example, `error`, `debug`. Flush Interval : **Configuration**: `flushInterval`
**Default**: `2000`
-Interval in milliseconds at which the tracer submits traces to the Agent. +Interval in milliseconds at which the APM SDK submits traces to the Agent. `DD_TRACE_PARTIAL_FLUSH_MIN_SPANS` : **Configuration**: `flushMinSpans`
@@ -210,7 +210,7 @@ Whether to enable automatic instrumentation of external libraries using the buil `DD_TRACE_STARTUP_LOGS` : **Configuration**: `startupLogs`
**Default**: `false`
-Enable tracer startup configuration and diagnostic log. +Enable APM SDK startup configuration and diagnostic log. `DD_DBM_PROPAGATION_MODE` : **Configuration**: `dbmPropagationMode`
diff --git a/content/en/tracing/trace_collection/library_config/php.md b/content/en/tracing/trace_collection/library_config/php.md index 0ddda3fbd9bf4..015bed56dc7bc 100644 --- a/content/en/tracing/trace_collection/library_config/php.md +++ b/content/en/tracing/trace_collection/library_config/php.md @@ -1,5 +1,5 @@ --- -title: Configuring the PHP Tracing Library +title: Configuring the PHP APM SDK code_lang: php type: multi-code-lang code_lang_weight: 40 @@ -24,9 +24,9 @@ further_reading: text: "OpenTelemetry Environment Variable Configurations" --- -After you set up the tracing library with your code and configure the Agent to collect APM data, optionally configure the tracing library as desired, including setting up [Unified Service Tagging][1]. +After you set up the APM SDK with your code and configure the Agent to collect APM data, optionally configure the APM SDK as desired, including setting up [Unified Service Tagging][1]. -The PHP tracer can be configured using environment variables and INI settings. +The PHP APM SDK can be configured using environment variables and INI settings. INI settings can be configured globally, for example, in the `php.ini` file, or for a specific web server or virtual host. @@ -34,7 +34,7 @@ INI settings can be configured globally, for example, in the `php.ini` file, or ### Apache -For Apache with php-fpm, use the `env` directive in your `www.conf` configuration file to configure the PHP tracer, for example: +For Apache with php-fpm, use the `env` directive in your `www.conf` configuration file to configure the PHP APM SDK, for example: ``` ; Example of passing the host environment variable SOME_ENV @@ -97,7 +97,7 @@ The Agent host name. `DD_AUTOFINISH_SPANS` : **INI**: `datadog.autofinish_spans`
**Default**: `0`
-Whether spans are automatically finished when the tracer is flushed. +Whether spans are automatically finished when the APM SDK is flushed. `DD_DISTRIBUTED_TRACING` : **INI**: `datadog.distributed_tracing`
@@ -190,7 +190,7 @@ Change the default name of an APM integration. Rename one or more integrations a `DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED` : **INI**: `datadog.trace.128_bit_traceid_generation_enabled`
**Default**: `true`
-When true, the tracer generates 128 bit Trace IDs, and encodes Trace IDs as 32 lowercase hexadecimal characters with zero padding. +When true, the APM SDK generates 128 bit Trace IDs, and encodes Trace IDs as 32 lowercase hexadecimal characters with zero padding. `DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED` : **INI**: `datadog.trace.128_bit_traceid_logging_enabled`
@@ -202,7 +202,7 @@ When true, the trace ID is printed as a full 128-bit trace ID in hexadecimal for `DD_TRACE_HEALTH_METRICS_ENABLED` : **INI**: `datadog.trace_health_metrics_enabled`
**Default**: `false`
-When enabled, the tracer sends stats to DogStatsD. In addition, where `sigaction` is available at build time, the tracer sends uncaught exception metrics upon segfaults. +When enabled, the APM SDK sends stats to DogStatsD. In addition, where `sigaction` is available at build time, the APM SDK sends uncaught exception metrics upon segfaults. `DD_TRACE_AGENT_CONNECT_TIMEOUT` : **INI**: `datadog.trace.agent_connect_timeout`
@@ -237,7 +237,7 @@ The port used to connect to DogStatsD, used in combination with `DD_AGENT_HOST` `DD_TRACE_AUTO_FLUSH_ENABLED` : **INI**: `datadog.trace.auto_flush_enabled`
**Default**: `0`
-Automatically flush the tracer when all the spans are closed; set to `1` in conjunction with `DD_TRACE_GENERATE_ROOT_SPAN=0` to trace [long-running processes][14]. +Automatically flush the APM SDK when all the spans are closed; set to `1` in conjunction with `DD_TRACE_GENERATE_ROOT_SPAN=0` to trace [long-running processes][14]. `DD_TRACE_CLI_ENABLED` : **INI**: `datadog.trace.cli_enabled`
@@ -267,7 +267,7 @@ Indicates whether to trace a forked process. Set to `1` to trace forked processe `DD_TRACE_ENABLED` : **INI**: `datadog.trace.enabled`
**Default**: `1`
-Enable the tracer globally. +Enable the APM SDK globally. `DD_TRACE_GENERATE_ROOT_SPAN` : **INI**: `datadog.trace.generate_root_span`
@@ -473,7 +473,7 @@ A comma-separated list of WordPress action hooks to be instrumented. This featur `DD_TRACE_WORDPRESS_CALLBACKS` : **INI**: `datadog.trace.wordpress_callbacks`
-**Default**: `true` for PHP tracer >= v1.0
+**Default**: `true` for PHP APM SDK >= v1.0
Enables WordPress action hook callbacks instrumentation. This feature is only available when `DD_TRACE_WORDPRESS_ENHANCED_INTEGRATION` is enabled. Added in version `0.91.0`. `DD_DBM_PROPAGATION_MODE` @@ -628,7 +628,7 @@ When the application runs in a docker container, the path `/proc/self` should al ### Headers extraction and injection -Read [Trace Context Propagation][11] for information about configuring the PHP tracing library to extract and inject headers for propagating distributed trace context. +Read [Trace Context Propagation][11] for information about configuring the PHP APM SDK to extract and inject headers for propagating distributed trace context. ## Further Reading {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/en/tracing/trace_collection/library_config/python.md b/content/en/tracing/trace_collection/library_config/python.md index 25ccc4bae76d8..5495fe30057bd 100644 --- a/content/en/tracing/trace_collection/library_config/python.md +++ b/content/en/tracing/trace_collection/library_config/python.md @@ -1,5 +1,5 @@ --- -title: Configuring the Python Tracing Library +title: Configuring the Python APM SDK code_lang: python type: multi-code-lang code_lang_weight: 20 @@ -24,13 +24,13 @@ further_reading: text: "OpenTelemetry Environment Variable Configurations" --- -After you set up the tracing library with your code and configure the Agent to collect APM data, optionally configure the tracing library as desired, including setting up [Unified Service Tagging][1]. +After you set up the APM SDK with your code and configure the Agent to collect APM data, optionally configure the APM SDK as desired, including setting up [Unified Service Tagging][1]. When using **ddtrace-run**, the following [environment variable options][2] can be used: `DD_TRACE_DEBUG` : **Default**: `false`
-Enable debug logging in the tracer. +Enable debug logging in the APM SDK. `DD_PATCH_MODULES` : Override the modules patched for this application execution. Follow the format: `DD_PATCH_MODULES=module:patch,module:patch...` @@ -88,25 +88,25 @@ Enable web framework and library instrumentation. When `false`, the application `DD_AGENT_HOST` : **Default**: `localhost`
-Override the address of the trace Agent host that the default tracer attempts to submit traces to. +Override the address of the trace Agent host that the default APM SDK attempts to submit traces to. `DD_AGENT_PORT` : **Default**: `8126`
-Overrides the port that the default tracer submit traces to. If the [Agent configuration][13] sets `receiver_port` or `DD_APM_RECEIVER_PORT` to something other than the default `8126`, then `DD_AGENT_PORT` or `DD_TRACE_AGENT_URL` must match it. +Overrides the port that the default APM SDK submit traces to. If the [Agent configuration][13] sets `receiver_port` or `DD_APM_RECEIVER_PORT` to something other than the default `8126`, then `DD_AGENT_PORT` or `DD_TRACE_AGENT_URL` must match it. `DD_TRACE_AGENT_URL` -: The URL of the Trace Agent that the tracer submits to. If set, this takes priority over hostname and port. Supports Unix Domain Sockets (UDS) in combination with the `apm_config.receiver_socket` configuration in your `datadog.yaml` file or the `DD_APM_RECEIVER_SOCKET` environment variable set on the Datadog Agent. For example, `DD_TRACE_AGENT_URL=http://localhost:8126` for HTTP URL and `DD_TRACE_AGENT_URL=unix:///var/run/datadog/apm.socket` for UDS. If the [Agent configuration][13] sets `receiver_port` or `DD_APM_RECEIVER_PORT` to something other than the default `8126`, then `DD_AGENT_PORT` or `DD_TRACE_AGENT_URL` must match it. +: The URL of the Trace Agent that the APM SDK submits to. If set, this takes priority over hostname and port. Supports Unix Domain Sockets (UDS) in combination with the `apm_config.receiver_socket` configuration in your `datadog.yaml` file or the `DD_APM_RECEIVER_SOCKET` environment variable set on the Datadog Agent. For example, `DD_TRACE_AGENT_URL=http://localhost:8126` for HTTP URL and `DD_TRACE_AGENT_URL=unix:///var/run/datadog/apm.socket` for UDS. If the [Agent configuration][13] sets `receiver_port` or `DD_APM_RECEIVER_PORT` to something other than the default `8126`, then `DD_AGENT_PORT` or `DD_TRACE_AGENT_URL` must match it. `DD_DOGSTATSD_URL` -: The URL used to connect to the Datadog Agent for DogStatsD metrics. If set, this takes priority over hostname and port. Supports Unix Domain Sockets (UDS) in combination with the `dogstatsd_socket` configuration in your `datadog.yaml` file or the `DD_DOGSTATSD_SOCKET` environment variable set on the Datadog Agent. For example, `DD_DOGSTATSD_URL=udp://localhost:8126` for UDP URL and `DD_DOGSTATSD_URL=unix:///var/run/datadog/dsd.socket` for UDS. If the [Agent configuration][13] sets `dogstatsd_port` or `DD_DOGSTATSD_PORT` to something other than the default `8125`, then this tracing library `DD_DOGSTATSD_URL` or `DD_DOGSTATSD_PORT` must match it. +: The URL used to connect to the Datadog Agent for DogStatsD metrics. If set, this takes priority over hostname and port. Supports Unix Domain Sockets (UDS) in combination with the `dogstatsd_socket` configuration in your `datadog.yaml` file or the `DD_DOGSTATSD_SOCKET` environment variable set on the Datadog Agent. For example, `DD_DOGSTATSD_URL=udp://localhost:8126` for UDP URL and `DD_DOGSTATSD_URL=unix:///var/run/datadog/dsd.socket` for UDS. If the [Agent configuration][13] sets `dogstatsd_port` or `DD_DOGSTATSD_PORT` to something other than the default `8125`, then this APM SDK `DD_DOGSTATSD_URL` or `DD_DOGSTATSD_PORT` must match it. `DD_DOGSTATSD_HOST` : **Default**: `localhost`
-Override the address of the trace Agent host that the default tracer attempts to submit DogStatsD metrics to. Use `DD_AGENT_HOST` to override `DD_DOGSTATSD_HOST`. +Override the address of the trace Agent host that the default APM SDK attempts to submit DogStatsD metrics to. Use `DD_AGENT_HOST` to override `DD_DOGSTATSD_HOST`. `DD_DOGSTATSD_PORT` : **Default**: `8125`
-Override the port that the default tracer submits DogStatsD metrics to. If the [Agent configuration][13] sets `dogstatsd_port` or `DD_DOGSTATSD_PORT` to something other than the default `8125`, then this tracing library `DD_DOGSTATSD_PORT` or `DD_DOGSTATSD_URL` must match it. +Override the port that the default APM SDK submits DogStatsD metrics to. If the [Agent configuration][13] sets `dogstatsd_port` or `DD_DOGSTATSD_PORT` to something other than the default `8125`, then this APM SDK `DD_DOGSTATSD_PORT` or `DD_DOGSTATSD_URL` must match it. `DD_LOGS_INJECTION` : **Default**: `false`
diff --git a/content/en/tracing/trace_collection/library_config/ruby.md b/content/en/tracing/trace_collection/library_config/ruby.md index c1a68a8fc9daa..9115dd31b0388 100644 --- a/content/en/tracing/trace_collection/library_config/ruby.md +++ b/content/en/tracing/trace_collection/library_config/ruby.md @@ -1,5 +1,5 @@ --- -title: Configuring the Ruby Tracing Library +title: Configuring the Ruby APM SDK code_lang: ruby type: multi-code-lang code_lang_weight: 30 @@ -15,9 +15,9 @@ further_reading: text: "OpenTelemetry Environment Variable Configurations" --- -After you set up the tracing library with your code and configure the Agent to collect APM data, optionally configure the tracing library as desired, including setting up [Unified Service Tagging][1]. +After you set up the APM SDK with your code and configure the Agent to collect APM data, optionally configure the APM SDK as desired, including setting up [Unified Service Tagging][1]. -For information about configuring the Ruby tracing library, see [Additional Ruby configuration][2]. +For information about configuring the Ruby APM SDK, see [Additional Ruby configuration][2]. ## Further Reading {{< partial name="whats-next/whats-next.html" >}} diff --git a/content/en/tracing/trace_collection/proxy_setup/_index.md b/content/en/tracing/trace_collection/proxy_setup/_index.md index 6434c82224a23..47ecdf581091f 100644 --- a/content/en/tracing/trace_collection/proxy_setup/_index.md +++ b/content/en/tracing/trace_collection/proxy_setup/_index.md @@ -285,8 +285,8 @@ To configure your sampling rate with `DD_TRACE_SAMPLING_RULES`, use one of the f Note: The variables DD_AGENT_HOST, DD_TRACE_AGENT_PORT and DD_TRACE_AGENT_URL do not apply to Envoy, as the address of the Datadog Agent is configured using the cluster settings.
-The available [environment variables][2] depend on the version of the C++ tracer embedded in Envoy. -The version of the C++ tracer can be found in the logs, indicated by the line starting with "DATADOG TRACER CONFIGURATION". +The available [environment variables][2] depend on the version of the C++ APM SDK embedded in Envoy. +The version of the C++ APM SDK can be found in the logs, indicated by the line starting with "DATADOG TRACER CONFIGURATION". [1]: /tracing/trace_pipeline/ingestion_mechanisms/#in-the-agent [2]: /tracing/setup/cpp/#environment-variables diff --git a/content/en/tracing/trace_collection/runtime_config/_index.md b/content/en/tracing/trace_collection/runtime_config/_index.md index 561162f903d01..b25f5a726f921 100644 --- a/content/en/tracing/trace_collection/runtime_config/_index.md +++ b/content/en/tracing/trace_collection/runtime_config/_index.md @@ -43,7 +43,7 @@ You can tell when the configuration changes have been successfully applied by re ## Supported configuration options -The following options are supported with configuration at runtime. The required tracer version is listed for each language: +The following options are supported with configuration at runtime. The required APM SDK version is listed for each language: | Option | Java | Javascript | Python | .NET | Ruby | Go | C++ | |----------------------------------------------------------------------------------------------------------------------------------------|-----------|-------------------------|----------|-----------|-----------|-----------|-| diff --git a/content/en/tracing/trace_collection/span_links/_index.md b/content/en/tracing/trace_collection/span_links/_index.md index 26360be5ce284..47ef4f0e82f30 100644 --- a/content/en/tracing/trace_collection/span_links/_index.md +++ b/content/en/tracing/trace_collection/span_links/_index.md @@ -48,9 +48,9 @@ If your application is instrumented with: **Note***: This section documents minimum support for generating span links with Datadog APM client libraries (with the OpenTelemetry API). Span links generated by the OpenTelemetry SDK are sent to Datadog through [OTLP Ingest][8]. -Agent v7.52.0 or greater is required to generate span links using [Datadog tracing libraries][7]. Support for span links was introduced in the following releases: +Agent v7.52.0 or greater is required to generate span links using [Datadog APM SDKs][7]. Support for span links was introduced in the following releases: -| Language | Minimum tracing library version | +| Language | Minimum APM SDK version | |-----------|---------------------------------| | C++/Proxy | Not yet supported | | Go | 1.61.0 | diff --git a/content/en/tracing/trace_collection/trace_context_propagation/cpp.md b/content/en/tracing/trace_collection/trace_context_propagation/cpp.md index 35c110372527f..832a39cd0eef4 100644 --- a/content/en/tracing/trace_collection/trace_context_propagation/cpp.md +++ b/content/en/tracing/trace_collection/trace_context_propagation/cpp.md @@ -14,7 +14,7 @@ further_reading: ## Overview -Datadog APM tracer supports [B3][11] and [W3C][1] headers extraction and injection for distributed tracing. +Datadog APM APM SDK supports [B3][11] and [W3C][1] headers extraction and injection for distributed tracing. Distributed headers injection and extraction is controlled by configuring injection/extraction styles. The supported styles for C++ are: diff --git a/content/en/tracing/trace_collection/trace_context_propagation/dotnet.md b/content/en/tracing/trace_collection/trace_context_propagation/dotnet.md index 1626bcdcb6e30..cc8247024bb5a 100644 --- a/content/en/tracing/trace_collection/trace_context_propagation/dotnet.md +++ b/content/en/tracing/trace_collection/trace_context_propagation/dotnet.md @@ -12,12 +12,11 @@ further_reading: text: 'Interoperability of OpenTelemetry API and Datadog instrumented traces' --- - -The Datadog APM Tracer supports [B3][5] and [W3C Trace Context][6] headers extraction and injection for distributed tracing. +The Datadog APM SDK supports [B3][5] and [W3C Trace Context][6] header extraction and injection for distributed tracing. You can configure injection and extraction styles for distributed headers. -The .NET Tracer supports the following styles: +The .NET APM SDK supports the following styles: - W3C Trace Context: `tracecontext` (`W3C` alias is deprecated) - Datadog: `datadog` @@ -31,7 +30,7 @@ You can use the following environment variables to configure injection and extra The environment variable values are comma-separated lists of header styles enabled for injection or extraction. If multiple extraction styles are enabled, the extraction attempt is completed in the order of configured styles, and uses the first successful extracted value. -**Notes**: +**Notes**: - Starting from version [2.48.0](https://github.com/DataDog/dd-trace-dotnet/releases/tag/v2.48.0), the default propagation style is `datadog, tracecontext`, so the Datadog headers are used, followed by the W3C Trace Context. Prior to version 2.48.0, the order was `tracecontext, Datadog` for both extraction and injection propagation. Prior to version [2.22.0](https://github.com/DataDog/dd-trace-dotnet/releases/tag/v2.22.0), only the `Datadog` injection style was enabled. - Starting from version [2.42.0](https://github.com/DataDog/dd-trace-dotnet/releases/tag/v2.42.0), when multiple extractors are specified, the `DD_TRACE_PROPAGATION_EXTRACT_FIRST=true` configuration specifies whether context extraction should exit immediately upon detecting the first valid `tracecontext`. The default value is `false`. diff --git a/content/en/tracing/trace_collection/trace_context_propagation/java.md b/content/en/tracing/trace_collection/trace_context_propagation/java.md index 4ba5853a9b7df..fde266a6d5ad4 100644 --- a/content/en/tracing/trace_collection/trace_context_propagation/java.md +++ b/content/en/tracing/trace_collection/trace_context_propagation/java.md @@ -13,11 +13,11 @@ further_reading: --- -The Datadog APM Tracer supports [B3][13] and [W3C Trace Context][14] header extraction and injection for distributed tracing. +The Datadog APM SDK supports [B3][13] and [W3C Trace Context][14] header extraction and injection for distributed tracing. You can configure injection and extraction styles for distributed headers. -The Java Tracer supports the following styles: +The Java APM SDK supports the following styles: - Datadog: `datadog` - B3 Multi Header: `b3multi` (`b3` alias is deprecated) @@ -40,7 +40,7 @@ The value of the property or environment variable is a comma (or space) separate When multiple extraction styles are enabled, the extraction attempt is done on the order those styles are configured, using the first successful extracted value. If later valid trace contexts are found, they are terminated and appended as span links. Moreover, if the `tracecontext` style is enabled, W3C Tracestate is propagated if W3C Traceparent matches the extracted context. -For reference details about the context propagation settings and other configuration, read [Java Tracing Library Configuration][1]. +For reference details about the context propagation settings and other configuration, read [Java APM SDK Configuration][1]. ## Further Reading diff --git a/content/en/tracing/trace_collection/trace_context_propagation/nodejs.md b/content/en/tracing/trace_collection/trace_context_propagation/nodejs.md index 295df5077f550..d81963aa461f6 100644 --- a/content/en/tracing/trace_collection/trace_context_propagation/nodejs.md +++ b/content/en/tracing/trace_collection/trace_context_propagation/nodejs.md @@ -12,11 +12,11 @@ further_reading: text: 'Interoperability of OpenTelemetry API and Datadog instrumented traces' --- -The Datadog APM Tracer supports [B3][5] and [W3C Trace Context][6] header extraction and injection for distributed tracing. +The Datadog APM SDK supports [B3][5] and [W3C Trace Context][6] header extraction and injection for distributed tracing. You can configure injection and extraction styles for distributed headers. -The Node.js Tracer supports the following styles: +The Node.js SDK supports the following styles: - Datadog: `datadog` - B3 Multi Header: `b3multi` (`B3` alias is deprecated) @@ -25,7 +25,7 @@ The Node.js Tracer supports the following styles: The default setting for both injection and extraction style is `datadog,tracecontext`. -For more information about the context propagation settings, read [Node.js Tracing Library Configuration][1]. +For more information about the context propagation settings, read [Node.js APM SDK Configuration][1]. ## Further Reading diff --git a/content/en/tracing/trace_collection/trace_context_propagation/php.md b/content/en/tracing/trace_collection/trace_context_propagation/php.md index ce2ab218cbe74..35b0a779bf47d 100644 --- a/content/en/tracing/trace_collection/trace_context_propagation/php.md +++ b/content/en/tracing/trace_collection/trace_context_propagation/php.md @@ -12,27 +12,27 @@ further_reading: text: 'Interoperability of OpenTelemetry API and Datadog instrumented traces' --- -The Datadog APM Tracer supports [B3][7] and [W3C Trace Context][10] headers extraction and injection for distributed tracing. +The Datadog APM SDK supports [B3][7] and [W3C Trace Context][10] headers extraction and injection for distributed tracing. You can configure injection and extraction styles for distributed headers. -The PHP Tracer supports the following styles: +The PHP APM SDK supports the following styles: - Datadog: `datadog` - W3C Trace Context: `tracecontext` - B3 Multi Header: `b3multi` (`B3` alias is deprecated) - B3 Single Header: `B3 single header` -You can use the following environment variables to configure the PHP tracing library injection and extraction styles. For instance: +You can use the following environment variables to configure the PHP APM SDK injection and extraction styles. For instance: - `DD_TRACE_PROPAGATION_STYLE_INJECT=datadog,tracecontext,B3 single header` - `DD_TRACE_PROPAGATION_STYLE_EXTRACT=datadog,tracecontext,B3 single header` -The environment variable values are comma-separated lists of header styles enabled for injection or extraction. The default style setting is `datadog,tracecontext` (for PHP tracer versions prior to v0.98.0, the default setting is `tracecontext,Datadog`). +The environment variable values are comma-separated lists of header styles enabled for injection or extraction. The default style setting is `datadog,tracecontext` (for PHP APM SDK versions prior to v0.98.0, the default setting is `tracecontext,Datadog`). If multiple extraction styles are enabled, the extraction attempt is done on the order those styles are configured and first successful extracted value is used. -When a new PHP script is launched, the tracer automatically checks for the presence of Datadog headers for distributed tracing: +When a new PHP script is launched, the APM SDK automatically checks for the presence of Datadog headers for distributed tracing: - `x-datadog-trace-id` (environment variable: `HTTP_X_DATADOG_TRACE_ID`) - `x-datadog-parent-id` (environment variable: `HTTP_X_DATADOG_PARENT_ID`) - `x-datadog-origin` (environment variable: `HTTP_X_DATADOG_ORIGIN`) @@ -76,7 +76,7 @@ $headers = DDTrace\generate_distributed_tracing_headers(); ## RabbitMQ -Although the PHP tracer supports automatic tracing of the `php-amqplib/php-amqplib` library starting with version **0.87.0**, there are some known cases where your distributed trace can be disconnected. Most notably, when reading messages from a distributed queue using the `basic_get` method while not already in a trace, you would need to add a custom trace surrounding a `basic_get` call and the corresponding message processing. +Although the PHP APM SDK supports automatic tracing of the `php-amqplib/php-amqplib` library starting with version **0.87.0**, there are some known cases where your distributed trace can be disconnected. Most notably, when reading messages from a distributed queue using the `basic_get` method while not already in a trace, you would need to add a custom trace surrounding a `basic_get` call and the corresponding message processing. Here is an example: diff --git a/content/en/tracing/trace_collection/trace_context_propagation/python.md b/content/en/tracing/trace_collection/trace_context_propagation/python.md index 5f55c013b434a..cf804c2380e21 100644 --- a/content/en/tracing/trace_collection/trace_context_propagation/python.md +++ b/content/en/tracing/trace_collection/trace_context_propagation/python.md @@ -12,7 +12,7 @@ further_reading: text: 'Interoperability of OpenTelemetry API and Datadog instrumented traces' --- -The Datadog APM tracer supports extraction and injection of [B3][2] and [W3C Trace Context][3] headers for distributed tracing. +The Datadog APM SDK supports extraction and injection of [B3][2] and [W3C Trace Context][3] headers for distributed tracing. Distributed headers injection and extraction is controlled by configuring injection and extraction styles. Supported styles are: diff --git a/content/en/tracing/trace_collection/trace_context_propagation/ruby.md b/content/en/tracing/trace_collection/trace_context_propagation/ruby.md index 4abe20e16b9e5..94a74abee8ec3 100644 --- a/content/en/tracing/trace_collection/trace_context_propagation/ruby.md +++ b/content/en/tracing/trace_collection/trace_context_propagation/ruby.md @@ -53,7 +53,7 @@ Datadog.configure do |c| end ``` -For more information about trace context propagation configuration, read [the Distributed Tracing section][1] in the Ruby Tracing Library Configuration docs. +For more information about trace context propagation configuration, read [the Distributed Tracing section][1] in the Ruby APM SDK Configuration docs. ## Further Reading diff --git a/content/en/tracing/trace_collection/trace_context_propagation/ruby_v1.md b/content/en/tracing/trace_collection/trace_context_propagation/ruby_v1.md index b965625c44cdf..96e96fe2b86fa 100644 --- a/content/en/tracing/trace_collection/trace_context_propagation/ruby_v1.md +++ b/content/en/tracing/trace_collection/trace_context_propagation/ruby_v1.md @@ -51,7 +51,7 @@ Datadog.configure do |c| end ``` -For more information about trace context propagation configuration, read [the Distributed Tracing section][1] in the Ruby Tracing Library Configuration docs. +For more information about trace context propagation configuration, read [the Distributed Tracing section][1] in the Ruby APM SDK Configuration docs. ## Further Reading diff --git a/content/en/tracing/trace_collection/tracing_naming_convention/_index.md b/content/en/tracing/trace_collection/tracing_naming_convention/_index.md index 0690390f2248e..10656d0b3e4e2 100644 --- a/content/en/tracing/trace_collection/tracing_naming_convention/_index.md +++ b/content/en/tracing/trace_collection/tracing_naming_convention/_index.md @@ -14,7 +14,7 @@ further_reading: ## Overview -[Datadog tracing libraries][1] provide out-of-the-box support for instrumenting a variety of libraries. +[Datadog APM SDKs][1] provide out-of-the-box support for instrumenting a variety of libraries. These instrumentations generate spans to represent logical units of work in distributed systems. Each span consists of [span tags][2] to provide additional information on the unit of work happening in the system. Naming conventions describe the name and content that can be used in span events. diff --git a/content/en/tracing/trace_explorer/_index.md b/content/en/tracing/trace_explorer/_index.md index 721b8713ea9c3..dbc65008be91a 100644 --- a/content/en/tracing/trace_explorer/_index.md +++ b/content/en/tracing/trace_explorer/_index.md @@ -128,7 +128,7 @@ All spans indexed by custom retention filters *and* the intelligent retention fi All spans indexed by custom retention filters or the intelligent retention filter are available to be searched when using trace analytics. -From the timeseries view, export your query to a [dashboard][1], [monitor][2], or [notebook][3] to investigate further or to alert automatically when an aggregate number of spans crosses a specific threshold. +From the timeseries view, export your query to a [dashboard][1], [monitor][2], or [notebook][3] to investigate further or to alert automatically when an aggregate number of spans crosses a specific threshold. **Note**: Spans indexed by the intelligent retention filter are excluded from APM trace analytics monitor evaluations. For more information, see [Trace Retention][4]. @@ -155,7 +155,7 @@ You can customize which spans are retained and at what retention rates. By defau [5]: /tracing/glossary/#indexed-span [6]: /tracing/trace_pipeline/ [7]: /tracing/trace_pipeline/ingestion_mechanisms/#in-the-agent -[8]: /tracing/trace_pipeline/ingestion_mechanisms/#in-tracing-libraries-user-defined-rules +[8]: /tracing/trace_pipeline/ingestion_mechanisms/#in-apm-sdks-user-defined-rules [9]: /account_management/billing/apm_distributed_tracing/ [10]: /glossary/#service-entry-span [11]: /glossary/#trace-root-span diff --git a/content/en/tracing/trace_pipeline/ingestion_controls.md b/content/en/tracing/trace_pipeline/ingestion_controls.md index 0da2744ea4f1c..cd3d2ccaf504d 100644 --- a/content/en/tracing/trace_pipeline/ingestion_controls.md +++ b/content/en/tracing/trace_pipeline/ingestion_controls.md @@ -21,7 +21,7 @@ further_reading: Ingestion controls affect what traces are sent by your applications to Datadog. [APM metrics][1] are always calculated based on all traces, and are not impacted by ingestion controls. -The Ingestion Control page provides visibility at the Agent and tracing libraries level into the ingestion configuration of your applications and services. From the [ingestion control configuration page][2], you can: +The Ingestion Control page provides visibility at the Agent and APM SDK level into the ingestion configuration of your applications and services. From the [ingestion control configuration page][2], you can: - Gain visibility on your service-level ingestion configuration and adjust trace sampling rates for high throughput services. - Understand which ingestion mechanisms are responsible for sampling most of your traces. - Investigate and act on potential ingestion configuration issues, such as limited CPU or RAM resources for the Agent. @@ -76,7 +76,7 @@ Traffic Breakdown : A detailed breakdown of traffic sampled and unsampled for traces starting from the service. See [Traffic breakdown](#traffic-breakdown) for more information. Ingestion Configuration -: Shows `Automatic` if the [default head-based sampling mechanism][4] from the Agent applies. If the ingestion was configured in the tracing libraries with [trace sampling rules][8], the service is marked as `Configured`. For more information about configuring ingestion for a service, read about [changing the default ingestion rate](#configure-the-service-ingestion-rate). +: Shows `Automatic` if the [default head-based sampling mechanism][4] from the Agent applies. If the ingestion was configured in the APM SDKs with [trace sampling rules][8], the service is marked as `Configured`. For more information about configuring ingestion for a service, read about [changing the default ingestion rate](#configure-the-service-ingestion-rate). Infrastructure : Hosts, containers, and functions on which the service is running. @@ -97,12 +97,12 @@ The Traffic Breakdown column breaks down the destination of all traces originati The breakdown is composed of the following parts: - **Complete traces ingested** (blue): The percentage of traces that have been ingested by Datadog. -- **Complete traces not retained** (gray): The percentage of traces that have intentionally not been forwarded to Datadog by the Agent or the tracing library. This can happen for one of two reasons depending on your configuration: +- **Complete traces not retained** (gray): The percentage of traces that have intentionally not been forwarded to Datadog by the Agent or the APM SDK. This can happen for one of two reasons depending on your configuration: 1. By default, the [Agent distributes an ingestion rate][4] to services depending on service traffic. - 2. When the service is manually [configured][8] to ingest a certain percentage of traces at the tracing library level. + 2. When the service is manually [configured][8] to ingest a certain percentage of traces at the APM SDK level. -- **Complete traces dropped by the tracer rate limiter** (orange): When you choose to manually set the service ingestion rate as a percentage with trace sampling rules, a rate limiter is automatically enabled, set to 100 traces per second by default. See the [rate limiter][8] documentation to manually configure this rate. +- **Complete traces dropped by the APM SDK rate limiter** (orange): When you choose to manually set the service ingestion rate as a percentage with trace sampling rules, a rate limiter is automatically enabled, set to 100 traces per second by default. See the [rate limiter][8] documentation to manually configure this rate. - **Traces dropped due to the Agent CPU or RAM limit** (red): This mechanism may drop spans and create incomplete traces. To fix this, increase the CPU and memory allocation for the infrastructure that the Agent runs on. @@ -118,11 +118,11 @@ If most of your service ingestion volume is due to decisions taken by upstream s For further investigations, use the [APM Trace - Estimated Usage Dashboard][12], which provides global ingestion information as well as breakdown graphs by `service`, `env` and `ingestion reason`. -### Agent and tracing library versions +### Agent and APM SDK versions -See the **Datadog Agent and tracing library versions** your service is using. Compare the versions in use to the latest released versions to make sure you are running recent and up-to-date Agents and libraries. +See the **Datadog Agent and APM SDK versions** your service is using. Compare the versions in use to the latest released versions to make sure you are running recent and up-to-date Agents and libraries. -{{< img src="tracing/trace_indexing_and_ingestion/agent_tracer_version.png" style="width:90%;" alt="Agent and tracing library versions" >}} +{{< img src="tracing/trace_indexing_and_ingestion/agent_tracer_version.png" style="width:90%;" alt="Agent and APM SDK versions" >}} **Note**: You need to upgrade the Agent to v6.34 or v7.34 for the version information to be reported. @@ -134,7 +134,7 @@ Click **Manage Ingestion Rate** to get instructions on how to configure your ser {{< img src="tracing/trace_indexing_and_ingestion/service_ingestion_rate_config.png" style="width:100%;" alt="Change the Service Ingestion Rate" >}} -To specify a specific percentage of a service's traffic to be sent, add an environment variable or a generated code snippet to your tracing library configuration for that service. +To specify a specific percentage of a service's traffic to be sent, add an environment variable or a generated code snippet to your APM SDK configuration for that service. 1. Select the service you want to change the ingested span percent for. 2. Choose the service language. @@ -154,10 +154,10 @@ To specify a specific percentage of a service's traffic to be sent, add an envir [5]: /tracing/trace_pipeline/ingestion_mechanisms/#error-traces [6]: /tracing/trace_pipeline/ingestion_mechanisms/#rare-traces [7]: /tracing/trace_pipeline/ingestion_mechanisms/#single-spans-app-analytics -[8]: /tracing/trace_pipeline/ingestion_mechanisms/#in-tracing-libraries-user-defined-rules +[8]: /tracing/trace_pipeline/ingestion_mechanisms/#in-apm-sdks-user-defined-rules [9]: /tracing/troubleshooting/agent_rate_limits/#maximum-cpu-percentage [10]: /tracing/trace_pipeline/metrics [11]: /tracing/trace_pipeline/ingestion_mechanisms/ [12]: https://app.datadoghq.com/dash/integration/30337/app-analytics-usage [13]: https://github.com/DataDog/datadog-agent/releases/tag/7.42.0 -[14]: /agent/remote_config/#enabling-remote-configuration \ No newline at end of file +[14]: /agent/remote_config/#enabling-remote-configuration diff --git a/content/en/tracing/trace_pipeline/ingestion_mechanisms.md b/content/en/tracing/trace_pipeline/ingestion_mechanisms.md index 31e24582f1156..384227a61ca65 100644 --- a/content/en/tracing/trace_pipeline/ingestion_mechanisms.md +++ b/content/en/tracing/trace_pipeline/ingestion_mechanisms.md @@ -1,6 +1,6 @@ --- title: Ingestion Mechanisms -description: "Overview of the mechanisms in the tracer and the Agent that control trace ingestion." +description: "Overview of the mechanisms in the APM SDK and the Agent that control trace ingestion." aliases: - /tracing/trace_ingestion/mechanisms further_reading: @@ -18,7 +18,7 @@ further_reading: {{< img src="tracing/apm_lifecycle/ingestion_sampling_rules.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Ingestion Sampling Rules" >}} -Multiple mechanisms are responsible for choosing if spans generated by your applications are sent to Datadog (_ingested_). The logic behind these mechanisms lie in the [tracing libraries][1] and in the Datadog Agent. Depending on the configuration, all or some the traffic generated by instrumented services is ingested. +Multiple mechanisms are responsible for choosing if spans generated by your applications are sent to Datadog (_ingested_). The logic behind these mechanisms lie in the [APM SDKs][1] and in the Datadog Agent. Depending on the configuration, all or some the traffic generated by instrumented services is ingested. To each span ingested, there is attached a unique **ingestion reason** referring to one of the mechanisms described in this page. [Usage metrics][2] `datadog.estimated_usage.apm.ingested_bytes` and `datadog.estimated_usage.apm.ingested_spans` are tagged by `ingestion_reason`. @@ -34,12 +34,12 @@ Because the decision is made at the beginning of the trace and then conveyed to You can set sampling rates for head-based sampling in two places: - At the **[Agent](#in-the-agent)** level (default) -- At the **[Tracing Library](#in-tracing-libraries-user-defined-rules)** level: any tracing library mechanism overrides the Agent setup. +- At the **[APM SDK](#in-apm-sdks-user-defined-rules)** level: any APM SDK mechanism overrides the Agent setup. ### In the Agent `ingestion_reason: auto` -The Datadog Agent continuously sends sampling rates to tracing libraries to apply at the root of traces. The Agent adjusts rates to achieve a target of overall ten traces per second, distributed to services depending on the traffic. +The Datadog Agent continuously sends sampling rates to APM SDKs to apply at the root of traces. The Agent adjusts rates to achieve a target of overall ten traces per second, distributed to services depending on the traffic. For instance, if service `A` has more traffic than service `B`, the Agent might vary the sampling rate for `A` such that `A` keeps no more than seven traces per second, and similarly adjust the sampling rate for `B` such that `B` keeps no more than three traces per second, for a total of 10 traces per second. @@ -56,15 +56,15 @@ Set Agent's target traces-per-second in its main configuration file (`datadog.ya ``` **Notes**: -- The traces-per-second sampling rate set in the Agent only applies to Datadog tracing libraries. It has no effect on other tracing libraries such as OpenTelemetry SDKs. +- The traces-per-second sampling rate set in the Agent only applies to Datadog APM SDKs. It has no effect on other APM SDKs such as OpenTelemetry SDKs. - The maximum traces per second is a target, not a fixed value. In reality, it fluctuates depending on traffic spikes and other factors. All the spans from a trace sampled using the Datadog Agent [automatically computed sampling rates](#in-the-agent) are tagged with the ingestion reason `auto`. The `ingestion_reason` tag is also set on [usage metrics][2]. Services using the Datadog Agent default mechanism are labeled as `Automatic` in the [Ingestion Control Page][5] Configuration column. -### In tracing libraries: user-defined rules +### In APM SDKs: user-defined rules `ingestion_reason: rule` -For more granular control, use tracing library sampling configuration options: +For more granular control, use APM SDK sampling configuration options: - Set a specific **sampling rate to apply to the root of the trace**, by service, and/or resource name, overriding the Agent's [default mechanism](#in-the-agent). - Set a **rate limit** on the number of ingested traces per second. The default rate limit is 100 traces per second per service instance (when using the Agent [default mechanism](#in-the-agent), the rate limiter is ignored). @@ -102,7 +102,7 @@ Configure a rate limit by setting the environment variable `DD_TRACE_RATE_LIMIT` **Note**: The use of `DD_TRACE_SAMPLE_RATE` is deprecated. Use `DD_TRACE_SAMPLING_RULES` instead. For instance, if you already set `DD_TRACE_SAMPLE_RATE` to `0.1`, set `DD_TRACE_SAMPLING_RULES` to `[{"sample_rate":0.1}]` instead. -Read more about sampling controls in the [Java tracing library documentation][2]. +Read more about sampling controls in the [Java APM SDK documentation][2]. [1]: /tracing/guide/resource_based_sampling [2]: /tracing/trace_collection/dd_libraries/java @@ -121,7 +121,7 @@ Configure a rate limit by setting the environment variable `DD_TRACE_RATE_LIMIT` **Note**: The use of `DD_TRACE_SAMPLE_RATE` is deprecated. Use `DD_TRACE_SAMPLING_RULES` instead. For instance, if you already set `DD_TRACE_SAMPLE_RATE` to `0.1`, set `DD_TRACE_SAMPLING_RULES` to `[{"sample_rate":0.1}]` instead. -Read more about sampling controls in the [Python tracing library documentation][2]. +Read more about sampling controls in the [Python APM SDK documentation][2]. [1]: https://github.com/DataDog/dd-trace-py/releases/tag/v2.8.0 [2]: /tracing/trace_collection/dd_libraries/python @@ -138,7 +138,7 @@ export DD_TRACE_SAMPLING_RULES='[{"service": "my-service", "sample_rate": 0.5}]' Configure a rate limit by setting the environment variable `DD_TRACE_RATE_LIMIT` to a number of traces per second per service instance. If no `DD_TRACE_RATE_LIMIT` value is set, a limit of 100 traces per second is applied. -Read more about sampling controls in the [Ruby tracing library documentation][1]. +Read more about sampling controls in the [Ruby APM SDK documentation][1]. [1]: /tracing/trace_collection/dd_libraries/ruby#sampling {{% /tab %}} @@ -165,7 +165,7 @@ Configure a rate limit by setting the environment variable `DD_TRACE_RATE_LIMIT` **Note**: The use of `DD_TRACE_SAMPLE_RATE` is deprecated. Use `DD_TRACE_SAMPLING_RULES` instead. For instance, if you already set `DD_TRACE_SAMPLE_RATE` to `0.1`, set `DD_TRACE_SAMPLING_RULES` to `[{"sample_rate":0.1}]` instead. -Read more about sampling controls in the [Go tracing library documentation][1]. +Read more about sampling controls in the [Go APM SDK documentation][1]. [1]: /tracing/trace_collection/dd_libraries/go [2]: https://github.com/DataDog/dd-trace-go/releases/tag/v1.60.0 @@ -191,7 +191,7 @@ tracer.init({ Configure a rate limit by setting the environment variable `DD_TRACE_RATE_LIMIT` to a number of traces per second per service instance. If no `DD_TRACE_RATE_LIMIT` value is set, a limit of 100 traces per second is applied. -Read more about sampling controls in the [Node.js tracing library documentation][1]. +Read more about sampling controls in the [Node.js APM SDK documentation][1]. [1]: /tracing/trace_collection/dd_libraries/nodejs {{% /tab %}} @@ -205,7 +205,7 @@ export DD_TRACE_SAMPLE_RATE=0.1 export DD_TRACE_SAMPLING_RULES='[{"service": "my-service", "sample_rate": 0.5}]' ``` -Read more about sampling controls in the [PHP tracing library documentation][1]. +Read more about sampling controls in the [PHP APM SDK documentation][1]. [1]: /tracing/trace_collection/dd_libraries/php {{% /tab %}} @@ -241,7 +241,7 @@ export DD_TRACE_SAMPLING_RULES='[{"service": "my-service", "sample_rate": 0.5}]' Configure a rate limit by setting the environment variable `DD_TRACE_RATE_LIMIT` to a number of traces per second per service instance. If no `DD_TRACE_RATE_LIMIT` value is set, a limit of 100 traces per second is applied. -Read more about sampling controls in the [.NET tracing library documentation][1].\ +Read more about sampling controls in the [.NET APM SDK documentation][1].\ Read more about [configuring environment variables for .NET][2]. [1]: /tracing/trace_collection/automatic_instrumentation/dd_libraries/dotnet-core @@ -249,7 +249,7 @@ Read more about [configuring environment variables for .NET][2]. {{% /tab %}} {{< /tabs >}} -**Note**: All the spans from a trace sampled using a tracing library configuration are tagged with the ingestion reason `rule`. Services configured with user-defined sampling rules are marked as `Configured` in the [Ingestion Control Page][5] Configuration column. +**Note**: All the spans from a trace sampled using a APM SDK configuration are tagged with the ingestion reason `rule`. Services configured with user-defined sampling rules are marked as `Configured` in the [Ingestion Control Page][5] Configuration column. ## Error and rare traces @@ -258,7 +258,7 @@ For traces not caught by the head-based sampling, two additional Datadog Agent s - **Error traces**: Sampling errors is important for providing visibility on potential system failures. - **Rare traces**: Sampling rare traces allows you to keep visibility on your system as a whole, by making sure that low-traffic services and resources are still monitored. -**Note**: Error and rare samplers are ignored for services for which you set [library sampling rules](#in-tracing-libraries-user-defined-rules). +**Note**: Error and rare samplers are ignored for services for which you set [library sampling rules](#in-apm-sdks-user-defined-rules). ### Error traces `ingestion_reason: error` @@ -276,7 +276,7 @@ With Agent version 7.33 and forward, you can configure the error sampler in the **Notes**: 1. Set the parameter to `0` to disable the error sampler. 2. The error sampler captures local traces with error spans at the Agent level. If the trace is distributed, there is no guarantee that the complete trace is sent to Datadog. -3. By default, spans dropped by tracing library rules or custom logic such as `manual.drop` are **excluded** under the error sampler. +3. By default, spans dropped by APM SDK rules or custom logic such as `manual.drop` are **excluded** under the error sampler. #### Datadog Agent 7.42.0 and higher @@ -286,7 +286,7 @@ The error sampling is remotely configurable if you're using the Agent version [7 #### Datadog Agent 6/7.41.0 and higher -To override the default behavior so that spans dropped by the tracing library rules or custom logic such as `manual.drop` are **included** by the error sampler, enable the feature with: `DD_APM_FEATURES=error_rare_sample_tracer_drop` in the Datadog Agent (or the dedicated Trace Agent container within the Datadog Agent pod in Kubernetes). +To override the default behavior so that spans dropped by the APM SDK rules or custom logic such as `manual.drop` are **included** by the error sampler, enable the feature with: `DD_APM_FEATURES=error_rare_sample_tracer_drop` in the Datadog Agent (or the dedicated Trace Agent container within the Datadog Agent pod in Kubernetes). #### Datadog Agent 6/7.33 to 6/7.40.x @@ -311,7 +311,7 @@ The rare sampling rate is remotely configurable if you're using the Agent versio By default, the rare sampler is **not enabled**. -**Note**: When **enabled**, spans dropped by tracing library rules or custom logic such as `manual.drop` are **excluded** under this sampler. +**Note**: When **enabled**, spans dropped by APM SDK rules or custom logic such as `manual.drop` are **excluded** under this sampler. To configure the rare sampler, update the `apm_config.enable_rare_sampler` setting in the Agent main configuration file (`datadog.yaml`) or with the environment variable `DD_APM_ENABLE_RARE_SAMPLER`: @@ -320,7 +320,7 @@ To configure the rare sampler, update the `apm_config.enable_rare_sampler` setti @env DD_APM_ENABLE_RARE_SAMPLER - boolean - optional - default: false ``` -To evaluate spans dropped by tracing library rules or custom logic such as `manual.drop`, +To evaluate spans dropped by APM SDK rules or custom logic such as `manual.drop`, enable the feature with: `DD_APM_FEATURES=error_rare_sample_tracer_drop` in the Trace Agent. @@ -328,7 +328,7 @@ To evaluate spans dropped by tracing library rules or custom logic such as `manu By default, the rare sampler is enabled. -**Note**: When **enabled**, spans dropped by tracing library rules or custom logic such as `manual.drop` **are excluded** under this sampler. To include these spans in this logic, upgrade to Datadog Agent 6.41.0/7.41.0 or higher. +**Note**: When **enabled**, spans dropped by APM SDK rules or custom logic such as `manual.drop` **are excluded** under this sampler. To include these spans in this logic, upgrade to Datadog Agent 6.41.0/7.41.0 or higher. To change the default rare sampler settings, update the `apm_config.disable_rare_sampler` setting in the Agent main configuration file (`datadog.yaml`) or with the environment variable `DD_APM_DISABLE_RARE_SAMPLER`: @@ -340,7 +340,7 @@ To change the default rare sampler settings, update the `apm_config.disable_rare ## Force keep and drop `ingestion_reason: manual` -The head-based sampling mechanism can be overridden at the tracing library level. For example, if you need to monitor a critical transaction, you can force the associated trace to be kept. On the other hand, for unnecessary or repetitive information like health checks, you can force the trace to be dropped. +The head-based sampling mechanism can be overridden at the APM SDK level. For example, if you need to monitor a critical transaction, you can force the associated trace to be kept. On the other hand, for unnecessary or repetitive information like health checks, you can force the trace to be dropped. - Set Manual Keep on a span to indicate that it and all child spans should be ingested. The resulting trace might appear incomplete in the UI if the span in question is not the root span of the trace. @@ -638,7 +638,7 @@ Manual trace keeping should happen before context propagation. If it is kept aft ## Single spans `ingestion_reason: single_span` -If you need to sample a specific span, but don't need the full trace to be available, tracing libraries allow you to set a sampling rate to be configured for a single span. +If you need to sample a specific span, but don't need the full trace to be available, APM SDKs allow you to set a sampling rate to be configured for a single span. For example, if you are building [metrics from spans][6] to monitor specific services, you can configure span sampling rules to ensure that these metrics are based on 100% of the application traffic, without having to ingest 100% of traces for all the requests flowing through the service. @@ -648,7 +648,7 @@ This feature is available for Datadog Agent v[7.40.0][19]+. {{< tabs >}} {{% tab "Java" %}} -Starting in tracing library [version 1.7.0][1], for Java applications, set by-service and by-operation name **span** sampling rules with the `DD_SPAN_SAMPLING_RULES` environment variable. +Starting in APM SDK [version 1.7.0][1], for Java applications, set by-service and by-operation name **span** sampling rules with the `DD_SPAN_SAMPLING_RULES` environment variable. For example, to collect 100% of the spans from the service named `my-service`, for the operation `http.request`, up to 50 spans per second: @@ -656,7 +656,7 @@ For example, to collect 100% of the spans from the service named `my-service`, f @env DD_SPAN_SAMPLING_RULES=[{"service": "my-service", "name": "http.request", "sample_rate":1.0, "max_per_second": 50}] ``` -Read more about sampling controls in the [Java tracing library documentation][2]. +Read more about sampling controls in the [Java APM SDK documentation][2]. [1]: https://github.com/DataDog/dd-trace-java/releases/tag/v1.7.0 [2]: /tracing/trace_collection/dd_libraries/java @@ -671,7 +671,7 @@ For example, to collect `100%` of the spans from the service named `my-service`, ``` -Read more about sampling controls in the [Python tracing library documentation][2]. +Read more about sampling controls in the [Python APM SDK documentation][2]. [1]: https://github.com/DataDog/dd-trace-py/releases/tag/v1.4.0 [2]: /tracing/trace_collection/dd_libraries/python @@ -685,7 +685,7 @@ For example, to collect `100%` of the spans from the service named `my-service`, @env DD_SPAN_SAMPLING_RULES=[{"service": "my-service", "name": "http.request", "sample_rate":1.0, "max_per_second": 50}] ``` -Read more about sampling controls in the [Ruby tracing library documentation][2]. +Read more about sampling controls in the [Ruby APM SDK documentation][2]. [1]: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.5.0 [2]: /tracing/trace_collection/dd_libraries/ruby#sampling @@ -706,7 +706,7 @@ For example, to collect `100%` of the spans from the service for the resource `P @env DD_SPAN_SAMPLING_RULES=[{"resource": "POST /api/create_issue", "tags": { "priority":"high" }, "sample_rate":1.0}] ``` -Read more about sampling controls in the [Go tracing library documentation][2]. +Read more about sampling controls in the [Go APM SDK documentation][2]. [1]: https://github.com/DataDog/dd-trace-go/releases/tag/v1.41.0 [2]: /tracing/trace_collection/dd_libraries/go @@ -721,7 +721,7 @@ For example, to collect `100%` of the spans from the service named `my-service`, @env DD_SPAN_SAMPLING_RULES=[{"service": "my-service", "name": "http.request", "sample_rate":1.0, "max_per_second": 50}] ``` -Read more about sampling controls in the [Node.js tracing library documentation][1]. +Read more about sampling controls in the [Node.js APM SDK documentation][1]. [1]: /tracing/trace_collection/dd_libraries/nodejs {{% /tab %}} @@ -734,7 +734,7 @@ For example, to collect `100%` of the spans from the service named `my-service`, @env DD_SPAN_SAMPLING_RULES=[{"service": "my-service", "name": "http.request", "sample_rate":1.0, "max_per_second": 50}] ``` -Read more about sampling controls in the [PHP tracing library documentation][2]. +Read more about sampling controls in the [PHP APM SDK documentation][2]. [1]: https://github.com/DataDog/dd-trace-php/releases/tag/0.77.0 [2]: /tracing/trace_collection/dd_libraries/php @@ -759,7 +759,7 @@ For example, to collect `100%` of the spans from the service named `my-service`, @env DD_SPAN_SAMPLING_RULES='[{"service": "my-service", "name": "http.request", "sample_rate":1.0, "max_per_second": 50}]' ``` -Read more about sampling controls in the [.NET tracing library documentation][2]. +Read more about sampling controls in the [.NET APM SDK documentation][2]. [1]: https://github.com/DataDog/dd-trace-dotnet/releases/tag/v2.18.0 [2]: /tracing/trace_collection/dd_libraries/dotnet-core @@ -801,9 +801,9 @@ Some additional ingestion reasons are attributed to spans that are generated by | Product | Ingestion Reason | Ingestion Mechanism Description | |------------|-------------------------------------|---------------------------------| -| Serverless | `lambda` and `xray` | Your traces received from the [Serverless applications][14] traced with Datadog Tracing Libraries or the AWS X-Ray integration. | -| Application Security Management | `appsec` | Traces ingested from Datadog tracing libraries and flagged by [ASM][15] as a threat. | -| Data Jobs Monitoring | `data_jobs` | Traces ingested from the Datadog Java Tracer Spark integration or the Databricks integration. | +| Serverless | `lambda` and `xray` | Your traces received from the [Serverless applications][14] traced with Datadog APM SDKs or the AWS X-Ray integration. | +| Application Security Management | `appsec` | Traces ingested from Datadog APM SDKs and flagged by [ASM][15] as a threat. | +| Data Jobs Monitoring | `data_jobs` | Traces ingested from the Datadog Java APM SDK Spark integration or the Databricks integration. | ## Ingestion mechanisms in OpenTelemetry `ingestion_reason:otel` diff --git a/content/en/tracing/trace_pipeline/metrics.md b/content/en/tracing/trace_pipeline/metrics.md index 21fc762d36993..e07edb38e2d8d 100644 --- a/content/en/tracing/trace_pipeline/metrics.md +++ b/content/en/tracing/trace_pipeline/metrics.md @@ -45,7 +45,7 @@ The following metrics are associated with ingested spans usage: Control the usage with `datadog.estimated_usage.apm.ingested_bytes`. Ingestion is metered as a volume, not as a number of spans or traces. This metric is tagged by `env` and `service` so you can spot which environments and services are contributing to the ingestion volume. -This metric is also tagged by `ingestion_reason`, reflecting which [ingestion mechanisms][5] are responsible for sending spans to Datadog. These mechanisms are nested in the tracing libraries of the Datadog Agent. For more information about this dimension, see the [Ingestion Reasons dashboard][6]. +This metric is also tagged by `ingestion_reason`, reflecting which [ingestion mechanisms][5] are responsible for sending spans to Datadog. These mechanisms are nested in the APM SDKs of the Datadog Agent. For more information about this dimension, see the [Ingestion Reasons dashboard][6]. The `datadog.estimated_usage.apm.ingested_traces` metric measures the number of requests sampled per second, and only counts traces sampled by [head-based sampling][7]. This metric is also tagged by `env` and `service` so you can spot which services are starting the most traces. @@ -70,7 +70,7 @@ In this dashboard, you can find information about: ## APM Ingestion Reasons dashboard -The [APM Ingestion Reasons dashboard][6] provides insights on each source of ingestion volume. Each ingestion usage metric is tagged with an `ingestion_reason` dimension, so you can see which configuration options (Datadog Agent configuration or tracing library configuration) and products (such as RUM or Synthetic Testing) are generating the most APM data. +The [APM Ingestion Reasons dashboard][6] provides insights on each source of ingestion volume. Each ingestion usage metric is tagged with an `ingestion_reason` dimension, so you can see which configuration options (Datadog Agent configuration or APM SDK configuration) and products (such as RUM or Synthetic Testing) are generating the most APM data. {{< img src="tracing/trace_indexing_and_ingestion/usage_metrics/dashboard_ingestion_reasons.png" style="width:100%;" alt="APM Ingestion Reasons Dashboard" >}} diff --git a/content/en/tracing/troubleshooting/_index.md b/content/en/tracing/troubleshooting/_index.md index a41df0c1b4c2b..b1e4c1c077ab0 100644 --- a/content/en/tracing/troubleshooting/_index.md +++ b/content/en/tracing/troubleshooting/_index.md @@ -8,16 +8,16 @@ further_reading: text: "Connection Errors" - link: "/tracing/troubleshooting/tracer_startup_logs/" tag: "Documentation" - text: "Datadog tracer startup logs" + text: "Datadog APM SDK startup logs" - link: "/tracing/troubleshooting/tracer_debug_logs/" tag: "Documentation" - text: "Datadog tracer debug logs" + text: "Datadog APM SDK debug logs" - link: "/tracing/troubleshooting/agent_apm_metrics/" tag: "Documentation" text: "APM metrics sent by the Datadog Agent" --- -If you experience unexpected behavior with Datadog APM, there are a few common issues you can investigate and this guide may help resolve issues quickly. If you continue to have trouble, reach out to [Datadog support][1] for further assistance. Datadog recommends regularly updating to the latest version of the Datadog tracing libraries you use, as each release contains improvements and fixes. +If you experience unexpected behavior with Datadog APM, there are a few common issues you can investigate and this guide may help resolve issues quickly. If you continue to have trouble, reach out to [Datadog support][1] for further assistance. Datadog recommends regularly updating to the latest version of the Datadog APM SDKs you use, as each release contains improvements and fixes. ## Troubleshooting pipeline @@ -25,19 +25,19 @@ The following components are involved in sending APM data to Datadog: {{< img src="tracing/troubleshooting/troubleshooting_pipeline_info_1.png" alt="APM Troubleshooting Pipeline">}} -Traces (JSON data type) and [Tracing Application Metrics][2] are generated from the application and sent to the Datadog Agent before traveling to the backend. Different troubleshooting information can be collected at each section of the pipeline. Importantly, the Tracer debug logs are written to your application's logs, which is a separate component from the Datadog Agent flare. More information about these items can be seen below in [Troubleshooting data requested by Datadog Support](#troubleshooting-data-requested-by-datadog-support). +Traces (JSON data type) and [Tracing Application Metrics][2] are generated from the application and sent to the Datadog Agent before traveling to the backend. Different troubleshooting information can be collected at each section of the pipeline. Importantly, the APM SDK debug logs are written to your application's logs, which is a separate component from the Datadog Agent flare. More information about these items can be seen below in [Troubleshooting data requested by Datadog Support](#troubleshooting-data-requested-by-datadog-support). ## Confirm APM setup and Agent status -During startup, Datadog tracing libraries emit logs that reflect the configurations applied in a JSON object, as well as any errors encountered, including if the Agent can be reached in languages where this is possible. Some languages require these startup logs to be enabled with the environment variable `DD_TRACE_STARTUP_LOGS=true`. For more information on startup logs, see the [dedicated page][3] for troubleshooting. +During startup, Datadog APM SDKs emit logs that reflect the configurations applied in a JSON object, as well as any errors encountered, including if the Agent can be reached in languages where this is possible. Some languages require these startup logs to be enabled with the environment variable `DD_TRACE_STARTUP_LOGS=true`. For more information on startup logs, see the [dedicated page][3] for troubleshooting. ## Connection errors A common source of trouble is the inability of the instrumented application to communicate with the Datadog Agent. Read about how to find and fix these problems in [Connection Errors][4]. -## Tracer debug logs +## APM SDK debug logs -To capture full details on the Datadog tracer, enable debug mode on your tracer by using the `DD_TRACE_DEBUG` environment variable. You might enable it for your own investigation or because Datadog support recommended it for triage purposes. However, don't leave debug mode always enabled because of the logging overhead it introduces. +To capture full details on the Datadog APM SDK, enable debug mode on your APM SDK by using the `DD_TRACE_DEBUG` environment variable. You might enable it for your own investigation or because Datadog support recommended it for triage purposes. However, don't leave debug mode always enabled because of the logging overhead it introduces. These logs can surface instrumentation errors or integration-specific errors. For details on enabling and capturing these debug logs, see the [debug mode troubleshooting page][5]. @@ -126,13 +126,13 @@ When you open a [support ticket][1], our support team may ask for some combinati This allows Support to confirm errors and attempt to reproduce your issues within Datadog's testing environments. -2. **[Tracer startup logs](#confirm-apm-setup-and-agent-status)** +2. **[APM SDK startup logs](#confirm-apm-setup-and-agent-status)** - Startup logs are a great way to spot misconfiguration of the tracer, or the inability for the tracer to communicate with the Datadog Agent. By comparing the configuration that the tracer sees to the one set within the application or container, Support can identify areas where a setting is not being properly applied. + Startup logs are a great way to spot misconfiguration of the APM SDK, or the inability for the APM SDK to communicate with the Datadog Agent. By comparing the configuration that the APM SDK sees to the one set within the application or container, Support can identify areas where a setting is not being properly applied. -3. **[Tracer debug logs](#tracer-debug-logs)** +3. **[APM SDK debug logs](#tracer-debug-logs)** - Tracer debug logs go one step deeper than startup logs, and help to identify if integrations are instrumenting properly in a manner that can't necessarily be checked until traffic flows through the application. Debug logs can be extremely useful for viewing the contents of spans created by the tracer and can surface an error if there is a connection issue when attempting to send spans to the agent. Tracer debug logs are typically the most informative and reliable tool for confirming nuanced behavior of the tracer. + APM SDK debug logs go one step deeper than startup logs, and help to identify if integrations are instrumenting properly in a manner that can't necessarily be checked until traffic flows through the application. Debug logs can be extremely useful for viewing the contents of spans created by the APM SDK and can surface an error if there is a connection issue when attempting to send spans to the agent. APM SDK debug logs are typically the most informative and reliable tool for confirming nuanced behavior of the tracer. 4. **A [Datadog Agent flare][12] (snapshot of logs and configs) that captures a representative log sample of a time period when traces are sent to your Datadog Agent while in [debug or trace mode][13] depending on what information you are looking for in these logs.** @@ -150,18 +150,18 @@ kubectl exec -it -c trace-agent -- agent flare --loca Knowing how your application is deployed helps the Support team identify likely issues for tracer-agent communication problems or misconfigurations. For difficult issues, Support may ask to a see a Kubernetes manifest or an ECS task definition, for example. -6. **Custom code written using the tracing libraries, such as tracer configuration, [custom instrumentation][14], and adding span tags** +6. **Custom code written using the APM SDK, such as APM SDK configuration, [custom instrumentation][14], and adding span tags** Custom instrumentation can be a powerful tool, but also can have unintentional side effects on your trace visualizations within Datadog, so support may ask about this to rule it out as a suspect. - Additionally, asking for your automatic instrumentation and configuration allows Datadog to confirm if this matches what it is seeing in both tracer startup and debug logs. + Additionally, asking for your automatic instrumentation and configuration allows Datadog to confirm if this matches what it is seeing in both APM SDK startup and debug logs. 7. **Versions of the:** * **programming language, frameworks, and dependencies used to build the instrumented application** * **Datadog Tracer** * **Datadog Agent** - Knowing what versions are being used allows us to ensure integrations are supported in our [Compatiblity Requirements][15] section, check for known issues, or to recommend a tracer or language version upgrade if it will address the problem. + Knowing what versions are being used allows us to ensure integrations are supported in our [Compatiblity Requirements][15] section, check for known issues, or to recommend a APM SDK or language version upgrade if it will address the problem. ## Further Reading diff --git a/content/en/tracing/troubleshooting/connection_errors.md b/content/en/tracing/troubleshooting/connection_errors.md index 8f07c2796ff7c..d63d3c84757e0 100644 --- a/content/en/tracing/troubleshooting/connection_errors.md +++ b/content/en/tracing/troubleshooting/connection_errors.md @@ -4,20 +4,20 @@ aliases: - /tracing/faq/why-am-i-getting-errno-111-connection-refused-errors-in-my-application-logs/ --- -If the application with the tracing library cannot reach the Datadog Agent, look for connection errors in the [tracer startup logs][1] or [tracer debug logs][2], which can be found with your application logs. +If the application with the APM SDK cannot reach the Datadog Agent, look for connection errors in the [APM SDK startup logs][1] or [APM SDK debug logs][2], which can be found with your application logs. ## Errors that indicate an APM Connection problem If you see these messages, it means your traces are not being submitted to the Datadog Agent. -### Tracing library errors +### APM SDK errors {{< programming-lang-wrapper langs="java,python,ruby,go,nodejs,.NET,php,cpp" >}} {{< programming-lang lang="java" >}} #### Java diagnostic CLI -Starting with 0.82.0+ of the Java tracer, you can use a diagnostic command where the Java tracer is installed to detect potential connection issues. From where `dd-java-agent.jar` is installed (inside the application container), run: +Starting with 0.82.0+ of the Java APM SDK, you can use a diagnostic command where the Java APM SDK is installed to detect potential connection issues. From where `dd-java-agent.jar` is installed (inside the application container), run: ```bash java -jar /path/to/dd-java-agent.jar sampleTrace -c 1 @@ -31,13 +31,13 @@ Example output: ``` -#### Tracer startup logs +#### APM SDK startup logs ```text [dd.trace 2021-08-17 17:59:29:234 +0000] [dd-trace-processor] WARN datadog.trace.agent.common.writer.ddagent.DDAgentApi - Error while sending 9 (size=5KB) traces to the DD agent. Total: 9, Received: 9, Sent: 0, Failed: 9. java.net.ConnectException: Failed to connect to localhost/127.0.0.1:8126 (Will not log errors for 5 minutes) ``` -#### Tracer debug logs +#### APM SDK debug logs ```text [dd.trace 2021-08-17 18:04:50:282 +0000] [dd-trace-processor] DEBUG datadog.communication.ddagent.DDAgentFeaturesDiscovery - Error querying info at http://localhost:8126/ @@ -49,13 +49,13 @@ java.net.ConnectException: Failed to connect to localhost/127.0.0.1:8126 {{< programming-lang lang="python" >}} -#### Tracer startup logs +#### APM SDK startup logs ```text -2021-08-17 19:10:06,169 WARNING [ddtrace.tracer] [tracer.py:655] [dd.service= dd.env= dd.version= dd.trace_id=0 dd.span_id=0] - - DATADOG TRACER DIAGNOSTIC - Agent not reachable at http://localhost:8126. Exception raised: [Errno 99] Cannot assign requested address +2021-08-17 19:10:06,169 WARNING [ddtrace.tracer] [tracer.py:655] [dd.service= dd.env= dd.version= dd.trace_id=0 dd.span_id=0] - - DATADOG APM SDK DIAGNOSTIC - Agent not reachable at http://localhost:8126. Exception raised: [Errno 99] Cannot assign requested address ``` -#### Tracer debug logs +#### APM SDK debug logs ```text 2021-08-17 14:04:12,982 ERROR [ddtrace.internal.writer] [writer.py:466] [dd.service= dd.env= dd.version= dd.trace_id=0 dd.span_id=0] - failed to send traces to Datadog Agent at http://localhost:8126 @@ -68,13 +68,13 @@ Traceback (most recent call last): {{< programming-lang lang="ruby" >}} -#### Tracer startup logs +#### APM SDK startup logs ```text -W, [2021-08-17T18:37:51.542245 #24] WARN -- ddtrace: [ddtrace] DATADOG TRACER DIAGNOSTIC - Agent Error: Datadog::Transport::InternalErrorResponse ok?: unsupported?:, not_found?:, client_error?:, server_error?:, internal_error?:true, payload:, error_type:Errno::ECONNREFUSED error:Failed to open TCP connection to 127.0.0.1:8126 (Connection refused - connect(2) for "127.0.0.1" port 8126) +W, [2021-08-17T18:37:51.542245 #24] WARN -- ddtrace: [ddtrace] DATADOG APM SDK DIAGNOSTIC - Agent Error: Datadog::Transport::InternalErrorResponse ok?: unsupported?:, not_found?:, client_error?:, server_error?:, internal_error?:true, payload:, error_type:Errno::ECONNREFUSED error:Failed to open TCP connection to 127.0.0.1:8126 (Connection refused - connect(2) for "127.0.0.1" port 8126) ``` -#### Tracer debug logs +#### APM SDK debug logs ```text D, [2021-08-17T18:51:28.962389 #24] DEBUG -- ddtrace: [ddtrace] (/usr/local/bundle/gems/ddtrace-0.48.0/lib/ddtrace/transport/http/client.rb:33:in `rescue in send_request') Internal error during HTTP transport request. Cause: Failed to open TCP connection to 127.0.0.1:8126 (Connection refused - connect(2) for "127.0.0.1" port 8126) Location: /usr/local/lib/ruby/2.5.0/net/http.rb:939:in `rescue in block in connect' @@ -84,30 +84,30 @@ D, [2021-08-17T18:51:28.962389 #24] DEBUG -- ddtrace: [ddtrace] (/usr/local/bund {{< programming-lang lang="go" >}} -#### Tracer startup logs +#### APM SDK startup logs ```text -2021/08/17 17:46:22 Datadog Tracer v1.32.0 WARN: DIAGNOSTICS Unable to reach agent intake: Post http://localhost:8126/v0.4/traces: dial tcp 127.0.0.1:8126: connect: connection refused +2021/08/17 17:46:22 Datadog APM SDK v1.32.0 WARN: DIAGNOSTICS Unable to reach agent intake: Post http://localhost:8126/v0.4/traces: dial tcp 127.0.0.1:8126: connect: connection refused ``` -#### Tracer debug logs +#### APM SDK debug logs ```text -2021/08/17 17:47:42 Datadog Tracer v1.32.0 ERROR: lost 1 traces: Post http://localhost:8126/v0.4/traces: dial tcp 127.0.0.1:8126: connect: connection refused (occurred: 17 Aug 21 17:46 UTC) +2021/08/17 17:47:42 Datadog APM SDK v1.32.0 ERROR: lost 1 traces: Post http://localhost:8126/v0.4/traces: dial tcp 127.0.0.1:8126: connect: connection refused (occurred: 17 Aug 21 17:46 UTC) ``` {{< /programming-lang >}} {{< programming-lang lang="nodejs" >}} -#### Tracer startup logs +#### APM SDK startup logs ```text -DATADOG TRACER DIAGNOSTIC - Agent Error: Network error trying to reach the agent: connect ECONNREFUSED 127.0.0.1:8126 +DATADOG APM SDK DIAGNOSTIC - Agent Error: Network error trying to reach the agent: connect ECONNREFUSED 127.0.0.1:8126 Error: Network error trying to reach the agent: connect ECONNREFUSED 127.0.0.1:8126 ``` -#### Tracer debug logs +#### APM SDK debug logs ```text Error: Network error trying to reach the agent: connect ECONNREFUSED 127.0.0.1:8126 @@ -136,7 +136,7 @@ System.Net.Http.HttpRequestException: Connection refused {{< programming-lang lang="php" >}} -#### Tracer startup logs +#### APM SDK startup logs ``` Failed to connect to localhost port 8126: Connection refused @@ -171,11 +171,11 @@ APM Agent ``` ## Troubleshooting the connection problem -Whether it's the tracing library or the Datadog Agent displaying the error, there are a few ways to troubleshoot. +Whether it's the APM SDK or the Datadog Agent displaying the error, there are a few ways to troubleshoot. ### Host-based setups -If your application and the Datadog Agent are not containerized, the application with the tracing library should be trying to send traces to `localhost:8126` or `127.0.0.1:8126`, because that is where the Datadog Agent is listening. +If your application and the Datadog Agent are not containerized, the application with the APM SDK should be trying to send traces to `localhost:8126` or `127.0.0.1:8126`, because that is where the Datadog Agent is listening. If the Datadog Agent shows that APM is not listening, check for port conflicts with port 8126, which is what the APM component of the Datadog Agent uses by default. @@ -204,7 +204,7 @@ If this command fails, your container cannot access the Agent. Refer to the foll A great place to get started is the [APM in-app setup documentation][6]. -#### Review where your tracing library is trying to send traces +#### Review where your APM SDK is trying to send traces Using the error logs listed above for each language, check to see where your traces are being directed. @@ -222,9 +222,9 @@ See the table below for example setups. Some require setting up additional netwo | [Datadog Agent and Application Docker Containers][17] | Datadog Agent container | -**Note about web servers**: If the `agent_url` section in the [tracer startup logs][1] has a mismatch against the `DD_AGENT_HOST` environment variable that was passed in, review how environment variables are cascaded for that specific server. For example, in PHP, there's an additional setting to ensure that [Apache][18] or [Nginx][19] pick up the `DD_AGENT_HOST` environment variable correctly. +**Note about web servers**: If the `agent_url` section in the [APM SDK startup logs][1] has a mismatch against the `DD_AGENT_HOST` environment variable that was passed in, review how environment variables are cascaded for that specific server. For example, in PHP, there's an additional setting to ensure that [Apache][18] or [Nginx][19] pick up the `DD_AGENT_HOST` environment variable correctly. -If your tracing library is sending traces correctly based on your setup, then proceed to the next step. +If your APM SDK is sending traces correctly based on your setup, then proceed to the next step. #### Review your Datadog Agent status and configuration @@ -257,7 +257,7 @@ If the configuration is correct, but you're still seeing connection errors, [con - Information about the environment in which you're deploying the application and Datadog Agent. - If you're using proxies, information about how they've been configured. - Any configuration files used to set up the application and the Datadog Agent. -- Startup logs or tracer debug logs outlining the connection error. +- Startup logs or APM SDK debug logs outlining the connection error. - A Datadog [Agent flare][5]. For dedicated containers, send the flare from the [dedicated Trace Agent container][20]. @@ -281,4 +281,4 @@ If the configuration is correct, but you're still seeing connection errors, [con [18]: /tracing/trace_collection/dd_libraries/php/?tab=containers#apache [19]: /tracing/trace_collection/dd_libraries/php/?tab=containers#nginx [20]: /agent/troubleshooting/send_a_flare/?tab=agentv6v7#trace-agent -[21]: https://kubernetes.io/docs/concepts/services-networking/network-policies/ \ No newline at end of file +[21]: https://kubernetes.io/docs/concepts/services-networking/network-policies/ diff --git a/content/en/tracing/troubleshooting/correlated-logs-not-showing-up-in-the-trace-id-panel.md b/content/en/tracing/troubleshooting/correlated-logs-not-showing-up-in-the-trace-id-panel.md index b3d8d35280df0..da5acadbbf13a 100644 --- a/content/en/tracing/troubleshooting/correlated-logs-not-showing-up-in-the-trace-id-panel.md +++ b/content/en/tracing/troubleshooting/correlated-logs-not-showing-up-in-the-trace-id-panel.md @@ -14,7 +14,7 @@ further_reading: ## Overview -The [trace][1] panel contains information about the trace, host, and correlated logs. +The [trace][1] panel contains information about the trace, host, and correlated logs. {{< img src="tracing/troubleshooting/tracing_no_logs_in_trace.png" alt="A trace page showing an empty log section" style="width:90%;">}} @@ -47,7 +47,7 @@ If the **Log** section is empty for the `trace_id` option, ensure you have a sta {{< tabs >}} {{% tab "JSON logs" %}} - For JSON logs, Step 1 and 2 are automatic. The tracer injects the [trace][1] and [span][2] IDs into the logs, which are automatically remapped by the [reserved attribute remappers][3]. + For JSON logs, Step 1 and 2 are automatic. The APM SDK injects the [trace][1] and [span][2] IDs into the logs, which are automatically remapped by the [reserved attribute remappers][3]. If this process is not working as expected, ensure the logs attribute's name containing the trace ID is `dd.trace_id` and verify that the attribute is correctly set in the [reserved attributes'][4] Trace ID section. diff --git a/content/en/tracing/troubleshooting/dotnet_diagnostic_tool.md b/content/en/tracing/troubleshooting/dotnet_diagnostic_tool.md index 39633e878ba44..1d84b3a73d951 100644 --- a/content/en/tracing/troubleshooting/dotnet_diagnostic_tool.md +++ b/content/en/tracing/troubleshooting/dotnet_diagnostic_tool.md @@ -2,15 +2,15 @@ title: Using the .NET diagnostic tool for troubleshooting --- -If your application does not produce traces as expected after installing the .NET tracer, run the diagnostic tool `dd-dotnet` described on this page for basic troubleshooting. It can help you determine issues with your setup, such as missing environment variables, incomplete installation, or an unreachable Agent. +If your application does not produce traces as expected after installing the .NET APM SDK, run the diagnostic tool `dd-dotnet` described on this page for basic troubleshooting. It can help you determine issues with your setup, such as missing environment variables, incomplete installation, or an unreachable Agent. -The diagnostic tool `dd-dotnet` is bundled with the tracing library starting with version 2.42.0. It is located in the tracing library's installation folder, and automatically added to the system `PATH` to be invoked from anywhere. +The diagnostic tool `dd-dotnet` is bundled with the APM SDK starting with version 2.42.0. It is located in the APM SDK's installation folder, and automatically added to the system `PATH` to be invoked from anywhere. ## Installing `dd-trace` -**This section is for versions of the tracer older than 2.42.0.** +**This section is for versions of the APM SDK older than 2.42.0.** -Older versions of the tracer did not include the `dd-dotnet` tool. You can install the `dd-trace` tool instead. Its features and syntax are similar to `dd-dotnet`. +Older versions of the APM SDK did not include the `dd-dotnet` tool. You can install the `dd-trace` tool instead. Its features and syntax are similar to `dd-dotnet`. You can install `dd-trace` in one of the following ways: @@ -22,16 +22,16 @@ You can install `dd-trace` in one of the following ways: * Win-x64: [https://dtdg.co/dd-trace-dotnet-win-x64][1] * Linux-x64: [https://dtdg.co/dd-trace-dotnet-linux-x64][2] * Linux-musl-x64 (Alpine): [https://dtdg.co/dd-trace-dotnet-linux-musl-x64][3] - + - Or by downloading [from the github release page][4]. When invoking the commands in the next sections, make sure to replace `dd-dotnet` with `dd-trace`. -## Process diagnostics +## Process diagnostics -For most applications, use the process diagnostics to find the problem. +For most applications, use the process diagnostics to find the problem. -1. Ensure the application is running, and get the process ID (pid). +1. Ensure the application is running, and get the process ID (pid). To get the pid of a Windows process, open Task Manager, open the **Details** tab, and look for the PID column. You can also run the command `tasklist /FI "IMAGENAME eq target.exe"`where `target.exe` is the name of the process. diff --git a/content/en/tracing/troubleshooting/php_5_deep_call_stacks.md b/content/en/tracing/troubleshooting/php_5_deep_call_stacks.md index 65ce0d38d93e6..0fd8a0d4e1b1a 100644 --- a/content/en/tracing/troubleshooting/php_5_deep_call_stacks.md +++ b/content/en/tracing/troubleshooting/php_5_deep_call_stacks.md @@ -3,7 +3,7 @@ title: Deep call stacks on PHP 5 --- PHP supports a virtually infinite call stack. However, the function call hook provided by the Zend Engine, `zend_execute_ex` (named `zend_execute` on PHP 5.4), calls PHP methods and functions using the native C stack. This in turn can cause a stack overflow when the call stack in PHP becomes extra deep. -Starting with ddtrace version `0.48.0`, the PHP tracer uses the `zend_execute_ex` hook on PHP 5. The PHP tracer emits a warning when the call stack reaches `512` frames deep. You can disable this warning by setting the environment variable `DD_TRACE_WARN_CALL_STACK_DEPTH=0`. +Starting with ddtrace version `0.48.0`, the PHP APM SDK uses the `zend_execute_ex` hook on PHP 5. The PHP APM SDK emits a warning when the call stack reaches `512` frames deep. You can disable this warning by setting the environment variable `DD_TRACE_WARN_CALL_STACK_DEPTH=0`. To accommodate PHP applications with deep call stacks, adjust the stack size limit on the host machine. To see the existing stack size, run: diff --git a/content/en/tracing/troubleshooting/quantization.md b/content/en/tracing/troubleshooting/quantization.md index 8a27edf139152..c79241fd200d3 100644 --- a/content/en/tracing/troubleshooting/quantization.md +++ b/content/en/tracing/troubleshooting/quantization.md @@ -9,7 +9,7 @@ further_reading: text: Replace tags in spans - link: /tracing/trace_collection/library_config/ tag: Documentation - text: Tracing Library Configuration + text: APM SDK Configuration --- ## Overview @@ -47,7 +47,7 @@ To search for these spans in trace search, the query is `resource_name:"SELECT ? ### In-code instrumentation -If your application runs in an agentless setup or if you prefer to make instrumentation changes more directly in your code, see [the tracer documentation of your application's runtime][3] for information on how to create custom configuration for span names and resource names. +If your application runs in an agentless setup or if you prefer to make instrumentation changes more directly in your code, see [the APM SDK documentation of your application's runtime][3] for information on how to create custom configuration for span names and resource names. ### Agent configuration diff --git a/content/en/tracing/troubleshooting/tracer_debug_logs.md b/content/en/tracing/troubleshooting/tracer_debug_logs.md index 21cae4e38fa8b..a385b37983fa2 100644 --- a/content/en/tracing/troubleshooting/tracer_debug_logs.md +++ b/content/en/tracing/troubleshooting/tracer_debug_logs.md @@ -1,5 +1,5 @@ --- -title: Tracer Debug Logs +title: APM SDK Debug Logs further_reading: - link: "/tracing/troubleshooting/connection_errors/" tag: "Documentation" @@ -10,15 +10,15 @@ further_reading: Use Datadog debug settings to diagnose issues or audit trace data. Datadog does not recommend that you enable debug mode in production systems because it increases the number of events that are sent to your loggers. Use debug mode for debugging purposes only. -Debug mode is disabled by default. To enable it, follow the corresponding language tracer instructions: +Debug mode is disabled by default. To enable it, follow the corresponding language APM SDK instructions: {{< programming-lang-wrapper langs="java,python,ruby,go,nodejs,.NET,php,cpp" >}} {{< programming-lang lang="java" >}} -To enable debug mode for the Datadog Java Tracer, set the flag `-Ddd.trace.debug=true` when starting the JVM or add `DD_TRACE_DEBUG=true` as environment variable. +To enable debug mode for the Datadog Java APM SDK, set the flag `-Ddd.trace.debug=true` when starting the JVM or add `DD_TRACE_DEBUG=true` as environment variable. -**Note**: Datadog Java Tracer implements SL4J SimpleLogger, so [all of its settings can be applied][1], for example, logging to a dedicated log file: +**Note**: Datadog Java APM SDK implements SL4J SimpleLogger, so [all of its settings can be applied][1], for example, logging to a dedicated log file: ``` -Ddatadog.slf4j.simpleLogger.logFile= ``` @@ -29,7 +29,7 @@ To enable debug mode for the Datadog Java Tracer, set the flag `-Ddd.trace.debug {{< programming-lang lang="python" >}} -The steps for enabling debug mode in the Datadog Python Tracer depends on the version of the tracer your application is using. Choose the scenario that applies: +The steps for enabling debug mode in the Datadog Python APM SDK depends on the version of the APM SDK your application is using. Choose the scenario that applies: ### Scenario 1: ddtrace version 2.x and higher @@ -38,7 +38,7 @@ The steps for enabling debug mode in the Datadog Python Tracer depends on the ve 2. To route debug logs to a log file, set `DD_TRACE_LOG_FILE` to the filename of that log file, relative to the current working directory. For example, `DD_TRACE_LOG_FILE=ddtrace_logs.log`. By default, the file size is 15728640 bytes (about 15MB), and one backup log file is created. To increase the default log file size, specify the size in bytes with the `DD_TRACE_LOG_FILE_SIZE_BYTES` setting. -**Note:** If the application uses the root logger and changes log level to `DEBUG`, debug tracer logs are enabled. If you want to override this behavior, override the `ddtrace` logger as follows: +**Note:** If the application uses the root logger and changes log level to `DEBUG`, debug APM SDK logs are enabled. If you want to override this behavior, override the `ddtrace` logger as follows: ``` import logging @@ -56,7 +56,7 @@ logging.getLogger("ddtrace").setLevel(logging.WARNING) 1. To enable debug mode: `DD_TRACE_DEBUG=true` -2. To route debug logs to a log file, set `DD_TRACE_LOG_FILE` with a filename that tracer logs should be written to, relative to the current working directory. For example, `DD_TRACE_LOG_FILE=ddtrace_logs.log`. +2. To route debug logs to a log file, set `DD_TRACE_LOG_FILE` with a filename that APM SDK logs should be written to, relative to the current working directory. For example, `DD_TRACE_LOG_FILE=ddtrace_logs.log`. By default, the file size is 15728640 bytes (about 15MB) and one backup log file is created. To increase the default log file size, specify the size in bytes with the `DD_TRACE_LOG_FILE_SIZE_BYTES` setting. 3. To route logs to the console, for **Python 2** applications, configure `logging.basicConfig()` or similar. Logs are automatically sent to the console for **Python 3** applications. @@ -76,7 +76,7 @@ logging.getLogger("ddtrace").setLevel(logging.WARNING) ### Scenario 5: Configuring debug logging in the application code with the standard logging library -For any version of ddtrace, rather than setting the `DD_TRACE_DEBUG` tracer environment variable, you can enable debug logging in the application code by using the `logging` standard library directly: +For any version of ddtrace, rather than setting the `DD_TRACE_DEBUG` APM SDK environment variable, you can enable debug logging in the application code by using the `logging` standard library directly: ``` log = logging.getLogger("ddtrace.tracer") @@ -87,7 +87,7 @@ log.setLevel(logging.DEBUG) {{< programming-lang lang="ruby" >}} -To enable debug mode for the Datadog Ruby Tracer, set the environment variable `DD_TRACE_DEBUG=true`. +To enable debug mode for the Datadog Ruby APM SDK, set the environment variable `DD_TRACE_DEBUG=true`. **Application Logs** @@ -114,7 +114,7 @@ See [the API documentation][1] for more details. {{< programming-lang lang="go" >}} -To enable debug mode for the Datadog Go Tracer, set the environment variable `DD_TRACE_DEBUG=true`, +To enable debug mode for the Datadog Go APM SDK, set the environment variable `DD_TRACE_DEBUG=true`, or enable the debug mode during the `Start` config: ```go @@ -130,7 +130,7 @@ func main() { #### Abandoned span logs -The Datadog Go Tracer also supports logging for potentially abandoned spans. To enable this debug mode in Go, set the environment variable `DD_TRACE_DEBUG_ABANDONED_SPANS=true`. To change the duration after which spans are considered abandoned (default=`10m`), set the environment variable `DD_TRACE_ABANDONED_SPAN_TIMEOUT` to the desired time duration. Abandoned span logs appear at the Info level. +The Datadog Go APM SDK also supports logging for potentially abandoned spans. To enable this debug mode in Go, set the environment variable `DD_TRACE_DEBUG_ABANDONED_SPANS=true`. To change the duration after which spans are considered abandoned (default=`10m`), set the environment variable `DD_TRACE_ABANDONED_SPAN_TIMEOUT` to the desired time duration. Abandoned span logs appear at the Info level. You can also enable debugging abandoned spans during the `Start` config: @@ -153,13 +153,13 @@ func main() { {{< programming-lang lang="nodejs" >}} -To enable debug mode for the Datadog Node.js Tracer, use the environment variable `DD_TRACE_DEBUG=true`. +To enable debug mode for the Datadog Node.js APM SDK, use the environment variable `DD_TRACE_DEBUG=true`. -**Note:** For versions below 2.X, debug mode could be enabled programmatically inside the tracer initialization but this is no longer supported. +**Note:** For versions below 2.X, debug mode could be enabled programmatically inside the APM SDK initialization but this is no longer supported. **Application Logs** -In debug mode the tracer will log debug information to `console.log()` and errors to `console.error()`. You can change this behavior by passing a custom logger to the tracer. The logger should contain `debug()` and `error()` methods that can handle messages and errors, respectively. +In debug mode the APM SDK will log debug information to `console.log()` and errors to `console.error()`. You can change this behavior by passing a custom logger to the tracer. The logger should contain `debug()` and `error()` methods that can handle messages and errors, respectively. For example: @@ -180,13 +180,13 @@ const tracer = require('dd-trace').init({ Then check the Agent logs to see if there is more info about your issue: -* If the trace was sent to the Agent properly, you should see `Response from the Agent: OK` log entries. This indicates that the tracer is working properly, so the problem may be with the Agent itself. Refer to the [Agent troubleshooting guide][1] for more information. +* If the trace was sent to the Agent properly, you should see `Response from the Agent: OK` log entries. This indicates that the APM SDK is working properly, so the problem may be with the Agent itself. Refer to the [Agent troubleshooting guide][1] for more information. * If an error was reported by the Agent (or the Agent could not be reached), you will see `Error from the Agent` log entries. In this case, validate your network configuration to ensure the Agent can be reached. If you are confident the network is functional and that the error is coming from the Agent, refer to the [Agent troubleshooting guide][1]. -If neither of these log entries is present, then no request was sent to the Agent, which means that the tracer is not instrumenting your application. In this case, [contact Datadog support][2] and provide the relevant log entries with [a flare][3]. +If neither of these log entries is present, then no request was sent to the Agent, which means that the APM SDK is not instrumenting your application. In this case, [contact Datadog support][2] and provide the relevant log entries with [a flare][3]. -For more tracer settings, check out the [API documentation][4]. +For more APM SDK settings, check out the [API documentation][4]. [1]: /agent/troubleshooting/ @@ -197,7 +197,7 @@ For more tracer settings, check out the [API documentation][4]. {{< programming-lang lang=".NET" >}} -To enable debug mode for the Datadog .NET Tracer, set the `DD_TRACE_DEBUG` configuration setting to `true`. This setting can be set as an environment variable, in the `web.config` or `app.config` file (.NET Framework only), or in a `datadog.json` file. Alternatively, you can enable debug mode by calling `GlobalSettings.SetDebugEnabled(true)`: +To enable debug mode for the Datadog .NET APM SDK, set the `DD_TRACE_DEBUG` configuration setting to `true`. This setting can be set as an environment variable, in the `web.config` or `app.config` file (.NET Framework only), or in a `datadog.json` file. Alternatively, you can enable debug mode by calling `GlobalSettings.SetDebugEnabled(true)`: ```csharp using Datadog.Trace; @@ -218,9 +218,9 @@ Logs files are saved in the following directories by default. Use the `DD_TRACE_ **Note:**: On Linux, you must create the logs directory before you enabled debug mode. -Since version `2.19.0`, you can use the `DD_TRACE_LOGFILE_RETENTION_DAYS` setting to configure the tracer to delete log files from the current logging directory on startup. The tracer deletes log files the same age and older than the given number of days, with a default value of `31`. +Since version `2.19.0`, you can use the `DD_TRACE_LOGFILE_RETENTION_DAYS` setting to configure the APM SDK to delete log files from the current logging directory on startup. The APM SDK deletes log files the same age and older than the given number of days, with a default value of `31`. -For more details on how to configure the .NET Tracer, see the [Configuration][2] section. +For more details on how to configure the .NET APM SDK, see the [Configuration][2] section. There are two types of logs that are created in these paths: 1. **Logs from native code:** In 1.26.0 and higher, these logs are saved as `dotnet-tracer-native--.log`. From version 1.21.0 to 1.25.x, these logs were saved as `dotnet-tracer-native.log`. In 1.20.x and older versions, this was stored as `dotnet-profiler.log`. @@ -233,20 +233,20 @@ There are two types of logs that are created in these paths: {{< programming-lang lang="php" >}} -To enable debug mode for the Datadog PHP Tracer, set the environment variable `DD_TRACE_DEBUG=true`. See the PHP [configuration docs][1] for details about how and when this environment variable value should be set in order to be properly handled by the tracer. +To enable debug mode for the Datadog PHP APM SDK, set the environment variable `DD_TRACE_DEBUG=true`. See the PHP [configuration docs][1] for details about how and when this environment variable value should be set in order to be properly handled by the tracer. -There are two options to route debug tracer logs to a file. +There are two options to route debug APM SDK logs to a file. **Option 1:** -With dd-trace-php 0.98.0+, you can specify a path to a log file for certain debug tracer logs: +With dd-trace-php 0.98.0+, you can specify a path to a log file for certain debug APM SDK logs: - **Environment variable**: `DD_TRACE_LOG_FILE` - **INI**: `datadog.trace.log_file` **Notes**: - - For details about where to set `DD_TRACE_LOG_FILE`, review [Configuring the PHP Tracing Library][2]. + - For details about where to set `DD_TRACE_LOG_FILE`, review [Configuring the PHP APM SDK][2]. - If `DD_TRACE_LOG_FILE` is not specified, logs go to the default PHP error location (See **Option 2** for more details). **Option 2:** @@ -278,7 +278,7 @@ cmake --install .build ## Review debug logs -When debug mode for your tracer is enabled, tracer-specific log messages report how the tracer was initialized and whether traces were sent to the Agent. **These logs are not sent to the Datadog Agent in the flare and are stored in a separate path depending on your logging configuration**. The following log examples show what might appear in your log file. +When debug mode for your APM SDK is enabled, tracer-specific log messages report how the APM SDK was initialized and whether traces were sent to the Agent. **These logs are not sent to the Datadog Agent in the flare and are stored in a separate path depending on your logging configuration**. The following log examples show what might appear in your log file. If there are errors that you don't understand, or if traces are reported as flushed to Datadog but you cannot see them in the Datadog UI, [contact Datadog support][1] and provide the relevant log entries with [a flare][2]. @@ -310,7 +310,7 @@ If there are errors that you don't understand, or if traces are reported as flus {{< /programming-lang >}} {{< programming-lang lang="python" >}} -Logs generated by the Python Tracer have the logging handler name `ddtrace`. +Logs generated by the Python APM SDK have the logging handler name `ddtrace`. **Traces were generated:** diff --git a/content/en/tracing/troubleshooting/tracer_startup_logs.md b/content/en/tracing/troubleshooting/tracer_startup_logs.md index ab6c6db4492a7..700fd6e40c64b 100644 --- a/content/en/tracing/troubleshooting/tracer_startup_logs.md +++ b/content/en/tracing/troubleshooting/tracer_startup_logs.md @@ -1,5 +1,5 @@ --- -title: Tracer Startup Logs +title: APM SDK Startup Logs further_reading: - link: "/tracing/troubleshooting/connection_errors/" tag: "Documentation" @@ -7,13 +7,13 @@ further_reading: --- ## Startup logs -Tracer startup logs capture all obtainable information at startup and log it as `DATADOG TRACER CONFIGURATION`, `DATADOG TRACER DIAGNOSTICS`, `DATADOG ERROR`, or `DATADOG CONFIGURATION` to simplify searching within your logs. +APM SDK startup logs capture all obtainable information at startup and log it as `DATADOG TRACER CONFIGURATION`, `DATADOG TRACER DIAGNOSTICS`, `DATADOG ERROR`, or `DATADOG CONFIGURATION` to simplify searching within your logs. Some languages log to a separate file depending on language conventions and the safety of accessing `Stdout` or equivalent. In those cases, the location of logs are noted in the language tab below. Some languages don't log diagnostics entries, also noted below. `CONFIGURATION` logs are a JSON formatted representation of settings applied to your tracer. In languages where an Agent connectivity check is performed, the configuration JSON will also include an `agent_error` key, which indicates whether the Agent is reachable. -`DIAGNOSTICS` or `ERROR` log entries, in the languages that produce them, happen when the tracer encounters an error during application startup. If you see `DIAGNOSTICS` or `ERROR` log lines, confirm from the indicated log that settings and configurations are applied correctly. +`DIAGNOSTICS` or `ERROR` log entries, in the languages that produce them, happen when the APM SDK encounters an error during application startup. If you see `DIAGNOSTICS` or `ERROR` log lines, confirm from the indicated log that settings and configurations are applied correctly. If you do not see logs at all, ensure that your application logs are not silenced and that your log level is at least `INFO` where applicable. @@ -28,7 +28,7 @@ If you do not see logs at all, ensure that your application logs are not silence **Diagnostics:** -The Java tracer does not output Diagnostics logs. For this check, run the tracer in [debug mode][1]. +The Java APM SDK does not output Diagnostics logs. For this check, run the APM SDK in [debug mode][1]. [1]: /tracing/troubleshooting/tracer_debug_logs/ @@ -48,7 +48,7 @@ Log files are saved in the following directories by default. Use the `DD_TRACE_L **Note:** On Linux, you must create the logs directory before you enable debug mode. -Since version `2.19.0`, you can use the `DD_TRACE_LOGFILE_RETENTION_DAYS` setting to configure the tracer to delete log files from the current logging directory on startup. The tracer deletes log files the same age and older than the given number of days, with a default value of `31`. +Since version `2.19.0`, you can use the `DD_TRACE_LOGFILE_RETENTION_DAYS` setting to configure the APM SDK to delete log files from the current logging directory on startup. The APM SDK deletes log files the same age and older than the given number of days, with a default value of `31`. - `dotnet-tracer-managed-{processName}-{timestamp}.log` contains the configuration logs. @@ -70,7 +70,7 @@ Since version `2.19.0`, you can use the `DD_TRACE_LOGFILE_RETENTION_DAYS` settin **Diagnostics:** -The .NET tracer prints the following diagnostic lines: +The .NET APM SDK prints the following diagnostic lines: ```text DATADOG TRACER DIAGNOSTICS - Profiler disabled in DD_TRACE_ENABLED @@ -134,7 +134,7 @@ DATADOG TRACER CONFIGURATION - {"agent_error":"Couldn't connect to server","ddtr **Diagnostics:** -Failed diagnostics for the PHP tracer print in the `error_log` if the tracer is in [DEBUG mode][1]. +Failed diagnostics for the PHP APM SDK print in the `error_log` if the tracer is in [DEBUG mode][1]. ```text DATADOG TRACER DIAGNOSTICS - agent_error: Couldn't connect to server @@ -161,7 +161,7 @@ echo \DDTrace\startup_logs() . PHP_EOL; **Diagnostics:** -The Go Tracer prints one of two possible diagnostic lines, one for when the Agent cannot be reached, and the other for trace sampling errors. +The Go APM SDK prints one of two possible diagnostic lines, one for when the Agent cannot be reached, and the other for trace sampling errors. ```text 2020/07/09 15:57:07 Datadog Tracer v1.26.0 WARN: DIAGNOSTICS Unable to reach agent: [Reason for error] @@ -189,7 +189,7 @@ DATADOG TRACER CONFIGURATION - {"date":"2020-07-02T18:51:18.294Z","os_name":"Dar **Diagnostics:** -The Node.js Tracer prints a diagnostic line when the Agent cannot be reached. +The Node.js APM SDK prints a diagnostic line when the Agent cannot be reached. ```text DATADOG TRACER DIAGNOSTIC - Agent Error: Network error trying to reach the agent: connect ECONNREFUSED 127.0.0.1:8126 @@ -200,13 +200,13 @@ DATADOG TRACER DIAGNOSTIC - Agent Error: Network error trying to reach the agent **Log location:** -The Python tracer logs configuration information as INFO-level. It logs diagnostics information, if found, as ERROR. +The Python APM SDK logs configuration information as INFO-level. It logs diagnostics information, if found, as ERROR. If there is no logging configuration, only Diagnostics will be output to `Stderr`. -To see tracer startup logs, either add a logger, or set `DD_TRACE_DEBUG=true` in your configuration and run your application with `ddtrace-run`. This adds a logger, and exposes both debug and startup tracer logs. +To see APM SDK startup logs, either add a logger, or set `DD_TRACE_DEBUG=true` in your configuration and run your application with `ddtrace-run`. This adds a logger, and exposes both debug and startup APM SDK logs. -To see options for logging to a file with `DD_TRACE_LOG_FILE`, read [Tracer Debug Logs][1]. +To see options for logging to a file with `DD_TRACE_LOG_FILE`, read [APM SDK Debug Logs][1]. **Configuration:** @@ -216,7 +216,7 @@ To see options for logging to a file with `DD_TRACE_LOG_FILE`, read [Tracer Debu **Diagnostics:** -The Python tracer prints a diagnostic line when the Agent cannot be reached. +The Python APM SDK prints a diagnostic line when the Agent cannot be reached. ```text DATADOG TRACER DIAGNOSTIC - Agent not reachable. Exception raised: [Errno 61] Connection refused @@ -249,7 +249,7 @@ export DD_TRACE_STARTUP_LOGS=true ### Output -When startup logs are enabled, the tracer outputs configuration and diagnostic information. +When startup logs are enabled, the APM SDK outputs configuration and diagnostic information. **Configuration:** @@ -259,7 +259,7 @@ W, [2020-07-08T21:14:25.281615 #137] WARN -- ddtrace: [ddtrace] DATADOG TRACER **Diagnostics:** -The Ruby tracer prints an error line when the Agent cannot be reached. +The Ruby APM SDK prints an error line when the Agent cannot be reached. ```text W, [2020-07-08T21:19:05.765994 #143] WARN -- ddtrace: [ddtrace] DATADOG ERROR - TRACER - Agent Error: Datadog::Transport::InternalErrorResponse ok?: unsupported?:, not_found?:, client_error?:, server_error?:, internal_error?:true, payload:, error_type:Errno::ECONNREFUSED error:Failed to open TCP connection to ddagent:9127 (Connection refused - connect(2) for "ddagent" port 9127) @@ -270,7 +270,7 @@ W, [2020-07-08T21:19:05.765994 #143] WARN -- ddtrace: [ddtrace] DATADOG ERROR - **Configuration:** -The Ruby tracer prints a configuration line for each product (i.e. Profiling, Core, and Tracing). +The Ruby APM SDK prints a configuration line for each product (i.e. Profiling, Core, and Tracing). ```text I, [2023-08-16T18:09:01.972265 #35] INFO -- ddtrace: [ddtrace] DATADOG CONFIGURATION - PROFILING - {"profiling_enabled":false} @@ -282,22 +282,22 @@ I, [2023-08-16T18:09:27.223143 #35] INFO -- ddtrace: [ddtrace] DATADOG CONFIGUR **Diagnostics:** -For C++, there are no `DATADOG TRACER DIAGNOSTICS` lines output to the tracer logs. However, if the Agent is not reachable, errors appear in your application logs. In Envoy there is an increase in the metrics `tracing.datadog.reports_failed` and `tracing.datadog.reports_dropped`. +For C++, there are no `DATADOG TRACER DIAGNOSTICS` lines output to the APM SDK logs. However, if the Agent is not reachable, errors appear in your application logs. In Envoy there is an increase in the metrics `tracing.datadog.reports_failed` and `tracing.datadog.reports_dropped`. {{< /programming-lang >}} {{< /programming-lang-wrapper >}} ## Connection errors -If your application or startup logs contain `DIAGNOSTICS` errors or messages that the Agent cannot be reached or connected to (varying depending on your language), it means the tracer is unable to send traces to the Datadog Agent. +If your application or startup logs contain `DIAGNOSTICS` errors or messages that the Agent cannot be reached or connected to (varying depending on your language), it means the APM SDK is unable to send traces to the Datadog Agent. -If you have these errors, check that your Agent is set up to receive traces for [ECS][1], [Kubernetes][2], [Docker][3] or [any other option][4], or [contact support][5] to review your tracer and Agent configuration. +If you have these errors, check that your Agent is set up to receive traces for [ECS][1], [Kubernetes][2], [Docker][3] or [any other option][4], or [contact support][5] to review your APM SDK and Agent configuration. See [Connection Errors][6] for information about errors indicating that your instrumented application cannot communicate with the Datadog Agent. ## Configuration settings -If your logs contain only `CONFIGURATION` lines, a useful troubleshooting step is to confirm that the settings output by the tracer match the settings from your deployment and configuration of the Datadog Tracer. Additionally, if you are not seeing specific traces in Datadog, review the [Compatibility Requirements][7] section of the documentation to confirm these integrations are supported. +If your logs contain only `CONFIGURATION` lines, a useful troubleshooting step is to confirm that the settings output by the APM SDK match the settings from your deployment and configuration of the Datadog Tracer. Additionally, if you are not seeing specific traces in Datadog, review the [Compatibility Requirements][7] section of the documentation to confirm these integrations are supported. If an integration you are using is not supported, or you want a fresh pair of eyes on your configuration output to understand why traces are not appearing as expected in Datadog, [contact support][5] who can help you diagnose and create a Feature Request for a new integration.