For AI agents: A markdown version of this page is available at https://docs.datadoghq.com/observability_pipelines/configuration/install_the_worker.md. A documentation index is available at /llms.txt.

Install the Worker

This product is not supported for your selected Datadog site. ().

Pipeline setup method

Platform

Secrets retrieval method

Pipeline setup method

Secrets retrieval method


Overview

For RHEL and CentOS, the Observability Pipelines Worker supports versions 8.0 or later.

The Observability Pipelines Worker is software that runs in your environment to centrally aggregate and process your logs and metrics (PREVIEW indicates an early access version of a major product or feature that you can opt into before its official release.Glossary), and then route them to different destinations.

The Observability Pipelines Worker supports all major Kubernetes distributions, such as:

  • Amazon Elastic Kubernetes Service (EKS)
  • Azure Kubernetes Service (AKS)
  • Google Kubernetes Engine (GKE)
  • Red Hat OpenShift
  • Rancher

This page describes how you can set up the Observability Pipelines Worker in ECS Fargate.

Note: If you are using a proxy, see the proxy option in Bootstrap options.

Install the Worker

  1. Run the following command to install the Worker:

    docker run -i -e DD_API_KEY=<DATADOG_API_KEY> \
        -e DD_OP_PIPELINE_ID=<PIPELINE_ID> \
        -e DD_SITE=<DATADOG_SITE> \
        -v /path/to/local/bootstrap.yaml:/etc/observability-pipelines-worker/bootstrap.yaml \
        datadog/observability-pipelines-worker run
    

    You must replace the placeholders with the following values:

  2. Modify the Worker bootstrap file to connect the Worker to your secrets manager. See Secrets Management for more information.

  3. Restart the Worker to use the updated bootstrap file:

    sudo systemctl restart observability-pipelines-worker
    

Run the following command to install the Worker:

docker run -i -e DD_API_KEY=<DATADOG_API_KEY> \
    -e DD_OP_PIPELINE_ID=<PIPELINE_ID> \
    -e DD_SITE=<DATADOG_SITE> \
    -e <SOURCE_ENV_VARIABLE> \
    -e <DESTINATION_ENV_VARIABLE> \
    -p 8088:8088 \
    datadog/observability-pipelines-worker run

You must replace the placeholders with these values:

  • <DATADOG_API_KEY>: Your Datadog API key.
  • <PIPELINE_ID>: The ID of your pipeline.
  • <DATADOG_SITE>: The Datadog site.
  • <SOURCE_ENV_VARIABLE>: The environment variables required by the source you are using for your pipeline.
    • For example: DD_OP_SOURCE_DATADOG_AGENT_ADDRESS=0.0.0.0:8282
    • See Environment Variables for a list of source environment variables.
  • <DESTINATION_ENV_VARIABLE>: The environment variables required by the destinations you are using for your pipeline.
    • For example: DD_OP_DESTINATION_SPLUNK_HEC_ENDPOINT_URL=https://hec.splunkcloud.com:8088
    • See Environment Variables for a list of destination environment variables.

Notes:

  • By default, the docker run command exposes the same port the Worker is listening on. If you want to map the Worker's container port to a different port on the Docker host, use the -p | --publish option in the command:
    -p 8282:8088 datadog/observability-pipelines-worker run
    
  • Use the VECTOR_HOSTNAME environment variable to assign a unique hostname and help you identify the Worker.
  • If you are using a firewall, see Add domains to firewall allowlist.

