

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 do EMR Sem Servidor
<a name="metrics"></a>

Esta seção aborda as maneiras para monitorar aplicações e trabalhos do Amazon EMR Sem Servidor.

**Topics**
+ [Monitoramento de aplicações e trabalhos do EMR Sem Servidor](app-job-metrics.md)
+ [Monitoramento de métricas do Spark com o Amazon Managed Service para Prometheus](monitor-with-prometheus.md)
+ [Métricas de uso do EMR Sem Servidor](monitoring-usage.md)

# Monitoramento de aplicações e trabalhos do EMR Sem Servidor
<a name="app-job-metrics"></a>

Com CloudWatch as métricas da Amazon para EMR Serverless, você pode receber CloudWatch métricas de 1 minuto e acessar CloudWatch painéis para acessar near-real-time as operações e o desempenho de seus aplicativos EMR Serverless.

O EMR Serverless envia métricas a cada minuto. CloudWatch O EMR Serverless emite essas métricas no nível do aplicativo, bem como no cargo, no tipo de funcionário e nos níveis. capacity-allocation-type

Para começar, use o modelo de CloudWatch painel do EMR Serverless fornecido no repositório do [EMR](https://github.com/aws-samples/emr-serverless-samples/tree/main/cloudformation/emr-serverless-cloudwatch-dashboard/) Serverless e implante-o. GitHub 

**nota**  
As [workloads interativas do EMR Sem Servidor](interactive-workloads.md) têm apenas o monitoramento em nível de aplicação habilitado e uma nova dimensão de tipo de trabalhador, `Spark_Kernel`. Para monitorar e depurar suas workloads interativas, acesse os logs e a interface do usuário do Apache Spark no [Workspace do EMR Studio](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-debug.html#emr-studio-debug-serverless).

## Monitoramento de métricas
<a name="app-job-metrics-versions"></a>

**Importante**  
Estamos reestruturando nossa exibição de métricas para adicionar `ApplicationName` e `JobName` como dimensões. Para a versão 7.10 e posteriores, as métricas mais antigas não serão mais atualizadas. Para versões do EMR abaixo de 7.10, as métricas mais antigas ainda estão disponíveis.

**Dimensões atuais**

A tabela abaixo descreve as dimensões do EMR Sem Servidor disponíveis no namespace `AWS/EMR Serverless`.


**Dimensões para métricas do EMR Sem Servidor**  

| Dimensão | Description | 
| --- | --- | 
| ApplicationId | Filtros para todas as métricas de uma aplicação EMR Sem Servidor usando o ID da aplicação. | 
| ApplicationName | Filtros para todas as métricas de uma aplicação EMR Sem Servidor usando o nome. Se o nome não for fornecido ou contiver caracteres não ASCII, ele será publicado como **[Unspecified]**. | 
| JobId | Filtros para todas as métricas da execução de um ID de execução de trabalho do EMR Sem Servidor. | 
| JobName | Filtros para todas as métricas de um trabalho EMR Sem Servidor executado usando o nome. Se o nome não for fornecido ou contiver caracteres não ASCII, ele será publicado como **[Unspecified]**. | 
| WorkerType | Filtros para todas as métricas de um determinado tipo de trabalhador. Por exemplo, você pode filtrar por `SPARK_DRIVER` e `SPARK_EXECUTORS` para trabalhos do Spark. | 
| CapacityAllocationType | Filtros para todas as métricas de um determinado tipo de alocação de capacidade. Por exemplo, você pode filtrar por `PreInitCapacity` para capacidade pré-inicializada e `OnDemandCapacity` para todo o resto. | 

## Monitoramento em nível de aplicações
<a name="app-level-metrics"></a>

Você pode monitorar o uso da capacidade no nível do aplicativo EMR Serverless com as métricas da Amazon. CloudWatch Você também pode configurar um único monitor para monitorar o uso da capacidade do aplicativo em um CloudWatch painel.


**Métricas de aplicações do EMR Sem Servidor**  

| Métrica | Description | Unidade | Dimensão | 
| --- | --- | --- | --- | 
| MaxCPUAllowed |  O máximo de CPU permitido para a aplicação.  | vCPU | ApplicationId, ApplicationName | 
| MaxMemoryAllowed |  A memória máxima em GB permitida para a aplicação.  | Gigabytes (GB) | ApplicationId, ApplicationName | 
| MaxStorageAllowed |  O armazenamento máximo em GB permitido para a aplicação.  | Gigabytes (GB) | ApplicationId, ApplicationName | 
| CPUAllocated |  Os números totais de v CPUs alocados.  | vCPU | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| IdleWorkerCount |  O número total de trabalhadores ociosos.  | Contagem | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| MemoryAllocated |  A memória total em GB alocada.  | Gigabytes (GB) | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| PendingCreationWorkerCount |  O número total de trabalhadores pendentes de criação.  | Contagem | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| RunningWorkerCount |  O número total de trabalhadores em uso pela aplicação.  | Contagem | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| StorageAllocated |  O armazenamento total em disco em GB alocado.  | Gigabytes (GB) | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| TotalWorkerCount |  O número total de trabalhadores disponíveis.  | Contagem | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 

## Monitoramento no nível do trabalho
<a name="job-level-metrics"></a>

O Amazon EMR Sem Servidor envia as métricas de nível de trabalho a seguir a cada minuto ao Amazon CloudWatch . Você pode acessar os valores das métricas para execuções de trabalhos agregadas por estado de execução de trabalhos. A unidade para cada uma das métricas é *contagem*.


**Métricas de nível de trabalho do EMR Sem Servidor**  

| Métrica | Description | Dimensão | 
| --- | --- | --- | 
| SubmittedJobs | O número de trabalhos no estado Enviado. | ApplicationId, ApplicationName | 
| PendingJobs | O número de trabalhos em um estado Pendente. | ApplicationId, ApplicationName | 
| ScheduledJobs | O número de trabalhos em um estado Programado. | ApplicationId, ApplicationName | 
| RunningJobs | O número de trabalhos em um estado Em execução. | ApplicationId, ApplicationName | 
| SuccessJobs | O número de trabalhos em um estado Com êxito. | ApplicationId, ApplicationName | 
| FailedJobs | O número de trabalhos em um estado de Falha. | ApplicationId, ApplicationName | 
| CancellingJobs | O número de trabalhos em um estado de Cancelamento. | ApplicationId, ApplicationName | 
| CancelledJobs | O número de trabalhos em um estado Cancelado. | ApplicationId, ApplicationName | 

Você pode monitorar métricas específicas do mecanismo para executar e concluir trabalhos do EMR Serverless com um aplicativo específico do mecanismo. UIs Quando você acessa a interface do usuário para um trabalho em execução, a interface do usuário da aplicação ao vivo é exibida com atualizações em tempo real. Quando você acessa a interface do usuário para um trabalho concluído, a interface do usuário persistente da aplicação é exibida.

**Execução de trabalhos**

Para trabalhos do EMR Sem Servidor em execução, acesse uma interface em tempo real que fornece métricas específicas do mecanismo. Você pode usar a interface do usuário do Apache Spark ou a interface do usuário do Hive Tez para monitorar e depurar trabalhos. Para acessá-los UIs, use o console do EMR Studio ou solicite um endpoint de URL seguro com o. AWS Command Line Interface

**Trabalhos concluídos**

Para trabalhos concluídos do EMR Sem Servidor, use o Spark History Server ou a interface de usuário persistente do Hive Tez para acessar detalhes, estágios, tarefas e métricas das execuções de trabalhos do Spark ou do Hive. Para acessá-los UIs, use o console do EMR Studio ou solicite um endpoint de URL seguro com o. AWS Command Line Interface

## Monitoramento em nível de trabalhador para trabalhos
<a name="job-worker-level-metrics"></a>

O Amazon EMR Serverless envia as seguintes métricas de nível de funcionário que estão disponíveis no `AWS/EMRServerless` namespace e no grupo de métricas para a Amazon. `Job Worker Metrics` CloudWatch O EMR Serverless coleta pontos de dados de trabalhadores individuais durante a execução do trabalho no nível do cargo, no tipo de trabalhador e no nível. capacity-allocation-type Você pode usar `ApplicationId` como uma dimensão para monitorar vários trabalhos que pertencem à mesma aplicação.

**nota**  
Para visualizar o total de CPU e memória usadas por um trabalho sem servidor do EMR ao visualizar as métricas no CloudWatch console da Amazon, use a estatística como soma e o período como 1 minuto.


**Métricas do EMR Sem Servidor em nível de trabalhador**  

| Métrica | Description | Unidade | Dimensão | 
| --- | --- | --- | --- | 
| WorkerCpuAllocated | O número total de núcleos de vCPU alocados para trabalhadores em uma execução de trabalho. | vCPU | JobId, JobName, ApplicationId, ApplicationName, WorkerType, e CapacityAllocationType | 
| WorkerCpuUsed | O número total de núcleos de vCPU utilizados pelos trabalhadores em uma execução de trabalho. | vCPU | JobId, JobName, ApplicationId, ApplicationName, WorkerType, e CapacityAllocationType | 
| WorkerMemoryAllocated | A memória total em GB alocada para trabalhadores em uma execução de trabalho. | Gigabytes (GB) | JobId, JobName, ApplicationId, ApplicationName, WorkerType, e CapacityAllocationType | 
| WorkerMemoryUsed | A memória total em GB utilizada pelos trabalhadores em uma execução de trabalho. | Gigabytes (GB) | JobId, JobName, ApplicationId, ApplicationName, WorkerType, e CapacityAllocationType | 
| WorkerEphemeralStorageAllocated | O número de bytes de armazenamento temporário alocados para trabalhadores em uma execução de trabalho. | Gigabytes (GB) | JobId, JobName, ApplicationId, ApplicationName, WorkerType, e CapacityAllocationType | 
| WorkerEphemeralStorageUsed | O número de bytes de armazenamento temporário usados pelos trabalhadores em uma execução de trabalho. | Gigabytes (GB) | JobId, JobName, ApplicationId, ApplicationName, WorkerType, e CapacityAllocationType | 
| WorkerStorageReadBytes | O número de bytes lidos do armazenamento por trabalhadores durante uma execução de trabalho. | Bytes | JobId, JobName, ApplicationId, ApplicationName, WorkerType, e CapacityAllocationType | 
| WorkerStorageWriteBytes | O número de bytes gravados no armazenamento por trabalhadores durante uma execução de trabalho. | Bytes | JobId, JobName, ApplicationId, ApplicationName, WorkerType, e CapacityAllocationType | 

As etapas abaixo descrevem como acessar os vários tipos de métricas.

------
#### [ Console ]

**Para acessar a interface do usuário da aplicação com o console**

1. Navegue até a aplicação do EMR Sem Servidor no EMR Studio com as instruções em [Getting started from the console](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html#gs-console). 

1. Para acessar aplicativos UIs e registros específicos do mecanismo para um trabalho em execução: 

   1. Escolha um trabalho com um status `RUNNING`.

   1. Selecione o trabalho na página de **Detalhes da aplicação** ou navegue até a página **Detalhes do trabalho** do seu trabalho.

   1. No menu suspenso **Exibir interface do usuário**, escolha **Interface do usuário do Spark** ou **Interface do usuário do Hive Tez** para navegar até a interface da aplicação do seu tipo de trabalho. 

   1. Para acessar os logs do mecanismo do Spark, navegue até a guia **Executores** na interface do usuário do Spark e escolha o link **Logs** do driver. Para acessar os logs do mecanismo do Hive, escolha o link **Logs** do DAG apropriado na interface do usuário do Hive Tez.

1. Para acessar aplicativos UIs e registros específicos do motor para um trabalho concluído: 

   1. Escolha um trabalho com um status `SUCCESS`.

   1. Selecione o trabalho na página **Detalhes da aplicação** ou navegue até a página **Detalhes do trabalho**.

   1. No menu suspenso **Exibir interface do usuário**, escolha **Servidor de histórico do Spark** ou **Interface de usuário persistente do Hive Tez** para navegar até a interface da aplicação do seu tipo de trabalho. 

   1. Para acessar os logs do mecanismo do Spark, navegue até a guia **Executores** na interface do usuário do Spark e escolha o link **Logs** do driver. Para acessar os logs do mecanismo do Hive, escolha o link **Logs** do DAG apropriado na interface do usuário do Hive Tez.

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

**Para acessar a interface do usuário do seu aplicativo com o AWS CLI**
+ Para gerar um URL usado para acessar a interface do usuário da aplicação para trabalhos em execução e concluídos, chame a API `GetDashboardForJobRun`. 

  ```
  aws emr-serverless get-dashboard-for-job-run /
  --application-id <application-id> /
  --job-run-id <job-id>
  ```

  O URL gerado é válido por uma hora.

------

# 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.\$1.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.\$1.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/3.5.0/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.

# Métricas de uso do EMR Sem Servidor
<a name="monitoring-usage"></a>

Você pode usar as métricas CloudWatch de uso da Amazon para dar visibilidade aos recursos que sua conta usa. Use essas métricas para visualizar seu uso do serviço em CloudWatch gráficos e painéis.

As métricas de uso do EMR Sem Servidor correspondem ao Service Quotas. Também é possível configurar alarmes que alertem você quando o uso se aproximar de uma cota de serviço. Para obter mais informações, consulte [Service Quotas e CloudWatch alarmes da Amazon](https://docs.aws.amazon.com/servicequotas/latest/userguide/configure-cloudwatch.html) no *Service* Quotas User Guide.

Para obter mais informações sobre as cotas de serviço do EMR Sem Servidor, consulte [Endpoints e cotas do EMR Serverless](endpoints-quotas.md).

## Métricas de uso da cota de serviço do EMR Sem Servidor
<a name="usage-metrics"></a>

O EMR Sem servidor publica as métricas de uso da cota de serviço a seguir no namespace `AWS/Usage`.


****  

| Métrica | Description | 
| --- | --- | 
| `ResourceCount`  | O número total dos recursos especificados em execução na conta. O recurso é definido pelas [dimensões](#usage-metrics-dimensions) associadas à métrica. | 

## Dimensões das métricas de uso da cota de serviço do EMR Sem Servidor
<a name="usage-metrics-dimensions"></a>

Você pode usar as dimensões a seguir para refinar as métricas de uso que o EMR Sem Servidor publica.


****  

| Dimensão | Valor | Description | 
| --- | --- | --- | 
|  `Service`  |  EMR Sem Servidor  | O nome do AWS service (Serviço da AWS) que contém o recurso. | 
|  `Type`  |  Recurso  | O tipo de entidade que o EMR Sem Servidor está relatando. | 
|  `Resource`  |  vCPU  | O tipo de recurso que o EMR Sem Servidor está rastreando. | 
|  `Class`  |  Nenhum  | A classe de recurso que o EMR Sem Servidor está rastreando. | 