linkerd / linkerd/linkerd2

Allow customization of control plane tracer in helm

Open
#8,071 3 comments 3 reactions 0 assignees View on GitHub
area/helm area/viz enhancement help wanted priority/triage
Dominant language
Go
Stars
11.5k
Forks
1.4k
Avg merge
3d 22h
Merged PRs (30d)
53

Description

### What problem are you trying to solve?

Datadog recently added support for a [built-in OTLP collector endpoint](https://docs.datadoghq.com/tracing/setup_overview/open_standards/#otlp-ingest-in-datadog-agent). I want to use it (as a replacement for the actual OTLP collector). This should be as easy as re-pointing the `trace-collector` [argument](https://github.com/linkerd/linkerd2/blob/main/charts/partials/templates/_trace.tpl) at the datadog agent service. However, currently the name and location of the collector service is hard-coded:

```
- -trace-collector=collector.{{.Values.controlPlaneTracingNamespace}}.svc.{{.Values.clusterDomain}}:55678
```

### How should the problem be solved?

Either enable me to completely override the collector address string or allow me to set all of the parameters individually (including name, namespace, and port).

Mine will end up looking like `agent.datadog.svc.cluster.local:4317`.

### Any alternatives you've considered?

You could provide more of a first-class integration with datadog. It may simplify the amount of configuration needed by the end user at deploy time, but since datadog is supporting OTLP out of the box, this may add unnecessary complexity to the helm charts.

You could also enable non-mTLS endpoints for trace reporting, in which case the address schema would need to be revisited (for instance I could use `$(DD_AGENT_HOST):4317` if datadog isn't meshed). This is more in line with how datadog expects to work, but may require rethinking some assumptions.

### How would users interact with this feature?

We'd probably want to change `controlPlaneTracing` to an object with attributes:

```
controlPlaneTracing:
collectorName: agent
namespace: datadog
port: 4317
```

### Would you like to work on this feature?

maybe

Contributor guide

Open the contributing guide

Research direction

Read charts/partials/templates/_trace.tpl and the Helm values for controlPlaneTracing to trace how the hard-coded trace-collector argument is rendered. Done means the chart lets users configure the collector endpoint, including the name, namespace, and port needed for the Datadog agent address.

Written by the indexing model from the issue text.

Assessment

Tech stack
helm, kubernetes
Domain
infrastructure, observability
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.