• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Monitore o ECS Fargate com o OpenTelemetry

Monitore as tarefas do Amazon ECS em execução no AWS Fargate implantando o OpenTelemetry Collector Contrib como um contêiner sidecar. Este guia abrangente orienta você na criação de definições de tarefa, configuração do coletor e configuração do monitoramento para seus workloads serverless do ECS.

Etapas de instalação

Siga estas etapas para configurar o monitoramento das suas tarefas do ECS Fargate.

Antes de você começar

Certifique-se de que seu ambiente atenda a estes requisitos:

Armazene sua chave de licença do New Relic

Salve sua chave de licença como um parâmetro do Systems Manager (SSM) para armazenar credenciais com segurança para o OpenTelemetry Collector:

bash
$
aws ssm put-parameter \
>
--name "/newrelic-infra/ecs/license-key" \
>
--type SecureString \
>
--description 'New Relic license key for ECS monitoring' \
>
--value "YOUR_NEW_RELIC_LICENSE_KEY"

Criar política IAM e função de execução

Crie uma política do IAM para que seus contêineres do ECS possam recuperar com segurança a chave de licença da New Relic:

bash
$
aws iam create-policy \
>
--policy-name "NewRelicSSMLicenseKeyReadAccess" \
>
--policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":["ssm:GetParameters"],"Resource":["arn:aws:ssm:*:*:parameter/newrelic-infra/ecs/license-key"]}]}' \
>
--description "Provides read access to the New Relic SSM license key parameter"

Crie uma função do IAM para ser usada como função de execução de tarefas:

bash
$
aws iam create-role \
>
--role-name "NewRelicECSTaskExecutionRole" \
>
--assume-role-policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":"ecs-tasks.amazonaws.com"},"Action":"sts:AssumeRole"}]}' \
>
--description "ECS task execution role for New Relic infrastructure"

Anexe as políticas gerenciadas necessárias à função:

bash
$
# Attach the standard ECS task execution policy
$
aws iam attach-role-policy \
>
--role-name "NewRelicECSTaskExecutionRole" \
>
--policy-arn "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
$
$
# Attach the New Relic SSM license key read access policy
$
aws iam attach-role-policy \
>
--role-name "NewRelicECSTaskExecutionRole" \
>
--policy-arn "arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):policy/NewRelicSSMLicenseKeyReadAccess"

Armazenar configuração do coletor

Armazene a configuração do OpenTelemetry Collector no AWS Systems Manager Parameter Store para que você possa gerenciar e atualizar as configurações sem reconstruir imagens de contêiner:

bash
$
aws ssm put-parameter \
>
--name "/ecs/otel-collector/fargate-config" \
>
--type "String" \
>
--value "$(cat <<EOF
$
receivers:
$
awsecscontainermetrics:
$
collection_interval: <COLLECTION_INTERVAL>
$
$
processors:
$
metricstransform/containers:
$
transforms:
$
- include: container.cpu.utilized
$
action: insert
$
new_name: container.cpu.utilization
$
- include: container.memory.usage
$
action: insert
$
new_name: container.memory.usage.total
$
- include: container.storage.read_bytes
$
action: insert
$
new_name: container.blockio.io_service_bytes_recursive
$
operations:
$
- action: add_label
$
new_label: operation
$
new_value: read
$
- include: container.storage.write_bytes
$
action: insert
$
new_name: container.blockio.io_service_bytes_recursive
$
operations:
$
- action: add_label
$
new_label: operation
$
new_value: write
$
$
batch:
$
send_batch_size: <SEND_BATCH_SIZE>
$
timeout: <BATCH_TIMEOUT>
$
$
resource:
$
attributes:
$
- key: ClusterName
$
from_attribute: aws.ecs.cluster.name
$
action: insert
$
- key: ServiceName
$
from_attribute: aws.ecs.service.name
$
action: insert
$
- key: TaskId
$
from_attribute: aws.ecs.task.id
$
action: insert
$
- key: TaskDefinitionFamily
$
from_attribute: aws.ecs.task.family
$
action: insert
$
- key: LaunchType
$
from_attribute: aws.ecs.launch_type
$
action: insert
$
- key: cloud.platform
$
value: \"aws_ecs\"
$
action: upsert
$
- key: docker.host
$
from_attribute: aws.ecs.task.id
$
action: insert
$
- key: docker.imageName
$
from_attribute: container.image.name
$
action: insert
$
- key: docker.containerId
$
from_attribute: container.id
$
action: insert
$
- key: docker.state
$
from_attribute: aws.ecs.container.know_status
$
action: insert
$
$
$
exporters:
$
otlphttp:
$
endpoint: https://otlp.nr-data.net:443
$
headers:
$
api-key: \${NEW_RELIC_LICENSE_KEY}
$
$
debug:
$
verbosity: basic
$
$
service:
$
pipelines:
$
metrics/containers:
$
receivers: [awsecscontainermetrics]
$
processors: [metricstransform/containers, resource, batch]
$
exporters: [otlphttp, debug]
$
EOF
$
)"

