Skip to content

Increase default timeout for ECS metadata request #9137

Description

@strowk

Describe what happened:

We keep getting messages such as

Cannot list containers via ecs_fargate: Get "http://169.254.170.2/v2/metadata": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

and

failed to get task metadata, not refreshing services - Get "http://169.254.170.2/v2/metadata": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

and

Unable to collect configurations from provider ecs: Get "http://169.254.170.2/v2/metadata": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

Describe what you expected:
Timeout should be set to realistic value, which is enough most of the time (p99?).

Steps to reproduce the issue:
Run datadog-agent on AWS ECS (Fargate) for several months. Eventually you will see errors in logs.

Additional environment details (Operating System, Cloud provider, etc):
AWS ECS Fargate

Request to increase timeout to 5 second instead of default 0.5 seconds was already presented in #6758

I am aware of possibility to configure that timeout, but as we are not doing anything particular in our deployment, which would make metadata endpoint to work any differently, I believe that this problem is likely to be happening to any ECS (Fargate) deployment.
Errors clutter our logs and produce useless alerts in addition to cause unnecessary load on metadata endpoint with retries.

I am questioning the currently set default and whether it was defined based on any knowledge of internal AWS workings or at least tests. I guess that the number was just taken at random (correct me if I am wrong). Our practice as well as that of author of #6758 , shows that 0.5 seconds is not enough, so maybe it would be better for everyone to increase it?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions