Grafana: отображение времени пинга

К сожалению Grafana не хранит данные, и сама опрашивать ничего не умеет. Она может лишь красиво нарисовать картинку на основании данных из какого то источника. Посему сначала сделаем скрипт, который ложит данные о пинге в БД MySQL:

Структура таблицы БД:

Поместим выполнение этого скрипта например в крон, и далее настроим отображение на стороне Grafana:

Добавим «отсечку» 200мл, «красная линия»:

И чуть сгладим линии:

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

Python: получение по протоколу snmp данных о разрыве на Ethernet соединении.

Применимо в основном для управляемых свичей Dlink/Orion

Принципиальный код:

Вывод в консоли будет вида:

Код не мой, предоставлен postcoder для «истории» 😉

MySQL: выборка последних значений таблицы с группировкой по колонке

Задача: выбрать последние по дате значения в таблице для каждого значения в колонке source

Решение: запрос получается с соединением. Т.е. в соединении мы делаем запрос максимальных дат с группировкой по source, а затем соединяем по дате и значению source

postgresql: выполнение запроса из командной строки

Задача: периодически необходимо подрезать логи

Решение: самое простое подготовить скрипт на bash и разместить ссылку на его выполнение в crontab:

Insert или Update если не уникальная запись

Маленькая напоминалка . Синтаксис pgsql чуть отличается от mysql.

Задача: если запись не уникальна в таблице, то просто обновить дату последнего обновления.

MySQL:

PostgreeSQL:

Уникальным должен быть объявлен столбец ssid

1 4 5 6 7 8 55