Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Grafana

7 постов сначала свежее
10
mimokrokodilchik
mimokrokodilchik
1 год назад

Используем Grafana для визуализации данных. Часть 3. Заключительная⁠⁠

В предыдущих двух статьях (первая, вторая) мы:

  • Запустили графану в докере

  • Запустили базу данных в докере

  • Подключили графану к базе

  • Подготовили данные используя Transform Data

  • Построили несколько графиков

В этой части мы построим еще три графика:

  • Gauge (Вроде приборной панели в машине)

  • GeoMap (Карта)

  • Stat (Квадраты с цифрами и буквами :D)

Gauge возможно один из самых популярных инструментов.

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

  • Если средняя зарплата меньше 8000 то мы хотим видеть её зеленым светом

  • Если средняя зарплата равна или больше 10000 то мы хотим увидеть красный цвет

  • Также иметь возможность выйти за границы 10000 (до 12000) на тот случай если значение оказалось больше максимального.

Пишем запрос для получения всех зарплат

SELECT salary FROM employees

Преобразуем данные используя Transform Data

(чисто для практики, среднюю зарплату мы могли получить и запросом):

  1. Выбираем Transform Data => Reduce

  2. Mode: Reduce fields

  3. Calculations = Mean (среднее значение).

Выбираем график Gauge

Получаем следующий график (и это не то, что мы хотим):

Используем Grafana для визуализации данных. Часть 3. Заключительная Программирование, IT, Программист, Telegram, Grafana, Длиннопост

В графике не хватает характеристик предельных значений и палитры.

Чтобы добавить верхнюю границу нужно зайти в настройки графика и выбрать следующие настройки :

Thresholds

  • Указать Thresholds mode - Absoulte

  • Нажать Add threshould указать значение 10000 и отметить красным

  • Нажать Add threshould указать значение 8000 и отметить желтым

Standart Options

  • Указать Min - 0

  • Указать Max - 12000

Результатом будет вот такая картина:

Используем Grafana для визуализации данных. Часть 3. Заключительная Программирование, IT, Программист, Telegram, Grafana, Длиннопост

Зеленая - до 8000, до 1000 - желтая и после 10000 - красная.

Визуализируем данные на карте - GeoMap

Для данного графика в базе нет достаточно данных, поэтому координаты мы сгенерируем сами прямо внутри запроса. Карта богата возможностями, они описаны тут

Запрос длинный поэтому я просто прикреплю его вот по этой ссылке. Если запустить этот запрос и посмотреть данные то получится следующая картина. В нашем случае нам нужны были колонки latitude/longitude те ширина и долгота.

Используем Grafana для визуализации данных. Часть 3. Заключительная Программирование, IT, Программист, Telegram, Grafana, Длиннопост

Три сотрудника живущие неподалеку где то в США (ширина и долгота имеют разброс но небольшой)

Слегка преобразуем карту:

  • В настройках Map Layers выберем Tax Label Field - Employee Name

  • Map view - view: North America, zoom - 4.5

Результатом будет карта:

Используем Grafana для визуализации данных. Часть 3. Заключительная Программирование, IT, Программист, Telegram, Grafana, Длиннопост

Карта далека от идеала, я думаю имеет смысл еще поиграться с настройками. Но для первого раза неплохо.

Строим сколько человек работает в каждом департаменте (точнее городе где он расположен) Используем график Stat.

Сначала пишем запрос:

SELECT city, COUNT(employee_id) as employee_count

FROM employees e

JOIN departments d ON e.department_id = d.department_id

JOIN locations l ON d.location_id = l.location_id

GROUP BY city;

Теперь выбираем график - Stat и правим настройки

  • Value options: fields - employee_count

  • Stat styles: color mode - background gradient

В результате получаем вот такую картину:

Используем Grafana для визуализации данных. Часть 3. Заключительная Программирование, IT, Программист, Telegram, Grafana, Длиннопост

Вместо заключения.

Фокус этой статьи был на работе с графиками. Графана во многом заточена под снятие и визуализацию данных в реальном времени с логов и программ. Если тема зайдет я раскрою больше возможностей. Всем кому интересна разработка добро пожаловать в мой телеграм канал.

Показать полностью 5
[моё] Программирование IT Программист Telegram Grafana Длиннопост
4
37
mimokrokodilchik
mimokrokodilchik
1 год назад
Лига программистов

Используем Grafana для визуализации данных. Часть 2. Преобразуем данные с помощью Transform Data⁠⁠

