As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configure a ingestão de métricas da Amazon ECS usando o AWS Distro for Open Telemetry
Esta seção explica como coletar métricas do Amazon Elastic Container Service (AmazonECS) e inseri-las no Amazon Managed Service para Prometheus AWS usando o Distro for Open Telemetry (). ADOT Também descreve como visualizar suas métricas no Amazon Managed Grafana.
Pré-requisitos
Importante
Antes de começar, você deve ter um ECS ambiente Amazon em um AWS Fargate cluster com configurações padrão, um espaço de trabalho do Amazon Managed Service para Prometheus e um espaço de trabalho Amazon Managed Grafana. Presumimos que você esteja familiarizado com as workloads de contêineres, o Amazon Managed Service for Prometheus e o Amazon Managed Grafana.
Para obter mais informações, consulte os seguintes links:
-
Para obter informações sobre como criar um ECS ambiente Amazon em um cluster Fargate com configurações padrão, consulte Como criar um cluster no Amazon ECS Developer Guide.
-
Para obter informações sobre como criar um workspace do Amazon Managed Service for Prometheus, consulte Criação de um workspace no Guia do usuário do Amazon Managed Service for Prometheus.
-
Para obter informações sobre como criar um workspace do Amazon Managed Grafana, consulte Criação de um workspace no Guia do usuário do Amazon Managed Grafana.
Etapa 1: definir uma imagem personalizada de contêiner ADOT coletor
Use o arquivo de configuração a seguir como modelo para definir sua própria imagem de contêiner ADOT coletor. Substituir my-remote-URL
e my-region
com endpoint
seus region
valores. Salve a configuração em um arquivo chamado adot-config.yaml.
nota
Essa configuração usa a extensão sigv4auth
para autenticar chamadas para o Amazon Managed Service for Prometheus. Para obter mais informações sobre a configuraçãosigv4auth
, consulte Autenticador - Sigv4
receivers: prometheus: config: global: scrape_interval: 15s scrape_timeout: 10s scrape_configs: - job_name: "prometheus" static_configs: - targets: [ 0.0.0.0:9090 ] awsecscontainermetrics: collection_interval: 10s processors: filter: metrics: include: match_type: strict metric_names: - ecs.task.memory.utilized - ecs.task.memory.reserved - ecs.task.cpu.utilized - ecs.task.cpu.reserved - ecs.task.network.rate.rx - ecs.task.network.rate.tx - ecs.task.storage.read_bytes - ecs.task.storage.write_bytes exporters: prometheusremotewrite: endpoint:
my-remote-URL
auth: authenticator: sigv4auth logging: loglevel: info extensions: health_check: pprof: endpoint: :1888 zpages: endpoint: :55679 sigv4auth: region:my-region
service: aps service: extensions: [pprof, zpages, health_check, sigv4auth] pipelines: metrics: receivers: [prometheus] exporters: [logging, prometheusremotewrite] metrics/ecs: receivers: [awsecscontainermetrics] processors: [filter] exporters: [logging, prometheusremotewrite]
Etapa 2: Envie a imagem do contêiner ADOT do coletor para um repositório da Amazon ECR
Use um Dockerfile para criar e enviar sua imagem de contêiner para um repositório Amazon Elastic Container Registry (ECR).
-
Crie o Dockerfile para copiar e adicionar sua imagem de contêiner à imagem do OTEL Docker.
FROM public.ecr.aws/aws-observability/aws-otel-collector:latest COPY adot-config.yaml /etc/ecs/otel-config.yaml CMD ["--config=/etc/ecs/otel-config.yaml"]
-
Crie um ECR repositório da Amazon.
# create repo: COLLECTOR_REPOSITORY=$(aws ecr create-repository --repository aws-otel-collector \ --query repository.repositoryUri --output text)
-
Crie sua imagem de contêiner.
# build ADOT collector image: docker build -t $COLLECTOR_REPOSITORY:ecs .
nota
Isso pressupõe que você esteja criando seu contêiner no mesmo ambiente em que ele será executado. Caso contrário, talvez seja necessário usar o parâmetro
--platform
ao criar a imagem. -
Faça login no ECR repositório da Amazon. Substituir
my-region
com seuregion
valor.# sign in to repo: aws ecr get-login-password --region
my-region
| \ docker login --username AWS --password-stdin $COLLECTOR_REPOSITORY -
Envie a imagem do seu contêiner.
# push ADOT collector image: docker push $COLLECTOR_REPOSITORY:ecs
Etapa 3: criar uma definição de ECS tarefa da Amazon para copiar o Amazon Managed Service para Prometheus
Crie uma definição de ECS tarefa da Amazon para copiar o Amazon Managed Service para Prometheus. Sua definição de tarefa deve incluir um contêiner chamado adot-collector
e um contêiner chamadoprometheus
. O prometheus
gera métricas e o adot-collector
coleta prometheus
.
nota
O Amazon Managed Service for Prometheus é executado como um serviço, coletando métricas dos contêineres. Nesse caso, os contêineres executam o Prometheus localmente, no modo Atendente, que envia as métricas locais para o Amazon Managed Service for Prometheus.
Exemplo: Definição de tarefa
Veja a seguir um exemplo da possível aparência da definição de tarefa. Você pode usar esse exemplo como modelo para criar sua própria definição de tarefa. Substitua o image
valor adot-collector
de pelo seu repositório URL e pela tag de imagem ($COLLECTOR_REPOSITORY:ecs
). Substitua os valores region
de adot-collector
e prometheus
por seus valores region
.
{ "family": "adot-prom", "networkMode": "awsvpc", "containerDefinitions": [ { "name": "adot-collector", "image": "
account_id
.dkr.ecr.region
.amazonaws.com/image-tag
", "essential": true, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/ecs-adot-collector", "awslogs-region": "my-region
", "awslogs-stream-prefix": "ecs", "awslogs-create-group": "True" } } }, { "name": "prometheus", "image": "prom/prometheus:main", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/ecs-prom", "awslogs-region": "my-region
", "awslogs-stream-prefix": "ecs", "awslogs-create-group": "True" } } } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "1024" }
Etapa 4: conceda permissões à sua tarefa para acessar o Amazon Managed Service para Prometheus
Para enviar as métricas coletadas para o Amazon Managed Service for Prometheus, sua tarefa na ECS Amazon deve ter as permissões corretas para chamar as operações para você. AWS API Você deve criar uma IAM função para suas tarefas e anexar a AmazonPrometheusRemoteWriteAccess
política a ela. Para obter mais informações sobre como criar essa função e anexar a política, consulte Como criar uma IAM função e uma política para suas tarefas.
Depois de se associar AmazonPrometheusRemoteWriteAccess
à sua IAM função e usar essa função para suas tarefas, a Amazon ECS pode enviar suas métricas coletadas para o Amazon Managed Service for Prometheus.
Etapa 5: Visualize suas métricas no Amazon Managed Grafana
Importante
Antes de começar, você deve executar uma tarefa do Fargate na sua definição de tarefa da AmazonECS. Caso contrário, o Amazon Managed Service for Prometheus não poderá consumir suas métricas.
-
No painel de navegação do seu espaço de trabalho Amazon Managed Grafana, escolha Fontes de dados abaixo do ícone. AWS
-
Na guia Fontes de dados, em Serviço, selecione Amazon Managed Service for Prometheus e escolha a Região padrão.
-
Escolha Adicionar fonte de dados.
-
Use os prefixos
ecs
eprometheus
para consultar e visualizar suas métricas.