See Update Existing Pipelines if you want to make changes to your pipeline's configuration.

  1. Download the Helm chart values file. See the full list of available configuration options. If you are not using a managed service, see Self-hosted and self-managed Kubernetes clusters before continuing to the next step.
  2. Add the Datadog chart repository to Helm:
    helm repo add datadog https://helm.datadoghq.com
    
    If you already have the Datadog chart repository, run the following command to ensure it is up to date:
    helm repo update
    
  1. See Secrets Management on how to configure your values.yaml file for your secrets manager.

  2. Run the following command to install the Worker:

    helm upgrade --install opw \
    -f values.yaml \
    --set datadog.apiKey=<DATADOG_API_KEY> \
    --set datadog.pipelineId=<PIPELINE_ID> \
    datadog/observability-pipelines-worker
    

    You must replace the placeholders with the following values:

  1. Run the following command to install the Worker:

    helm upgrade --install opw \
    -f values.yaml \
    --set datadog.apiKey=<DATADOG_API_KEY> \
    --set datadog.pipelineId=<PIPELINE_ID> \
    --set <SOURCE_ENV_VARIABLES> \
    --set <DESTINATION_ENV_VARIABLES> \
    --set service.ports[0].protocol=TCP,service.ports[0].port=<SERVICE_PORT>,service.ports[0].targetPort=<TARGET_PORT> \
    datadog/observability-pipelines-worker
    

    You must replace the placeholders with the following values:

    • <DATADOG_API_KEY>: Your Datadog API key.
    • <PIPELINE_ID>: The ID of your pipeline.
    • <SOURCE_ENV_VARIABLE>: The environment variables required by the source you are using for your pipeline.
      • For example: --set env[0].name=DD_OP_SOURCE_DATADOG_AGENT_ADDRESS,env[0].value='0.0.0.0' \
      • See Environment Variables for a list of source environment variables.
    • <DESTINATION_ENV_VARIABLE>: The environment variables required by the destinations you are using for your pipeline.
      • For example: --set env[1].name=DD_OP_DESTINATION_SPLUNK_HEC_ENDPOINT_URL,env[1].value='https://hec.splunkcloud.com:8088' \
      • See Environment Variables for a list of destination environment variables.

Follow these steps if you want to use the one-line installation script to install the Worker. Otherwise, see Manually install the Worker.

  1. Run this one-step command to install the Worker:
    DD_API_KEY=<DATADOG_API_KEY> DD_OP_PIPELINE_ID=<PIPELINE_ID> DD_SITE=<DATADOG_SITE> bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_op_worker2.sh)"
    
    You must replace the placeholders with the following values:
  2. Modify the Worker bootstrap file to connect the Worker to your secrets manager. See Secrets Management for more information.
  3. Restart the Worker to use the updated bootstrap file:
    sudo systemctl restart observability-pipelines-worker
    

Notes:

  • The environment variables used by the Worker in /etc/default/observability-pipelines-worker are not updated on subsequent runs of the install script. To update environment variables, manually make the changes in the file and restart the Worker.
  • See Add domains to firewall allowlist if you are using a firewall.

See Update Existing Pipelines if you want to make changes to your pipeline's configuration.

Run this one-step command to install the Worker:

DD_API_KEY=<DATADOG_API_KEY> DD_OP_PIPELINE_ID=<PIPELINE_ID> DD_SITE=<DATADOG_SITE> <SOURCE_ENV_VARIABLE> <DESTINATION_ENV_VARIABLE> bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_op_worker2.sh)"

You must replace the placeholders with the following values:

  • <DATADOG_API_KEY>: Your Datadog API key.
  • <PIPELINE_ID>: The ID of your pipeline.
  • <DATADOG_SITE>: The Datadog site.
  • <SOURCE_ENV_VARIABLE>: The environment variables required by the source you are using for your pipeline.
    • For example: DD_OP_SOURCE_DATADOG_AGENT_ADDRESS=0.0.0.0:8282
    • See Environment Variables for a list of source environment variables.
  • <DESTINATION_ENV_VARIABLE>: The environment variables required by the destinations you are using for your pipeline.
    • For example: DD_OP_DESTINATION_SPLUNK_HEC_ENDPOINT_URL=https://hec.splunkcloud.com:8088
    • See Environment Variables for a list of destination environment variables.

Notes:

  • The environment variables used by the Worker in /etc/default/observability-pipelines-worker are not updated on subsequent runs of the install script. To update environment variables, manually make the changes in the file and restart the Worker.
  • See Add domains to firewall allowlist if you are using a firewall.

