Skip to content
This repository was archived by the owner on Sep 2, 2025. It is now read-only.

Commit 19e49ed

Browse files
Merge pull request #1576 from pjanotti/patch-3
Replace ecs-metadata with awsecscontainermetrics
2 parents 1b39708 + 1ce55f6 commit 19e49ed

File tree

1 file changed

+35
-49
lines changed

1 file changed

+35
-49
lines changed

gdi/opentelemetry/deployments/deployments-ecs-ec2.rst

Lines changed: 35 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ Deploy the Collector with Amazon ECS EC2
55
********************************************************
66

77
.. meta::
8-
:description: Deploy the Splunk Observability Cloud OpenTelemetry Collector as a Daemon service in an Amazon ECS EC2 cluster.
8+
:description: Deploy the Splunk Observability Cloud OpenTelemetry Collector as a Sidecar in an Amazon ECS EC2 cluster.
99

10-
Use the guided setup to deploy the Collector as a Daemon service in an Amazon ECS EC2 cluster. The guided setup provides a JSON task definition for the Collector.
10+
Use the guided setup to deploy the Collector as a Sidecar in an Amazon ECS EC2 cluster. The guided setup provides a JSON task definition for the Collector.
1111

1212
Choose one of the following Collector configuration options:
1313

@@ -28,76 +28,43 @@ Getting started
2828

2929
The following sections describe how to create a task definition and launch the Collector. A task definition is required to run Docker containers in Amazon ECS. After creating the task definition, you need to launch the Collector.
3030

31-
Create a task definition
31+
Add the Collector as a Sidecar
3232
---------------------------------
33-
.. note::
34-
35-
Knowledge of Amazon ECS using launch type EC2 is assumed. See :new-page:`Getting started with the classic console using Amazon EC2 <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/getting-started-ecs-ec2.html>` for further reading.
36-
37-
Creating the task definition requires using release v0.34.1 or newer (which corresponds to image tag 0.34.1 and newer) of the Collector. See the :new-page:`image repository <https://quay.io/repository/signalfx/splunk-otel-collector?tab=tags>` to download the latest image.
33+
.. note:: To use this option you need to be familiar with Amazon ECS EC2 launch type. See :new-page:`Getting started with the classic console using Amazon EC2 <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/getting-started-ecs-ec2.html>` for further reading.
3834

39-
To create the task definition:
35+
Open the ECS task definition to which the Collector Sidecar is going to be added:
4036

4137
1. Locate the task definition for the Collector from the :new-page:`repository <https://github.com/signalfx/splunk-otel-collector/blob/main/deployments/ecs/ec2/splunk-otel-collector.json>`.
42-
2. Replace ``MY_SPLUNK_ACCESS_TOKEN`` and ``MY_SPLUNK_REALM`` with valid values. You should pin the image version to a specific version instead of ``latest`` to avoid upgrade issues.
43-
3. Create a task definition of EC2 launch type. See :new-page:`Creating a task definition using the new console <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html>` for the instructions. The supplied task definition is a minimal definition. See :new-page:`Task definition parameters <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html>` for additional configuration options.
38+
2. Merge the definitions of the Collector with the existing ECS task definition.
39+
3. Replace ``MY_SPLUNK_ACCESS_TOKEN`` and ``MY_SPLUNK_REALM`` with valid values. You can pin the image version to a specific version instead of ``latest`` if you want to avoid automatic upgrades.
4440

4541
The Collector is configured to use the default configuration file ``/etc/otel/collector/ecs_ec2_config.yaml``. The Collector image Dockerfile is available at :new-page:`Dockerfile <https://github.com/signalfx/splunk-otel-collector/blob/main/cmd/otelcol/Dockerfile>` and the contents of the default configuration file can be seen at :new-page:`ECS EC2 configuration <https://github.com/signalfx/splunk-otel-collector/blob/main/cmd/otelcol/config/collector/ecs_ec2_config.yaml>`.
4642

47-
.. note::
48-
49-
You do not need the ``smartagent/ecs-metadata`` metrics receiver in the default configuration file if all you want is tracing. You can take the default configuration, remove the receiver, then use the configuration in a custom configuration following the directions in :ref:`ecs-ec2-custom-config`.
50-
51-
The configured network mode for the task is ``host``. This means that task metadata endpoint version 2 used by the ``smartagent/ecs-metadata`` receiver is not activated by default. See :new-page:`task metadata endpoint <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint.html>` to determine if task metadata endpoint version 3 is activated by default for your task. If this version is activated, then add the following to the environment list in the task definition:
43+
Notes:
5244

53-
.. code-block:: none
45+
* You do not need the ``awsecscontainermetrics`` receiver in the default configuration file if all you want is tracing. You can take the default configuration, remove the receiver, then use the configuration in a custom configuration following the directions in :ref:`ecs-ec2-custom-config`.
5446

55-
{
56-
"name": "ECS_TASK_METADATA_ENDPOINT",
57-
"value": "${ECS_CONTAINER_METADATA_URI}/task"
58-
},
59-
{
60-
"name": "ECS_TASK_STATS_ENDPOINT",
61-
"value": "${ECS_CONTAINER_METADATA_URI}/task/stats"
62-
}
47+
* To exclude metrics assign them as a stringified array to environment variable ``METRICS_TO_EXCLUDE``.
6348

64-
Assign a stringified array of metrics you want excluded to environment variable ``METRICS_TO_EXCLUDE``. You can set the memory limit for the ``memory_limiter`` processor using environment variable ``SPLUNK_MEMORY_LIMIT_MIB``. The default memory limit is 512 MiB.
65-
66-
Launch the Collector
67-
=============================
68-
The Collector is designed to be run as a Daemon service in an EC2 ECS cluster. To create a Collector service from the Amazon ECS console:
69-
70-
#. Go to your cluster in the console.
71-
#. Select :guilabel:`Services`.
72-
#. Select :guilabel:`Create`.
73-
#. Select the following options:
74-
#. Launch Type: EC2
75-
#. Task Definition (Family): splunk-otel-collector
76-
#. Task Definition (Revision): 1 (or whatever the latest is in your case)
77-
#. Service Name: splunk-otel-collector
78-
#. Service type: DAEMON
79-
#. Leave everything else at default.
80-
#. Select :guilabel:`Next step`.
81-
#. Leave everything on this next page at their defaults and select :guilabel:`Next step`.
82-
#. Leave everything on this next page at their defaults and select :guilabel:`Next step`.
83-
#. Select :guilabel:`Create Service` to deploy the Collector onto each node in the ECS cluster. You should see infrastructure and docker metrics flowing soon.
49+
* You can set the memory limit for the ``memory_limiter`` processor using environment variable ``SPLUNK_MEMORY_LIMIT_MIB``. The default memory limit is 512 MiB.
8450

8551
.. _ecs-ec2-custom-config:
8652

8753
Use a custom configuration
8854
==============================
55+
8956
To use a custom configuration file, replace the value of the ``SPLUNK_CONFIG`` environment variable with the file path of the custom configuration file in the Collector task definition.
9057

9158
Alternatively, you can specify the custom configuration YAML directly using the ``SPLUNK_CONFIG_YAML`` environment variable, as described in :ref:`ecs-observer-config`.
9259

9360
.. _ecs-observer-config:
9461

95-
``ecs_observer`` configuration
62+
Configure ``ecs_observer``
9663
--------------------------------
97-
Use extension Amazon Elastic Container Service Observer (``ecs_observer``) in your custom configuration to discover metrics targets in running tasks, filtered by service names, task definitions, and container labels. ``ecs_observer`` is currently limited to Prometheus targets and requires the read-only permissions below. You can add the permissions to the task role by adding them to a customer-managed policy that is attached to the task role.
9864

99-
.. code-block:: yaml
65+
Use extension Amazon Elastic Container Service Observer (``ecs_observer``) in your custom configuration to discover metrics targets in running tasks, filtered by service names, task definitions, and container labels. ``ecs_observer`` is currently limited to Prometheus targets and requires the read-only permissions below. The Collector should be configured to run as an ECS Daemon. You can add the permissions to the task role by adding them to a customer-managed policy that is attached to the task role.
10066

67+
.. code-block:: yaml
10168
10269
ecs:List*
10370
ecs:Describe*
@@ -108,7 +75,6 @@ The results are written to ``/etc/ecs_sd_targets.yaml``. The ``prometheus`` rece
10875

10976
.. code-block:: yaml
11077
111-
11278
extensions:
11379
ecs_observer:
11480
refresh_interval: 10s
@@ -147,6 +113,26 @@ The results are written to ``/etc/ecs_sd_targets.yaml``. The ``prometheus`` rece
147113
148114
.. _aws-parameter-store:
149115

116+
Launch the Collector as a Daemon
117+
--------------------------------------------
118+
119+
To launch the Collector from the Amazon ECS console:
120+
121+
#. Go to your cluster in the console.
122+
#. Select :guilabel:`Services`.
123+
#. Select :guilabel:`Create`.
124+
#. Select the following options:
125+
#. Launch Type: EC2
126+
#. Task Definition (Family): splunk-otel-collector
127+
#. Task Definition (Revision): 1 (or whatever the latest is in your case)
128+
#. Service Name: splunk-otel-collector
129+
#. Service type: DAEMON
130+
#. Leave everything else at default.
131+
#. Select :guilabel:`Next step`.
132+
#. Leave everything on this next page at their defaults and select :guilabel:`Next step`.
133+
#. Leave everything on this next page at their defaults and select :guilabel:`Next step`.
134+
#. Select :guilabel:`Create Service` to deploy the Collector onto each node in the ECS cluster. You should see infrastructure and docker metrics flowing soon.
135+
150136
Use the AWS Parameter Store
151137
----------------------------
152138

0 commit comments

Comments
 (0)