В работе по разработке шлюза неизбежно отслеживание работы сервера nodejs.Мы можем использовать grafana для отображения работы процесса и трафика nodejs.На следующем рисунке показано текущее состояние одного из наших проектов шлюза (включая ЦП, память , использование стека, цикл событий) Ситуация с задержкой и ситуация с GC (скриншот GC не подходит~)):
Те, кто знаком с этой детской обувью, могут знать Kibana. Многие люди используют kibana для агрегирования и запросов к журналам. На самом деле Kibana имеет много мощных функций. На этот раз мы будем использовать функцию диаграммы Kibana для отображения бизнес-данных проекта и научит вас, как это делать, и вы сделаете красивые статистические диаграммы.
Давайте сначала посмотрим на эффект:
Другой проект:
Вышеупомянутые инструменты имеют открытый исходный код и могут быть развернуты в интранете.Они совершенно бесплатны и могут сэкономить много денег для компании ^_^
1. Предварительные приготовления
Эта подготовка является наиболее важной и определяет, сможете ли вы отобразить диаграмму.
1.1, сгенерировать погребенный файл
bigdata
В каталоге, например, первый рендеринг фокусируется на некоторых данных, запрошенных сервером, поэтому мы используем код для закапывания точек в аналогичном формате:
Используйте фиксированный формат (это формат, согласованный между вами и командой больших данных) и фиксированные поля, поля на приведенном выше рисунке включают в себя следующие: путь, riderId, cityId, тип, входящий, отметка времени, pid, имя хоста, статус , стоимость и т.д. Пока вы хотите обратить внимание на поля, вы можете их в этом зарыть.
this._statLogger.info({ // 这里的_statLogger是一个winston实例
path: req.path,
riderId: req.session.riderId,
cityId: req.session.cityId,
type: 'incoming'
})
...
this._statLogger.info({
path: req.path,
riderId: req.session.riderId,
cityId: req.session.cityId,
type: 'outcoming',
status: 'success',
cost: Date.now() - start
})
Окончательные сгенерированные данные являются результатом приведенного выше рисунка.
1.2, настройте коллекцию скрытых файлов точек и проиндексируйте каждое поле
Эта часть сделана детской обувью команды больших данных, поэтому я не знаю, как с ней работать (закрывая лицо и плача~). Если команды больших данных действительно нет, у Google всегда найдется решение, вы можете проверить официальную документацию на сайте:elastic, Если вы действительно не знаете, оставьте мне сообщение, и я помогу вам спросить ~
В любом случае, конечный результат, который мы хотим, таков:
Итак, все готово, осталось только настроить~
2, конфигурация диаграммы Kibana
На боковой панели Kibana есть два меню для создания и отображения значков, как показано ниже:
нажмитеVisualize
После этого мы видим, что есть+
Кнопка, после нажатия знака плюс, вы можете увидеть, что kibana предоставляет множество отображений диаграмм:
Из-за нехватки места мы говорим только о методах настройки нескольких часто используемых диаграмм, и вы можете делать выводы из других диаграмм. У одного из них есть функция карты, и эффект совсем неплохой, как показано ниже:
2.1. Создание круговой диаграммы
Перед эффектом рисунков мы используем круговую диаграмму отношений, которая интуитивно описывает успехи и неудачи, описанные запросом на передачу, после эффекта рисования мы отправили сообщение, чтобы представить коэффициент распределения соединителя длинного типа, поэтому, несомненно, связанный с показанными пропорциями, используйте круговую диаграмму. это лучший вариант.
После выбора нашего проекта есть такой интерфейс:
Итак, мы начали настраивать, не забудьте нажать на настройку в красном поле выше (Фигурка представляет собой новую версию кибаны.Version: 6.5.4
Split Series
Split Slices
), результаты настройки следующие:
Затем щелкните треугольник, указанный стрелкой примера на рисунке выше, и вы увидите эффект:
Если мы хотим преодолеть указанный диапазон времени или другие интерфейсные модули фильтров, которые вы можете использовать для:
Следующие таблицы не будут такими подробными, просто перечислите соответствующие конфигурации.
2.2. Линейный график
Линейная диаграмма используется для отображения количества каждого запроса в единицу времени в приведенных выше изображениях.Используя функцию классификации кибаны, мы используем следующую конфигурацию:
Добейтесь следующих эффектов:
2.3. Гистограмма
Гистограмма подходит для некоторого контраста или отображения тренда, где мы используем гистограмму для демонстрации количества запросов для нескольких крупных городов или демонстрации каждого городского онлайн-номера с длинным соединением в режиме реального времени, настроенного следующим образом:
Эффект следующий:
3. Отображение агрегации диаграммы
На этот раз мы используем левую строку меню.Dashboard
Затем вы можете собрать все панели одного проекта вместе, чтобы у вас были первые два рендеринга.