Pular para o conteúdo principal
As métricas de host para sistemas containerizados são totalmente suportadas.
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 para mais informações.
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.
Nota: Esta página faz parte da seção de métricas de host.

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:

Métricas suportadas

Em sistemas que expõem o sistema de arquivos virtual /sys/fs, as seguintes métricas são suportadas.
MétricaDescrição
Uso de CPUUser e system em porcentagens.
Leia mais sobre métricas de CPU em nosso artigo da academy.
Load averageCarga média de 1 minuto no host.
Uso de memóriaMemória disponível, livre e usada. Também inclui swap total e swap usado.
Uso de discoPorcentagem de cada disco usado.
Disk IOThroughput de dados lidos e gravados em cada disco.
Tráfego de redeThroughput de dados recebidos e transmitidos por cada interface de rede.

Sobre métricas de CPU

Resumindo:
  • O AppSignal reporta as mesmas métricas que o comando docker 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 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, 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. Elas são afetadas pelos limites de container 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 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.