> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Métricas de host de container

As métricas de host para sistemas containerizados são totalmente suportadas.

<Warning>
  **Aviso**: Para obter métricas precisas de seus containers, limites de container
  são necessários para seus containers monitorados. Veja a seção [limites de
  container](#container-limits) para mais informações.
</Warning>

<Tip>
  **Nota**: Embora o Heroku também rode em um sistema containerizado (LXC), não
  suportamos métricas de host da mesma forma. Em vez disso, por favor veja a seção [Suporte ao
  Heroku][heroku support].
</Tip>

<Tip>
  **Nota**: Esta página faz parte da [seção de métricas de
  host](/metrics/host-metrics).
</Tip>

## Limites de container

Para que as métricas de host de container sejam precisas, limites precisam ser definidos para cada container. Isso significa configurar seu container para ter um número limitado de CPUs e memória alocadas a ele. Sem esses limites, o container reporta o valor máximo possível dessas métricas, resultando no host reportando Terabytes de memória disponível, por exemplo. Um container sem swap configurado, ou não suportado no sistema host, reportará um valor `0`. Para mais informações sobre como limitar a CPU e memória do seu container, por favor leia a documentação sobre:

* Docker
  * [CPU](https://docs.docker.com/config/containers/resource_constraints/#cpu)
  * [memória](https://docs.docker.com/config/containers/resource_constraints/#memory)
* Kubernetes
  * [CPU](https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/)
  * [memória](https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/)

## Métricas suportadas

Em sistemas que expõem o sistema de arquivos virtual `/sys/fs`, as seguintes métricas são suportadas.

| Métrica         | Descrição                                                                                                                                                                    |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Uso de CPU      | User e system em porcentagens. <br /> Leia mais sobre [métricas de CPU](https://blog.appsignal.com/2018/03/06/understanding-cpu-statistics.html) em nosso artigo da academy. |
| Load average    | Carga média de 1 minuto no host.                                                                                                                                             |
| Uso de memória  | Memória disponível, livre e usada. Também inclui swap total e swap usado.                                                                                                    |
| Uso de disco    | Porcentagem de cada disco usado.                                                                                                                                             |
| Disk IO         | Throughput de dados lidos e gravados em cada disco.                                                                                                                          |
| Tráfego de rede | Throughput de dados recebidos e transmitidos por cada interface de rede.                                                                                                     |

### Sobre métricas de CPU {/* id: cpu-metrics */}

Resumindo:

* O AppSignal reporta as mesmas métricas que o comando [`docker stats`](https://docs.docker.com/engine/reference/commandline/stats/), mas reportadas como média em base minutal.
* O uso de CPU reportado pode ir acima de 100%. 100% é igual a 1 núcleo de CPU virtual completo.
* [Limites de container](#container-limits) são recomendados para equilibrar adequadamente os recursos de CPU disponíveis entre containers.
* Quando vários containers no mesmo sistema host compartilham recursos de CPU, mesmo com [limites de container](#container-limits), containers que usam mais CPU podem impactar negativamente o uso de CPU reportado para outros containers.

As métricas de CPU do container funcionam um pouco diferente das [métricas de CPU normais](/metrics/host-metrics). Elas são afetadas pelos [limites de container](#container-limits) e por quantos outros containers estão ativos no sistema. Isso ocorre porque eles compartilham os recursos do sistema de container.

Diferente das métricas de host normais, o uso de CPU pode ir acima de 100%. Isso ocorre porque um container pode ter mais de 1 núcleo de CPU virtual disponível para ele. Cada núcleo completo equivale a 100%. Se um container tem três núcleos, por exemplo, o máximo é 300%.

Outros containers no sistema podem impactar o tempo total de CPU disponível para o container. [Limites](#container-limits) ajudarão a manter um melhor equilíbrio de uso de CPU entre containers para que as médias flutuem menos dependendo de vizinhos ocupados. Se todos os containers compartilham todos os recursos de CPU do sistema host, o uso em um host pode impactar negativamente os núcleos de CPU virtuais disponíveis em outro.

Por exemplo:

Temos um sistema Docker em nossa máquina host que tem 3 núcleos de CPU virtuais disponíveis. Então iniciamos os containers A, B e C sem nenhum limite específico de CPU.

* No cenário do container A atingindo o máximo de seus núcleos de CPU disponíveis, e os outros containers B e C ociosos em 0%, será reportado como 300% de uso de CPU para o container A. Que é o tempo total de CPU disponível no sistema de container do host.
* Quando os três containers estão todos atingindo o máximo de seus núcleos de CPU disponíveis, será reportado como 100% de uso de CPU para cada container, pois os recursos são compartilhados entre eles de forma uniforme.

[heroku support]: /heroku/host-metrics.html
