Как кибана делает красивые и крутые графики?

Kibana

В работе по разработке шлюза неизбежно отслеживание работы сервера 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.4Split SeriesSplit Slices), результаты настройки следующие:

,

Затем щелкните треугольник, указанный стрелкой примера на рисунке выше, и вы увидите эффект:

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

Следующие таблицы не будут такими подробными, просто перечислите соответствующие конфигурации.

2.2. Линейный график

Линейная диаграмма используется для отображения количества каждого запроса в единицу времени в приведенных выше изображениях.Используя функцию классификации кибаны, мы используем следующую конфигурацию:

Добейтесь следующих эффектов:

2.3. Гистограмма

Гистограмма подходит для некоторого контраста или отображения тренда, где мы используем гистограмму для демонстрации количества запросов для нескольких крупных городов или демонстрации каждого городского онлайн-номера с длинным соединением в режиме реального времени, настроенного следующим образом:

Эффект следующий:

3. Отображение агрегации диаграммы

На этот раз мы используем левую строку меню.Dashboard

Затем вы можете собрать все панели одного проекта вместе, чтобы у вас были первые два рендеринга.