Monitorar instâncias e operações

O Cloud Monitoring coleta e armazena automaticamente informações sobre sua instância do Managed Lustre.

Este documento fornece uma visão geral detalhada das métricas disponíveis para monitorar o Managed Lustre no Google Cloud. Essas métricas ajudam você a entender o desempenho, a capacidade e a integridade dos sistemas de arquivos Managed Lustre para identificar gargalos, resolver problemas e otimizar a utilização de recursos.

É possível usar essas métricas no Cloud Monitoring para criar painéis personalizados, configurar alertas e ter insights mais detalhados sobre o comportamento da sua instância do Managed Lustre.

O Cloud Monitoring é ativado automaticamente para o Managed Lustre. Não há cobrança para coletar dados ou visualizar métricas no console doGoogle Cloud . Chamadas de API podem gerar cobranças. Consulte os preços do Cloud Monitoring para mais detalhes.

Papéis necessários do IAM

Os seguintes papéis são necessários:

  • Leitor do Monitoring (roles/monitoring.viewer) ou permissões equivalentes para visualizar métricas no Cloud Monitoring.
  • Editor do Monitoring (roles/monitoring.editor) ou permissões equivalentes para configurar alertas.

Saiba como conceder um papel do IAM.

Ver métricas

As métricas do Cloud Monitoring estão disponíveis em dois locais no console doGoogle Cloud :

  • A página de detalhes da instância do Managed Lustre mostra as métricas disponíveis. Além das métricas listadas nesta página, ele calcula a largura de banda de bytes copiados e a taxa de objetos copiados.

  • A página do Cloud Monitoring oferece várias opções de gráficos e personalizações.

Ver métricas na página de detalhes da instância

Para conferir as métricas de uma instância específica:

  1. Acesse a página Instâncias no console do Google Cloud .

    Acesse "Instâncias"

  2. Clique na instância para ver as métricas. A página Detalhes da instância aparece.

  3. Clique na guia Monitoramento. O painel padrão é exibido.

Ver métricas no Cloud Monitoring

Para conferir as métricas do Managed Lustre no Cloud Monitoring, faça o seguinte:

  1. Acesse a página do Metrics Explorer no console do Google Cloud .

    Acesse Monitoring: Metrics Explorer

  2. Siga as instruções em Criar gráficos com o Metrics Explorer para selecionar e exibir suas métricas.

Configurar alertas

É possível configurar políticas de alertas no Cloud Monitoring para receber notificações quando o sistema de arquivos Managed Lustre atender a condições específicas, como exceder a capacidade de armazenamento ou os limites de capacidade de processamento.

Pré-requisitos

Para criar políticas de alertas, é necessário ter o papel do IAM Editor do Monitoring (roles/monitoring.editor) no projeto.

Criar uma política de alerta

Para configurar um alerta, defina uma condição usando uma métrica ou uma consulta do PromQL e configure canais de notificação.

  1. No console Google Cloud , acesse a página Alertas no console Google Cloud .

    Acessar Monitoring: alertas

  2. Clique em + Criar política.

  3. Selecione Criador e escolha sua métrica ou selecione Editor de código para inserir uma consulta com PromQL. No seletor de métricas, as métricas do Managed Lustre estão nos recursos Instância do Lustre e Local do Lustre.

  4. Configure a lógica de acionamento e defina os canais e as configurações de notificação.

  5. Clique em Criar política.

Para mais informações sobre como criar gatilhos e outras opções, consulte:

Exemplo: criar um alerta de capacidade de armazenamento

O exemplo a seguir demonstra como criar um alerta que é acionado quando a instância do Managed Lustre excede 80% da capacidade provisionada.

  1. No console Google Cloud , acesse a página Alertas no console Google Cloud .

    Acessar Monitoring: alertas

  2. Clique em + Criar política.

  3. Selecione Editor de código.

  4. No Editor de consultas, cole a seguinte consulta em PromQL:

    (
      sum by (instance_id, location) (lustre_googleapis_com:instance_capacity_bytes)
      -
      sum by (instance_id, location) (lustre_googleapis_com:instance_available_bytes)
    )
    /
    sum by (instance_id, location) (lustre_googleapis_com:instance_capacity_bytes)
    > 0.8
    

    Essa consulta calcula a proporção de uso em todas as instâncias: (Total - Available) / Total. O valor 0.8 representa o total de bytes que atingem 80% de uso. Para receber um alerta quando o uso atingir 90%, mude esse valor para 0.9.

  5. Clique em Executar consulta para verificar a sintaxe e conferir um gráfico da proporção de uso atual.

  6. Clique em Próxima e configure o gatilho como Qualquer série temporal viola.

  7. Clique em Próxima. Na seção Documentação, adicione ações recomendadas para resolver o problema de capacidade. Exemplo:

    ## Action Required: Lustre Capacity Warning
    The Managed Lustre instance is exceeding 80% capacity usage.
    
    **Metric:** Usage Ratio > 0.8
    **Severity:** Warning
    
    **Recommended Actions:**
    1. Check the instance details in the Google Cloud console.
    2. Verify if this is expected data growth or a runaway process.
    3. If valid, consider expanding the storage capacity of the instance or deleting old data to free up space.
    4. Failure to address this may result in "No Space Left on Device" errors for client applications.
    

Criar uma política de alertas com a gcloud

É possível criar políticas de alertas usando a Google Cloud CLI. Edite o alerta no console Google Cloud mais tarde para ativar canais de notificação específicos.

O exemplo a seguir cria um alerta de capacidade de 80% usando gcloud:

gcloud monitoring policies create \
  --policy-from-file=/dev/stdin <<EOF
{
  "displayName": "Lustre High Capacity Usage (>80%)",
  "severity": "WARNING",
  "combiner": "OR",
  "conditions": [
    {
      "displayName": "Capacity Usage Ratio > 0.8",
      "conditionPrometheusQueryLanguage": {
        "query": "(sum by (instance_id, location) (lustre_googleapis_com:instance_capacity_bytes) - sum by (instance_id, location) (lustre_googleapis_com:instance_available_bytes)) / sum by (instance_id, location) (lustre_googleapis_com:instance_capacity_bytes) > 0.8",
        "duration": "300s",
        "evaluationInterval": "60s",
        "alertRule": "AlwaysOn"
      }
    }
  ],
  "documentation": {
    "content": "Action Required: The Managed Lustre instance is exceeding 80% capacity usage. Please verify if storage expansion is required.",
    "mimeType": "text/markdown"
  }
}
EOF

Detalhes sobre métricas

As métricas do Managed Lustre são anexadas aos seguintes tipos de recursos monitorados:

  • lustre.googleapis.com/Instance
  • lustre.googleapis.com/Job
  • lustre.googleapis.com/QuotaEntity

Os dados são amostrados a cada 60 segundos. Após a amostragem, os dados podem não ficar visíveis por até 180 segundos.

Métricas de capacidade de armazenamento

Métricas relacionadas ao espaço de armazenamento disponível e provisionado no seu sistema de arquivos Lustre.

Para rótulos de métricas, o valor de target usa o formato <fsname>-<TYPE><HEXA>, em que <HEXA> é o índice baseado em zero do destino em hexadecimal. Por exemplo, se o nome do seu sistema de arquivos for filesys, o 43º OST será filesys-OST002a e o 4º MDT será filesys-MDT0003.

As métricas de capacidade de armazenamento são anexadas ao recurso lustre.googleapis.com/Instance.

Métrica Descrição Detalhes
available_bytes O número de bytes de espaço de armazenamento para um determinado destino de armazenamento de objetos (OST) ou destino de metadados (MDT) disponível para usuários não raiz. Nome de exibição:bytes disponíveis
Tipo de métrica:MEDIDOR
Tipo de valor:INT64
Unidade:bytes
Rótulos:
component: o tipo de destino: ost, mdt ou mgt.
target: o nome do destino.
capacity_bytes O número de bytes provisionados para o destino especificado. O espaço total de dados ou metadados utilizáveis do cluster para uma instância pode ser obtido adicionando a capacidade de todos os destinos para um determinado tipo de destino. Nome de exibição:bytes de capacidade
Tipo de métrica:MEDIDOR
Tipo de valor:INT64
Unidade:bytes
Rótulos:
component: o tipo de destino: ost, mdt ou mgt.
target: o nome do destino.
free_bytes O número de bytes de espaço de armazenamento para um determinado OST ou MDT que está disponível para usuários root. Nome de exibição:bytes livres
Tipo de métrica:MEDIDOR
Tipo de valor:INT64
Unidade:bytes
Rótulos:
component: o tipo de destino: ost, mdt ou mgt.
target: o nome do destino.

Métricas de inode (objeto)

Métricas relacionadas ao número de inodes (objetos) disponíveis e à capacidade máxima.

As métricas de inode são anexadas ao recurso lustre.googleapis.com/Instance.

Métrica Descrição Detalhes
inodes_free O número de inodes (objetos) disponíveis na meta especificada. Nome de exibição:inodes livres
Tipo de métrica:MEDIDOR
Tipo de valor:INT64
Unidade:inodes
Rótulos:
component: o tipo de destino.
target: o nome do destino.
inodes_maximum O número máximo de inodes (objetos) que o destino pode conter. Nome de exibição:número máximo de inodes
Tipo de métrica:MEDIDOR
Tipo de valor:INT64
Unidade:inodes
Rótulos:
component: o tipo de destino.
target: o nome do destino.

Métricas de desempenho de E/S

Métricas que fornecem insights sobre taxas de transferência de dados e latência de operação.

As métricas de desempenho de E/S são anexadas ao recurso lustre.googleapis.com/Instance.

Métrica Descrição Detalhes
io_time_milliseconds_total O número de operações de leitura ou gravação cuja latência está dentro dos intervalos de latência agrupados. Nome de exibição:latência da operação
Tipo de métrica:CUMULATIVE
Tipo de valor:INT64
Unidade:operations
Rótulos:
component: o tipo de destino.
operation: o tipo de operação.
size: o intervalo de latência agrupado em buckets. Por exemplo, 512 inclui a contagem de operações que levaram entre 512 e 1024 milissegundos.
target: o nome do destino.
read_bytes_total O número de bytes de dados lidos do OST especificado. Nome de exibição: bytes lidos de dados
Tipo de métrica: CUMULATIVE
Tipo de valor: INT64
Unidade: bytes
Rótulos:
component: o tipo de destino, sempre ost.
operation: o tipo de operação: read.
target: o nome do destino.
read_samples_total O número de operações de leitura realizadas no OST especificado. Nome de exibição: operações de leitura de dados
Tipo de métrica: CUMULATIVE
Tipo de valor: INT64
Unidade: operações
Rótulos:
component: o tipo de destino, sempre ost.
operation: o tipo de operação: read.
target: o nome do destino.
write_bytes_total O número de bytes de dados gravados no OST especificado. Nome de exibição: bytes de gravação de dados
Tipo de métrica: CUMULATIVE
Tipo de valor: INT64
Unidade: bytes
Rótulos:
component: o tipo de destino, sempre ost.
operation: o tipo de operação: write.
target: o nome do destino.
write_samples_total O número de operações de gravação realizadas no OST especificado. Nome de exibição: operações de gravação de dados
Tipo de métrica: CUMULATIVE
Tipo de valor: INT64
Unidade: operações
Rótulos:
component: o tipo de destino, sempre ost.
operation: o tipo de operação: write.
target: o nome do destino.

Métricas de conexão do cliente

Métricas específicas para entender a conectividade do cliente.

As métricas de conexão do cliente são anexadas ao recurso lustre.googleapis.com/Instance.

Métrica Descrição Detalhes
connected_clients O número de clientes conectados ao MDT especificado. Nome de exibição:clientes conectados
Tipo de métrica:MEDIDOR
Tipo de valor:INT64
Unidade:clientes
Rótulos:
component: o tipo de destino. Esse valor é sempre mdt.
target: o nome do MDT.

Métricas de cota do sistema de arquivos

Com as métricas de cota do sistema de arquivos, é possível monitorar o armazenamento e o consumo de inode para usuários, grupos e projetos específicos. Use essas métricas para acompanhar o uso atual em relação aos limites flexíveis e rígidos configurados no seu sistema de arquivos.

As métricas de cota do sistema de arquivos estão associadas ao recurso monitorado lustre.googleapis.com/QuotaEntity.

Métrica Descrição Detalhes
used_bytes O número total de bytes consumidos pelo usuário, grupo ou projeto. Nome de exibição:bytes usados da cota
Tipo de métrica:GAUGE
Tipo de valor:INT64
Unidade:bytes
Rótulos:
accounting_type: um de user, group ou project.
id: o ID numérico do usuário, grupo ou projeto.
target: o nome do dispositivo de destino do Lustre.
soft_limit_bytes O limite de consumo de armazenamento que aciona um período de carência. Se o uso permanecer acima desse limite após o término do período de carência, ele se tornará um limite rígido aplicado. Nome de exibição:Quota soft limit bytes
Tipo de métrica:GAUGE
Tipo de valor:INT64
Unidade:Bytes
Rótulos:
accounting_type: um de user, group ou project.
id: o ID numérico do usuário, grupo ou projeto.
target: o nome do dispositivo de destino do Lustre.
hard_limit_bytes O uso máximo do armazenamento permitido para o usuário, grupo ou projeto. As gravações que excedem esse limite são negadas. Nome de exibição:Quota hard limit bytes
Tipo de métrica:GAUGE
Tipo de valor:INT64
Unidade:bytes
Rótulos:
accounting_type: um de user, group ou project.
id: o ID numérico do usuário, grupo ou projeto.
target: o nome do dispositivo de destino do Lustre.
used_inodes O número total de inodes (registros de arquivos) consumidos atualmente pelo usuário, grupo ou projeto. Nome de exibição:cota de inodes usados
Tipo de métrica:GAUGE
Tipo de valor:INT64
Unidade:Count
Rótulos:
accounting_type: um de user, group ou project.
id: o ID numérico do usuário, grupo ou projeto.
target: o nome do dispositivo de destino do Lustre.
soft_limit_inodes O limite de consumo de inode que aciona um período de carência. Se o uso permanecer acima desse limite após o término do período de carência, ele se tornará um limite rígido aplicado. Nome de exibição:limite flexível de cota inodes
Tipo de métrica:GAUGE
Tipo de valor:INT64
Unidade:Count
Rótulos:
accounting_type: um de user, group ou project.
id: o ID numérico do usuário, grupo ou projeto.
target: o nome do dispositivo de destino do Lustre.
hard_limit_inodes O número máximo de nós-i permitido para o usuário, grupo ou projeto. A criação de arquivos que excedam esse limite será negada. Nome de exibição:limite máximo de cota inodes
Tipo de métrica:GAUGE
Tipo de valor:INT64
Unidade:Count
Rótulos:
accounting_type: um de user, group ou project.
id: o ID numérico do usuário, grupo ou projeto.
target: o nome do dispositivo de destino do Lustre.

Métricas do Jobstats

Métricas que fornecem estatísticas de leitura, gravação e metadados por JobID, conforme configurado no cliente.

Para coletar essas métricas, use lctl para configurar o parâmetro jobid_var nos clientes do Lustre. Para mais informações, consulte Lustre Jobstats (em inglês).

Para configurar o cliente para informar um identificador específico (por exemplo, procname_uid), use o comando lctl set_param jobid_var:

lctl set_param jobid_var=procname_uid

As métricas do Jobstats são anexadas ao recurso lustre.googleapis.com/Job.

Métrica Descrição Detalhes
read_bytes_total O número total de bytes lidos pelo job. Nome de exibição:bytes de dados lidos por job
Tipo de métrica:CUMULATIVE
Tipo de valor:INT64
Unidade:bytes
Rótulos:
job_id: o JobID enviado pelo cliente.
component: o tipo de destino.
target: o nome do destino.
instance_id: o ID da instância do Managed Lustre.
write_bytes_total O número total de bytes gravados pelo job. Nome de exibição:bytes de gravação de dados por job
Tipo de métrica:CUMULATIVE
Tipo de valor:INT64
Unidade:bytes
Rótulos:
job_id: o JobID enviado pelo cliente.
component: o tipo de destino.
target: o nome do destino.
instance_id: o ID da instância do Managed Lustre.
metadata_operations_total Total de operações de metadados realizadas pelo job. Nome de exibição:Metadata operations by job
Tipo de métrica:CUMULATIVE
Tipo de valor:INT64
Unidade:operations
Rótulos:
job_id: o JobID enviado pelo cliente.
component: o tipo de destino.
target: o nome do destino.
instance_id: o ID da instância do Managed Lustre.
read_samples_total O número total de operações de leitura realizadas pelo job. Nome de exibição:operações de leitura de dados por job
Tipo de métrica:CUMULATIVE
Tipo de valor:INT64
Unidade:operations
Rótulos:
job_id: o JobID enviado pelo cliente.
component: o tipo de destino.
target: o nome do destino.
instance_id: o ID da instância do Managed Lustre.
write_samples_total O número total de operações de gravação realizadas pelo job. Nome de exibição:operações de gravação de dados por job
Tipo de métrica:CUMULATIVE
Tipo de valor:INT64
Unidade:operations
Rótulos:
job_id: o JobID enviado pelo cliente.
component: o tipo de destino.
target: o nome do destino.
instance_id: o ID da instância do Managed Lustre.
read_maximum_size_bytes O tamanho máximo em bytes das operações de leitura feitas pelo job. Nome de exibição:tamanho máximo de leitura de dados por job
Tipo de métrica:GAUGE
Tipo de valor:INT64
Unidade:bytes
Rótulos:
job_id: o JobID enviado pelo cliente.
component: o tipo de destino.
target: o nome do destino.
instance_id: o ID da instância do Managed Lustre.
read_minimum_size_bytes O tamanho mínimo em bytes das operações de leitura feitas pelo job. Nome de exibição:tamanho mínimo de leitura de dados por job
Tipo de métrica:GAUGE
Tipo de valor:INT64
Unidade:bytes
Rótulos:
job_id: o JobID enviado pelo cliente.
component: o tipo de destino.
target: o nome do destino.
instance_id: o ID da instância do Managed Lustre.
write_maximum_size_bytes O tamanho máximo em bytes das operações de gravação do job. Nome de exibição:tamanho máximo de gravação de dados por job
Tipo de métrica:GAUGE
Tipo de valor:INT64
Unidade:bytes
Rótulos:
job_id: o JobID enviado pelo cliente.
component: o tipo de destino.
target: o nome do destino.
instance_id: o ID da instância do Managed Lustre.
write_minimum_size_bytes O tamanho mínimo em bytes das operações de gravação do job. Nome de exibição:tamanho mínimo de gravação de dados por job
Tipo de métrica:GAUGE
Tipo de valor:INT64
Unidade:bytes
Rótulos:
job_id: o JobID enviado pelo cliente.
component: o tipo de destino.
target: o nome do destino.
instance_id: o ID da instância do Managed Lustre.