Автор Руи Агиар
Что такое Графана?
Графана это программная платформа с открытым исходным кодом для аналитики и мониторинга временных рядов. Вы можете подключить Grafana к большому количеству источников данных, от PostgreSQL до Прометея. Как только ваш источник данных подключен, вы можете использовать встроенный контроль или редактор запросов для получения данных и создать панели панели из вашего источника данных. Графана часто развертывается для широкого спектра вариантов использования, включая DevOps и AdTech.
На Rockset мы в основном используем Grafana для мониторинга наших производственных систем, а также для целей DevOps. Мы отслеживаем широкий спектр показателей, от количества ошибок запросов до использования процессора наших производственных машин. Всякий раз, когда график отклоняется от предопределенной полосы ожидаемых значений, мы запускаем предупреждение, которое может подключаться к чему-то вроде интеграции Pagerduty, которая будет пить инженера по вызову.
Зачем строить плагин?
Как энергетические пользователи Grafana сами, мы долгое время плавали за Графана построить разъем Rockset для Grafana. Из -за реального времени природы RockSet в качестве оперативного аналитического двигателя мы полагали, что плагин Grafana может подходить для широкого спектра проблем и запросов. Мы поняли, что могли бы начать отслеживать множество метрик временных рядов, которые позволили бы получить большую прозрачность в наших технических практиках (например, отслеживая импульс наших GitHub Commits в Master), а также наши внутренние системы, которые мы следим за Rockset (например, события в нашем кластере Kubernetes). Другая причина, по которой плагин Rockset-Grafana полезен, заключается в том, что разработчик приложений может использовать стандартный SQL для получения любых данных через RockSet. Наконец, это было то, что наши клиенты ранее выражали интерес. Принимая во внимание эти точки, создание разъема Grafana казалось очевидным и полезным применением RockSet для улучшения и без того мощного инструмента.
Как построить разъем Grafana
Чтобы построить работающий разъем Grafana, необходимо реализовать сборник методов типографии, а также пользовательский пользовательский интерфейс для извлечения данных из данного данного данных. После того, как плагин был реализован и написано тестовые примеры, он проверяется командой со стороны Grafana и интегрируется в официальный список плагинов.
Функциональность, которую должен реализовать любой разъем Grafana:
- Спецификация данных
При создании плагина вам нужно сначала действительно иметь возможность получить данные, из которых вы будете строить панель мониторинга. Обычно это включает в себя, чтобы пользователь указал URL -адрес подключения API, пароль или подключение к базе данных, чтобы получить данные.
- Пользовательский интерфейс запроса
После указания данных пользователя необходимо иметь возможность запросить этот источник данных. В случае RockSet это включало реализацию пользовательского редактора запросов в HTML и AngularJS, который показан пользователю, когда они создают панель панели с RockSet.
- Выполнение запроса через слой API
После того, как пользователь вводит в запрос, сами данные должны быть фактически извлечены и переданы на уровень визуализации в очень специфическом формате. Это включает в себя общение с Frontend через редактирование запросов пользователя, а также выполнение запросов через API RockSet и постобработка результатов, так что они передаются в визуализацию в соответствующем формате времени.
Строительство плагина Rockset-Grafana
Возвращаясь к шагам, изложенным выше, первое, что мне нужно было сделать при создании разъема RockSet, — это фактически подключить дат данных RockSet. Я создал форму, которая позволила пользователю указать имя плагина, а также ключ API RockSet. Это включало в себя создание формы на Frontend, а также написание метода TestDatasource, который проверил правильный ключ API с помощью тестового запроса на бэкэнд RockSet через быстрый призыв к /v1/orgs/self/users/self/apikeys
Конечная точка в Rockset API, которая гарантировала саму ключ API.
Как только ключ был подтвержден, пришло время построить редактор запросов. В случае RockSet мы должны позволить пользователю вводить произвольный SQL в любую из их коллекций. Кроме того, важно предоставить информативные сообщения об ошибках для синтаксически недействительных запросов или если пользователь запрашивает коллекцию, которая не существует.
Я реализовал редактор запросов с Дебюн
Функция, которая позволила пользователю ввести свой запрос, а затем пауза Так что это может быть выполнено через API RockSet. Запросы проверяются на обоснованность на бэкэнд, а ошибка передается пользователю на фронте, чтобы они могли получить информативное сообщение об ошибке. Кроме того, Grafana требует столбец временного леса, если вы хотите выразить данные с точки зрения графика сверх времени. Время столбца
Box позволяет пользователю указать столбец в своих результатах SQL, который он выбирает, чтобы включить свои оси графика. Формат как
Box — это простой выпадающий список, который позволяет пользователю выражать запрос RockSet в виде временных синдромов или в виде таблицы, и это изменяет форматирование данных, передаваемых на уровне графика.
После того, как запрос был набран, подтвержден и выполнен, данные получены разъемом Графана. К сожалению, мы не можем просто передавать данные в таблицу или график и отобразить их на приборной панели Grafana. Нам необходимо извлечь указанный пользователь столбец временного силока, преобразовать его в Unix Seconds и передать массив объектов JSON в слой визуализации Grafana. Мы также можем разумно предложить столбец Times Shrience, если пользователь указывает только один столбец, который имеет тип DateTime
Анкет
Наконец, как только все шаги запроса и проверки были выполнены, теперь для пользователя плагина возможно визуализировать свои данные, и мы сразу же приступили к тому, что плагин закончил разработан.
Варианты использования и будущая работа
Как только наш плагин был завершен, мы начали использовать его для интересных запросов на RockSet. Одна вещь, на которую мы начали смотреть, это наши внутренние показатели GitHub. В частности, мы начали рассматривать количество открытых проблем каждый час, количество закрытых проблем и количество добавленных или измененных файлов в течение дня в нашей компании.
Мы также начали отслеживать метрики, такие как количество событий Kubernetes в нашем кластере Dev для лучшего понимания отключений и шипов использования.
Эти запросы являются лишь несколькими примерами того, как RockSet можно использовать с Grafana для предоставления понимания в реальном времени на произвольные коллекции данных, и мы рады более широко выполнить этот плагин и посмотреть, как его используют наши клиенты. Чтобы увидеть более подробный вид плагина и начать его использование, ознакомьтесь с Документация Анкет
Оригинал: «https://dev.to/rocksetcloud/grafana-time-series-dashboards-with-the-rockset-grafana-plugin-3nff»