Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 74 additions & 1 deletion content/en/agent/configuration/proxy.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@

## Configure the Datadog Agent

There are two options for configuring the Datadog Agent to use a proxy.
There are several options for configuring the Datadog Agent to use a proxy depending on your deployment method.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Style: Add a comma before the qualifying clause for readability.

Suggested change
There are several options for configuring the Datadog Agent to use a proxy depending on your deployment method.
There are several options for configuring the Datadog Agent to use a proxy, depending on your deployment method.

- You can use the Agent configuration file.
- You can use environment variables. Environment variables override configuration file settings.
- For Kubernetes deployments, you can configure the proxy through Helm or the Datadog Operator.

### Configuration file

Expand Down Expand Up @@ -79,6 +80,78 @@
DD_LOGS_CONFIG_FORCE_USE_HTTP=true
```

### Kubernetes

{{< tabs >}}
{{% tab "Helm" %}}

Add the following to your `values.yaml`:

```yaml
datadog:
env:
- name: DD_PROXY_HTTP
value: "http://<PROXY_SERVICE>.<PROXY_NAMESPACE>.svc.cluster.local:<PROXY_PORT>"
- name: DD_PROXY_HTTPS
value: "http://<PROXY_SERVICE>.<PROXY_NAMESPACE>.svc.cluster.local:<PROXY_PORT>"
- name: DD_PROXY_NO_PROXY
value: "<HOST_TO_BYPASS_1> <HOST_TO_BYPASS_2>"
- name: DD_NO_PROXY_NONEXACT_MATCH
value: "true"
```

{{% /tab %}}
{{% tab "Operator" %}}

Add the following to your `DatadogAgent` CR:

```yaml
spec:
global:
env:
- name: DD_PROXY_HTTP
value: "http://<PROXY_SERVICE>.<PROXY_NAMESPACE>.svc.cluster.local:<PROXY_PORT>"
- name: DD_PROXY_HTTPS
value: "http://<PROXY_SERVICE>.<PROXY_NAMESPACE>.svc.cluster.local:<PROXY_PORT>"
- name: DD_PROXY_NO_PROXY
value: "<HOST_TO_BYPASS_1> <HOST_TO_BYPASS_2>"
- name: DD_NO_PROXY_NONEXACT_MATCH
value: "true"
```

{{% /tab %}}
{{< /tabs >}}

## `NO_PROXY` accepted values

By default, `no_proxy`/`NO_PROXY` must match endpoints exactly for Agent HTTP(S) requests (except requests performed by Agent integrations). It is recommended to enable `no_proxy_nonexact_match` to make the Agent match `NO_PROXY` values with the same rules used for Agent integrations.

Check warning on line 127 in content/en/agent/configuration/proxy.md

View workflow job for this annotation

GitHub Actions / vale

Datadog.recommendations

Use 'Datadog recommends' instead of 'It is recommended'.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Style: Use a direct, active voice instead of "It is recommended to". Also, the existing config example above (line 53) already uses no_proxy_nonexact_match: true and notes that it's recommended — consider whether this sentence still adds value or could be tightened.

Suggested change
By default, `no_proxy`/`NO_PROXY` must match endpoints exactly for Agent HTTP(S) requests (except requests performed by Agent integrations). It is recommended to enable `no_proxy_nonexact_match` to make the Agent match `NO_PROXY` values with the same rules used for Agent integrations.
By default, `no_proxy`/`NO_PROXY` must match endpoints exactly for Agent HTTP(S) requests (except requests performed by Agent integrations). Datadog recommends enabling `no_proxy_nonexact_match` so the Agent matches `NO_PROXY` values using the same rules as Agent integrations.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Style: Prefer active voice — this matches the existing phrasing later in the file ("Datadog recommends using an HTTP proxy like Squid").

Suggested change
By default, `no_proxy`/`NO_PROXY` must match endpoints exactly for Agent HTTP(S) requests (except requests performed by Agent integrations). It is recommended to enable `no_proxy_nonexact_match` to make the Agent match `NO_PROXY` values with the same rules used for Agent integrations.
By default, `no_proxy`/`NO_PROXY` must match endpoints exactly for Agent HTTP(S) requests (except requests performed by Agent integrations). Datadog recommends enabling `no_proxy_nonexact_match` so the Agent matches `NO_PROXY` values with the same rules used for Agent integrations.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
By default, `no_proxy`/`NO_PROXY` must match endpoints exactly for Agent HTTP(S) requests (except requests performed by Agent integrations). It is recommended to enable `no_proxy_nonexact_match` to make the Agent match `NO_PROXY` values with the same rules used for Agent integrations.
By default, `no_proxy`/`NO_PROXY` must match endpoints exactly for Agent HTTP(S) requests (except requests performed by Agent integrations). Datadog recommends enabling `no_proxy_nonexact_match` to make the Agent match `NO_PROXY` values with the same rules used for Agent integrations.


{{< tabs >}}
{{% tab "Configuration file" %}}
```yaml
no_proxy_nonexact_match: true
```
{{% /tab %}}
{{% tab "Environment variable" %}}
```bash
DD_NO_PROXY_NONEXACT_MATCH=true
```
{{% /tab %}}
{{< /tabs >}}

The following rules apply to Agent integrations (and the whole Agent when `no_proxy_nonexact_match` is enabled):
* A domain name matches that name and all subdomains, for example:
- `datadoghq.com` matches `app.agent.datadoghq.com`, `www.datadoghq.com`, `datadoghq.com`, but **not** `www.notdatadoghq.com`
- `datadoghq` matches `frontend.datadoghq`, `backend.datadoghq`, but **not** `www.datadoghq.com` nor `www.datadoghq.eu`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Style: "nor" without a preceding "neither" reads awkwardly; use "or" for parallelism with the other bullets.

Suggested change
- `datadoghq` matches `frontend.datadoghq`, `backend.datadoghq`, but **not** `www.datadoghq.com` nor `www.datadoghq.eu`
- `datadoghq` matches `frontend.datadoghq`, `backend.datadoghq`, but **not** `www.datadoghq.com` or `www.datadoghq.eu`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree with this suggestion, please update - thank you!

* A domain name with a leading "." matches subdomains only, for example:
- `.datadoghq.com` matches `app.agent.datadoghq.com`, `www.datadoghq.com`, but **not** `datadoghq.com`
* A CIDR range matches an IP address within the subnet, for example:
- `192.168.1.0/24` matches IP range `192.168.1.1` through `192.168.1.254`
* An exact IP address, for example:
- `169.254.169.254`
* A hostname, for example:
- `webserver1`

## Proxy Server Setup Examples

If you don't have an existing proxy server, Datadog recommends using an HTTP proxy like **Squid**.
Expand Down
Loading