В предыдущем посте мы запустили графану и базу данных. Подключили датасурс и теперь можем строить наши графики. Теперь давайте построим несколько графиков изображенных ниже.

Используем Grafana для визуализации данных. Часть 2. Преобразуем данные с помощью Transform Data IT, Программист, Telegram, Grafana, Длиннопост

Как сделать так чтобы график отобразился?

Конечной целью обработки данных является "подгонка" этих данных в нужный формат как то - правильный тип имя и количество колонок. Все эти детали можно найти в документации, хотя по моему она далека от идеала.

Начнем с простого - Bar Chart.

Построим график зарплат 50 сотрудников по возрастанию с минимальной зп в 10к. Тут нашей целью будет как минимум одна строковая колонка (мы возьмем имя она будет роль играть оси X) и зарплата (будет играть роль Y, хотя мы можем указать не только зарплату и график отсроит несколько вертикалей).

Сначала возьмем запрос ниже (он не отсортирован намеренно):

SELECT  * FROM  employees LIMIT  50

Теперь построим график, выбрав в списке графиков (сверху справа) Bar Chart:

Используем Grafana для визуализации данных. Часть 2. Преобразуем данные с помощью Transform Data IT, Программист, Telegram, Grafana, Длиннопост

Напротив каждого имени имеется много вертикалей - все цифровые значения.

Чтобы понять что происходит давайте глянем в данные выбрав Table View:

Используем Grafana для визуализации данных. Часть 2. Преобразуем данные с помощью Transform Data IT, Программист, Telegram, Grafana, Длиннопост

Не стоит обращать внимание что данные вроде телефона довольно кривые, это никак нам не помешает.

Теперь чтобы сделать график читаемым, приведем его к нужному типу а для этого надо:

  • Скрыть все колонки кроме зарплаты и имени

  • Отфильтровать зарплаты меньше 10к

  • Отсортировать по росту зарплат от минимальной к максимальной

Transform Data - Одна из ключевых возможностей в Графане.

Используем Grafana для визуализации данных. Часть 2. Преобразуем данные с помощью Transform Data IT, Программист, Telegram, Grafana, Длиннопост

Чтобы использовать преобразование данных нажмите на Transform data (справа от Query)

Для обработки данных есть как минимум два способа

  • Обработать данные внутри запроса и выделить нужные колонки, добавить сортировку итд (И это применимо для всех языков запросов вроде LogQL, PromQL и остальным)

  • Использовать интерфейс Transform Data который позволяет сделать тоже самое (хотя тут я не уверен, думаю первый вариант более гибок) но используя веб интерфейс, кнопки и поля ввода.

Transform Data это конструктор, позволяющий сделать различные преобразования, ниже лишь часть из них:

  • Organize fields - скрыть колонки, переименовать их имена.

  • Sort By - отсортировать

  • Extract fields - "вытащить" поля из данных (например поля из json объекта)

  • Filter by name/values - отфильровать по имени, данным

  • Convert field type - сконвертировать поля (например строку в дату)

  • Limit - ограничить количество записей

Теперь воспользуемся этой возможностью и:

  • Скроем все поля кроме имени и зарплаты (Organize fields)

  • Отсортируем по зарплате (Sort by)

  • Исключим все зарплаты ниже 10 тысяч (Filter data by values)

Используем Grafana для визуализации данных. Часть 2. Преобразуем данные с помощью Transform Data IT, Программист, Telegram, Grafana, Длиннопост

Трансформация данных довольно гибка и удобна.

Bar Chart автоматически построит график тк у него в наличии будет 1 строковая колонка и 1 численная. Это можно заметить по символам A (строковый) и +-х= (число):

Используем Grafana для визуализации данных. Часть 2. Преобразуем данные с помощью Transform Data IT, Программист, Telegram, Grafana, Длиннопост

И так вот результативный график:

Используем Grafana для визуализации данных. Часть 2. Преобразуем данные с помощью Transform Data IT, Программист, Telegram, Grafana, Длиннопост

Изобразим количество сотрудников в каждом департаменте. Pie Chart график.

Для этого ипользуем следующий запрос:

SELECT department_name, COUNT(employee_id) as employee_count

FROM employees as empl inner join departments as dep on empl.department_id = dep.department_id  WHERE department_name is not null GROUP BY department_name;

