Архив метки: Software

Примеры запросов к метрикам Prometheus

Данную инструкцию можно использовать как шпаргалку для работы с Prometheus в части, касающейся выборки данных (использование PromQL). Мы попробуем описать процесс получения данных, а также будут приведены примеры извлечения наиболее значимых показателей.




Синтаксис запросов




Рассмотрим синтаксис некоторых функций, которые мы будем использовать в нашей инструкции. Проверять все наши запросы можно в веб-интерфейсе прометеуса на странице /graph.




irate или rate




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




irate(<запрос на выборку метрики>[интервал времени, на протяжении которого происходят изменения метрики])




avg by




Среднее значение по условию, например:




avg by (instance)




… среднее для каждого инстанса.




avg_over_time




Среднее значение всех значений для метрик в указанном интервале.




avg_over_time(<запрос на выборку метрики>[интервал])




sum




Функция суммирует полученные результаты:




sum(<запрос на получение значений>)




time




Отображает время в формате UNIX TIME.




time()




count




Считает количество значений:




count(<запрос на получение значений>)




Вместе с by значения могут фильтроваться:




count(<запрос на получение значений>) by (<по какому показателю>)




Арифметические операции




1. С полученными числовыми данными можно выполнять различные математические операции. Например, если мы получим значения времени в секундах, то можно его перевести в часы:




<полученное время> / 60




Или наоборот




<полученное время> * 60




2. Полученный остаток от процентного показателя вычистяется по формуле:




100 - <полученный процент>




Системная информация




Для начала рассмотрим примеры получения общих системных показателей.




Время работы системы (uptime)




Расчет ведется относительно показателя node_boot_time_seconds (время последнего включения системы).




1. Общее время для всех узлов:




sum(time() - node_boot_time_seconds{})




sum(time() - node_boot_time_seconds{}) / 60




* первый запрос в секундах, второй — в минутах.




2. Для некоторых узлов:




sum(time() - node_boot_time_seconds{instance=~"192.168.0.15:9100|192.168.0.20:9100"})




* в данном примере мы получим сумму значений для узлов 192.168.0.15 и 192.168.0.20.




3. Для всех узлов по отдельности:




time() - node_boot_time_seconds{}




* данный запрос выведет на экран несколько значений для каждого из узлов.




Температура




Данная метрика поддерживается не всем оборудованием или средствами виртуализации.




1. Для всех нод:




node_hwmon_temp_celsius




2. Для конкретных:




node_hwmon_temp_celsius{instance=~'192.168.0.15:9100|192.168.0.20:9100'}




Процессор




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




Количество процессоров




1. Общее количество всех процессоров всех узлов:




sum(count(node_cpu_seconds_total{mode='system'}) by (cpu))




2. Для некоторых инстансов:




sum(count(node_cpu_seconds_total{instance=~'192.168.0.15:9100|192.168.0.20:9100',mode='system'}) by (cpu))




* для 192.168.0.15 и 192.168.0.20.




3. По отдельности:




count(node_cpu_seconds_total{mode='system'}) by (instance)




Нагрузка




1. На все ядра всех узлов:




(irate(node_cpu_seconds_total{job="node_exporter_clients",mode="idle"}[5m])) * 100




100 - ((irate(node_cpu_seconds_total{job="node_exporter_clients",mode="idle"}[5m])) * 100)




* первый запрос для отображения процента свободного процессорного времени, второй — процент утилизации.




Пример ответа:




{cpu="0", instance="192.168.0.15:9100", job="node_exporter_clients", mode="idle"} 0.6000000238418579
{cpu="0", instance="192.168.0.20:9100", job="node_exporter_clients", mode="idle"} 0.9999999403953552
{cpu="1", instance="192.168.0.15:9100", job="node_exporter_clients", mode="idle"} 0.6000000238418579
{cpu="1", instance="192.168.0.20:9100", job="node_exporter_clients", mode="idle"} 1.5999999642372131
{cpu="2", instance="192.168.0.15:9100", job="node_exporter_clients", mode="idle"} 0.8000000193715096
{cpu="2", instance="192.168.0.20:9100", job="node_exporter_clients", mode="idle"} 0.8000001311302185
{cpu="3", instance="192.168.0.15:9100", job="node_exporter_clients", mode="idle"} 1.0000000149011612
{cpu="3", instance="192.168.0.20:9100", job="node_exporter_clients", mode="idle"} 0.6000000238418579
{cpu="4", instance="192.168.0.15:9100", job="node_exporter_clients", mode="idle"} 0.19999999552965164
{cpu="4", instance="192.168.0.20:9100", job="node_exporter_clients", mode="idle"} 0.2000001072883606
{cpu="5", instance="192.168.0.15:9100", job="node_exporter_clients", mode="idle"} 0.40000002831220627
{cpu="5", instance="192.168.0.20:9100", job="node_exporter_clients", mode="idle"} 0.3999999165534973
{cpu="6", instance="192.168.0.15:9100", job="node_exporter_clients", mode="idle"} 0.6000000238418579
{cpu="6", instance="192.168.0.20:9100", job="node_exporter_clients", mode="idle"} 0.2000001072883606
{cpu="7", instance="192.168.0.15:9100", job="node_exporter_clients", mode="idle"} 0.19999999552965164
{cpu="7", instance="192.168.0.20:9100", job="node_exporter_clients", mode="idle"} 0.3999999165534973




