Observação:

Monitore a utilização do disco usando métricas personalizadas do Oracle Cloud Infrastructure

Introdução

Os serviços da plataforma Oracle Observability and Management permitem que os clientes monitorem, analisem e gerenciem aplicativos multicloud e ambientes de infraestrutura. Ele usa métricas para monitorar recursos e alarmes para notificá-lo quando essas métricas atenderem aos acionadores especificados pelo alarme. As métricas são emitidas para o serviço Monitoring como pontos de dados brutos ou pares de timestamp-valor, junto com dimensões e metadados.

As métricas vêm de uma variedade de fontes:

  1. Métricas de recursos postadas automaticamente pelos recursos do Oracle Cloud Infrastructure (OCI). Por exemplo, CpuUtilization.
  2. Métricas personalizadas publicadas usando a API do Monitoring.

Objetivo

Monitore a utilização do disco usando métricas personalizadas do OCI.

Pré-requisitos

Tarefa 1: Criar o arquivo Python

  1. Crie disk_usage.py na instância de computação na qual a métrica de utilização de disco precisa ser coletada.

    Observação: Use seu editor de texto preferencial com base no sistema operacional.

  2. Copie o script de amostra abaixo para disk_usage.py.

    # This is a sample python script to post disk utilization custom metric to oci monitoring.
    # Command: python disk_usage.py
       
    import oci,psutil,datetime
    from pytz import timezone
       
    # initialize service client with OCI python SDK
    signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner()
    monitoring_client = oci.monitoring.MonitoringClient(config={}, signer=signer, service_endpoint="https://telemetry-ingestion.ap-mumbai-1.oraclecloud.com")
       
    # get disk usage with psutil
    disk = psutil.disk_usage('/')
    disk_usage=disk.percent
    print(disk_usage)
       
    times_stamp = datetime.datetime.now(timezone('UTC'))
       
    # post custom metric to oci monitoring
    # replace "compartment_ocid“ with your compartmet ocid and srv01 with your compute instance
    post_metric_data_response = monitoring_client.post_metric_data(
       post_metric_data_details=oci.monitoring.models.PostMetricDataDetails(
          metric_data=[
                oci.monitoring.models.MetricDataDetails(
                   namespace="custom_metrics",
                   compartment_id="your_compartment_ocid",
                   name="disk_usage",
                   dimensions={'resourceDisplayName': 'srv01'},
                   datapoints=[
                      oci.monitoring.models.Datapoint(
                            timestamp=datetime.datetime.strftime(
                               times_stamp,"%Y-%m-%dT%H:%M:%S.%fZ"),
                            value=disk_usage)]
                   )]
       )
    )
       
    # Get the data from response
    print(post_metric_data_response.data)
    

    Observação: Consulte comandos psutil para extrair mais métricas personalizadas.

  3. Adicione permissão de execução ao script usando o comando a seguir.

    chmod +x disk_usage.py
    
  4. Atualize o ponto final de ingestão de telelemetria de acordo com sua região.

    Observação: Os pontos finais variam de acordo com a operação. Para postar métricas, use os pontos finais de teste de telemetria.

  5. Atualize o namespace de acordo com seu requisito.

    Observação: Para o namespace de métricas, não use um prefixo reservado (oci_ ou oracle_).

  6. Atualize compartment ocid com o ocid do compartimento e srv01 com sua instância de computação.

  7. Adicione mais métricas no script, se necessário, para coletar a mesma instância de computação. Abaixo está um exemplo para coletar espaço livre em disco em GB.

    # get metric details using psutil
    disk_free=round(disk.free/1024/1024/1024,2)
    print(disk_free)
       
    # Add more metric to post if required
    post_metric_data_response = monitoring_client.post_metric_data(
          post_metric_data_details=oci.monitoring.models.PostMetricDataDetails(
             metric_data=[
                   oci.monitoring.models.MetricDataDetails(
                      namespace="custom_metrics",
                      compartment_id="your_compartment_ocid",
                      name="disk_free",
                      dimensions={'resourceDisplayName': 'srv01'},
                      datapoints=[
                         oci.monitoring.models.Datapoint(
                               timestamp=datetime.datetime.strftime(
                                  times_stamp,"%Y-%m-%dT%H:%M:%S.%fZ"),
                               value=disk_free)]
                      )]
          )
       )
    

Tarefa 2: Publicar dados de métrica personalizados

  1. Execute o script manualmente no CLI para validar o sucesso.

    python disk_usage.py
    
    Output:
    27.1
    {
    "failed_metrics": [],
    "failed_metrics_count": 0
    }
    
  2. Programe o script por meio de uma tarefa cron ou de programação para publicar dados com frequência no serviço de monitoramento do OCI.

    • Adicione os detalhes do script no crontab usando crontab -e em uma instância de computação que não é do Windows.

      Observação: as métricas personalizadas podem ser publicadas com tanta frequência, pois a cada segundo intervalo de agregação mínimo e de um minuto. A melhor prática é publicar métrica personalizada a cada intervalo de 1 minuto ou mais.

      # Cron job example with every 1 min execution.  
      */1 * * * * /usr/bin/python3 /home/opc/disk_usage.py
      
    • Verifique a saída no log cron usando sudo cat /var/log/cron | grep disk.

Tarefa 3: Exibir métrica de utilização de disco usando o explorador de métricas do OCI

  1. Abra o menu de navegação e clique em Observação e Gerenciamento.

  2. Em Monitoramento, clique em Metrics Explorer.

  3. Escolha o compartimento que contém a métrica personalizada que você deseja exibir e clique no nome do namespace de métricas. Por exemplo, custom_metrics.

  4. Em Recursos, clique em Métricas. Selecione nome da métrica, intervalo, nome da dimensão e valor da dimensão.

    explorador de métricas

  5. Clique em Atualizar Gráfico para exibir a métrica personalizada no Metrics Explorer.

Confirmações

Autor - Dipesh Kumar Rathod (Master Principal Arquiteto de Nuvem, Infraestrutura)

Mais Recursos de Aprendizagem

Explore outros laboratórios no site docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.