В данном случае группировку данных я сделал именно через запрос тк посчитал это наиболее простым подходом. Изначально график не может "понять" как его построить, для этого нужно зайти в настройки графика справа и выбрать:

  • Value options - All Values

  • Pie Chart - Name, Value

  • Legend - Legend values - Value, Percent, Placement - Right, Mode - Table

Результатом будет график:

Используем Grafana для визуализации данных. Часть 2. Преобразуем данные с помощью Transform Data IT, Программист, Telegram, Grafana, Длиннопост

Набор вариантов графика довольно большой, во многом интуитивно понятный.

Строим график зависимостей. Сотрудник - Начальник. Node Graph

Данный график вряд ли можно понять без чтения документации. Давайте обратимся к клювомум моменту а именно какие именно колонки и формат ожидает

  • source - номер вершины родителя

  • target - номер вершины наследника

  • id - номер ребра

  • subtitle/title/secondarystat - опциональные данные для визуализации графа.

Строим запрос:

SELECT E.employee_id AS subtitle, E.first_name AS target,

M.employee_id AS title,  M.first_name AS SOURCE,

E.employee_id AS id,

M.salary AS secondarystat  FROM EMPLOYEES E

JOIN EMPLOYEES M ON E.manager_id = M.employee_id;

Результатом работы данного запроса получится таблица, где source будет имя менеджера и target имя подчиненного. Также дополнительным данными укажем зарплату.

Используем Grafana для визуализации данных. Часть 2. Преобразуем данные с помощью Transform Data IT, Программист, Telegram, Grafana, Длиннопост

Результатом будет вот такой граф. График интерактивный и наводя на какую либо ноду можно увидеть зависимости.

Используем Grafana для визуализации данных. Часть 2. Преобразуем данные с помощью Transform Data IT, Программист, Telegram, Grafana, Длиннопост

Думаю для второй части достаточно, в третьей части я опубликую как построить оставшиеся три графика. Кому интересна разработка на Java, добро пожаловать в мою группу в телеграмме.

Показать полностью 9
[моё] IT Программист Telegram Grafana Длиннопост
0
100
mimokrokodilchik
mimokrokodilchik
1 год назад

Используем Grafana для визуализации данных. Подключаем базу данных, строим графики, настраиваем систему оповещения. Часть 1⁠⁠

Grafana это бесплатное решение для визуализации данных. Из коробки она может довольно легко подтянуть данные с логов, баз данных а также приложений.

Используем Grafana для визуализации данных. Подключаем базу данных, строим графики, настраиваем систему оповещения. Часть 1 IT, Программирование, Grafana, Telegram, Длиннопост

Если понять основные моменты работы с графаной то визуализировать данные на ней довольно удобно. Графана довольно мощный инструмент и имеет множество возможностей.

Запускаем Grafana в докере.

Используя докер мы можем запустить графану, чтобы это сделать нужно:

  • Создать файл docker-compose.yaml (содержание будет ниже)

  • Запустить команду docker-compose up -d

Содержание файла доступно по этой ссылке.

Welcome to Grafana.

Через несколько секунд на вашем сервере на 3000 порту будет доступна Grafana. На старте она попросит ввести имя и пароль, введите admin/admin. На первом входе будет необходимо сменить admin пароль. Главная страница будет выглядеть примерно вот так:

Используем Grafana для визуализации данных. Подключаем базу данных, строим графики, настраиваем систему оповещения. Часть 1 IT, Программирование, Grafana, Telegram, Длиннопост

Главная страница графаны.

Прежде чем работать с графаной нам нужны данные. Добавляем DataSource.

Один из ключевых моментов - настройка подключения данных. Есть множество вариантов датасурсов (источников данных) а также соответствующего языка запросов. Например наиболее популярными являются:

  • Prometheus - датасурс для мониторинга метрик с языком PromQL.

  • Loki - датурс для мониторинга логов с языком LogQL

  • InfluxDb - датасурс для хранения временных рядов (хотя она не ограничена этим) с языком InfluxQl.

  • MySQL/PostgreSQL/MSSQL/.. - датасурсы для работы с реляционными базами данных, идет вместе со знакомым многим SQL.

  • Список датасурсов огромен, ниже я вставлю картинку с опциями.

Используем Grafana для визуализации данных. Подключаем базу данных, строим графики, настраиваем систему оповещения. Часть 1 IT, Программирование, Grafana, Telegram, Длиннопост

Только часть доступных datasoure'ов.

Подключаем Postgres DataSource.

