Сохранить событие для подсчета данных для разработки панелей мониторинга - PullRequest
0 голосов
/ 10 марта 2020

У меня есть вопрос о том, как делать подсчеты для отображения информации в информационных панелях.

Вот проблема: мы используем MongoDB, где мы храним документы с большим количеством информации (эти данные включают в себя массивы). Таким образом, счетчики в этой коллекции mon go не имеют хорошей производительности (на самом деле, это действительно плохая производительность даже при создании индекса при работе с огромным количеством данных).

Мы сохраняем данные в mon go через службу, которая читает сообщения из очереди. Идея состоит в том, что этот сервис подсчитывает количество сообщений (каждое сообщение является массивом сообщений) и где-то обновляет счетчик. Потому что это плохая практика, мы имеем дело с сохранением событий где-то (возможно, с помощью InfluxDB) и затем выполняем подсчет там.

Что ты думаешь? Какие-нибудь решения для этого? Я читал кое-что о Prometheus, однако я думаю, что этот инструмент используется для метрик, поэтому мы не можем выполнять подсчеты с фильтрами, например.

Другое решение, о котором я читал, - это создать коллекцию с двумя полями o-дерева (например, дата, имя события, категория) и определить их все как индекс, а затем выполнить вставки для каждого события, чтобы выполнять запросы к этой коллекции, например, db.collection.count (category = x).

Большое спасибо заранее. С наилучшими пожеланиями.

...