Linkerd

Supported OS Linux Windows Mac OS

Integration version6.0.0

Overview

Linkerd is a light but powerful open-source service mesh with CNCF graduated status. It provides the tools you need to write secure, reliable, observable cloud-native applications. With minimal configuration and no application changes, Linkerd:

  • Uses mutual TLS to transparently secure all on-cluster TCP communication.
  • Adds latency-aware load balancing, request retries, timeouts, and blue-green deploys to keep your applications resilient.
  • Provides platform health metrics by tracking success rates, latencies, and request volumes for every meshed workload.

This integration sends your Linkerd metrics to Datadog, including application success rates, latency, and saturation.

Setup

This OpenMetrics-based integration has a latest mode (enabled by setting openmetrics_endpoint to point to the target endpoint) and a legacy mode (enabled by setting prometheus_url instead). To get all the most up-to-date features, Datadog recommends enabling the latest mode. For more information, see Latest and Legacy Versioning For OpenMetrics-based Integrations.

Metrics marked as [OpenMetrics V1] or [OpenMetrics V2] are only available using the corresponding mode of the Linkerd integration. Metrics not marked are collected by all modes.

Installation

The Linkerd check is included in the Datadog Agent package, so you don’t need to install anything else on your server.

Configuration

Host

To configure this check for an Agent running on a host:

  1. Edit the linkerd.d/conf.yaml file, in the conf.d/ folder at the root of your Agent’s configuration directory. See the sample linkerd.d/conf.yaml for all available configuration options using the latest OpenMetrics check example. If you previously implemented this integration, see the legacy example.

  2. Restart the Agent.

Containerized

For containerized environments, see the Autodiscovery Integration Templates for guidance on applying the parameters below.

Linkerd v1
ParameterValue
<INTEGRATION_NAME>linkerd
<INIT_CONFIG>blank or {}
<INSTANCE_CONFIG>{"openmetrics_endpoint": "http://%%host%%:9990/admin/metrics/prometheus"}

Note: This is a new default OpenMetrics check example. If you previously implemented this integration, see the legacy example.

Linkerd v2
ParameterValue
<INTEGRATION_NAME>linkerd
<INIT_CONFIG>blank or {}
<INSTANCE_CONFIG>{"openmetrics_endpoint": "http://%%host%%:4191/metrics"}

Note: This is a new default OpenMetrics check example. If you previously implemented this integration, see the legacy example.

Log collection

Collecting logs is disabled by default in the Datadog Agent. To enable it, see Kubernetes log collection.

ParameterValue
<LOG_CONFIG>{"source": "linkerd", "service": "<SERVICE_NAME>"}

To increase the verbosity of the data plane logs, see Modifying the Proxy Log Level.

Validation

Run the Agent’s status subcommand and look for linkerd under the Checks section.

Data Collected

Metrics

See metadata.csv for a list of metrics provided by this integration.

For Linkerd v1, see the finagle metrics guide for metric descriptions and this gist for an example of metrics exposed by Linkerd.

Linkerd is a Prometheus-based integration. Depending on your Linkerd configuration, some metrics might not be exposed by Linkerd. If any metric is not present in the cURL output, the Datadog Agent is unable to collect that particular metric.

To list the metrics exposed by your current configuration, run:

curl <linkerd_prometheus_endpoint>

Where linkerd_prometheus_endpoint is the Linkerd Prometheus endpoint (you should use the same value as the prometheus_url config key in your linkerd.yaml)

If you need to use a metric that is not provided by default, you can add an entry to linkerd.yaml.

For more information, see the examples in the default configuration.

Service Checks

linkerd.prometheus.health
Returns CRITICAL if the agent fails to connect to the prometheus endpoint, otherwise OK.
Statuses: ok, critical

Troubleshooting

Need help? Contact Datadog support.

PREVIEWING: piotr_wolski/update-dsm-docs