See Update Existing Pipelines if you want to make changes to your pipeline's configuration.

  1. Select one of the options in the dropdown to provide the expected log or metrics (PREVIEW indicates an early access version of a major product or feature that you can opt into before its official release.Glossary) volume for the pipeline:

    OptionDescription
    UnsureUse this option if you are not able to project the data volume or you want to test the Worker. This option provisions the EC2 Auto Scaling group with a maximum of 2 general purpose t4g.large instances.
    1-5 TB/dayThis option provisions the EC2 Auto Scaling group with a maximum of 2 compute optimized instances c6g.large.
    5-10 TB/dayThis option provisions the EC2 Auto Scaling group with a minimum of 2 and a maximum of 5 compute optimized c6g.large instances.
    >10 TB/dayDatadog recommends this option for large-scale production deployments. It provisions the EC2 Auto Scaling group with a minimum of 2 and a maximum of 10 compute optimized c6g.xlarge instances.

    Note: All other parameters are set to reasonable defaults for a Worker deployment, but you can adjust them for your use case as needed in the AWS Console before creating the stack.

  2. Select the AWS region you want to use to install the Worker.

  3. Click Select API key to choose the Datadog API key you want to use.

  4. Click Launch CloudFormation Template to navigate to the AWS Console to review the stack configuration and then launch it. Make sure the CloudFormation parameters are as expected.

  5. Select the VPC and subnet you want to use to install the Worker.

  6. Review and check the necessary permissions checkboxes for IAM. Click Submit to create the stack. CloudFormation handles the installation at this point; the Worker instances are launched, the necessary software is downloaded, and the Worker starts automatically.

Note: If you are using a firewall, see Add domains to firewall allowlist.

See Update Existing Pipelines if you want to make changes to your pipeline's configuration.

The install page in the UI with a dropdown menu to choose your installation platform and fields to enter environment variables.

After you set up your source, destinations, and processors on the Build page of the pipeline UI, follow the steps on the Install page to install the Worker.

  1. Select Docker as your installation platform.
  1. In Review your secrets management, ensure that your secrets are configured in your secrets manager.

  2. Click Select API key to choose the Datadog API key you want to use.

  3. Run the command provided in the UI to install the Worker. The command points to the Worker bootstrap file that you configure to resolve secrets using your secrets manager.

  4. Modify the Worker bootstrap file to connect the Worker to your secrets manager. See Secrets Management for more information.

  5. Restart the Worker to use the updated bootstrap file:

    sudo systemctl restart observability-pipelines-worker
    
  6. Navigate back to the Observability Pipelines installation page and click Deploy.

  1. In Review your secrets management, enter the environment variables for your sources and destinations, if applicable.

  2. Click Select API key to choose the Datadog API key you want to use.

  3. Run the command provided in the UI to install the Worker. The command is automatically populated with the environment variables you entered in Review your secrets management.

  4. Navigate back to the Observability Pipelines installation page and click Deploy.

Notes:

  • By default, the docker run command exposes the same port the Worker is listening on. If you want to map the Worker's container port to a different port on the Docker host, use the -p | --publish option in the command:
    -p 8282:8088 datadog/observability-pipelines-worker run
    
  • Use the VECTOR_HOSTNAME environment variable to assign a unique hostname and help you identify the Worker.
  • If you are using a firewall, see Add domains to firewall allowlist.

See Update Existing Pipelines if you want to make changes to your pipeline's configuration.

The install page in the UI with a dropdown menu to choose your installation platform and fields to enter environment variables.

After you set up your source, destinations, and processors on the Build page of the pipeline UI, follow the steps on the Install page to install the Worker.

  1. Select Kubernetes as your installation platform.
  1. In Review your secrets management, ensure that your secrets are configured in your secrets manager.
  1. Download the Helm chart values file. See the full list of available configuration options.
  2. Click Select API key to choose the Datadog API key you want to use.
  3. Add the Datadog chart repository to Helm:
    helm repo add datadog https://helm.datadoghq.com
    
    If you already have the Datadog chart repository, run the following command to make sure it is up to date:
    helm repo update
    
  1. Configure your values.yaml file for your secrets manager. See Secrets Management.
  2. Run the command provided in the UI to install the Worker.
  3. Navigate back to the Observability Pipelines installation page and click Deploy.
  1. In Review your secrets management, enter the environment variables for your sources and destinations, if applicable.
  1. Download the Helm chart values file. See the full list of available configuration options.
  2. Click Select API key to choose the Datadog API key you want to use.
  3. Add the Datadog chart repository to Helm:
    helm repo add datadog https://helm.datadoghq.com
    
    If you already have the Datadog chart repository, run the following command to make sure it is up to date:
    helm repo update
    
  1. Run the command provided in the UI to install the Worker. The command is automatically populated with the environment variables you entered earlier.
  2. Navigate back to the Observability Pipelines installation page and click Deploy.