2. Средняя величина по ядрам для всех узлов:




avg by (instance)(irate(node_cpu_seconds_total{job="node_exporter_clients",mode="idle"}[5m])) * 100




100 - (avg by (instance)(irate(node_cpu_seconds_total{job="node_exporter_clients",mode="idle"}[5m])) * 100)




* первый запрос для отображения процента свободного процессорного времени, второй — процент утилизации.




Пример ответа:




{instance="192.168.0.15:9100"} 0.7999999960884452
{instance="192.168.0.20:9100"} 0.9500000253319598




3. Средняя величина по ядрам для конкретного узла:




avg by (instance)(irate(node_cpu_seconds_total{instance="192.168.0.15:9100",job="node_exporter_clients",mode="idle"}[5m])) * 100




100 - (avg by (instance)(irate(node_cpu_seconds_total{instance="192.168.0.15:9100",job="node_exporter_clients",mode="idle"}[5m])) * 100)




* первый запрос для отображения процента свободного процессорного времени, второй — процент утилизации.




Пример ответа:




{instance="192.168.0.15:9100"} 1.100000003352747




Время ожидания




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




1. Среднее значение за 30 минут для всех узлов:




avg(irate(node_cpu_seconds_total{mode="iowait"}[30m])) * 100




2. Для конкретного узла:




avg(irate(node_cpu_seconds_total{instance=~"192.168.0.15:9100|192.168.0.20:9100",mode="iowait"}[30m])) * 100




3. Отдельно по каждой ноде:




irate(node_cpu_seconds_total{mode="iowait"}[30m]) * 100




Оперативная память




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




  • node_memory_MemTotal_bytes.



  • node_memory_MemFree_bytes.



  • node_memory_Cached_bytes.



  • node_memory_Buffers_bytes.




Рассмотрим примеры.




Объем памяти




1. Для всех узлов:




sum(node_memory_MemTotal_bytes{})




2. Для некоторых:




sum(node_memory_MemTotal_bytes{instance=~"192.168.0.15:9100|192.168.0.20:9100"})




3. По отдельности:




node_memory_MemTotal_bytes{}




Использование памяти




1. Свободно:




100 * (1 - ((avg_over_time(node_memory_MemFree_bytes[5m]) + avg_over_time(node_memory_Cached_bytes[5m]) + avg_over_time(node_memory_Buffers_bytes[5m])) / avg_over_time(node_memory_MemTotal_bytes[5m])))




2. Занято:




100 * ((avg_over_time(node_memory_MemFree_bytes[5m]) + avg_over_time(node_memory_Cached_bytes[5m]) + avg_over_time(node_memory_Buffers_bytes[5m])) / avg_over_time(node_memory_MemTotal_bytes[5m]))




Пример ответа:




{instance="192.168.0.15:9100", job="node_exporter_clients"} 41.96494651116369
{instance="192.168.0.20:9100", job="node_exporter_clients"} 10.573695601658944




Сеть




Мы будем использовать метрики:




  • node_network_receive_bytes_total



  • node_network_transmit_bytes_total




Примеры ниже.




Передача данных




1. Входящий трафик за последние 5 минут:




rate(node_network_receive_bytes_total[5m]) * 8 / 1024 / 1024




2. Иcходящий трафик за последние 5 минут:




rate(node_network_transmit_bytes_total[5m]) * 8 / 1024 / 1024




Дисковый накопитель




