Метрики Stackdriver, основанные на журналах - нужная сумма за период выравнивания - PullRequest
0 голосов
/ 24 января 2019

У нас есть несколько записей в журнале стека-драйверов, которые выглядят примерно так:

{
  insertId:  "xyz"  
  jsonPayload: {
    countOfApples:  100   
    // other stuff
    }
  // other stuff
}

Мы хотели бы иметь возможность настроить метрику на основе журнала, которая сообщает нам общее количество яблок, замеченных за последние 10 минут (или любой период выравнивания), но я до сих пор не смог найти средство несмотря на прочтение документации.

Попытка 1:

Фильтр для тех записей журнала, где указано countOfApples, и создание метрики Counter с countOfApples в качестве метки.

сделав это, я могу отфильтровать , основываясь на том, что countOfApples выше или ниже определенного значения. Я не вижу средства агрегирования на основе этого значения. Кажется, что все параметры агрегации применимы к количеству записей журнала, соответствующих фильтру, за период выравнивания

Попытка 2:

Фильтр для тех записей журнала, где указано countOfApples, и создайте метрику дистрибутива с именем поля, установленным в jsonPayload.CountOfApples

Кажется, это ближе, потому что теперь я могу видеть количество яблок в проводнике метрик, но не могу найти правильную комбинацию Aligner / Reducers, чтобы просто дать мне общее количество яблок за период? Выбор Aligner: delta & Reducer: sum приводит к сообщению об ошибке:

Эта агрегация не создает действительный тип данных для линейного графика. тип. Нажмите здесь, чтобы переключить выравниватель на сумму и редуктор на 99 процентиль

Можно ли просто отслеживать общую сумму всех этих значений за каждый период выравнивания?

1 Ответ

0 голосов
/ 03 мая 2019

По состоянию на 2019/05/03 невозможно создать метрику счетчика на основе значений, хранящихся в журналах. Помещение значений в метку просто представляет их в виде строк, что позволяет фильтровать, но не выполнять агрегирование на основе этих значений. Согласно документации метрика счетчика учитывает записи журнала, а не значения в этих записях журнала. Как вы заметили, в метриках распространения недостаточно операций, чтобы делать то, что вы хотите.

Пока что вам лучше всего написать свою собственную метрику на основе этих значений журнала. Вы можете сделать это, экспортировав свои журналы в Cloud Pub / Sub и написав некоторый код для обработки журналов из Pub / Sub и отправив пользовательские метрики . В качестве альтернативы вы можете попытаться настроить агент мониторинга Stackdriver для извлечения значений с помощью плагина tail и отправлять их в виде пользовательских метрик .

Если вам просто нужно построить график и изучить значения (а не, например, использовать их для оповещения), вы можете попробовать Cloud Datalab .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...