Для того чтобы не нагружать читателя и сфокусироваться на построении графиков мы подключим самый простой вариант - Postgres базу данных с относительно популярной схемой - сотрудники.

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

Используем Grafana для визуализации данных. Подключаем базу данных, строим графики, настраиваем систему оповещения. Часть 1 IT, Программирование, Grafana, Telegram, Длиннопост

Этих данных хватит чтобы построить наиболее популярные графики.

Для старта базы данных с нужными данными нужно:

  • Создать файл schema.sql и скопировать туда вот эти строки

  • Создать еще один файл docker-compose.yaml (чтобы не было конфликтов можно создать его в отдельной папке вместе с schema.sql и лучше поменять пароль YOUR_COMPLEX_PASSWORD на что то более серьезное).

  • Запустить команду docker-compose up -d

Интегрируем нашу запущенную базу данных добавляя Postgres DataSource.

Для добавления базы данных нужно нажать Home => Connections => Data sources и затем нажать Add new data source

Используем Grafana для визуализации данных. Подключаем базу данных, строим графики, настраиваем систему оповещения. Часть 1 IT, Программирование, Grafana, Telegram, Длиннопост

После выбора PostgreSQL введите следующие данные как показано ниже (только подставьте IP и пароль который вы выбрали ранее, если ничего не меняли то YOUR_COMPLEX_PASSWORD )

Используем Grafana для визуализации данных. Подключаем базу данных, строим графики, настраиваем систему оповещения. Часть 1 IT, Программирование, Grafana, Telegram, Длиннопост

после ввода данных нажмите Save & test

Строим первый график. Подготовка.

Перед построением графика нужно добавить его в Dashboards. Для этого нажимаем слева Dashboards => New (кнопка справа) => New Dashboard => Add visualization и выбираем созданный ранее PostgresSQL датасурс (ну или как вы его назвали)

Используем Grafana для визуализации данных. Подключаем базу данных, строим графики, настраиваем систему оповещения. Часть 1 IT, Программирование, Grafana, Telegram, Длиннопост
Используем Grafana для визуализации данных. Подключаем базу данных, строим графики, настраиваем систему оповещения. Часть 1 IT, Программирование, Grafana, Telegram, Длиннопост
Используем Grafana для визуализации данных. Подключаем базу данных, строим графики, настраиваем систему оповещения. Часть 1 IT, Программирование, Grafana, Telegram, Длиннопост

Готовим данные для графика.

Теперь мы можем использовать данные из базы для их визуализации. После того как датасурс подключен нам нужно отформатировать данные и "подогонать" их под формат нужный для конкретного графика.

На панели снизу нужно еще раз выбрать PostgresSQL и тогда графана предложит конструктор запросов но честно для SQL запросов мне лично удобнее просто писать текстовый запрос. Чтобы сменить конструктор на текст сменитe Builder => Code (справа сверху)

Используем Grafana для визуализации данных. Подключаем базу данных, строим графики, настраиваем систему оповещения. Часть 1 IT, Программирование, Grafana, Telegram, Длиннопост

Последнее замечание перед написанием графиков.

В нашем случае мы используем SQL язык для обработки данных и он достаточен прост для подготовки данных. В случае интеграции Prometheus, Loki подготовка во многом требует знания языка запросов PromQL и LogQL и они не так очевидны для новичка (но довольно гибки).

Пишем первый запрос - график текущих зарплат и даты трудоустройства.

Чтобы построить график зарплат сотрудников и дат их трудоустроства нам нужно сделать следующий запрос:

SELECT hire_date, salary FROM employees LIMIT 50

после этого нужно нажать Run Query. Также можно нажать сверху справа на поле ввода графиков и затем на кнопку Suggestions. Тогда графана автоматически предложит возможные варианты графиков:

Используем Grafana для визуализации данных. Подключаем базу данных, строим графики, настраиваем систему оповещения. Часть 1 IT, Программирование, Grafana, Telegram, Длиннопост

Думаю для первой части будет достаточно. Во второй части подробнее рассмотрим работу с данными и как именно "подгонять" данные под нужные форматы для графиков.

Кто интересуется айти темой приглашаю в мой телеграм канал, там вы найдете больше информации а также запись стрима где я строю все эти графики (а также использую локи для аналитики логов).

Всем спасибо за внимание, скоро я выложу вторую часть.

Показать полностью 10
[моё] IT Программирование Grafana Telegram Длиннопост
22
Stravnik
Stravnik
1 год назад
Лига Сисадминов