Используемые метрики:




  • node_filesystem_size_bytes.



  • node_filesystem_avail_bytes.



  • node_filesystem_free_bytes.



  • node_disk_read_bytes_total.



  • node_disk_written_bytes_total.




Переходим к примерам.




Объемы




1. Объем разделов:




node_filesystem_size_bytes{instance=~'192.168.0.15:9100|192.168.0.20:9100',fstype=~"ext4|xfs"}




node_filesystem_size_bytes{fstype=~"ext4|xfs"}




* для конкретных нод или всех.




2. Объем доступного пространства:




node_filesystem_avail_bytes {fstype=~"ext4|xfs"}




3. Объем в процентах.




Используется:




1 - (node_filesystem_free_bytes{fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"})




Свободно:




node_filesystem_free_bytes{fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"}




Нагрузка




1. Чтение в килобайтах:




rate(node_disk_read_bytes_total{instance="Server10:9100", device="sda"}[5m]) / 1024




irate(node_disk_read_bytes_total{}[30m]) / 1024




* для конкретного сервера / диска и для всех серверов и всех дисков.




2. Запись в килобайтах:




rate(node_disk_written_bytes_total{instance="Server10:9100", device="sda"}[5m]) / 1024




irate(node_disk_written_bytes_total{}[30m]) / 1024




* для конкретного сервера / диска и для всех серверов и всех дисков.




Источник: https://www.dmosk.ru/miniinstruktions.php?mini=prometheus-request



2023-09-04T23:27:41
Software

Различные типы программного обеспечения с примерами

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

Читать

Как проверить файлы журнала VLC

Устранение неполадок с воспроизведением видео в VLC? Вот как вы можете проверить файлы журнала VLC.

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

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

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

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

 

Только проверяйте и сохраняйте журналы VLC

Хотя это звучит сложно, это самый простой метод, который не только позволяет сохранять журналы, но и позволяет читать их, не сохраняя в файл.

Сначала перейдите в меню Tools на верхней панели меню и выберите выбрать Messages, в качестве альтернативы вы также можете нажать Ctrl + M, чтобы сохранить тот же эффект:

Как проверить файлы журнала VLC

 

И он покажет журналы, относящиеся к воспроизводимому в данный момент видеофайлу.

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

Как только вы нажмете на Messages, вы увидите вкладку для детализации, поэтому давайте посмотрим на эффект от множества доступных вам опций детализации.

  • Errors: При этом будут записаны только сообщения об ошибках
  • Warnings: Он завершит работу с сообщениями об ошибках и предупреждениями
  • Debug: Этот уровень будет включать ошибки, предупреждения и сообщения отладки

 

После выбора подходящего параметра детализации вскоре вы увидите журналы, связанные с выбранным параметром.

Как проверить файлы журнала VLC

 

Как вы можете видеть, когда мы выбираем опцию debug, она также включает журналы предупреждений.

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

Как проверить файлы журнала VLC

 

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

Как проверить файлы журнала VLC

 

Отсюда вы можете определить виновника, вызывающего ошибки.



2023-09-01T05:53:38
Программное обеспечение

Firefox 117 уже выпущен, и это его новости

Логотип Firefox

Firefox — популярный веб-браузер

В новой версии Firefox 117 уже выпущен и в нем реализовано множество улучшений для разработчиков, поскольку в целом для пользователей реализовано мало изменений.

Помимо нововведений и исправлений ошибок, В Firefox исправлено 20 уязвимостей 117, из них 14 уязвимостей, помеченных как опасные, вызваны проблемами с памятью, такими как переполнение буфера и доступ к уже освобожденным областям памяти. Читать

Как выбрать лучший VPS для размещения вашего сайта

впс что это такое

Если вы думаете о начать свой собственный онлайн-проектЭта статья вас очень заинтересует. Независимо от того, простая ли это веб-страница или вы имеете в виду электронную коммерцию или более сложный проект, один из наиболее важных аспектов, который вам придется рассмотреть, — это выбор хорошего хостинга для вашего веб-сайта. Читать

Git 2.42 выходит с улучшениями производительности, новыми командами и многим другим.

гит 2.42

БаннерГит 2.42

Недавно было объявлено выпуск новой версии Git 2.42, версия, в которой были реализованы различные улучшения, такие как новые растровые изображения, новые механизмы, исправления ошибок и многое другое.

По сравнению с предыдущей версией, в новой версии, подготовленной с использованием участие 78 разработчиковбыло принято 453 изменения, из которых 17 находились в разработке впервые.



Читать