Compartilhar via


Coletar contadores de desempenho da máquina virtual com o Azure Monitor

Os contadores de desempenho fornecem insights sobre o desempenho de componentes de hardware virtual, sistemas operacionais e cargas de trabalho. Colete contadores de máquinas virtuais do Linux e do Windows usando uma regra de coleta de dados (DCR) utilizando uma fonte de dados de Contadores de Desempenho.

Os detalhes para a criação do DCR são fornecidos na coleta de dados do cliente de VM com o Azure Monitor. Este artigo traz mais detalhes sobre o tipo de fonte de dados de contadores de desempenho do Windows.

Uma nova fonte de dados foi adicionada aos contadores de desempenho do OpenTelemetry, com suporte ao Espaço de Trabalho do Azure Monitor como destino. Leia mais sobre os benefícios de usar esta nova fonte de dados aqui.

Observação

Para trabalhar diretamente com a definição de DCR ou implantar com outros métodos, como modelos do ARM, consulte exemplos de DCR (regra de coleta de dados) no Azure Monitor.

Configurar a fonte de dados de contadores de desempenho do OpenTelemetry (versão prévia)

Crie o DCR usando o processo em Coletar dados do cliente de máquina virtual com o Azure Monitor. Na guia Coletar e entregar do DCR, selecione Contadores de Desempenho do OpenTelemetry na lista suspensa Tipo de Fonte de Dados. Selecione um conjunto predefinido de objetos para coletar e sua taxa de amostragem. Quanto menor a taxa de amostragem, mais frequentemente o valor é coletado.

Captura de tela que mostra o formulário do portal do Azure para selecionar contadores de desempenho básicos do OpenTelemetry em uma regra de coleta de dados.

Selecione Personalizado para uma seleção mais granular de contadores de desempenho OpenTelemetry.

Captura de tela que mostra o formulário do portal do Azure para selecionar contadores de desempenho personalizados do OpenTelemetry em uma regra de coleta de dados.

Configurar a fonte de dados de contadores de desempenho

Crie o DCR usando o processo em Coletar dados do cliente de máquina virtual com o Azure Monitor. Na guia Coletar e Entregar do DCR, selecione Contadores de Desempenho no menu suspenso do tipo de fonte de dados. Selecione um conjunto predefinido de objetos para coletar e sua taxa de amostragem. Quanto menor a taxa de amostragem, mais frequentemente o valor é coletado.

Captura de tela que mostra o formulário do portal do Azure para selecionar contadores de desempenho básicos em uma regra de coleta de dados.

Selecione Personalizado para especificar um XPath para coletar quaisquer contadores de desempenho não disponíveis com a seleção Básica. Use o formato \PerfObject(ParentInstance/ObjectInstance#InstanceIndex)\Counter.

Dica

Se o nome do contador contiver um & (E comercial), substitua-o por &. Por exemplo, \Memory\Free & Zero Page List Bytes.

Captura de tela que mostra o formulário do portal do Azure para selecionar contadores de desempenho personalizados em uma regra de coleta de dados.

Aviso

Tenha cuidado ao definir manualmente contadores para DCRs que estão associados tanto a máquinas Windows quanto a Linux, pois alguns nomes de contadores no estilo Windows e Linux podem corresponder à mesma métrica, resultando em coleta duplicada. Por exemplo, especificar ambos \LogicalDisk(*)\Disk Transfers/sec (Windows) e Logical Disk(*)\Disk Transfers/sec (Linux) no mesmo DCR fará com que a métrica transferências de disco seja coletada duas vezes por período de amostragem.

Esse comportamento pode ser evitado não coletando contadores de desempenho em DCRs que não especificam um tipo de plataforma. Verifique se os contadores do Windows só estão incluídos em DCRs associados a computadores Windows e se os contadores do Linux só estão incluídos em DCRs associados a computadores Linux.

Observação

Atualmente, os recursos do Microsoft.HybridCompute (servidores habilitados para Azure Arc) não podem ser exibidos no Metrics Explorer, mas seus dados de métrica podem ser adquiridos por meio da API REST de Métricas (Namespaces de Métrica – Lista, Definições de Métrica – Lista e Métricas – Lista).

Adicionar destinos

Os Contadores de Desempenho OpenTelemetry podem ser enviados para um Workspace do Azure Monitor, onde podem ser consultados via PromQL. Esse é o destino de dados recomendado para todos os usuários, já que o Container Insights, o Application Insights e o VM Insights estão se movendo para usar o Workspace do Azure Monitor como fonte de métricas em vez de workspaces do Log Analytics.

Captura de tela que mostra a configuração de um destino do Workspace do Azure Monitor em uma regra de coleta de dados.

Os contadores de desempenho ainda podem ser enviados para um espaço de trabalho do Log Analytics, onde são armazenados na tabela Perf e/ou nas Métricas do Azure Monitor (versão prévia), onde estão disponíveis no Explorador de Métricas. Adicione um destino do tipo Logs do Azure Monitor e selecione uma área de trabalho do Log Analytics. Embora você possa adicionar vários workspaces, lembre-se de que isso enviará dados duplicados para cada um, o que resultará em custo adicional. Não são necessários mais detalhes para as Métricas do Azure Monitor (versão prévia), pois isso é armazenado no nível da assinatura do recurso monitorado.

Captura de tela mostrando a configuração de um destino de Logs do Azure Monitor em uma regra de coleta de dados.

Verificar a coleta de dados

Para verificar se os contadores de desempenho do OpenTelemetry estão sendo coletados no workspace do Azure Monitor, você pode começar definindo o escopo de uma consulta para o AMW escolhido como destino para o DCR e verificar se uma das métricas do Sistema está fluindo conforme o esperado.

Captura de tela que mostra os registros retornados de um AMW.

Se o AMW foi definido como modo de acesso de contexto de recurso, você também pode verificar se a mesma consulta funciona conforme o esperado quando o escopo é definido na própria VM, navegando até o painel Métricas da VM no Portal, e escolhendo a lista suspensa "adicionar com o editor" ou a lista suspensa "exibir as métricas AMW no editor" em Namespaces de Métrica.

Captura de tela que mostra como navegar até o Editor AMW PromQl a partir de um painel de Métricas de VM.

Ambos os pontos de entrada devem resultar em um editor PromQl com um escopo de consulta voltado para o recurso de VM agora, onde a mesma consulta funcionará como antes, mas sem a necessidade de filtrar pela dimensão microsoft.resourceid da VM.

Captura de tela que mostra os registros retornados de uma VM, armazenada em um AMW.

Captura de tela que mostra a consulta no escopo da VM em vez de AMW.

Para verificar se a fonte de dados herdada do Contador de Desempenho está sendo coletada no workspace do Log Analytics, verifique se há registros na tabela Perf . Na máquina virtual ou no workspace do Log Analytics no portal do Azure, selecione Logs e clique no botão Tabelas . Na categoria máquinas virtuais , clique em Executar ao lado de Perf.

Captura de tela que mostra os registros retornados da tabela Perf.

Para verificar se a fonte de dados herdada do Contador de Desempenho está sendo coletada nas Métricas do Azure Monitor, selecione Métricas na máquina virtual no portal do Azure. Selecione Convidado da Máquina Virtual (Windows) ou azure.vm.linux.guestmetrics para o namespace e selecione uma métrica para adicionar à visualização.

Captura de tela que mostra as métricas do cliente no Metrics Explorer.

Contadores de desempenho

Os contadores de desempenho a seguir estão disponíveis para serem coletados pelo Agente do Azure Monitor para máquinas virtuais Windows e Linux. A frequência de amostragem pode ser alterada ao criar ou atualizar a regra de coleta de dados.

Contador de desempenho OTel Tipo Unidade Aggregation Monótono Dimensões Description
system.cpu.utilization Medidor 1 N/A FALSE cpu: Número da CPU lógica começando em 0 (valores: Qualquer Str)
state: detalhamento do uso da CPU por tipo (valores: idle, interrupt, nice, softirq, steal, system, user e wait)
Diferença em system.cpu.time desde a última medida por CPU lógica, dividida pelo tempo decorrido (0–1).
system.cpu.time Soma s Cumulativo VERDADEIRO cpu: Número da CPU lógica começando em 0 (valores: Qualquer Str)
state: detalhamento do uso da CPU por tipo (valores: idle, interrupt, nice, softirq, steal, system, user e wait)
Total de segundos cada CPU lógica gasta em cada modo.
system.cpu.physical.count Soma {cpu} Cumulativo FALSE (nenhum) Número de CPUs físicas disponíveis.
system.cpu.logical.count Soma {cpu} Cumulativo FALSE cpu: Número da CPU lógica começando em 0 (valores: Qualquer Str) Número de CPUs lógicas disponíveis.
system.cpu.load_average.5m Medidor {thread} N/A FALSE (nenhum) Carga média de CPU ao longo de 5 minutos.
system.cpu.load_average.1m Medidor {thread} N/A FALSE (nenhum) Carga média de CPU ao longo de 1 minuto.
system.cpu.load_average.15m Medidor {thread} N/A FALSE (nenhum) Carga média de CPU ao longo de 15 minutos.
frequência.do.processador.sistema Medidor Hz N/A FALSE (nenhum) Frequência atual do núcleo da CPU no Hz.
process.uptime Medidor s N/A FALSE (nenhum) Hora em que o processo foi executado.
process.threads Soma {threads} Cumulativo FALSE (nenhum) Contagem de threads de processo.
process.signals_pending Soma sinais Cumulativo FALSE (nenhum) Número de sinais pendentes para o processo (somente Linux).
process.paging.faults Soma {falhas} Cumulativo VERDADEIRO tipo: tipo de falha (valores: principal, menor) Número de falhas de página que o processo gerou (somente Linux).
process.open_file_descriptors Soma {count} Cumulativo FALSE (nenhum) Número de descritores de arquivo em uso pelo processo.
process.memory.virtual Soma Por Cumulativo FALSE (nenhum) Tamanho da memória virtual.
process.memory.utilization Medidor 1 N/A FALSE (nenhum) Porcentagem da memória física total usada pelo processo.
uso.processo.memória Soma Por Cumulativo FALSE (nenhum) Quantidade de memória física em uso.
system.disk.weighted_io_time Soma s Cumulativo FALSE dispositivo: Nome do disco (valores: Qualquer Str) O disco de tempo gasto ativado, multiplicado pelo comprimento da fila.
sistema.disco.operacoes_pendentes Soma operações Cumulativo FALSE dispositivo: Nome do disco (valores: Qualquer Str) Tamanho da fila de operações de E/S pendentes.
system.disk.operations Soma operações Cumulativo VERDADEIRO dispositivo: Nome do disco (valores: Qualquer Str)
direção: direção do fluxo (valores: leitura, gravação)
Contagem de operações de disco.
sistema.disco.tempo_de_operacao Soma s Cumulativo VERDADEIRO dispositivo: Nome do disco (valores: Qualquer Str)
direção: direção do fluxo (valores: leitura, gravação)
Tempo gasto em operações de disco.
system.disk.merged Soma operações Cumulativo VERDADEIRO dispositivo: Nome do disco (valores: Qualquer Str)
direção: direção do fluxo (valores: leitura, gravação)
Leituras/gravações de disco mescladas em operações físicas simples.
system.disk.io_time Soma s Cumulativo VERDADEIRO dispositivo: Nome do disco (valores: Qualquer Str) O disco de tempo gasto foi ativado.
system.disk.io Soma Por Cumulativo VERDADEIRO dispositivo: Nome do disco (valores: Qualquer Str)
direção: direção do fluxo (valores: leitura, gravação)
Bytes de disco transferidos.
process.handles Soma {count} Cumulativo FALSE (nenhum) Número de handles abertos (apenas para Windows).
process.disk.operations Soma operações Cumulativo VERDADEIRO direção: direção do fluxo (valores: leitura, gravação) Operações de disco executadas pelo processo.
process.disk.io Soma Por Cumulativo VERDADEIRO direção: direção do fluxo (valores: leitura, gravação) Bytes de disco transferidos.
process.cpu.utilization Medidor 1 N/A FALSE estado: Detalhamento do uso da CPU (valores: sistema, usuário, espera) Percentual do tempo total da CPU usado pelo processo desde a última extração (0–1).
process.cpu.time Soma s Cumulativo VERDADEIRO estado: Detalhamento do uso da CPU (valores: sistema, usuário, espera) Total de segundos de CPU divididos por estados.
process.context_switches Soma {count} Cumulativo VERDADEIRO tipo: Tipo de troca de contexto (valores: qualquer Str) Número de vezes que o processo foi alternado de contexto (somente Linux).
utilização.da.memória.do.sistema Medidor 1 N/A FALSE estado: Divisão do uso de memória (valores: armazenados em buffer, armazenados em cache, inativos, livres, slab_reclaimable, slab_unreclaimable, usado) Porcentagem de bytes de memória em uso.
uso de memória do sistema Soma Por Cumulativo FALSE estado: Divisão do uso de memória (valores: armazenados em buffer, armazenados em cache, inativos, livres, slab_reclaimable, slab_unreclaimable, usado) Bytes de memória em uso.
system.memory.page_size Medidor Por N/A FALSE (nenhum) Tamanho da página configurada do sistema.
limite.de.memória.do.sistema Soma Por Cumulativo FALSE (nenhum) Total de bytes de memória disponíveis.
system.linux.memory.dirty Soma Por Cumulativo FALSE (nenhum) Quantidade de memória suja (/proc/meminfo).
system.linux.memory.available Soma Por Cumulativo FALSE (nenhum) Estimativa de memória disponível (somente Linux).
system.network.packets Soma {packets} Cumulativo VERDADEIRO device: Nome da interface de rede (valores: Qualquer Str)
direção: direção do fluxo (valores: recebimento, transmissão)
Número de pacotes transferidos.
system.network.io Soma Por Cumulativo VERDADEIRO (nenhum) Bytes transmitidos e recebidos.
system.network.errors Soma {errors} Cumulativo FALSE device: Nome da interface de rede (valores: Qualquer Str)
direção: direção do fluxo (valores: recebimento, transmissão)
Número de erros encontrados.
system.network.dropped Soma {packets} Cumulativo VERDADEIRO device: Nome da interface de rede (valores: Qualquer Str)
direção: direção do fluxo (valores: recebimento, transmissão)
Número de pacotes descartados.
system.network.conntrack.max Soma {entries} Cumulativo FALSE (nenhum) Limite para as entradas na tabela do conntrack.
system.network.conntrack.count Soma {entries} Cumulativo FALSE (nenhum) Contagem de entradas na tabela conntrack.
sistema.rede.conexões Soma {conexões} Cumulativo FALSE protocolo: protocolo de rede (valores: tcp)
estado: Estado da conexão (valores: Qualquer Str)
Número de conexões.
system.uptime Medidor s N/A FALSE (nenhum) Hora em que o sistema está em execução.
system.processes.created Soma {processos} Cumulativo VERDADEIRO (nenhum) Número total de processos criados.
system.processes.count Soma {processos} Cumulativo FALSE status: status do processo (valores: blocked, daemon, detached, idle, locked, orphan, paging, running, sleeping, stopped, system, unknown e zombies) Número total de processos em cada estado.
system.paging.utilization Medidor 1 N/A FALSE device: Nome do arquivo de página (valores: Qualquer Str)
estado: Tipo de uso de paginação (valores: cache, livre, usado)
Utilização de swap (Unix) ou pagefile (Windows).
system.paging.usage Soma Por Cumulativo FALSE device: Nome do arquivo de página (valores: Qualquer Str)
estado: Tipo de uso de paginação (valores: cache, livre, usado)
Uso de swap (Unix) ou de pagefile (Windows).
system.paging.operations Soma operações Cumulativo VERDADEIRO direção: Fluxo de página (valores: page_in, page_out)
tipo: Tipo de falha (valores: principal, menor)
Operações de paginação.
system.paging.faults Soma {falhas} (nenhum) VERDADEIRO tipo: Tipo de falha (valores: principal, menor) Número de falhas de página.
system.filesystem.utilization Medidor 1 N/A FALSE dispositivo: Identificador do sistema de arquivos
modo: modo de montagem (valores: ro, rw)
mountpoint: Caminho
tipo: Tipo de sistema de arquivos (valores: ext4, tmpfs, etc.)
Fração de bytes utilizados do sistema de arquivos.
system.filesystem.usage Soma Por Cumulativo FALSE dispositivo: Identificador do sistema de arquivos
modo: modo de montagem
mountpoint: Caminho
tipo: Tipo de sistema de arquivos
estado: Tipo de uso (valores: gratuito, reservado, usado)
Bytes do sistema de arquivos usados.
system.filesystem.inodes.usage Soma {inodes} Cumulativo FALSE dispositivo: Identificador do sistema de arquivos
modo: modo de montagem
mountpoint: Caminho
tipo: Tipo de sistema de arquivos
estado: Tipo de uso (valores: gratuito, reservado, usado)
Inodes do sistema de arquivos usados.

Próximas etapas