Repolode
shirou

shirou/gopsutil

Порт psutil на Go для получения информации о системе: процессоре, памяти, дисках, сети и процессах на разных платформах.

Звёзды
11,938
Форки
1,691
Открытые issues
219
Последний коммит
позавчера

Что это?

gopsutil — библиотека для Go, которая предоставляет единую API для получения системных метрик и информации о процессах и построена по образцу Python-библиотеки psutil. С её помощью программы на Go могут запрашивать время и загрузку CPU, данные о виртуальной памяти и swap, разделах и использовании дисков, счётчиках сетевого ввода-вывода и соединениях, сведения о хосте и загрузке, пользователях, а также данные об отдельных процессах — например, об использовании памяти и CPU и открытых файлах.

Библиотека поддерживает Linux, FreeBSD, OpenBSD, macOS (Darwin), Windows и Solaris на нескольких архитектурах, а также частично DragonFly BSD и Linux RISC-V. Она реализована без cgo: необходимые C-структуры перенесены на Go, поэтому библиотеку можно собирать и кросс-компилировать стандартными инструментами. Специфичные для платформы данные доступны через структуры `Ex`, например `ExLinux` и `ExWindows`.

В проекте используется календарная схема версионирования (vMAJOR.YY.MM), требуется Go 1.18 или новее. В комплект входят несколько помощников только для Linux: для получения статистики CPU и памяти cgroup контейнеров Docker и счётчиков conntrack в netfilter. Пути к каталогам, например /proc и /sys, можно переопределить с помощью переменных окружения или значения в контексте.

Ключевые возможности

  • 01Кроссплатформенные метрики CPU, памяти, дисков и сети через единую API на Go
  • 02Информация об отдельных процессах: память, CPU, открытые файлы и соединения
  • 03Не требует cgo: C-структуры перенесены на Go
  • 04Дополнительные платформенные данные через структуры `Ex`, например `ExLinux` и `ExWindows`
  • 05Настраиваемые системные пути для контейнеров и альтернативных точек монтирования

Сценарии использования

  • Создание агентов мониторинга или exporters, которые собирают метрики хоста на Go
  • Разработка CLI-инструментов для отображения состояния системы в Linux, macOS и Windows
  • Сбор данных об использовании ресурсов отдельными процессами для диагностики или дашбордов
  • Получение статистики cgroup контейнеров Docker из Linux-хоста

Быстрый старт

  1. 1

    Установите библиотеку в свой модуль Go

    go get github.com/shirou/gopsutil/v4
  2. 2

    Импортируйте пакет, например mem, и считывайте статистику системной памяти в коде

Что важно знать

  • Требуется Go 1.18 или выше.
  • Поддержка зависит от платформы; некоторые функции работают частично или некорректно в отдельных операционных системах.

Темы

Частые вопросы

Что такое gopsutil?
Порт psutil на Go для получения информации о системе: процессоре, памяти, дисках, сети и процессах на разных платформах. gopsutil — библиотека для Go, которая предоставляет единую API для получения системных метрик и информации о процессах и построена по образцу Python-библиотеки psutil. С её помощью программы на Go могут запрашивать время и загрузку CPU, данные о виртуальной памяти и swap, разделах и использовании дисков, счётчиках сетевого ввода-вывода и соединениях, сведения о хосте и загрузке, пользователях, а также данные об отдельных процессах — например, об использовании памяти и CPU и открытых файлах.
gopsutil можно использовать бесплатно? Какая у него лицензия?
gopsutil распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
gopsutil всё ещё поддерживается?
Активно поддерживается. Последний коммит в gopsutil — 5 нояб. 2026 г..
Для чего можно использовать gopsutil?
Создание агентов мониторинга или exporters, которые собирают метрики хоста на Go Разработка CLI-инструментов для отображения состояния системы в Linux, macOS и Windows Сбор данных об использовании ресурсов отдельными процессами для диагностики или дашбордов Получение статистики cgroup контейнеров Docker из Linux-хоста
Как установить gopsutil?
Установите библиотеку в свой модуль Go: go get github.com/shirou/gopsutil/v4 Импортируйте пакет, например mem, и считывайте статистику системной памяти в коде
Где скачать gopsutil?
Исходный код и инструкции по установке — на GitHub: https://github.com/shirou/gopsutil

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Библиотека .NET для запуска процессов командной строки с гибкой настройкой, перенаправлением stdin/stdout/stderr и асинхронной отменой.

5 тыс.+2 за неделю286C#MITАктивно поддерживаетсяОбновлён позавчера