The install page in the UI with a dropdown menu to choose your installation platform and fields to enter environment variables.

After you set up your source, destinations, and processors on the Build page of the pipeline UI, follow the steps on the Install page to install the Worker.

  1. Select Linux as your installation platform.
  1. In Review your secrets management, ensure that your secrets are configured in your secrets manager.
  1. Click Select API key to choose the Datadog API key you want to use.

  2. Run the one-step command provided in the UI to install the Worker. If you want to manually install the Worker, see Manually install the Worker.

  1. Modify the Worker bootstrap file to connect the Worker to your secrets manager. See Secrets Management for more information.
  2. Restart the Worker to use the updated bootstrap file:
    sudo systemctl restart observability-pipelines-worker
    
  3. Navigate back to the Observability Pipelines installation page and click Deploy.

Note: If you are using a firewall, see Add domains to firewall allowlist.

  1. In Review your secrets management, enter the environment variables for your sources and destinations, if applicable.
  1. Click Select API key to choose the Datadog API key you want to use.

  2. Run the one-step command provided in the UI to install the Worker. If you want to manually install the Worker, see Manually install the Worker.

  1. Navigate back to the Observability Pipelines installation page and click Deploy.

Notes:

  • The environment variables used by the Worker in /etc/default/observability-pipelines-worker are not updated on subsequent runs of the install script. To update environment variables, manually make the changes in the file and restart the Worker.
  • See Add domains to firewall allowlist if you are using a firewall.

See Update Existing Pipelines if you want to make changes to your pipeline's configuration.

The install page in the UI with a dropdown menu to choose your installation platform and fields to enter environment variables.

After you set up your source, destinations, and processors on the Build page of the pipeline UI, follow the steps on the Install page to install the Worker.

  1. Select CloudFormation as your installation platform.
  1. In Review your secrets management, ensure that your secrets are configured in your secrets manager.
  1. In Review your secrets management, enter the environment variables for your sources and destinations, if applicable.
  1. Select one of the options in the dropdown to provide the expected log or metrics (PREVIEW indicates an early access version of a major product or feature that you can opt into before its official release.Glossary) volume for the pipeline:

    OptionDescription
    UnsureUse this option if you are not able to project the data volume or you want to test the Worker. This option provisions the EC2 Auto Scaling group with a maximum of 2 general purpose t4g.large instances.
    1-5 TB/dayThis option provisions the EC2 Auto Scaling group with a maximum of 2 compute optimized instances c6g.large.
    5-10 TB/dayThis option provisions the EC2 Auto Scaling group with a minimum of 2 and a maximum of 5 compute optimized c6g.large instances.
    >10 TB/dayDatadog recommends this option for large-scale production deployments. It provisions the EC2 Auto Scaling group with a minimum of 2 and a maximum of 10 compute optimized c6g.xlarge instances.

    Note: All other parameters are set to reasonable defaults for a Worker deployment, but you can adjust them for your use case as needed in the AWS Console before creating the stack.

  2. Select the AWS region you want to use to install the Worker.

  3. Click Select API key to choose the Datadog API key you want to use.

  4. Click Launch CloudFormation Template to navigate to the AWS Console to review the stack configuration and then launch it. Make sure the CloudFormation parameters are as expected.

  5. Select the VPC and subnet you want to use to install the Worker.

  6. Review and check the necessary permissions checkboxes for IAM. Click Submit to create the stack. CloudFormation handles the installation at this point; the Worker instances are launched, the necessary software is downloaded, and the Worker starts automatically.

  7. Navigate back to the Observability Pipelines installation page and click Deploy.

Note: If you are using a firewall, see Add domains to firewall allowlist.

See Update Existing Pipelines if you want to make changes to your pipeline's configuration.

Configuration setup

In the following example, the setup configuration consists of a Fargate task, Fargate service, and a load balancer.

An architecture diagram with logs going to an application load balancer, a OP Worker task, and the Fargate service

Configure the task definition

Create a task definition. The task definition describes which containers to run, the configuration (such as the environment variables and ports), and the CPU and memory resources allocated for the task.

The tasks should be deployed as a replica with auto scaling enabled, where the minimum number of containers should be based on your log volume and the maximum number of containers should be able to absorb any spikes or growth in log volume. See Best Practices for Scaling Observability Pipelines to help determine how much CPU and memory resources to allocate.

Notes:

  • The guidance for CPU and memory allocation is not for a single instance of the task, but for the total number of tasks. For example, if you want to send 3 TB of logs to the Worker, you could either deploy three replicas with one vCPU each or deploy one replica with three vCPUs.
  • Datadog recommends enabling load balancers for the pool of replica tasks.

In the task definition, set the DD_OP_SOURCE_* environment variable according to the configuration of the pipeline and port mappings. DD_OP_API_ENABLED and DD_OP_API_ADDRESS allow the load balancer to perform health checks on the Observability Pipelines Worker.

Also, configure your task definition to point to your Secrets Manager. For example for AWS Secrets Manager or AWS Systems Manager Parameter Store, specify the ARNs that point to the stored secrets. See Specifying sensitive data using Secrets Manager secrets in Amazon ECS for details.

An example task definition using AWS Secrets Manager:

{
  "family": "my-opw",
  "containerDefinitions": [
    {
      "name": "my-opw",
      "image": "datadog/observability-pipelines-worker",
      "cpu": 0,
      "portMappings": [
        {
          "name": "my-opw-80-tcp",
          "containerPort": 80,
          "hostPort": 80,
          "protocol": "tcp"
        }
      ],
      "essential": true,
      "command": [
        "run"
      ],
      "environment": [
        {
          "name": "DD_OP_API_ENABLED",
          "value": "true"
        },
        {
          "name": "DD_API_KEY",
          "value": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        },
        {
          "name": "DD_SITE",
          "value": "datadoghq.com"
        },
        {
          "name": "DD_OP_API_ADDRESS",
          "value": "0.0.0.0:8181"
        },
        {
          "name": "DD_OP_PIPELINE_ID",
          "value": "xxxxxxx-xxxx-xxxx-xxxx-xxxx"
        }
      ],
      "secrets": [
                {
                    "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:username_value",
                    "name": "username_value"
                }
            ],
      "mountPoints": [],
      "volumesFrom": [],
      "systemControls": []
    }
  ],
  "tags": [
    {
      "key": "PrincipalId",
      "value": "AROAYYB64AB3JW3TEST"
    },
    {
      "key": "User",
      "value": "username@test.com"
    }
  ],
  "executionRoleArn": "arn:aws:iam::60142xxxxxx:role/ecsTaskExecutionRole",
  "networkMode": "awsvpc",
  "volumes": [],
  "placementConstraints": [],
  "requiresCompatibilities": [
    "FARGATE"
  ],
  "cpu": "xxx",
  "memory": "xxx"
}

An example task definition:

{
  "family": "my-opw",
  "containerDefinitions": [
    {
      "name": "my-opw",
      "image": "datadog/observability-pipelines-worker",
      "cpu": 0,
      "portMappings": [
        {
          "name": "my-opw-80-tcp",
          "containerPort": 80,
          "hostPort": 80,
          "protocol": "tcp"
        }
      ],
      "essential": true,
      "command": [
        "run"
      ],
      "environment": [
        {
          "name": "DD_OP_API_ENABLED",
          "value": "true"
        },
        {
          "name": "DD_API_KEY",
          "value": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        },
        {
          "name": "DD_SITE",
          "value": "datadoghq.com"
        },
        {
          "name": "DD_OP_API_ADDRESS",
          "value": "0.0.0.0:8181"
        },
        {
          "name": "DD_OP_SOURCE_HTTP_SERVER_ADDRESS",
          "value": "0.0.0.0:80"
        },
        {
          "name": "DD_OP_PIPELINE_ID",
          "value": "xxxxxxx-xxxx-xxxx-xxxx-xxxx"
        }
      ],
      "mountPoints": [],
      "volumesFrom": [],
      "systemControls": []
    }
  ],
  "tags": [
    {
      "key": "PrincipalId",
      "value": "AROAYYB64AB3JW3TEST"
    },
    {
      "key": "User",
      "value": "username@test.com"
    }
  ],
  "executionRoleArn": "arn:aws:iam::60142xxxxxx:role/ecsTaskExecutionRole",
  "networkMode": "awsvpc",
  "volumes": [],
  "placementConstraints": [],
  "requiresCompatibilities": [
    "FARGATE"
  ],
  "cpu": "xxx",
  "memory": "xxx"
}

Configure the ECS service

Create an ECS service. The service configuration sets the number of Worker replicas to run and the scaling policy. In this example, the scaling policy is set to target an average CPU utilization of 70% with a minimum of two replicas and a maximum of five replicas.

Set up load balancing

Depending on your use case, configure either an Application Load Balancer or a Network Load Balancer to target the group of Fargate tasks you defined earlier. Configure the health check against the Observability Pipelines' API port that was set in the task definition.

Notes:

  • By default, the Kubernetes Service maps incoming port <SERVICE_PORT> to the port the Worker is listening on (<TARGET_PORT>). If you want to map the Worker's pod port to a different incoming port of the Kubernetes Service, use the following service.ports[0].port and service.ports[0].targetPort values in the command:
    --set service.ports[0].protocol=TCP,service.ports[0].port=8088,service.ports[0].targetPort=8282
    
  • If you enable disk buffering for destinations, you must enable Kubernetes persistent volumes in the Observability Pipelines Helm chart.
  • If you are using a firewall, see Add domains to firewall allowlist.

See Update Existing Pipelines if you want to make changes to your pipeline's configuration.

Self-hosted and self-managed Kubernetes clusters

If you are running a self-hosted and self-managed Kubernetes cluster, and defined zones with node labels using topology.kubernetes.io/zone, then you can use the Helm chart values file as is. However, if you are not using the label topology.kubernetes.io/zone, you need to update the topologyKey in the values.yaml file to match the key you are using. Or if you run your Kubernetes install without zones, remove the entire topology.kubernetes.io/zone section.

Kubernetes services created

When you install the Observability Pipelines Worker on Kubernetes, the Helm chart creates:

  • A headless Service (clusterIP: None) that exposes the individual Worker Pods using DNS. This allows direct Pod-to-Pod communication and stable network identities for peer discovery or direct Pod addressing.
  • A ClusterIP service that provides a single virtual IP and DNS name for the Worker. This enables load balancing across Worker Pods for internal cluster traffic.

LoadBalancer service

If you set service.type: LoadBalancer in the Helm chart, Kubernetes provisions a load balancer in supported environments and exposes the Worker Service with an external IP/DNS name. For example, Amazon EKS with the AWS Load Balancer Controller installed. Use this LoadBalancer service when traffic originates outside the cluster.

Set the Worker name using the Pod and cluster name

By default, a Worker's hostname is the machine's hostname, such as COMP-JLXPKWTGJF. If you run your pipeline across multiple clusters or containers, assign each Worker a unique hostname based on the Pod name and cluster name to make them easier to identify.

In the Helm chart values.yaml:

  1. Configure the environment variable POD_NAME to be automatically set to the Pod's name. In the Helm chart:
    env:
      - name: POD_NAME
        valueFrom:
         fieldRef:
            fieldPath: metadata.name
    
  2. Set the CLUSTER_NAME environment variable in the Helm chart.
    env:
      - name: CLUSTER_NAME
        value: "<MY_CLUSTER_NAME>"
    
  3. Set the VECTOR_HOSTNAME to the POD_NAME and CLUSTER_NAME.
    env:
      - name: POD_NAME
        valueFrom:
          fieldRef:
            fieldPath: metadata.name
    
      - name: CLUSTER_NAME
        value: "<MY_CLUSTER_NAME>"
    
      - name: VECTOR_HOSTNAME
        value: "$(CLUSTER_NAME)_$(POD_NAME)"
    

Upgrade the Worker

To upgrade the Worker, you can either upgrade with a pinned image tag or upgrade with the chart's default image tag.

After you update the values.yaml file with the new Worker version, new Worker pods are created with the updated image. Old pods are terminated only after the replacements are Ready. The update is a rolling update by default, so one pod is upgraded at a time. To change the default values, see the updateStrategy options in the values.yaml file:

updateStrategy: {}
#   type: RollingUpdate
#   rollingUpdate:
#     maxUnavailable: 1

# terminationGracePeriodSeconds -- Override terminationGracePeriodSeconds.

Upgrade with a pinned image tag

Update the image.tag in your values.yaml file, replacing <WORKER_VERSION> with the Worker version you want to use (such as 2.15.0):

image:
    # image.name -- Specify the image name to use (relative to `image.repository`).
    name: observability-pipelines-worker
    # image.tag -- Specify the image tag to use.
    tag: <WORKER_VERSION>

Note: Your deployment continues using that image tag until you set image.tag in your values.yaml file to another version.

Upgrade with the chart's default image tag

Run these commands to update the Helm repo and upgrade the release to the chart's default image, applying any overrides you previously set. Replace <YOUR_VALUES_FILE> with the name of your values.yaml file:

helm repo update
helm upgrade --install opw datadog/observability-pipelines-worker -f <YOUR_VALUES_FILE>.yaml

Note: Keep all custom settings in your values.yaml file and override only the values you need. You can then re-run helm upgrade without reapplying manual overrides.

Manually install the Worker

Follow these steps to manually install the Worker, instead of running the one-line installation script.

  1. Set up APT transport for downloading using HTTPS:
    sudo apt-get update
    sudo apt-get install apt-transport-https curl gnupg
    
  2. Run the following commands to set up the Datadog deb repo on your system and create a Datadog archive keyring:
    sudo sh -c "echo 'deb [signed-by=/usr/share/keyrings/datadog-archive-keyring.gpg] https://apt.datadoghq.com/ stable observability-pipelines-worker-2' > /etc/apt/sources.list.d/datadog-observability-pipelines-worker.list"
    sudo touch /usr/share/keyrings/datadog-archive-keyring.gpg
    sudo chmod a+r /usr/share/keyrings/datadog-archive-keyring.gpg
    curl https://keys.datadoghq.com/DATADOG_APT_KEY_CURRENT.public | sudo gpg --no-default-keyring --keyring /usr/share/keyrings/datadog-archive-keyring.gpg --import --batch
    curl https://keys.datadoghq.com/DATADOG_APT_KEY_06462314.public | sudo gpg --no-default-keyring --keyring /usr/share/keyrings/datadog-archive-keyring.gpg --import --batch
    curl https://keys.datadoghq.com/DATADOG_APT_KEY_F14F620E.public | sudo gpg --no-default-keyring --keyring /usr/share/keyrings/datadog-archive-keyring.gpg --import --batch
    curl https://keys.datadoghq.com/DATADOG_APT_KEY_C0962C7D.public | sudo gpg --no-default-keyring --keyring /usr/share/keyrings/datadog-archive-keyring.gpg --import --batch
    
  3. Run the following commands to update your local apt repo and install the Worker:
    sudo apt-get update
    sudo apt-get install observability-pipelines-worker datadog-signing-keys
    
  1. Add your Datadog API key, site (for example, datadoghq.com for US1), and pipeline ID to the Worker's environment file:
    sudo cat <<EOF > /etc/default/observability-pipelines-worker
    DD_API_KEY=<DATADOG_API_KEY>
    DD_OP_PIPELINE_ID=<PIPELINE_ID>
    DD_SITE=<DATADOG_SITE>
    EOF
    
  1. Add your Datadog API key, site (for example, datadoghq.com for US1), and source and destination environment variables to the Worker's environment file:
    sudo cat <<EOF > /etc/default/observability-pipelines-worker
    DD_API_KEY=<DATADOG_API_KEY>
    DD_OP_PIPELINE_ID=<PIPELINE_ID>
    DD_SITE=<DATADOG_SITE>
    <SOURCE_ENV_VARIABLES>
    <DESTINATION_ENV_VARIABLES>
    EOF
    
  1. Start the Worker:
    sudo systemctl restart observability-pipelines-worker
    
  1. Navigate back to the Observability Pipelines installation page and click Deploy.

Notes:

  • The environment variables used by the Worker in /etc/default/observability-pipelines-worker are not updated on subsequent runs of the install script. To update environment variables, manually make the changes in the file and restart the Worker.
  • See Add domains to firewall allowlist if you are using a firewall.
  1. Set up the Datadog rpm repo on your system with the following command.

    Note: If you are running RHEL 8.1 or CentOS 8.1, use repo_gpgcheck=0 instead of repo_gpgcheck=1 in the configuration below.

    cat <<EOF > /etc/yum.repos.d/datadog-observability-pipelines-worker.repo
    [observability-pipelines-worker]
    name = Observability Pipelines Worker
    baseurl = https://yum.datadoghq.com/stable/observability-pipelines-worker-2/\$basearch/
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public
        https://keys.datadoghq.com/DATADOG_RPM_KEY_B01082D3.public
    EOF
    
  2. Update your packages and install the Worker:

    sudo yum makecache
    sudo yum install observability-pipelines-worker
    
  1. Add your Datadog API key, site (for example, datadoghq.com for US1), and pipeline ID to the Worker's environment file:
    sudo cat <<-EOF > /etc/default/observability-pipelines-worker
    DD_API_KEY=<API_KEY>
    DD_OP_PIPELINE_ID=<PIPELINE_ID>
    DD_SITE=<SITE>
    EOF
    
  2. Start the Worker:
    sudo systemctl restart observability-pipelines-worker
    
  1. Add your Datadog API key, site (for example, datadoghq.com for US1), and source and destination environment variables to the Worker's environment file:
    sudo cat <<-EOF > /etc/default/observability-pipelines-worker
    DD_API_KEY=<API_KEY>
    DD_OP_PIPELINE_ID=<PIPELINE_ID>
    DD_SITE=<SITE>
    <SOURCE_ENV_VARIABLES>
    <DESTINATION_ENV_VARIABLES>
    EOF
    
  2. Start the Worker:
    sudo systemctl restart observability-pipelines-worker
    
  1. Navigate back to the Observability Pipelines installation page and click Deploy.

Notes:

  • The environment variables used by the Worker in /etc/default/observability-pipelines-worker are not updated on subsequent runs of the install script. To update environment variables, manually make the changes in the file and restart the Worker.
  • See Add domains to firewall allowlist if you are using a firewall.

Notes:

  • The environment variables used by the Worker in /etc/default/observability-pipelines-worker are not updated on subsequent runs of the install script. To update environment variables, manually make the changes in the file and restart the Worker.
  • See Add domains to firewall allowlist if you are using a firewall.

See Update Existing Pipelines if you want to make changes to your pipeline's configuration.

Upgrade the Worker

To upgrade the Worker to the latest version, run the following command:

sudo apt-get install --only-upgrade observability-pipelines-worker
sudo yum install --only-upgrade observability-pipelines-worker

Uninstall the Worker

If you want to uninstall the Worker, run the following commands:

sudo apt-get remove --purge observability-pipelines-worker
  1. yum remove observability-pipelines-worker
    
  2. rpm -q --configfiles observability-pipelines-worker
    

Add domains to firewall allowlist

If you are using a firewall, these domains must be added to the allowlist:

  • api.
  • config.
  • http-intake.
  • keys.
  • api.
  • config.
  • http-intake.
  • keys.
  • install.
  • yum.

Index your Worker logs

Make sure your Worker logs are indexed in Log Management for optimal functionality. The logs provide deployment information, such as Worker status, version, and any errors, that is shown in the UI. The logs are also helpful for troubleshooting Worker or pipelines issues. All Worker logs have the tag source:op_worker.

Further reading