

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á.

# Configurar coletores gerenciados para o Amazon EKS
<a name="AMP-collector-how-to"></a>

Para usar um coletor do Amazon Managed Service for Prometheus, crie um extrator que descubra e extraia métricas no cluster do Amazon EKS. Você também pode criar um extrator que se integre ao Amazon Managed Streaming for Apache Kafka. Para obter mais informações, consulte [Integrar o Amazon MSK](https://docs.aws.amazon.com/prometheus/latest/userguide/prom-msk-integration.html).
+ É possível criar um extrator como parte da criação do cluster do Amazon EKS. Para obter mais informações sobre a criação de um cluster do Amazon EKS, incluindo a criação de um extrator, consulte [Criar um cluster do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) no *Guia do usuário do Amazon EKS*.
+ Você pode criar seu próprio raspador, programaticamente com a AWS API ou usando o. AWS CLI

Um coletor do Amazon Managed Service for Prometheus extrai métricas compatíveis com o Prometheus. Para obter mais informações sobre as métricas compatíveis com o Prometheus, consulte [O que são métricas compatíveis com o Prometheus?](prom-compatible-metrics.md). Os clusters do Amazon EKS expõem métricas para o servidor da API. Clusters do Amazon EKS na versão `1.28` ou superior do Kubernetes também expõem métricas para o `kube-scheduler` e o `kube-controller-manager`. Para obter mais informações, consulte [Obter as métricas brutas do ambiente de gerenciamento no formato do Prometheus](https://docs.aws.amazon.com/eks/latest/userguide/view-raw-metrics.html#scheduler-controller-metrics) no *Guia do usuário do Amazon EKS*.

**nota**  
A coleta de métricas de um cluster pode gerar cobranças pelo uso da rede. Uma forma de otimizar esses custos é configurar seu endpoint `/metrics` para que compacte as métricas fornecidas (por exemplo, com gzip), reduzindo os dados que devem ser movidos pela rede. O modo de fazer isso depende do aplicativo ou da biblioteca que fornece as métricas. Algumas bibliotecas são gzip por padrão.

Os tópicos a seguir descrevem como criar, gerenciar e configurar extratores.

**Topics**
+ [Criar um extrator](#AMP-collector-create)
+ [Configurar o cluster do Amazon EKS](#AMP-collector-eks-setup)
+ [Encontrar e excluir extratores](#AMP-collector-list-delete)
+ [Configuração do extrator](#AMP-collector-configuration)
+ [Solução de problemas de configuração do extrator](#AMP-collector-troubleshoot)
+ [Limitações do extrator](#AMP-collector-limits)

## Criar um extrator
<a name="AMP-collector-create"></a>

Um coletor do Amazon Managed Service for Prometheus consiste em um extrator que descobre e coleta métricas de um cluster do Amazon EKS. O Amazon Managed Service for Prometheus gerencia o extrator para você, fornecendo a escalabilidade, a segurança e a confiabilidade necessárias, sem que você precise gerenciar instâncias, agentes ou extratores por conta própria.

Existem três maneiras de criar um extrator:
+ Um extrator é criado automaticamente para você ao [criar um cluster do Amazon EKS pelo Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) e escolher ativar as métricas do Prometheus.
+ É possível criar um extrator no console do Amazon EKS para um cluster existente. Abra o cluster no [console do Amazon EKS](https://console.aws.amazon.com/eks/home#/clusters) e, na guia **Observabilidade**, escolha **Adicionar extrator**.

  Para obter mais detalhes sobre as configurações disponíveis, consulte [Ativar as métricas do Prometheus](https://docs.aws.amazon.com/eks/latest/userguide/prometheus.html#turn-on-prometheus-metrics) no *Guia do usuário do Amazon EKS*.
+ Você pode criar um raspador usando a AWS API ou o. AWS CLI

  Essas opções são descritas no procedimento a seguir.

Há alguns pré-requisitos para a criação de um extrator próprio:
+ É necessário ter um cluster do Amazon EKS.
+ O cluster do Amazon EKS deve ter o [controle de acesso ao endpoint do cluster](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) definido para incluir acesso privado. Ele pode incluir o privado e o público, mas deve incluir o privado.
+ A Amazon VPC na qual o cluster Amazon EKS reside deve ter o [DNS habilitado](https://docs.aws.amazon.com/vpc/latest/userguide/AmazonDNS-concepts.html).

**nota**  
O cluster será associado ao extrator pelo nome do recurso da Amazon (ARN). Se você excluir um cluster e criar um novo com o mesmo nome, o ARN será reutilizado para o novo cluster. Por esse motivo, o extrator tentará coletar métricas para o novo cluster. Você [exclui extratores](#AMP-collector-list-delete) separadamente da exclusão do cluster.

------
#### [ AWS API ]

**Como criar um extrator usando a API da AWS **

Use a operação `CreateScraper` da API para criar um raspador com a AWS API. O exemplo a seguir cria um extrator na região `us-west-2`. Você precisa substituir as informações do espaço de trabalho Conta da AWS, da segurança e do cluster do Amazon EKS pelas suas próprias IDs e fornecer a configuração a ser usada para seu raspador.

**nota**  
O grupo de segurança e as sub-redes devem ser definidos como o grupo de segurança e as sub-redes do cluster ao qual você se conectará.  
É necessário incluir, pelo menos, duas sub-redes em, pelo menos, duas zonas de disponibilidade.

`scrapeConfiguration` é um arquivo YAML de configuração do Prometheus codificado em base64. É possível baixar uma configuração de uso geral com a operação `GetDefaultScraperConfiguration` da API. Para obter mais informações sobre o formato do `scrapeConfiguration`, consulte [Configuração do extrator](#AMP-collector-configuration).

```
POST /scrapers HTTP/1.1
Content-Length: 415 
Authorization: AUTHPARAMS
X-Amz-Date: 20201201T193725Z
User-Agent: aws-cli/1.18.147 Python/2.7.18 Linux/5.4.58-37.125.amzn2int.x86_64 botocore/1.18.6

{
    "alias": "myScraper",
    "destination":  {
        "ampConfiguration": {
            "workspaceArn": "arn:aws:aps:us-west-2:account-id:workspace/ws-workspace-id"
        }
    },
    "source": {
        "eksConfiguration": {
            "clusterArn": "arn:aws:eks:us-west-2:account-id:cluster/cluster-name",
            "securityGroupIds": ["sg-security-group-id"],
            "subnetIds": ["subnet-subnet-id-1", "subnet-subnet-id-2"]
        }
    },
    "scrapeConfiguration": {
        "configurationBlob": <base64-encoded-blob>
    }
}
```

------
#### [ AWS CLI ]

**Como criar um extrator usando a AWS CLI**

Use o comando `create-scraper` para criar um extrator com a AWS CLI. O exemplo a seguir cria um extrator na região `us-west-2`. Você precisa substituir as informações do espaço de trabalho Conta da AWS, da segurança e do cluster do Amazon EKS pelas suas próprias IDs e fornecer a configuração a ser usada para seu raspador.

**nota**  
O grupo de segurança e as sub-redes devem ser definidos como o grupo de segurança e as sub-redes do cluster ao qual você se conectará.  
É necessário incluir, pelo menos, duas sub-redes em, pelo menos, duas zonas de disponibilidade.

`scrape-configuration` é um arquivo YAML de configuração do Prometheus codificado em base64. É possível baixar uma configuração de uso geral com o comando `get-default-scraper-configuration`. Para obter mais informações sobre o formato do `scrape-configuration`, consulte [Configuração do extrator](#AMP-collector-configuration).

```
aws amp create-scraper \
  --source eksConfiguration="{clusterArn='arn:aws:eks:us-west-2:account-id:cluster/cluster-name', securityGroupIds=['sg-security-group-id'],subnetIds=['subnet-subnet-id-1', 'subnet-subnet-id-2']}" \
  --scrape-configuration configurationBlob=<base64-encoded-blob> \
  --destination ampConfiguration="{workspaceArn='arn:aws:aps:us-west-2:account-id:workspace/ws-workspace-id'}"
```

------

Veja a seguir uma lista completa das operações do extrator que você pode usar com a API da AWS :
+ Crie um extrator com a operação [CreateScraper](https://docs.aws.amazon.com/prometheus/latest/APIReference/API_CreateScraper.html) da API.
+ Liste os extratores existentes com a operação [ListScrapers](https://docs.aws.amazon.com/prometheus/latest/APIReference/API_ListScrapers.html) da API.
+ Atualize o alias, a configuração ou o destino de um raspador com a operação da [UpdateScraper](https://docs.aws.amazon.com/prometheus/latest/APIReference/API_UpdateScraper.html)API.
+ Exclua um extrator com a operação [DeleteScraper](https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DeleteScraper.html) da API.
+ Obtenha mais detalhes sobre um extrator com a operação [DescribeScraper](https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DescribeScraper.html) da API.
+ Obtenha uma configuração de uso geral para extratores com a operação [GetDefaultScraperConfiguration](https://docs.aws.amazon.com/prometheus/latest/APIReference/API_GetDefaultScraperConfiguration.html) da API.

**nota**  
O cluster do Amazon EKS que você está extraindo deve ser configurado para permitir que o Amazon Managed Service for Prometheus acesse as métricas. O próximo tópico descreve como configurar o cluster.

### Configuração entre contas
<a name="cross-account-remote-write"></a>

Para criar um extrator entre contas quando seu cluster Amazon EKS e o espaço de trabalho do Amazon Managed Service for Prometheus estão em contas diferentes, use o procedimento a seguir. Por exemplo, você tem uma conta de origem `account_id_source` que contém o cluster Amazon EKS e uma conta de destino `account_id_target` que contém o espaço de trabalho do Amazon Managed Service for Prometheus.

**Como criar um extrator em uma configuração entre contas**

1. Na conta de origem, crie um perfil `arn:aws:iam::account_id_source:role/Source` e adicione a política de confiança a seguir.

   ```
   {
       "Effect": "Allow",
       "Principal": {
       "Service": [
           "scraper.aps.amazonaws.com"
        ]
       },
       "Action": "sts:AssumeRole",
       "Condition": {
           "ArnEquals": {
               "aws:SourceArn": "scraper_ARN"
           },
           "StringEquals": {
               "AWS:SourceAccount": "account_id"
           }
       }
   }
   ```

1. Em cada combinação de origem (cluster Amazon EKS) e destino (espaço de trabalho do Amazon Managed Service for Prometheus), você precisa criar uma `arn:aws:iam::account_id_target:role/Target` função e adicionar a seguinte política de confiança com permissões para. [AmazonPrometheusRemoteWriteAccess](https://docs.aws.amazon.com/prometheus/latest/userguide/security-iam-awsmanpol.html)

   ```
   {
     "Effect": "Allow",
     "Principal": {
        "AWS": "arn:aws:iam::account_id_source:role/Source"
     },
     "Action": "sts:AssumeRole",
     "Condition": {
        "StringEquals": {
           "sts:ExternalId": "scraper_ARN"
         }
     }
   }
   ```

1. Crie um extrator com a opção `--role-configuration`.

   ```
   aws amp create-scraper \
     --source eksConfiguration="{clusterArn='arn:aws:eks:us-west-2:account-id_source:cluster/xarw,subnetIds=[subnet-subnet-id]}" \
     --scrape-configuration configurationBlob=<base64-encoded-blob> \
     --destination ampConfiguration="{workspaceArn='arn:aws:aps:us-west-2:account-id_target:workspace/ws-workspace-id'}"\
     --role-configuration '{"sourceRoleArn":"arn:aws:iam::account-id_source:role/Source", "targetRoleArn":"arn:aws:iam::account-id_target:role/Target"}'
   ```

1. Valide a criação do extrator.

   ```
   aws amp list-scrapers
   {
       "scrapers": [
           {
               "scraperId": "scraper-id",
               "arn": "arn:aws:aps:us-west-2:account_id_source:scraper/scraper-id",
               "roleArn": "arn:aws:iam::account_id_source:role/aws-service-role/scraper.aps.amazonaws.com/AWSServiceRoleForAmazonPrometheusScraperInternal_cc319052-41a3-4",
               "status": {
                   "statusCode": "ACTIVE"
               },
               "createdAt": "2024-10-29T16:37:58.789000+00:00",
               "lastModifiedAt": "2024-10-29T16:55:17.085000+00:00",
               "tags": {},
               "source": {
                   "eksConfiguration": {
                       "clusterArn": "arn:aws:eks:us-west-2:account_id_source:cluster/xarw",
                       "securityGroupIds": [
                           "sg-security-group-id",
                           "sg-security-group-id"
                       ],
                       "subnetIds": [
                           "subnet-subnet_id"
                       ]
                   }
               },
               "destination": {
                   "ampConfiguration": {
                       "workspaceArn": "arn:aws:aps:us-west-2:account_id_target:workspace/ws-workspace-id"
                   }
               }
           }
       ]
   }
   ```

### Alteração entre uma RoleConfiguration função vinculada ao serviço
<a name="changing-roles"></a>

Quando quiser voltar para um perfil vinculado ao serviço em vez de `RoleConfiguration` para gravar em um espaço de trabalho do Amazon Managed Service for Prometheus, você deve atualizar o `UpdateScraper` e fornecer um espaço de trabalho na mesma conta do extrator sem o `RoleConfiguration`. O `RoleConfiguration` será removido do extrator, e o perfil vinculado ao serviço será usado.

Ao alterar entre os espaços de trabalho na mesma conta como o extrator, para continuar usando o `RoleConfiguration`, será necessário fornecer o `RoleConfiguration` novamente em `UpdateScraper`.

### Criar extrator para espaços de trabalho habilitados com chaves gerenciadas pelo cliente
<a name="setup-customer-managed-keys"></a>

Para criar um extrator para ingerir métricas em um espaço de trabalho do Amazon Managed Service for Prometheus com [chaves gerenciadas pelo cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk), use o `--role-configuration` com a origem e o destino definidos na mesma conta.

```
aws amp create-scraper \
  --source eksConfiguration="{clusterArn='arn:aws:eks:us-west-2:account-id:cluster/xarw,subnetIds=[subnet-subnet_id]}" \
  --scrape-configuration configurationBlob=<base64-encoded-blob> \
  --destination ampConfiguration="{workspaceArn='arn:aws:aps:us-west-2:account-id:workspace/ws-workspace-id'}"\
  --role-configuration '{"sourceRoleArn":"arn:aws:iam::account_id:role/Source", "targetRoleArn":"arn:aws:iam::account_id:role/Target"}'
```

### Erros comuns ao criar extratores
<a name="AMP-collector-create-errors"></a>

Veja a seguir os problemas mais comuns ao tentar criar um novo extrator.
+  AWS Os recursos necessários não existem. O *grupo de segurança*, as *sub-redes* e o *cluster do Amazon EKS* especificados devem existir.
+ Espaço insuficiente de endereços IP. Você deve ter pelo menos um endereço IP disponível em cada sub-rede que você transmite à API `CreateScraper`.

## Configurar o cluster do Amazon EKS
<a name="AMP-collector-eks-setup"></a>

O cluster do Amazon EKS deve ser configurado para permitir que o extrator acesse as métricas. Há duas opções para essa configuração:
+ Use as *entradas de acesso* do Amazon EKS para fornecer automaticamente aos coletores do Amazon Managed Service for Prometheus acesso ao seu cluster.
+ Configure manualmente seu cluster do Amazon EKS para extração de métricas gerenciadas.

Os tópicos a seguir descrevem cada uma delas em mais detalhes.

### Configurar o Amazon EKS para acesso do extrator com entradas de acesso
<a name="AMP-collector-eks-access-entry-setup"></a>

Usar entradas de acesso do Amazon EKS é a maneira mais fácil de fornecer ao Amazon Managed Service for Prometheus acesso para extrair métricas do seu cluster.

O cluster do Amazon EKS do qual você faz a extração deve ser configurado de modo que permita a autenticação da API. O modo de autenticação do cluster deve ser definido como `API` ou `API_AND_CONFIG_MAP`. Isso pode ser visualizado no console do Amazon EKS na guia **Configuração de acesso** dos detalhes do cluster. Para obter mais informações, consulte o [Como permitir a perfis do IAM ou usuários acesso ao objeto do Kubernetes no seu cluster do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html) no *Guia do Usuário do Amazon EKS*.

Você pode criar o extrator durante ou após a criação do cluster:
+ **Ao criar um cluster**: você pode configurar esse acesso ao [criar um cluster do Amazon EKS pelo console do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) (siga as instruções para criar um extrator como parte do cluster), e uma política de entrada de acesso será criada automaticamente, concedendo ao Amazon Managed Service for Prometheus acesso às métricas do cluster.
+ **Adicionar após a criação de um cluster**: se o seu cluster do Amazon EKS já existir, defina o modo de autenticação como `API` ou `API_AND_CONFIG_MAP`, e qualquer extrator que você criar [pela CLI ou API do Amazon Managed Service for Prometheus](#AMP-collector-create) ou pelo console do Amazon EKS terá automaticamente a política de entrada de acesso correta criada para você, e os extratores terão acesso ao seu cluster.

**Política de entrada de acesso criada**

Quando você cria um extrator e permite que o Amazon Managed Service for Prometheus gere uma política de entrada de acesso para você, ele gera a seguinte política. Para obter mais informações sobre entradas de acesso, consulte o [Como permitir a perfis do IAM ou usuários acesso ao objeto do Kubernetes](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html) no *Guia do Usuário do Amazon EKS*.

```
{
    "rules": [
        {
            "effect": "allow",
            "apiGroups": [
                ""
            ],
            "resources": [
                "nodes",
                "nodes/proxy",
                "nodes/metrics",
                "services",
                "endpoints",
                "pods",
                "ingresses",
                "configmaps"
            ],
            "verbs": [
                "get",
                "list",
                "watch"
            ]
        },
        {
            "effect": "allow",
            "apiGroups": [
                "extensions",
                "networking.k8s.io"
            ],
            "resources": [
                "ingresses/status",
                "ingresses"
            ],
            "verbs": [
                "get",
                "list",
                "watch"
            ]
        },
        {
            "effect": "allow",
            "apiGroups": [
                "metrics.eks.amazonaws.com"
            ],
            "resources": [
                "kcm/metrics",
                "ksh/metrics"
            ],
            "verbs": [
                "get"
            ]
        },
        {
            "effect": "allow",
            "nonResourceURLs": [
                "/metrics"
            ],
            "verbs": [
                "get"
            ]
        }
    ]
}
```

### Como configurar manualmente o Amazon EKS para acesso do extrator
<a name="AMP-collector-eks-manual-setup"></a>

Se você preferir usar o `aws-auth ConfigMap` para controlar o acesso ao seu cluster do Kubernetes, você ainda poderá conceder aos raspadores do Amazon Managed Service for Prometheus acesso às suas métricas. As etapas a seguir concederão ao Amazon Managed Service for Prometheus acesso para extrair métricas do seu cluster do Amazon EKS.

**nota**  
Para obter mais informações sobre `ConfigMap` e entradas de acesso, consulte [Como permitir a perfis do IAM ou usuários acesso ao Kubernetes](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html) no *Guia do Usuário do Amazon EKS*.

Este procedimento usa `kubectl` e a AWS CLI. Para obter informações sobre a instalação do `kubectl`, consulte [Instalar o kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) no *Guia do usuário do Amazon EKS*.

**Para configurar manualmente seu cluster do Amazon EKS para extração de métricas gerenciadas**

1. Crie um arquivo denominado `clusterrole-binding.yml` com o seguinte texto:

   ```
   apiVersion: rbac.authorization.k8s.io/v1
   kind: ClusterRole
   metadata:
     name: aps-collector-role
   rules:
     - apiGroups: [""]
       resources: ["nodes", "nodes/proxy", "nodes/metrics", "services", "endpoints", "pods", "ingresses", "configmaps"]
       verbs: ["describe", "get", "list", "watch"]
     - apiGroups: ["extensions", "networking.k8s.io"]
       resources: ["ingresses/status", "ingresses"]
       verbs: ["describe", "get", "list", "watch"]
     - nonResourceURLs: ["/metrics"]
       verbs: ["get"]
     - apiGroups: ["metrics.eks.amazonaws.com"]
       resources: ["kcm/metrics", "ksh/metrics"]
       verbs: ["get"]
   ---
   apiVersion: rbac.authorization.k8s.io/v1
   kind: ClusterRoleBinding
   metadata:
     name: aps-collector-user-role-binding
   subjects:
   - kind: User
     name: aps-collector-user
     apiGroup: rbac.authorization.k8s.io
   roleRef:
     kind: ClusterRole
     name: aps-collector-role
     apiGroup: rbac.authorization.k8s.io
   ```

1. Execute o seguinte comando no cluster:

   ```
   kubectl apply -f clusterrole-binding.yml
   ```

   Isso criará a vinculação e a regra do perfil do cluster. Esse exemplo usa `aps-collector-role` como nome do perfil e `aps-collector-user` como nome do usuário.

1. O comando a seguir fornece informações sobre o raspador com o ID*scraper-id*. Esse é o extrator que você criou usando o comando na seção anterior.

   ```
   aws amp describe-scraper --scraper-id scraper-id
   ```

1. Nos resultados do `describe-scraper`, encontre o `roleArn`. Ele terá o seguinte formato:

   ```
   arn:aws:iam::account-id:role/aws-service-role/scraper.aps.amazonaws.com/AWSServiceRoleForAmazonPrometheusScraper_unique-id
   ```

   O Amazon EKS requer um formato diferente para esse ARN. É necessário ajustar o formato do ARN retornado para ser usado na próxima etapa. Edite-o para corresponder a este formato:

   ```
   arn:aws:iam::account-id:role/AWSServiceRoleForAmazonPrometheusScraper_unique-id
   ```

   Por exemplo, este ARN:

   ```
   arn:aws:iam::111122223333:role/aws-service-role/scraper.aps.amazonaws.com/AWSServiceRoleForAmazonPrometheusScraper_1234abcd-56ef-7
   ```

   Deve ser reescrito como:

   ```
   arn:aws:iam::111122223333:role/AWSServiceRoleForAmazonPrometheusScraper_1234abcd-56ef-7
   ```

1. Execute o seguinte comando no cluster, usando o `roleArn` modificado da etapa anterior, bem como o nome e a região do cluster:

   ```
   eksctl create iamidentitymapping --cluster cluster-name --region region-id --arn roleArn --username aps-collector-user
   ```

   Isso permite que o extrator acesse o cluster usando o perfil e o usuário que você criou no arquivo `clusterrole-binding.yml`.

## Encontrar e excluir extratores
<a name="AMP-collector-list-delete"></a>

Você pode usar a AWS API ou a AWS CLI para listar os scrapers em sua conta ou excluí-los.

**nota**  
Verifique se você está usando a versão mais recente do AWS CLI ou SDK. A versão mais recente do SDK fornece os recursos e as funcionalidades mais recentes, além de atualizações de segurança. Como alternativa, use [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html), que fornece uma experiência sempre na linha de up-to-date comando, automaticamente.

Para listar todos os extratores na conta, use a operação [ListScrapers](https://docs.aws.amazon.com/prometheus/latest/APIReference/API_ListScrapers.html) da API.

Como alternativa, com o AWS CLI, ligue para:

```
aws amp list-scrapers --region aws-region
```

`ListScrapers` retorna todos os extratores da conta, por exemplo:

```
{
    "scrapers": [
        {
            "scraperId": "s-1234abcd-56ef-7890-abcd-1234ef567890",
            "arn": "arn:aws:aps:us-west-2:123456789012:scraper/s-1234abcd-56ef-7890-abcd-1234ef567890",
            "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/AWSServiceRoleForAmazonPrometheusScraper_1234abcd-2931",
            "status": {
                "statusCode": "DELETING"
            },
            "createdAt": "2023-10-12T15:22:19.014000-07:00",
            "lastModifiedAt": "2023-10-12T15:55:43.487000-07:00",
            "tags": {},
            "source": {
                "eksConfiguration": {
                    "clusterArn": "arn:aws:eks:us-west-2:123456789012:cluster/my-cluster",
                    "securityGroupIds": [
                        "sg-1234abcd5678ef90"
                    ],
                    "subnetIds": [
                        "subnet-abcd1234ef567890", 
                        "subnet-1234abcd5678ab90"
                    ]
                }
            },
            "destination": {
                "ampConfiguration": {
                    "workspaceArn": "arn:aws:aps:us-west-2:123456789012:workspace/ws-1234abcd-5678-ef90-ab12-cdef3456a78"
                }
            }
        }
    ]
}
```

Para excluir um extrator, localize o `scraperId` do extrator que deseja excluir usando a operação `ListScrapers` e, em seguida, use a operação [DeleteScraper](https://docs.aws.amazon.com/prometheus/latest/APIReference/API_DeleteScraper.html) para excluí-lo.

Como alternativa, com o AWS CLI, ligue para:

```
aws amp delete-scraper --scraper-id scraperId
```

## Configuração do extrator
<a name="AMP-collector-configuration"></a>

É possível controlar como o extrator descobre e coleta métricas com uma configuração de extrator compatível com o Prometheus. Por exemplo, é possível alterar o intervalo em que as métricas são enviadas para o espaço de trabalho, além de usar a nova rotulagem para reescrever dinamicamente os rótulos de uma métrica. A configuração do extrator é um arquivo YAML que faz parte da definição do extrator.

Quando um novo extrator é criado, você especifica uma configuração fornecendo um arquivo YAML codificado em base64 na chamada de API. É possível baixar um arquivo de configuração de uso geral com a operação `GetDefaultScraperConfiguration` na API do Amazon Managed Service for Prometheus.

Para modificar a configuração de um extrator, você pode usar a operação `UpdateScraper`. Se precisar atualizar a fonte das métricas (por exemplo, para um cluster diferente do Amazon EKS), você deve excluir o extrator e recriá-lo com a nova origem.

**Configurações aceitas**

Para obter mais informações sobre o formato de configuração do extrator, incluindo uma análise detalhada dos valores possíveis, consulte [Configuração](https://prometheus.io/docs/prometheus/latest/configuration/configuration/) na documentação do Prometheus. As opções de configuração global e do `<scrape_config>` descrevem as opções mais comumente necessárias.

Como o Amazon EKS é o único serviço compatível, a única configuração de descoberta de serviços (`<*_sd_config>`) aceita é a `<kubernetes_sd_config>`.

A lista completa de seções de configuração permitidas:
+ `<global>`
+ `<scrape_config>`
+ `<static_config>`
+ `<relabel_config>`
+ `<metric_relabel_configs>`
+ `<kubernetes_sd_config>`

As limitações dessas seções são listadas após o arquivo de configuração de amostra.

**Arquivo de configuração de exemplo**

Veja a seguir um exemplo de arquivo de configuração YAML com um intervalo de extração de 30 segundos. Esse exemplo inclui suporte para as métricas do servidor da API kube, bem como kube-controller-manager para as métricas do kube-scheduler. Para obter mais informações, consulte [Obter as métricas brutas do ambiente de gerenciamento no formato do Prometheus](https://docs.aws.amazon.com/eks/latest/userguide/view-raw-metrics.html#scheduler-controller-metrics) no *Guia do usuário do Amazon EKS*.

```
global:
   scrape_interval: 30s
   external_labels:
     clusterArn: apiserver-test-2
scrape_configs:
  - job_name: pod_exporter
    kubernetes_sd_configs:
      - role: pod
  - job_name: cadvisor
    scheme: https
    authorization:
      type: Bearer
      credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    kubernetes_sd_configs:
      - role: node
    relabel_configs:
      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
      - replacement: kubernetes.default.svc:443
        target_label: __address__
      - source_labels: [__meta_kubernetes_node_name]
        regex: (.+)
        target_label: __metrics_path__
        replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
  # apiserver metrics
  - scheme: https
    authorization:
      type: Bearer
      credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    job_name: kubernetes-apiservers
    kubernetes_sd_configs:
    - role: endpoints
    relabel_configs:
    - action: keep
      regex: default;kubernetes;https
      source_labels:
      - __meta_kubernetes_namespace
      - __meta_kubernetes_service_name
      - __meta_kubernetes_endpoint_port_name
  # kube proxy metrics
  - job_name: kube-proxy
    honor_labels: true
    kubernetes_sd_configs:
    - role: pod
    relabel_configs:
    - action: keep
      source_labels:
      - __meta_kubernetes_namespace
      - __meta_kubernetes_pod_name
      separator: '/'
      regex: 'kube-system/kube-proxy.+'
    - source_labels:
      - __address__
      action: replace
      target_label: __address__
      regex: (.+?)(\\:\\d+)?
      replacement: $1:10249
  # Scheduler metrics
  - job_name: 'ksh-metrics'
    kubernetes_sd_configs:
    - role: endpoints
    metrics_path: /apis/metrics.eks.amazonaws.com/v1/ksh/container/metrics
    scheme: https
    bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    relabel_configs:
    - source_labels:
      - __meta_kubernetes_namespace
      - __meta_kubernetes_service_name
      - __meta_kubernetes_endpoint_port_name
      action: keep
      regex: default;kubernetes;https
  # Controller Manager metrics
  - job_name: 'kcm-metrics'
    kubernetes_sd_configs:
    - role: endpoints
    metrics_path: /apis/metrics.eks.amazonaws.com/v1/kcm/container/metrics
    scheme: https
    bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    relabel_configs:
    - source_labels:
      - __meta_kubernetes_namespace
      - __meta_kubernetes_service_name
      - __meta_kubernetes_endpoint_port_name
      action: keep
      regex: default;kubernetes;https
```

A seguir estão as limitações específicas dos coletores AWS gerenciados:
+ **Intervalo de extração**: a configuração do extrator não pode especificar um intervalo de extração inferior a 30 segundos.
+ **Destinos**: os destinos no `static_config` devem ser especificados como endereços IP.
+ **Resolução de DNS**: relacionado ao nome de destino, o único nome de servidor reconhecido nessa configuração é o servidor da API do Kubernetes, `kubernetes.default.svc`. Todos os outros nomes de máquinas devem ser especificados por endereço IP.
+ **Autorização**: omita se nenhuma autorização for necessária. Se for necessária, a autorização deve ser `Bearer` e deve apontar para o arquivo `/var/run/secrets/kubernetes.io/serviceaccount/token`. Em outras palavras, se usada, a seção de autorização deverá ter o seguinte aspecto:

  ```
      authorization:
        type: Bearer
        credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  ```
**nota**  
`type: Bearer` é o padrão, então pode ser omitido.

## Solução de problemas de configuração do extrator
<a name="AMP-collector-troubleshoot"></a>

Coletores do Amazon Managed Service for Prometheus descobrem e extraem métricas automaticamente. Mas como você pode solucionar problemas quando não vê uma métrica que espera ver no espaço de trabalho do Amazon Managed Service for Prometheus?

**Importante**  
Verifique se o acesso privado ao cluster do Amazon EKS está habilitado. Para obter mais informações, consulte [Endpoint privado do cluster](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html#cluster-endpoint-private) no *Guia do usuário do Amazon EKS*.

A métrica `up` é uma ferramenta útil. Para cada endpoint que um coletor do Amazon Managed Service for Prometheus descobre, ele vende automaticamente essa métrica. Há três estados dessa métrica que podem ajudar você a solucionar o que está acontecendo no coletor.
+ `up` não está presente: se não houver nenhuma métrica `up` presente para um endpoint, isso significa que o coletor não conseguiu encontrar o endpoint.

  Se você tiver certeza de que o endpoint existe, há vários motivos pelos quais o coletor pode não conseguir encontrá-lo.
  + Talvez seja necessário ajustar a configuração de extração. Talvez a descoberta `relabel_config` precise ser ajustada.
  + Pode haver um problema com o `role` usado para descoberta.
  + A Amazon VPC usada pelo cluster Amazon EKS pode não ter o [DNS habilitado](https://docs.aws.amazon.com/vpc/latest/userguide/AmazonDNS-concepts.html), o que impediria que o coletor encontrasse o endpoint.
+ `up` está presente, mas é sempre 0: se `up` estiver presente, mas for 0, o coletor poderá descobrir o endpoint, mas não encontrará nenhuma métrica compatível com o Prometheus.

  Nesse caso, você pode tentar usar um comando `curl` diretamente no endpoint. Você pode validar se os detalhes estão corretos, por exemplo, o protocolo (`http` ou `https`), o endpoint ou a porta que você está usando. Você também pode verificar se o endpoint está respondendo com uma resposta `200` válida e segue o formato do Prometheus. Finalmente, o corpo da resposta não pode ser maior do que o tamanho máximo permitido. (Para ver os limites dos coletores AWS gerenciados, consulte a seção a seguir.)
+ `up` está presente e é maior que 0: se `up` estiver presente e for maior que 0, as métricas serão enviadas para o Amazon Managed Service for Prometheus.

  Verifique se você está procurando as métricas corretas no Amazon Managed Service for Prometheus (ou no painel alternativo, como Amazon Managed Grafana). É possível usar o curl novamente para verificar os dados esperados no endpoint do `/metrics`. Verifique também se você não excedeu outros limites, como o número de endpoints por extrator. Você pode verificar o número de endpoints de métricas passando pela extração ao verificar a contagem de métricas `up`, usando `count(up)`.

## Limitações do extrator
<a name="AMP-collector-limits"></a>

Há poucas limitações nos extratores totalmente gerenciados fornecidos pelo Amazon Managed Service for Prometheus.
+ **Região**: o cluster do EKS, o extrator gerenciado e o espaço de trabalho do Amazon Managed Service for Prometheus devem estar todos na mesma região da AWS .
+ **Coletores**: é possível ter no máximo 10 extratores do Amazon Managed Service for Prometheus por região e por conta.
**nota**  
É possível solicitar um aumento para esse limite [solicitando um aumento de cota](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase).
+ **Resposta de métricas**: o corpo de uma resposta de qualquer solicitação de endpoint do `/metrics` não pode ter mais de 50 megabytes (MB).
+ **Endpoints por extrator**: um extrator pode extrair no máximo 30.000 endpoints do `/metrics`.
+ **Intervalo de extração**: a configuração do extrator não pode especificar um intervalo de extração inferior a 30 segundos.