У меня есть файл журнала, содержащий журналы, который выглядит следующим образом:
{"log_time": "2020-05-28 16:09:02", "log_level": "INFO", "event": "register", "login_key": "key1", "email": "user1.email.com", some other fields}
{"log_time": "2020-05-28 16:09:03", "log_level": "INFO", "event": "register", "login_key": "key2", "email": "user2.email.com" some other fields}
{"log_time": "2020-05-28 16:09:05", "log_level": "INFO", "event": "button click", "login_key": "key1", some other fields}
{"log_time": "2020-05-28 16:09:06", "log_level": "INFO", "event": "page view", "login_key": "key2", some other fields}
каждый пользователь получает ключ входа в систему, который регистрируется со всеми его / ее действиями. также первое событие - это событие регистрации, которое содержит адрес электронной почты пользователя.
возможно, я прыгаю здесь над головой, но я пытаюсь создать таблицу в Grafana, которая будет показывать для каждого ключа входа в адрес электронной почты и последнего события . поэтому для этого случая это будет:
login_key email event time
key1 user1@email.com button click 2020-05-28 16:09:05
key2 user2@email.com page view 2020-05-28 16:09:06
Я попытался создать таблицу, используя Loki в качестве источника данных с соответствующими производными полями, но не смог выполнить агрегацию или даже показать в таблице те поля, которые я хотел .
какие-нибудь идеи о том, как это сделать, используя локи или даже другой источник данных? Я думал попробовать его с elasticsearch, мой файл журнала не такой большой и настроить все filebeat-logsta sh -elasticsearch, так как это кажется немного накладными расходами. Я даже думал написать сценарий python для генерации таблицы и сохранения ее в моем postgres, который уже подключен к графане, но кажется неправильным.
любая помощь будет очень признательна