From 31e5adf1bf8962f766c9ba8002c26b84c45079a4 Mon Sep 17 00:00:00 2001 From: May Lee Date: Wed, 14 May 2025 15:24:51 -0400 Subject: [PATCH 1/7] add doc --- config/_default/menus/main.en.yaml | 5 + .../set_up_the_worker_in_ecs_fargate.md | 103 ++++++++++++++++++ .../worker_fargate_architecture.png | Bin 0 -> 46349 bytes 3 files changed, 108 insertions(+) create mode 100644 content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md create mode 100644 static/images/observability_pipelines/worker_fargate_architecture.png diff --git a/config/_default/menus/main.en.yaml b/config/_default/menus/main.en.yaml index d4e253c1a05ae..684871d38a154 100644 --- a/config/_default/menus/main.en.yaml +++ b/config/_default/menus/main.en.yaml @@ -5443,6 +5443,11 @@ menu: identifier: install_the_worker_commands parent: observability_pipelines_install_the_worker weight: 201 + - name: ECS Fargate + url: observability_pipelines/set_up_the_worker_in_ecs_fargate/ + identifier: install_the_worker_ecs_fargate + parent: observability_pipelines_install_the_worker + weight: 202 - name: Update Existing Pipelines url: observability_pipelines/update_existing_pipelines/ parent: observability_pipelines diff --git a/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md b/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md new file mode 100644 index 0000000000000..2ddf9d12bf79d --- /dev/null +++ b/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md @@ -0,0 +1,103 @@ +--- +title: Set Up the Worker in ECS Fargate +disable_toc: false +--- + +## Overview + +This document goes over one of the ways how you can set up the Observability Pipelines Worker in ECS Fargate. + +## Setup + +The setup configuration for this example consists of a Fargate task, Fargate service, and a load balancer. + +{{< img src="observability_pipelines/worker_fargate_architecture.png" alt="An architecture diagram with logs going to an application load balancer, a OP Worker task, and the Fargate service" style="width:100%;" >}} + +## Configure the 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. + +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` are used to allow the load balancer to do health checks on the routing targets. The CPU and memory resources should be increased for the production usage. + +An example task definition: + +```json +{ + "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": "e4454df2-f3a1-11ef-8654-test" + } + ], + "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": "256", + "memory": "512" +} +```` + +## Configure the 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 + +Configure an application 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. diff --git a/static/images/observability_pipelines/worker_fargate_architecture.png b/static/images/observability_pipelines/worker_fargate_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..1855765012e04b40b08e510358d58c6fd718e323 GIT binary patch literal 46349 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 Xlk>z;FY>-{gU61XJe+gL@y7oJ*vE7c literal 0 HcmV?d00001 From 4a9a8819ea4001dec747b6f82683e185dd12704b Mon Sep 17 00:00:00 2001 From: May Lee Date: Wed, 14 May 2025 15:26:23 -0400 Subject: [PATCH 2/7] small fix --- .../install_the_worker/set_up_the_worker_in_ecs_fargate.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md b/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md index 2ddf9d12bf79d..d9f1abe342e89 100644 --- a/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md +++ b/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md @@ -92,7 +92,7 @@ An example task definition: "cpu": "256", "memory": "512" } -```` +``` ## Configure the ECS service From 3ba7a7d9a9cd10ff9aed8067bc5ef888a81272bd Mon Sep 17 00:00:00 2001 From: May Lee Date: Wed, 14 May 2025 15:27:44 -0400 Subject: [PATCH 3/7] another small edit --- .../install_the_worker/set_up_the_worker_in_ecs_fargate.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md b/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md index d9f1abe342e89..e0fa353c8766d 100644 --- a/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md +++ b/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md @@ -5,7 +5,7 @@ disable_toc: false ## Overview -This document goes over one of the ways how you can set up the Observability Pipelines Worker in ECS Fargate. +This document goes over one of the ways you can set up the Observability Pipelines Worker in ECS Fargate. ## Setup From a7de10be478709a6ceaa3cb6a31407932cc340ad Mon Sep 17 00:00:00 2001 From: May Lee Date: Wed, 14 May 2025 16:23:37 -0400 Subject: [PATCH 4/7] add links --- .../set_up_the_worker_in_ecs_fargate.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md b/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md index e0fa353c8766d..d7575404d082e 100644 --- a/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md +++ b/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md @@ -15,7 +15,11 @@ The setup configuration for this example consists of a Fargate task, Fargate ser ## Configure the task definition +<<<<<<< Updated upstream 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. +======= +[Create a task definition][1]. 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. +>>>>>>> Stashed changes 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` are used to allow the load balancer to do health checks on the routing targets. The CPU and memory resources should be increased for the production usage. @@ -96,8 +100,12 @@ An example task definition: ## Configure the 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. +[Create a ECS service][2]. 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 -Configure an application 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. +[Configure an application load balancer][3] 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. + +[1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html +[2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service-console-v2.html +[3]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html \ No newline at end of file From 9aefc274db238808a6bee35ede743d9b097fc70f Mon Sep 17 00:00:00 2001 From: May Lee Date: Wed, 14 May 2025 16:49:12 -0400 Subject: [PATCH 5/7] fix merge --- .../install_the_worker/set_up_the_worker_in_ecs_fargate.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md b/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md index d7575404d082e..c3c6b160e3e51 100644 --- a/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md +++ b/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md @@ -15,11 +15,7 @@ The setup configuration for this example consists of a Fargate task, Fargate ser ## Configure the task definition -<<<<<<< Updated upstream -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. -======= [Create a task definition][1]. 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. ->>>>>>> Stashed changes 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` are used to allow the load balancer to do health checks on the routing targets. The CPU and memory resources should be increased for the production usage. From db3cff91c4c6d81c16ffd029d1fe1b8718647dea Mon Sep 17 00:00:00 2001 From: May Lee Date: Wed, 14 May 2025 16:50:48 -0400 Subject: [PATCH 6/7] fix nav --- config/_default/menus/main.en.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/_default/menus/main.en.yaml b/config/_default/menus/main.en.yaml index 684871d38a154..86933399a60a1 100644 --- a/config/_default/menus/main.en.yaml +++ b/config/_default/menus/main.en.yaml @@ -5444,7 +5444,7 @@ menu: parent: observability_pipelines_install_the_worker weight: 201 - name: ECS Fargate - url: observability_pipelines/set_up_the_worker_in_ecs_fargate/ + url: observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate/ identifier: install_the_worker_ecs_fargate parent: observability_pipelines_install_the_worker weight: 202 From 2a04433ba3434df1aeb1471c782b5f3f26e9a23c Mon Sep 17 00:00:00 2001 From: May Lee Date: Thu, 15 May 2025 14:31:30 -0400 Subject: [PATCH 7/7] small edit --- .../install_the_worker/set_up_the_worker_in_ecs_fargate.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md b/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md index c3c6b160e3e51..d054116062139 100644 --- a/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md +++ b/content/en/observability_pipelines/install_the_worker/set_up_the_worker_in_ecs_fargate.md @@ -96,7 +96,7 @@ An example task definition: ## Configure the ECS service -[Create a ECS service][2]. 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. +[Create an ECS service][2]. 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