DevOps Workshop: Мониторинг. Linux, ansible, prometheus, grafana и node exporter⁠⁠

В данном воркшопе мы настроим и установим мониторинг Prometheus и Grafana с помощью Ansible. Информации много и подана она в очень сжатом виде. #linux #ansible #prometheus #grafana #node_exporter

Больше видео и постов в тг канале: https://t.me/devops_spb_ru

Примеры кода из видео: https://github.com/DevOps-spb-org/monitoring-webinar

Показать полностью
[моё] Технологии Linux IT DevOps Prometeus Grafana Видео YouTube
37
1
troyilion
troyilion
1 год назад

Вопрос по Grafana⁠⁠

Привет всем. Подскажите с Графаной, пожалуйста. У меня есть график с пингами соединений по конечным точкам, на котором есть пробелы в проверках, которые выделены как Null. Мне нужно отобразить отдельным графиком только вот такие разрывы со значением Null.

Как то можно сделать Null например отрицательным значением, чтоб было сразу видно где разрыв в пинге на графике?

Grafana Linux Текст Нужен совет IT
3
28
Mackedonsky
Mackedonsky
3 года назад
Лига Сисадминов

Мониторинг: avarage time vs percentile⁠⁠

Всем привет! Для всех, кто сталкивался с мониторингом или любым подсчетом большого количества данных, сталкивался с таким понятием как "среднее значение".

Но истинно ли оно?

Мониторинг: avarage time vs percentile IT, Мониторинг, Статистика, Grafana, Длиннопост

Давайте разберем, что есть avg и percentile.

Avg - среднее арифметическое нескольких чисел, сумма этих чисел, которую разделили на количество слагаемых.

Процентиль(он же квантиль) - это определённая часть выборки данных. Чаще всего используют 50, 75, 90, 99 процентили.

Если со средним значением все понятно, то процентиль проще пояснить на примере. Допустим, у нас есть 10 баз данных, на которые стабильно поступают SQL запросы. Мы знаем, что в среднем наша норма ответа на один тяжеловесный запрос около 1000ms в одной БД. Но одна из БД сегодня под повышенной нагрузкой, и не справляется с нагрузкой.

Возьмем значение для последней БД 19000ms. Если считать среднее значение, то выйдет такая картина:

(9000 + 19000) \ 10 = 2 800 ms время выполнения запроса для каждой БД. Что это значит? Имея такую картину, мы первым делом осознаем, что остальные 9 серверов должны были превысить допустимый лимит в условных 1500ms. Но если проверить вручную, то выяснится, что остальные 9 БД обрабатывают тяжеловесный запрос все так же 1000ms.

Возьмем для подсчета 50-й и 99-й процентиль.

Для его подсчета нам потребуется набор входящих данных.

1121; 983; 1200; 891; 1068; 1042; 1000; 1010; 999; 19000;

Считается он по этой формуле:

Мониторинг: avarage time vs percentile IT, Мониторинг, Статистика, Grafana, Длиннопост

Где P-й процентиль списка из N упорядоченных по величине чисел (от меньших к большим) является наименьшее в списке число, которое больше, чем N процентов всех чисел исследуемого ряда. Например, для приведенного выше примера с временем выполнения запроса, 99-й процентиль означает время выполнения, которое больше, чем время выполнения 99% других БД.

50-й процентиль будет равен 1 026, это будет являться истинным средним значением для большинства серверов. Но откидывать из мониторинга последний сервер так же нельзя. Для этого мы считаем 99-й процентиль. Он будет равен 17 398.


Конечно вручную вам считать не придется, так как это умеют делать и системы мониторинга и прочие инструменты.

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

Для визуализации своих метрик я использую grafana. Выглядеть это будет вот так:
Мониторинг: avarage time vs percentile IT, Мониторинг, Статистика, Grafana, Длиннопост

(график просто для примера, он не является визуализацией моих подсчетов)

Краткая мораль avg - зло(в большинстве случаев), процентиль - добро. Всем спасибо за внимание.

P.S. для подсчета процентилей использовался онлайн калькулятор.

Показать полностью 3
[моё] IT Мониторинг Статистика Grafana Длиннопост
9
nekko
nekko
3 года назад
ДЕВОПСИНА

Необыкновенные приключения девопса⁠⁠

Необыкновенные приключения девопса График, DevOps, Приключения, IT юмор, Grafana

источник

[моё] График DevOps Приключения IT юмор Grafana
1
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии