MetricInfo - com escopo, global

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 2 min. de leitura
  • A API MetricInfo fornece métodos para verificar se uma métrica está no banco de dados MetricBase e, em caso afirmativo, para relatar sua política de retenção. As políticas de retenção são relatadas em minutos.

    Você pode chamar esta classe em scripts de servidor com escopo e globais. Ao usar a classe MetricInfo, use o identificador de namespace sn_clotho.

    Esta classe faz parte do MetricBase aplicação.

    MetricInfo – MetricInfo (tabela de cadeia de caracteres, métrica de cadeia de caracteres)

    Cria uma instância da classe MetricInfo.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    tabela Cadeia de caracteres Nome da tabela de métricas listado na tabela Métricas de série temporal [sys_metric].
    métrica Cadeia de caracteres Nome do campo de métrica listado na tabela Métricas de série temporal [sys_metric]. Este nome de campo deve ser mapeado para o nome da tabela.

    O exemplo a seguir mostra como construir um objeto MetricInfo com a métrica Altitude (mb_demo_mt_altitude) associada à tabela Drones [mb_demo_drone].

    var metricInfo =  new sn_clotho.MetricInfo('mb_demo_drone','mb_demo_mt_altitude');

    MetricInfo – getRetentionSchedulesInMinutes()

    Obtém os cronogramas da política de retenção da métrica especificada.

    Consulte também políticas de retenção MetricBase.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 3. Retorna
    Tipo Descrição
    Objeto Objeto JSON que contém pares de chave-valor que representam os cronogramas da política de retenção (em minutos) para a métrica especificada listada na tabela Políticas de retenção [sys_metric_retention_policy].
    Para cada programação de política de retenção pertencente à métrica, o objeto contém um par de chave-valor correspondente que mapeia a duração da retenção para o período de amostragem.
    • Chave – Duração da retenção da programação da política de retenção em minutos.

      Tipo de dados: cadeia de caracteres

    • Valor – Período de amostragem da programação da política de retenção em minutos.

      Tipo de dados: número

    "<retentionDuration>": <samplingPeriod>

    O exemplo a seguir mostra como fazer um loop sobre os cronogramas da política de retenção e compilar uma mensagem de log. A mensagem contém as durações de retenção convertidas de minutos para dias com os períodos de amostragem correspondentes.

    // Function to convert minutes to days
    function toDays(minutes) {
     return minutes / 60 / 24;
    };
    
    var metricInfo = new sn_clotho.MetricInfo('mb_demo_drone','mb_demo_mt_altitude');
    var schedules = metricInfo.getRetentionSchedulesInMinutes();
    var log = '';
    
    // Compiles a log message with retention schedules
    for (var duration in schedules) {
     log += "Retention duration is: " + toDays(duration) +
     " days, Sampling period is: " + schedules[duration] + " minutes\n";
    }
    
    gs.info(log);

    Saída:

    Retention duration is: 8 days, Sampling period is: 1 minutes
    Retention duration is: 94 days, Sampling period is: 10 minutes
    Retention duration is: 397 days, Sampling period is: 60 minutes

    MetricInfo – isValid()

    Indica se a métrica especificada está mapeada para a tabela definida em um objeto MetricInfo.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 5. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se a métrica especificada em um objeto MetricInfo está mapeada para a tabela especificada.

    Valores válidos:
    • verdadeiro: a métrica especificada é válida.
    • falso: a métrica ou a tabela especificada não existe ou a métrica não está mapeada para a tabela.

    O exemplo a seguir mostra como verificar se a métrica Altitude (mb_demo_mt_altitude) está na tabela Drones [mb_demo_drone] e retornar sua programação de retenção, se estiver. A saída de exemplo reflete a duração da política em minutos mapeada para o período de amostragem de intervalo.

    var metricInfo =  new sn_clotho.MetricInfo('mb_demo_drone','mb_demo_mt_altitude');
    if (metricInfo.isValid())
    {
      var retentionSchedules = metricInfo.getRetentionSchedulesInMinutes();
      gs.info(JSON.stringify(retentionSchedules, null, 2));
    }
    else
    {
      gs.info("metricInfo is invalid");
    }

    Saída:

    {
      "11520": 1,
      "135360": 10,
      "571680": 60
    }