

# Monitorar um Elastic Fabric Adapter no Amazon EC2
<a name="efa-working-monitor"></a>

É possível usar os seguintes recursos para monitorar a performance dos seus Elastic Fabric Adapters.

**Topics**
+ [Métricas do driver do EFA para uma instância do Amazon EC2](#efa-driver-metrics)
+ [Logs de fluxo do Amazon VPC](#efa-flowlog)
+ [Amazon CloudWatch](#efa-cloudwatch)

## Métricas do driver do EFA para uma instância do Amazon EC2
<a name="efa-driver-metrics"></a>

O driver Elastic Fabric Adapter (EFA) publica, em tempo real, várias métricas das instâncias que têm interfaces EFA anexadas. É possível usar essas métricas para solucionar problemas de performance da aplicação e da rede, escolher o tamanho de cluster ideal para uma workload, planejar proativamente as atividades de escalação e comparar aplicações para determinar se elas maximizam a performance da EFA disponível em uma instância.

**Topics**
+ [Métricas de driver do EFA disponíveis](#available-efa-metrics)
+ [Recupere as métricas do driver EFA para sua instância](#view-efa-driver-metrics)

### Métricas de driver do EFA disponíveis
<a name="available-efa-metrics"></a>

O driver EFA publica as seguintes métricas para a instância em tempo real. Elas fornecem o número cumulativo de erros, eventos de conexão e pacotes ou bytes enviados, recebidos, retransmitidos ou descartados pelos dispositivos EFA anexados desde a inicialização da instância ou da última redefinição do driver.


| Métrica | Descrição | Tipos de instâncias compatíveis | 
| --- | --- | --- | 
| tx\$1bytes |  O número de bytes transmitidos. Unidade: bytes  | Todos os tipos de instâncias compatíveis com EFA | 
| rx\$1bytes |  O número de bytes recebidos. Unidade: bytes  | Todos os tipos de instâncias compatíveis com EFA | 
| tx\$1pkts |  O número de pacotes transmitidos. Unidade: contagem  | Todos os tipos de instâncias compatíveis com EFA | 
| rx\$1pkts |  O número de pacotes recebidos. Unidade: contagem  | Todos os tipos de instâncias compatíveis com EFA | 
| rx\$1drops |  O número total de pacotes recebidos e depois descartados. Unidade: contagem  | Todos os tipos de instâncias compatíveis com EFA | 
| send\$1bytes |  O número de bytes enviados usando operações de envio. Unidade: bytes  | Todos os tipos de instâncias compatíveis com EFA | 
| recv\$1bytes |  O número de bytes recebidos pelas operações de envio. Unidade: bytes  | Todos os tipos de instâncias compatíveis com EFA | 
| send\$1wrs |  O número de pacotes enviados usando operações de envio. Unidade: contagem  | Todos os tipos de instâncias compatíveis com EFA | 
| recv\$1wrs |  O número de pacotes recebidos pelas operações de envio. Unidade: contagem  | Todos os tipos de instâncias compatíveis com EFA | 
| rdma\$1write\$1wrs |  O número de operações de gravação de rdma concluídas. Unidade: contagem  | Todos os tipos de instâncias compatíveis com EFA | 
| rdma\$1read\$1wrs |  O número de operações de leitura de rdma concluídas. Unidade: contagem  | Todos os tipos de instâncias compatíveis com EFA | 
| rdma\$1write\$1bytes |  O número de bytes gravados nele por outras instâncias usando operações de gravação de rdma. Unidade: bytes  | Todos os tipos de instâncias compatíveis com EFA | 
| rdma\$1read\$1bytes |  O número de bytes recebidos usando operações de leitura de rdma. Unidade: bytes  | Todos os tipos de instâncias compatíveis com EFA | 
| rdma\$1write\$1wr\$1err |  O número de operações de gravação de rdma que tiveram erros locais ou remotos. Unidade: contagem  | Todos os tipos de instâncias compatíveis com EFA | 
| rdma\$1read\$1wr\$1err |  O número de operações de leitura de rdma que tiveram erros locais ou remotos. Unidade: contagem  | Todos os tipos de instâncias compatíveis com EFA | 
| rdma\$1read\$1resp\$1bytes |  O número de bytes enviados em resposta às operações de leitura de rdma. Unidade: bytes  | Todos os tipos de instâncias compatíveis com EFA | 
| rdma\$1write\$1recv\$1bytes |  O número de bytes recebidos pelas operações de gravação de rdma. Unidade: bytes  | Todos os tipos de instâncias compatíveis com EFA | 
| retrans\$1bytes |  O número de bytes EFA SRD retransmitidos. Unidade: contagem  | Tipos de instância do Nitro v4 e posteriores que são compatíveis com EFA | 
| retrans\$1pkts |  O número de pacotes EFA SRD retransmitidos. Unidade: bytes  | Tipos de instância do Nitro v4 e posteriores que são compatíveis com EFA | 
| retrans\$1timeout\$1events |  O número de vezes que o tráfego de EFA SRD atingiu o tempo limite e resultou em uma alteração no caminho de rede. Unidade: contagem  | Tipos de instância do Nitro v4 e posteriores que são compatíveis com EFA | 
| impaired\$1remote\$1conn\$1events |  O número de vezes que as conexões EFA SRD entraram em um estado comprometido, resultando em um limite de taxa de throughput reduzido. Unidade: contagem  | Tipos de instância do Nitro v4 e posteriores que são compatíveis com EFA | 
| unresponsive\$1remote\$1events |  O número de vezes que uma conexão remota EFA SRD deixou de responder. Unidade: contagem  | Tipos de instância do Nitro v4 e posteriores que são compatíveis com EFA | 

Para obter mais informações sobre os tipos de instâncias que são compatíveis com EFA, consulte [Tipos de instâncias compatíveis](efa.md#efa-instance-types).

### Recupere as métricas do driver EFA para sua instância
<a name="view-efa-driver-metrics"></a>

É possível usar a ferramenta de linha de comando [rdma-tool](https://man7.org/linux/man-pages/man8/rdma.8.html) para recuperar as métricas de todas as interfaces do EFA anexadas a uma instância da seguinte forma:

```
$ rdma -p statistic show
link rdmap0s31/1 
    tx_bytes 0 
    tx_pkts 0 
    rx_bytes 0 
    rx_pkts 0 
    rx_drops 0 
    send_bytes 0 
    send_wrs 0 
    recv_bytes 0 
    recv_wrs 0 
    rdma_read_wrs 0 
    rdma_read_bytes 0 
    rdma_read_wr_err 0 
    rdma_read_resp_bytes 0 
    rdma_write_wrs 0 
    rdma_write_bytes 0 
    rdma_write_wr_err 0
    retrans_bytes 0
    retrans_pkts 0
    retrans_timeout_events 0
    unresponsive_remote_events 0
    impaired_remote_conn_events 0
```

Você também pode recuperar as métricas de cada interface do EFA anexada a uma instância dos arquivos sys usando o comando a seguir.

```
$ more /sys/class/infiniband/device_number/ports/port_number/hw_counters/* | cat
```

Por exemplo

```
$ more /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/* | cat
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/lifespan
::::::::::::::
12
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_resp_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_wr_err
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_wrs
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_recv_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_wr_err
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_wrs
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/recv_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/recv_wrs
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rx_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rx_drops
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rx_pkts
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/send_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/send_wrs
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/tx_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/tx_pkts
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/retrans_bytes
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/retrans_pkts
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/retrans_timeout_events
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/unresponsive_remote_events
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/impaired_remote_conn_events
::::::::::::::
0
```

## Logs de fluxo do Amazon VPC
<a name="efa-flowlog"></a>

É possível criar um log de fluxo da Amazon VPC para capturar informações sobre o tráfego de entrada e saída de um EFA. Os dados de log de fluxo podem ser publicados no Amazon CloudWatch Logs e no Amazon S3. Após criar um log de fluxo, será possível recuperar e visualizar seus dados no destino selecionado. Para obter mais informações, consulte [Logs de fluxo da VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) no *Guia do usuário da Amazon VPC*.

Você cria um log de fluxo para um EFA da mesma forma como cria um log de fluxo para uma interface de rede elástica. Para mais informações, consulte [Criar um log de fluxo](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-flow-logs.html#create-flow-log) no *Guia do usuário da Amazon VPC*.

Nas entradas do log de fluxo, o tráfego do EFA é identificado por `srcAddress` e `destAddress`, ambos formatados como endereços MAC, conforme mostrado no exemplo a seguir.

```
version accountId  eniId        srcAddress        destAddress       sourcePort destPort protocol packets bytes start      end        action log-status
2       3794735123 eni-10000001 01:23:45:67:89:ab 05:23:45:67:89:ab -          -        -        9       5689  1521232534 1524512343 ACCEPT OK
```

## Amazon CloudWatch
<a name="efa-cloudwatch"></a>

Se você estiver usando o EFA em um cluster do Amazon EKS, poderá monitorar seus EFAs usando o CloudWatch Container Insights. O Amazon CloudWatch Container Insights é compatível com todas as [métricas de driver EFA](#efa-driver-metrics), exceto: `retrans_bytes`, `retrans_pkts`, `retrans_timeout_events`, `unresponsive_remote_events` e `impaired_remote_conn_events`.

Para obter mais informações, consulte [Métricas do Amazon EKS e Kubernetes Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-enhanced-EKS.html#Container-Insights-metrics-EFA) no *Guia do usuário do Amazon CloudWatch*.