

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

# Uso de dados de alocação de custo dividido com o Amazon Managed Service for Prometheus
<a name="split-cost-allocation-data-resource-amp"></a>

A divisão dos dados de custo do Amazon EKS exige que você colete e armazene métricas dos seus clusters, incluindo uso de memória e CPU. O Amazon Managed Service for Prometheus pode ser usado para essa finalidade.

Quando você optar pelos dados de alocação de custos divididos e seu espaço de trabalho do Amazon Managed Service for Prometheus começar a receber as duas métricas necessárias (`container_cpu_usage_seconds_total` e `container_memory_working_set_bytes`), os dados de alocação de custos divididos reconhecerão as métricas e as usarão automaticamente.

**nota**  
As duas métricas necessárias (`container_cpu_usage_seconds_total` e `container_memory_working_set_bytes`) estão presentes na configuração padrão de extrator do Prometheus e na configuração padrão fornecida com um coletor gerenciado pela AWS . No entanto, se você personalizar essas configurações, não renomeie, modifique ou remova os seguintes rótulos das métricas `container_cpu_usage_seconds_total` e `container_memory_working_set_bytes`: `name`, `namespace` e `pod`. Se você renomear, modificar ou remover esses rótulos, isso poderá afetar a ingestão de suas métricas.

Você pode usar o Amazon Managed Service for Prometheus para coletar métricas do EKS de uma única conta de uso, em uma única região. O espaço de trabalho do Amazon Managed Service for Prometheus precisa estar nessa conta e nessa região. Você precisa de uma instância do Amazon Managed Service for Prometheus para cada conta de uso e região para a qual deseja monitorar os custos. Você pode coletar métricas para vários clusters no espaço de trabalho do Amazon Managed Service for Prometheus, desde que eles estejam na mesma conta de uso e na mesma região.

As seções a seguir descrevem como enviar as métricas corretas do seu cluster do EKS para o espaço de trabalho do Amazon Managed Service for Prometheus.

## Pré-requisitos
<a name="prerequisites-prometheus"></a>

Como pré-requisitos para usar o Amazon Managed Service for Prometheus com dados de alocação de custos divididos:
+ Você precisa ativar os dados de alocação de custos divididos no console AWS Billing and Cost Management. Para obter detalhes, consulte [Habilitar dados de alocação de custos divididos](https://docs.aws.amazon.com/cur/latest/userguide/enabling-split-cost-allocation-data.html). A aceitação de dados de alocação de custos divididos cria um perfil vinculado ao serviço em cada conta de uso para consultar o Amazon Managed Service for Prometheus quanto às métricas de cluster do Amazon EKS nessa conta. Para obter mais informações, consulte [Perfis vinculados ao serviço para dados de alocação de custos divididos](https://docs.aws.amazon.com/cost-management/latest/userguide/split-cost-allocation-data-SLR.html).
+ Você precisa de um cluster do EKS para o qual rastrear dados de alocação de custos divididos. Pode ser um cluster existente ou você pode criar um novo. Para acessar mais informações, 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*.
**nota**  
Você precisará do `EKS cluster ARN`, de `security group IDs` e de pelo menos dois `subnet IDs` (em zonas de disponibilidade diferentes) para usar nas etapas posteriores.  
(opcional) Defina o modo de autenticação do cluster do EKS como `API` ou `API_AND_CONFIG_MAP`.
+ Você precisa de uma instância do Amazon Managed Service for Prometheus na mesma conta e na mesma região do seu cluster do EKS. Se você ainda não tiver uma, deverá criá-la. Para obter informações sobre como criar uma instância do Amazon Managed Service for Prometheus, consulte [Criar um espaço de trabalho](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) no *Guia do usuário do Amazon Managed Service for Prometheus*.
**nota**  
Você precisará do `Amazon Managed Service for Prometheus workspace ARN` para uso em etapas posteriores.

## Encaminhar as métricas do EKS no Amazon Managed Service for Prometheus
<a name="forward-eks-metrics-prometheus"></a>

Assim que tiver um cluster do EKS e uma instância do Amazon Managed Service for Prometheus, você poderá encaminhar as métricas do cluster para a instância. É possível enviar métricas de duas maneiras.
+ [Opção 1: usar um coletor AWS gerenciado.](https://docs.aws.amazon.com/cur/latest/userguide/split-cost-allocation-data-resource-amp.html#use-managed-collector) Essa é a maneira mais simples de enviar métricas de um cluster do EKS para o Amazon Managed Service for Prometheus. No entanto, ele tem um limite de extração de métricas a cada 30 segundos, no máximo.
+ [Opção 2: criar seu próprio agente do Prometheus.](https://docs.aws.amazon.com/cur/latest/userguide/split-cost-allocation-data-resource-amp.html#create-prometheus-agent) Nesse caso, você tem mais controle sobre a configuração de extração, mas precisa gerenciar o agente depois de criá-lo.

### Opção 1: usar um coletor AWS gerenciado
<a name="use-managed-collector"></a>

Usar um coletor AWS gerenciado (um *raspador*) é a maneira mais simples de enviar métricas de um cluster EKS para uma instância do Amazon Managed Service for Prometheus. O procedimento a seguir orienta você na criação de um coletor AWS gerenciado. Para obter mais informações, consulte [Coletores gerenciados pela AWS](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector.html) no *Guia do usuário do Amazon Managed Service for Prometheus*.

**nota**  
AWS coletores gerenciados têm um intervalo mínimo de raspagem de 30 segundos. Se você tiver pods de curta duração, a recomendação é definir o intervalo do raspador para 15 segundos. Para usar um intervalo de 15 segundos com o raspador, use a opção 2 para [criar seu próprio agente do Prometheus](https://docs.aws.amazon.com/cur/latest/userguide/split-cost-allocation-data-resource-amp.html#create-prometheus-agent).

Há três etapas para criar um coletor AWS gerenciado:

1. Criar uma configuração de raspador.

1. Criar o raspador.

1. Configurar o cluster do EKS para permitir que o raspador acesse as métricas.

*Etapa 1: Criar uma configuração de raspador*

Para criar um raspador, é preciso ter uma configuração de raspador. Você pode usar uma configuração padrão ou criar a sua própria. A seguir estão três maneiras de obter uma configuração de raspador:
+ Obtenha a configuração padrão usando a AWS CLI, chamando:

  ```
  aws amp get-default-scraper-configuration
  ```
+ Criar sua própria configuração. Para obter mais informações, consulte [Configuração do raspador](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-configuration) no *Guia do usuário do Amazon Managed Service for Prometheus*.
+ Copie o exemplo de configuração fornecido nas mesmas instruções de [Configuração do raspador](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-configuration) no *Guia do usuário do Amazon Managed Service for Prometheus*.

Você pode editar a configuração do raspador para modificar o intervalo de extração ou filtrar as métricas que são extraídas, por exemplo.

Para filtrar as métricas que são extraídas para incluir apenas as duas necessárias para os dados de alocação de custos divididos, use a seguinte configuração de raspador:

```
global:
   scrape_interval: 30s
   #external_labels:
     #clusterArn: <REPLACE_ME>
scrape_configs:
  - job_name: kubernetes-nodes-cadvisor
    scrape_interval: 30s
    scrape_timeout: 10s
    scheme: https
    authorization:
      type: Bearer
      credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    kubernetes_sd_configs:
    - role: node
    relabel_configs:
    - regex: (.+)
      replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
      source_labels:
      - __meta_kubernetes_node_name
      target_label: __metrics_path__
    - replacement: kubernetes.default.svc:443
      target_label: __address__
    metric_relabel_configs:
    - source_labels: [__name__]
      regex: 'container_cpu_usage_seconds_total|container_memory_working_set_bytes'
      action: keep
```

Depois de ter a configuração do raspador, você deve codificá-lo em base64 para uso na *etapa 2*. A configuração é um arquivo YAML de texto. Para codificar o arquivo, use um site como [https://www.base64encode.org/](https://www.base64encode.org/).

*Etapa 2: Criar o raspador*

Agora que você tem um arquivo de configuração, você precisa criar seu raspador. Crie um raspador usando o seguinte comando da AWS CLI, com base nas variáveis descritas na seção de pré-requisitos. Você deve usar as informações do seu cluster EKS para os *<SUBNET-ID>* campos *<EKS-CLUSTER-ARN>**<SG-SECURITY-GROUP-ID>*, e, *<BASE64-CONFIGURATION-BLOB>* substituir pela configuração do raspador que você criou na etapa anterior e substituir *<AMP\$1WORKSPACE\$1ARN>* pelo ARN do espaço de trabalho do Amazon Managed Service for Prometheus.

```
aws amp create-scraper \ 
--source eksConfiguration="{clusterArn=<EKS-CLUSTER-ARN>,securityGroupIds=[<SG-SECURITY-GROUP-ID>],subnetIds=[<SUBNET-ID>]}" \ 
--scrape-configuration configurationBlob=<BASE64-CONFIGURATION-BLOB> \ 
--destination ampConfiguration={workspaceArn="<AMP_WORKSPACE_ARN>"}
```

Anote o `scraperId` que é retornado para uso na *etapa 3*.

*Etapa 3: Configurar o cluster do EKS para permitir que o raspador acesse as métricas*

Se o modo de autenticação do seu cluster do EKS estiver definido como `API` ou `API_AND_CONFIG_MAP`, seu raspador terá automaticamente a política de acesso correta no cluster, e os raspadores terão acesso ao seu cluster. Nenhuma configuração adicional é necessária e as métricas devem converger para o Amazon Managed Service for Prometheus.

Se o modo de autenticação do seu cluster EKS não estiver definido como `API` ou`API_AND_CONFIG_MAP`, você precisará configurar manualmente o cluster para permitir que o raspador acesse suas métricas por meio de um ClusterRole e. ClusterRoleBinding Para saber como habilitar essas permissões, consulte [Configurar manualmente um cluster do EKS para acesso do raspador](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-eks-setup) no *Guia do usuário do Amazon Managed Service for Prometheus*.

Quando o extrator estiver ativo, verifique se as duas métricas (`container_cpu_usage_seconds_total` e `container_memory_working_set_bytes`) estão sendo enviadas ao espaço de trabalho do Amazon Managed Service for Prometheus.

```
awscurl --service="aps" --region="<REGION>" "https://aps-workspaces.<REGION>.amazonaws.com/workspaces/<WorkSpace_ID>/api/v1/label/__name__/values"
```

Saída:

```
{
"status": "success",
"data": [
"container_cpu_usage_seconds_total",
"container_memory_working_set_bytes",
"scrape_duration_seconds",
"scrape_samples_post_metric_relabeling",
"scrape_samples_scraped",
"scrape_series_added",
"up"
]
}
```

### Opção 2: criar seu próprio agente do Prometheus
<a name="create-prometheus-agent"></a>

Se você não pode usar o coletor AWS gerenciado ou já tem seu próprio servidor Prometheus, pode usar sua própria instância do Prometheus como agente para extrair métricas do seu cluster EKS e enviá-las para o Amazon Managed Service for Prometheus.

Para obter instruções detalhadas sobre como usar sua própria instância do Prometheus como agente, consulte [Usar uma instância do Prometheus como coletor](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-ingest-with-prometheus.html) no *Guia do usuário do Amazon Managed Service for Prometheus*.

Veja a seguir um exemplo de configuração de extração do Prometheus que inclui o intervalo de extração do servidor Prometheus e as métricas de contêiner necessárias para os dados de alocação de custos divididos. Se você tiver pods de curta duração, a recomendação é reduzir o intervalo padrão de extração do servidor Prometheus de 30 segundos para 15 segundos. Observe que isso pode ocasionar um alto uso da memória do servidor Prometheus.

```
global:
   scrape_interval: 30s
   #external_labels:
     #clusterArn: <REPLACE_ME>
scrape_configs:
  - job_name: kubernetes-nodes-cadvisor
    scrape_interval: 30s
    scrape_timeout: 10s
    scheme: https
    authorization:
      type: Bearer
      credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    kubernetes_sd_configs:
    - role: node
    relabel_configs:
    - regex: (.+)
      replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
      source_labels:
      - __meta_kubernetes_node_name
      target_label: __metrics_path__
    - replacement: kubernetes.default.svc:443
      target_label: __address__
    metric_relabel_configs:
    - source_labels: [__name__]
      regex: 'container_cpu_usage_seconds_total|container_memory_working_set_bytes'
      action: keep
```

Se você seguiu [Configurar a ingestão de um novo servidor Prometheus usando o Helm](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-ingest-metrics-new-Prometheus.html) no *Guia do usuário do Amazon Managed Service for Prometheus*, poderá atualizar sua configuração de extração.

**Para atualizar a configuração de extração**

1. Edite `my_prometheus_values_yaml` a partir do guia e inclua o exemplo de configuração de extração no bloco `server`.

1. Execute o comando a seguir usando `prometheus-chart-name` e `prometheus-namespace` a partir do *Guia do usuário do Amazon Managed Service for Prometheus*.

```
helm upgrade prometheus-chart-name prometheus-community/prometheus -n prometheus-namespace -f my_prometheus_values_yaml
```

Para saber mais sobre `scrape_interval` ou como usar um scrape\$1interval não global, consulte a [configuração de extração do Prometheus](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config).

Como alternativa, você pode usar o AWS Distro for OpenTelemetry Collector que tem um receptor Prometheus, um exportador de gravação remota Prometheus e a extensão de autenticação AWS Sigv4 para obter acesso de gravação remota ao Amazon Managed Service for Prometheus.

**nota**  
Depois de configurar seu agente Prometheus, AWS diferentemente dos coletores gerenciados, você é responsável por manter o agente atualizado e pronto para coletar métricas.

## Estimar seus custos do Amazon Managed Service for Prometheus
<a name="estimate-prometheus-costs"></a>

Você pode usar a Calculadora de AWS preços para estimar o custo do uso do Amazon Managed Service for Prometheus para dividir os dados de alocação de custos.

**Para configurar o Amazon Managed Service for Prometheus de acordo com sua estimativa**

1. Abra a calculadora de AWS preços em [https://calculator.aws/\$1/](https://calculator.aws/#/).

1. Selecione **Criar estimativa**.

1. Na página **Adicionar serviço**, insira **Amazon Managed Service for Prometheus** no campo de pesquisa e escolha **Configurar**.

1. No campo **Descrição**, insira uma descrição para sua estimativa.

1. Escolha uma **Region**.

1. Selecione **Calcular o custo usando os detalhes da sua infraestrutura**. Essa opção permite estimar seus custos de ingestão, armazenamento e consulta de exemplo com base na configuração de infraestrutura atual ou proposta.

1. Em **Número de instâncias do EC2**, insira o número total de instâncias do EC2 em todos os seus clusters para toda a sua família de faturamento consolidado (incluindo todas as contas e regiões). Se você usa AWS Fargate, use o número de tarefas do Fargate como proxy para sua contagem de instâncias do EC2.

1. Os dados de alocação de custos divididos exigem duas métricas: `container_cpu_usage_seconds_total` e `container_memory_working_set_bytes`. Em **Métricas do Prometheus por instâncias do EC2**, insira 2.

1. Os dados de alocação de custos divididos sugerem um intervalo de extração de 15 segundos. Em **Intervalo de coleta de métricas (em segundos)**, insira 15. Se você usou um intervalo diferente (por exemplo, 30 segundos), altere-o para o intervalo que você configurou.

1. Os dados de alocação de custos divididos não impõem requisitos específicos para os outros parâmetros, portanto, insira valores apropriados para o restante dos parâmetros de entrada de acordo com os requisitos de sua empresa.

1. Selecione **Salvar e adicionar serviço**.