Parâmetro de configuração

Os seguintes parâmetros podem ser personalizados na configuração do OpenTelemetry Collector:

Parâmetro

Descrição

<COLLECTION_INTERVAL>

O intervalo em segundos para coletar métricas do endpoint de métricas do contêiner ECS.

<MEMORY_LIMIT_MIB>

Limite de memória para o OpenTelemetry Collector em MiB

<SEND_BATCH_SIZE>

Número de métricas a serem agrupadas em lote antes de enviar para o New Relic

<BATCH_TIMEOUT>

Tempo máximo de espera antes de enviar um lote

<RESOURCE_DETECTION_TIMEOUT>

Tempo limite para processadores de detecção de recursos

Criar definição de tarefa

Crie uma nova definição de tarefa do ECS para o Fargate que inclua o contêiner sidecar do OpenTelemetry Collector. Escolha a definição de tarefa apropriada para sua plataforma de contêiner:

Parâmetros de definição de tarefa

Os seguintes parâmetros podem ser personalizados na sua definição de tarefa do ECS Fargate:

Parâmetro

Descrição

<TASK_CPU>

Total de unidades de CPU para a tarefa do Fargate

<TASK_MEMORY>

Memória total para a tarefa do Fargate em MiB

<APP_CPU>

Unidades de CPU alocadas ao seu contêiner de aplicativo

<APP_MEMORY>

Memória alocada ao seu contêiner de aplicativo em MiB

<COLLECTOR_CPU>

Unidades de CPU alocadas ao OpenTelemetry Collector

<COLLECTOR_MEMORY_RESERVATION>

Reserva de memória para o OpenTelemetry Collector em MiB

<APP_LOG_GROUP>

Nome do grupo de logs do CloudWatch para o contêiner do seu aplicativo

<COLLECTOR_LOG_GROUP>

Nome do grupo de logs do CloudWatch para o OpenTelemetry Collector

<AWS_REGION>

Região da AWS para logs do CloudWatch

<APP_LOG_STREAM_PREFIX>

Prefixo do stream de log para o contêiner do seu aplicativo

<COLLECTOR_LOG_STREAM_PREFIX>

Prefixo do fluxo de log para o OpenTelemetry Collector

Dica

Principais diferenças entre contêineres Fargate Linux e Windows:

  • Plataforma de tempo de execução: Windows requer explícito operatingSystemFamily: "WINDOWS_SERVER_2022_FULL"
  • Imagens: o Windows usa imagens de contêiner específicas do Windows
  • Ponto de entrada: o coletor do Windows especifica C:\\otelcol-contrib.exe como ponto de entrada
  • Alocação de memória: usa memoryReservation para gerenciamento flexível de memória

Importante

Substitua os valores de YOUR_ACCOUNT e da região pelo ID da sua conta da AWS e região da AWS reais.

Implantar e executar a tarefa

Implante sua definição de tarefa em seu cluster ECS:

  1. Registre a definição de tarefa:

    bash
    $
    aws ecs register-task-definition --cli-input-json file://task-definition.json
  2. Criar um serviço:

    bash
    $
    aws ecs create-service \
    >
    --cluster your-cluster-name \
    >
    --service-name otel-monitoring-service \
    >
    --task-definition otel-ecs-fargate-metrics:1 \
    >
    --desired-count 1 \
    >
    --launch-type FARGATE \
    >
    --network-configuration "awsvpcConfiguration={subnets=[subnet-12345,subnet-67890],securityGroups=[sg-abcdef],assignPublicIp=ENABLED}"

Verificar coleta de dados

Verifique se seus dados estão fluindo para o New Relic:

Diferenças de configuração em relação ao EC2

Principais diferenças ao executar no Fargate:

  • Sem acesso no nível do host: não é possível acessar as métricas do host subjacente como no EC2
  • Modo de rede: deve usar o modo de rede awsvpc
  • Restrições de recursos: limitado por combinações de CPU/memória do Fargate
  • Armazenamento: apenas armazenamento efêmero, sem volumes persistentes
  • Insights de contêiner: depende do endpoint de metadados de tarefa v4 para estatísticas de contêiner

Próximos passos

Após configurar o monitoramento, você pode:

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.