

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

# Monitoramento de métricas do Spark com o Amazon Managed Service para Prometheus
<a name="monitor-with-prometheus"></a>

Com as versões 7.1.0 e posteriores do Amazon EMR, você pode integrar o EMR Sem Servidor ao Amazon Managed Service for Prometheus para coletar métricas do Apache Spark para trabalhos e aplicações do EMR Sem Servidor. Essa integração está disponível quando você envia um trabalho ou cria um aplicativo usando o AWS console, a API do EMR Serverless ou o. AWS CLI

## Pré-requisitos
<a name="monitoring-with-prometheus-prereqs"></a>

Antes de fornecer as métricas do Spark para o Amazon Managed Service for Prometheus, conclua os pré-requisitos a seguir.
+ [Crie um Workspace do Amazon Managed Service para Prometheus.](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) Este Workspace serve como um endpoint de ingestão. Anote o URL exibido em **Endpoint: URL de gravação remota**. Você precisará especificar o URL ao criar sua aplicação do EMR Sem Servidor.
+ Para conceder acesso aos seus trabalhos ao Amazon Managed Service for Prometheus para fins de monitoramento, adicione a política a seguir ao perfil de execução de tarefas.

  ```
  {
      "Sid": "AccessToPrometheus",
      "Effect": "Allow",
      "Action": ["aps:RemoteWrite"],
      "Resource": "arn:aws:aps:{{<AWS_REGION>}}:{{<AWS_ACCOUNT_ID>}}:workspace/{{<WORKSPACE_ID>}}"
  }
  ```

## Configuração
<a name="monitoring-with-prometheus-setup"></a>

**Para usar o AWS console para criar um aplicativo integrado ao Amazon Managed Service for Prometheus**

1. Consulte [Getting started with Amazon EMR Sem Servidor](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html                             ) para criar uma aplicação.

1. Ao criar uma aplicação, escolha **Usar configurações personalizadas** e, em seguida, configure-a especificando as informações nos campos que deseja configurar.

1. Em **Logs e métricas da aplicação**, escolha **Fornecer métricas do mecanismo ao Amazon Managed Service for Prometheus** e, em seguida, especifique o URL de gravação remota.

1. Especifique todas as outras configurações desejadas e escolha **Criar e iniciar aplicação**.

**Use a API AWS CLI sem servidor do EMR**

Você também pode usar a API AWS CLI ou EMR Serverless para integrar seu aplicativo EMR Serverless ao Amazon Managed Service for Prometheus ao executar o ou os comandos. `create-application` `start-job-run`

------
#### [ create-application ]

```
aws emr-serverless create-application \
--release-label emr-7.1.0 \
--type "SPARK" \
--monitoring-configuration '{ 
    "prometheusMonitoringConfiguration": {
        "remoteWriteUrl": "https://aps-workspaces.{{<AWS_REGION>}}.amazonaws.com/workspaces/{{<WORKSPACE_ID>}}/api/v1/remote_write"
    }
}'
```

------
#### [ start-job-run ]

```
aws emr-serverless start-job-run \
--application-id {{<APPPLICATION_ID>}} \
--execution-role-arn {{<JOB_EXECUTION_ROLE>}} \
--job-driver '{
    "sparkSubmit": {
        "entryPoint": "local:///usr/lib/spark/examples/src/main/python/pi.py",
        "entryPointArguments": ["10000"],
        "sparkSubmitParameters": "--conf spark.dynamicAllocation.maxExecutors=10"
    }
}' \
--configuration-overrides '{
     "monitoringConfiguration": {
        "prometheusMonitoringConfiguration": {
            "remoteWriteUrl": "https://aps-workspaces.{{<AWS_REGION>}}.amazonaws.com/workspaces/{{<WORKSPACE_ID>}}/api/v1/remote_write"
        }
    }
}'
```

------

Incluir `prometheusMonitoringConfiguration` no comando indica que o EMR Sem Servidor deve executar o trabalho do Spark com um agente que coleta as métricas do Spark e as grava no endpoint `remoteWriteUrl` para o Amazon Managed Service for Prometheus. Em seguida, você pode usar as métricas do Spark no Amazon Managed Service for Prometheus para exibição, alertas e análises.

## Propriedades de configuração avançada
<a name="monitoring-with-prometheus-config-options"></a>

O EMR Sem Servidor usa um componente do Spark chamado `PrometheusServlet` para coletar métricas do Spark e traduzir dados de performance em dados compatíveis com o Amazon Managed Service for Prometheus. Por padrão, o EMR Sem Servidor define valores padrão no Spark e analisa as métricas do driver e do executor quando você envia um trabalho usando `PrometheusMonitoringConfiguration`. 

A tabela a seguir descreve todas as propriedades que você pode configurar ao enviar um trabalho do Spark que envia métricas ao Amazon Managed Service for Prometheus.


| Propriedade do Spark | Valor padrão  | Description | 
| --- | --- | --- | 
| spark.metrics.conf.\*.sink.prometheusServlet.class | org.apache.spark.metrics.sink. PrometheusServlet | A classe que o Spark usa para enviar métricas ao Amazon Managed Service for Prometheus. Para substituir o comportamento padrão, especifique sua própria classe personalizada. | 
| spark.metrics.conf.\*.source.jvm.class | org.apache.spark.metrics.source. JvmSource | A classe que o Spark usa para coletar e enviar métricas cruciais da máquina virtual Java subjacente. Para parar de coletar métricas da JVM, desabilite essa propriedade definindo-a como uma string vazia, como `""`. Para substituir o comportamento padrão, especifique sua própria classe personalizada.  | 
| spark.metrics.conf.driver.sink.prometheusServlet.path | /metrics/prometheus | O URL distinto que o Amazon Managed Service for Prometheus usa para coletar métricas do driver. Para substituir o comportamento padrão, especifique seu próprio caminho. Para parar de coletar métricas do driver, desabilite essa propriedade definindo-a como uma string vazia, como `""`. | 
| spark.metrics.conf.executor.sink.prometheusServlet.path | /metrics/executor/prometheus | O URL distinto que o Amazon Managed Service for Prometheus usa para coletar métricas do executor. Para substituir o comportamento padrão, especifique seu próprio caminho. Para parar de coletar métricas do executor, desabilite essa propriedade definindo-a como uma string vazia, como `""`. | 

Para obter mais informações sobre as métricas do Spark, consulte [Métricas do Apache Spark](https://spark.apache.org/docs/latest/monitoring.html#metrics).

## Considerações e limitações
<a name="monitoring-with-prometheus-limitations"></a>

Ao usar o Amazon Managed Service for Prometheus para coletar métricas do EMR Sem Servidor, considere as informações e limitações a seguir.
+ O suporte para o uso do Amazon Managed Service for Prometheus com o EMR Sem Servidor está disponível somente nas [Regiões da AWS onde o Amazon Managed Service for Prometheus encontra-se disponível ao público geral](https://docs.aws.amazon.com/general/latest/gr/prometheus-service.html).
+ Executar o agente para coletar métricas do Spark no Amazon Managed Service para Prometheus exige mais recursos dos trabalhadores. Se você escolher um trabalhador menor, como um trabalhador de uma vCPU, o runtime do trabalho poderá aumentar.
+ O suporte para o uso do Amazon Managed Service para Prometheus com o EMR Sem Servidor está disponível somente nas versões 7.1.0 e posteriores do Amazon EMR.
+ O Amazon Managed Service para Prometheus deve ser implantado na mesma conta em que você executa o EMR Sem Servidor para coletar métricas.