Datadog - группировка по подстроке логов - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь создать визуализацию «Top List» в DataDog, и я хотел бы построить график своих данных, которые должны быть сгруппированы по коду ошибки. Этот код ошибки является подстрокой в ​​журналах. Пример строки в журнале приведен ниже. Я пытался сгруппировать свои данные по сообщениям, но это не работает, я хотел бы сгруппировать свои данные по подстроке сообщения. Кто-нибудь может мне помочь?

... Ошибка сервера {"error": {"code": 1001, "type": "MATCH", "message": "Invoke fail: Failed ... ... Ошибка сервера {"error": {"code": 2001, "type": "MATCH", "message": "Ошибка вызова: сбой ...

В настоящее время Я получаю визуализацию в следующем виде ошибки 1001 и 1.0 будут возникать с ошибкой 2001

1 Ответ

0 голосов
/ 24 февраля 2020

Сначала вы хотите убедиться, что ваши журналы хорошо структурированы (что вы можете контролировать в конвейерах обработки данных Datadog ). По сути, вы захотите разобрать значения «кода» в некоторый атрибут «кода ошибки».

Если ваши события журнала имеют такой формат ...

2020-01-01 12:10:10 myservername - Server Error {"error":{"code":1001,"type":"MATCH","message":"Invoke failed: Failed"}}

... Тогда все, что вам нужно, это довольно простое правило синтаксического анализатора grok, благодаря фильтру "json" функция. Нечто подобное может привести вас туда, куда вы хотите (обратите внимание на часть %{data::json}, это то, что анализирует в журнале JSON).

myrulename %{date("yyyy-mm-dd' 'HH:MM:ss"):timestamp} %{notSpace:hostname} - Server Error %{data::json}

После того, как вы настроили это, ваши журналы также будут иметь атрибут «error.code» со значением 2001 или 1001 или любым другим.

Второй вам нужно создать фасет для этого нового атрибута error.code, чтобы вы могли создать топлист / timeseries / et c , графики сгруппированы по вашему фасету "код ошибки" .

...