Datadog
Monitor and observe your SDK with Datadog.
Datadog supports different languages, frameworks, and platforms to retrieve metrics and traces.
Java SDK
Prerequisites
- Version 17.6 (or later) of the Java SDK
- Active Datadog account with an API key
Include the Datadog middleware in the Java SDK
The Java SDK integrates with Datadog through the commercetools-monitoring-datadog module.
After adding commercetools-monitoring-datadog
as a dependency in your application, add the Datadog middleware and serializer to your SDK using the .withTelemetryMiddleware()
and withSerializer()
methods.
ApiHttpClient apiHttpClient = ApiRootBuilder.of().defaultClient(ServiceRegion.GCP_EUROPE_WEST1.getApiUrl()).withTelemetryMiddleware(new DatadogMiddleware(ApiClient.getDefaultApiClient())).withSerializer(new DatadogResponseSerializer(ResponseSerializer.of(),ApiClient.getDefaultApiClient())).buildClient();
The commercetools-monitoring-datadog
module includes telemetry middleware for monitoring request execution and response times, alongside counters for requests and errors.
In addition, the DatadogResponseSerializer
tracks the time taken to serialize and deserialize JSON payloads.
For an example of integrating Datadog with the Java SDK, refer to the Spring Boot Datadog example application.
TypeScript SDK
Prerequisites
- Version 2.0.0 (or later) of the TypeScript SDK
- Version 5.5.0 of the Datadog dd-trace package
- Active Datadog account with an API key
- Install the appropriate Datadog integration for your environment if you are using a non-containerized service or direct host integration
- You can run the script install.sh to install the Datadog agent on macOS
Include the Datadog middleware in the TypeScript SDK
The TypeScript SDK integrates Datadog using the @commercetools/ts-sdk-apm module.
Create a tracer.js
or tracer.ts
module in your project and add the following:
import tracer from 'dd-trace';tracer.init();export default tracer;
require('dd-trace').init();
After adding @commercetools/ts-sdk-apm
as a dependency, add the Datadog instrumentation to your app using the withTelemetryMiddleware()
middleware method.
import { ClientBuilder } from '@commercetools/sdk-client-v2'import { createTelemetryMiddleware } from '@commercetools/ts-sdk-apm'// Configure the telemetry optionsconst telemetryOptions = {tracer: () => require('./tracer'), // path to the tracer.js fileuserAgent: 'typescript-sdk-middleware-datadog',createTelemetryMiddleware}// Create the client with the withTelemetryMiddleware() middlewareconst client = new ClientBuilder().withClientCredentialsFlow(...).withHttpMiddleware(...).withTelemetryMiddleware(telemetryOptions) // telemetry middleware....build()
@commercetools/ts-sdk-am
adds the Datadog instrumentation module for monitoring request execution and response times, alongside counters for requests, errors, and other metrics.
For an example of integrating Datadog with the TypeScript SDK using a host
or containerized
agent, refer to the Datadog example application.