| title | Installing the DataDog Agent in Middleware |
|---|---|
| sidebarTitle | DataDog Agent |
Middleware supports the ingestion of APM traces and logs from the DataDog Agent. We use their Dual Shipping feature to redirect your APM traces and logs into Middleware.
This feature is supported in DataDog's Linux and Kubernetes Agent
DataDog Agent `version 6.7.0` or above DataDog Agent `version 6.6` or above DataDog Agent `version 6.13` or aboveAdd the following additional_endpoints within the apm_config section in your datadog.yaml file:
If you already have the apm_config section in your datadog.yaml file, add an additional endpoint in the same section. Datadog agent does not support multiple apm_config sections.
The Linux DataDog Agent is configured by default in the following YAML file: /etc/datadog-agent/datadog.yaml
apm_config:
additional_endpoints:
"https://datadog.middleware.io":
- "<Your MW API Key>"Add the following additional_endpoints within the logs_config section in your datadog.yaml file:
Unlike the APM Traces, you only need to provide your hostname (datadog.middleware.io) without the protocol scheme (https://)
logs_config:
use_http: true
additional_endpoints:
- api_key: "<Your MW API Key>"
Host: "datadog.stage.env.middleware.io"
Port: 443
is_reliable: trueRun the following code in your terminal to restart the DataDog Agent:
sudo systemctl restart datadog-agentThe Datadog Kubernetes agent supports Helm and Operator methods of installation. Middleware can ingest traces and logs from the Datadog agent installed using any of these methods.
If you have installed the Datadog Agent using their Helm Chart, you must add the following section in your datadog-values.yaml file that you created from step 3 here:
You can remove either the logs_config or the apm_config from the below file depending on what data you would like to send to Middleware.
agents:
useConfigMap: true
customAgentConfig:
logs_config:
container_collect_all: true
use_http: true
additional_endpoints:
- api_key: lzfywamjxpfaepytxwcavxgnxmkwebkuccyi
Host: datadog.middleware.io
Port: 443
is_reliable: true
apm_config:
additional_endpoints:
"https://datadog.middleware.io":
- "<Your MW API Key>”
Below is an example of the full datadog-values.yaml file that will send logs and APM traces to the Middleware platform:
datadog:
site: us5.datadoghq.com
kubelet:
tlsVerify: false
apiKeyExistingSecret: datadog-secret
logs:
enabled: true
containerCollectAll: true
agents:
useConfigMap: true
customAgentConfig:
logs_config:
container_collect_all: true
use_http: true
additional_endpoints:
- api_key: "<Your MW API Key>"
Host: "datadog.middleware.io"
Port: 443
is_reliable: true
apm_config:
additional_endpoints:
"https://datadog.middleware.io":
- "<Your MW API Key>"Middleware can ingest Logs and APM Traces from the DataDog Agent running on ECS clusters that use EC2 instances.
For more information on ingesting Log and APM Traces using Amazon ECS with DataDog, navigate here.
Add the following JSON script to your ECS task definition. The below environment variables are required for dual shipping APM traces in the DataDog Agent.
The DD_APM_ENABLED and DD_APM_ADDITION_ENDPOINTS environment variables are in addition to existing environment variables (e.g. DD_API_KEY, DD_SITE, etc.) that may already be defined in your Datadog Agent’s task definition.
"environment": [
...
{
"name": "DD_APM_ENABLED",
"value": "true"
},
{
"name": "DD_APM_ADDITIONAL_ENDPOINTS",
"value": "{\"https://datadog.middleware.io\": [\"<Your MW API Key>\"]}"
},
]
Ensure that you have replaced <Your MW API Key> with your desired Middleware API key from your Middleware account.
Add the following JSON script to your ECS task definition. The below environment variables are required for dual shipping Logs in the DataDog Agent.
The four environment variables mentioned above are in addition to existing environment variables (e.g. DD_API_KEY, DD_SITE, etc.) that may already be defined in your Datadog Agent’s task definition.
"environment": [
{
"name": "DD_LOGS_CONFIG_USE_HTTP",
"value": "true"
},
{
"name": "DD_LOGS_ENABLED",
"value": "true"
},
{
"name": "DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL",
"value": "true"
},
{
"name": "DD_LOGS_CONFIG_ADDITIONAL_ENDPOINTS",
"value": "[{\"api_key\": \"<Your MW API Key>\", \"Host\": \"datadog.middleware.io\", \"Port\": 443, \"is_reliable\": true}]"
}
]
Ensure that you have replaced <Your MW API Key> with your desired Middleware API key from your Middleware account.
Once you have updated the ECS task definition for the Datadog Agent, update the relevant Datadog Agent Service to redeploy the agent with your new configuration. APM traces and logs will start flowing into your Middleware account.
If you want to stop sending APM traces and logs to Datadog, you can change the api_key (or environment variable DD_API_KEY) in the /etc/datadog/datadog.yaml file to something invalid.
The Datadog Agent does not work if you comment out your api_key or set it to an empty value.
Below is an example of setting your api_key and site to invalid values:
api_key: using middleware
site: example.com- Execute the following command to ensure the DataDog Linux Agent is in an active state:
sudo systemctl status datadog-agent-
Verify that your Middleware API key and target are correct. The
apm_configtarget ishttp://datadog.middleware.iowhereas thelogs_configHostfield value isdatadog.middleware.io(withouthttps://). -
Make sure you only have one
apm_configandlogs_configsection in the following configuration file:/etc/datadog/datadog.yaml -
Check your DataDog Kubernetes Agent. Ensure the
datadog-agentandcluster-agentpods are operational with a liveness and readiness check for both pods. -
Check your Kubernetes Helm chart installation method by checking the
datadog-values.yamland ensure that theagentsection is at the same level as thedatadogsection. Theagentsection should NOT be inside thedatadogsection.
Need assistance or want to learn more about Middleware? Contact us at support[at]middleware.io.