Skip to main content
The Odigos VM Agent is available as part of Odigos Pro. For access and licensing details, contact us.
This is the default and simplest ECS deployment: one agent task per EC2 container instance, each connecting directly to Odigos Central. No proxy, no load balancer, no service discovery. It works identically whether the cluster has 1 node or 50 — the only difference is that each node appears in Central as its own platform. If you want the whole cluster to appear as a single platform with an aggregated workload list, use Install: Agent + Proxy instead.
Complete the System Requirements first — in particular the EC2 launch type and the kernel 5.10+ with BTF requirement (use the Amazon Linux 2023 ECS-optimized AMI).

Step 1: Set your session variables

Run every command in this guide in the same shell.

Step 2: Store the license token in Secrets Manager

That create-or-fetch form is idempotent — safe to re-run if the secret already exists.
If IAM or an AWS Organizations SCP blocks secretsmanager:GetSecretValue, you can put the token directly in the task definition instead: drop the secrets block and add ODIGOS_ONPREM_TOKEN to environment.
The token then becomes readable to anyone who can call ecs:DescribeTaskDefinition. Acceptable for a throwaway test cluster, not for production.

Step 3: Create the IAM roles

Note the trailing -* on the secret ARN in the policy: Secrets Manager appends a random 6-character suffix to every secret, and that suffix changes if the secret is deleted and recreated. The wildcard means you never have to touch this policy again.EntityAlreadyExists on create-role means the role exists from a previous attempt — safe to continue with the attach-role-policy / put-role-policy commands.

Step 4: Register the task definition

Save the task definition below as odigos-ecs-agent.json, then substitute your values.
All settings are required for specific capabilities. For details, see required permissions.
Substitute the placeholders:
Verify before registering. A leftover <placeholder> produces a task that starts fine but can never connect — and the failure only shows up in the logs minutes later.
Register it:

Step 5: Create the daemon service

The DAEMON scheduling strategy runs exactly one agent task per container instance, including on instances that join the cluster later.
create-service is a one-time operation — re-running it fails with Creation of service was not idempotent. To roll out a new image or an env-var change later, register a new task definition revision and run update-service instead.--enable-execute-command is what lets you later run odictl inside the agent container.

Step 6: Verify

1

The daemon is placed on every instance

Wait until running == desired. Any placement failures appear in events — see Troubleshooting.
2

The instance kernel is supported

Expect 6.1.x (or any 5.10+). 4.14.x means the instance is on the Amazon Linux 2 stock AMI and nothing will be instrumented — see System Requirements.
3

The agent is healthy and connected

You want to see the agent connect to Central, and you want no runtime-detector stopped errors.
4

The platform appears in Odigos Central

Open the Central UI. You should see one platform per container instance, each named after the ECS cluster.Your ECS tasks written in a supported language appear as discovered workloads, ready to be turned into sources.

Step 7: Build your pipeline

The ECS Agent is configured exactly like any other VM Agent — from Odigos Central, or with odictl inside the agent container:

Add Sources

Choose which ECS tasks to instrument.

Add Destinations

Send the telemetry to your observability backend.

Actions

Transform, filter, and enrich telemetry.

Configuration Reference

ECS-specific environment variables and permissions.
In this mode odictl targets single node’s agent — there is no cluster-wide odictl. Configuration made through Central applies to the platform you selected, i.e. that node. For cluster-wide configuration, use Agent + Proxy.

Moving to Agent + Proxy later

Nothing is thrown away. Deploy the proxy, re-point the agents, and roll the daemon — no reinstall. Follow Switch to Multi Node.