CPU、メモリ、ディスク、ネットワーク、センサーなどのプロセスおよびシステムの使用状況を取得できる、クロスプラットフォーム対応のPythonライブラリ。
shirou/gopsutil
複数のプラットフォームでCPU、メモリ、ディスク、ネットワーク、プロセスの統計情報を取得する、psutilのGo移植版です。
- スター
- 11,938
- フォーク
- 1,691
- 未解決の Issue
- 219
- 最終コミット
- 一昨日
これは何?
gopsutilは、Pythonのpsutilをモデルにした単一のAPIを通じて、システムメトリクスやプロセス情報を提供するGoライブラリです。Goプログラムから、CPU時間と使用率、仮想メモリとスワップメモリ、ディスクのパーティションと使用量、ネットワークI/Oカウンター、接続、ホストや起動に関する情報、ユーザー、プロセスごとのメモリ・CPU・オープンファイルなどを取得できます。
Linux、FreeBSD、OpenBSD、macOS(Darwin)、Windows、Solarisを複数のアーキテクチャでサポートし、DragonFly BSDとLinux RISC-Vにも一部対応しています。関連するCの構造体をGoに移植しており、cgoを使わずに実装されているため、標準ツールチェーンでビルドやクロスコンパイルができます。`ExLinux`や`ExWindows`などの`Ex`構造体から、プラットフォーム固有の情報を取得できます。
プロジェクトではカレンダーバージョニング(vMAJOR.YY.MM)を採用しており、Go 1.18以降が必要です。Linux専用のヘルパーとして、DockerコンテナのCPU・メモリのcgroup統計情報や、netfilterのconntrackカウンターを取得する機能も含まれています。/procや/sysなどのディレクトリパスは、環境変数またはcontextの値で変更できます。
主な機能
- 01単一のGo APIで、クロスプラットフォームのCPU・メモリ・ディスク・ネットワークメトリクスを取得
- 02メモリ、CPU、オープンファイル、接続などのプロセスごとの情報を取得
- 03cgoへの依存なし。Cの構造体をGoに移植
- 04ExLinuxやExWindowsなどのEx構造体を通じて、プラットフォーム固有の情報を取得
- 05コンテナや別のマウントポイントに合わせてシステムパスを設定可能
ユースケース
- ホストメトリクスをGoで報告する監視エージェントやexporterの開発
- Linux、macOS、Windowsでシステム状況を表示するCLIツールの作成
- 診断やダッシュボード向けのプロセス別リソース使用量の収集
- Linuxホスト上からDockerコンテナのcgroup統計情報を取得
クイックスタート
- 1
ライブラリをGoモジュールにインストールします
go get github.com/shirou/gopsutil/v4 - 2
memなどのパッケージをインポートし、コード内でシステムメモリの統計情報を読み取ります
使う前に知っておきたいこと
- Go 1.18以上が必要です。
- プラットフォームによって対応状況が異なります。一部の関数は、特定のOSでは一部しか動作しないか、正常に動作しない場合があります。
トピック
よくある質問
- gopsutil とは?
- 複数のプラットフォームでCPU、メモリ、ディスク、ネットワーク、プロセスの統計情報を取得する、psutilのGo移植版です。 gopsutilは、Pythonのpsutilをモデルにした単一のAPIを通じて、システムメトリクスやプロセス情報を提供するGoライブラリです。Goプログラムから、CPU時間と使用率、仮想メモリとスワップメモリ、ディスクのパーティションと使用量、ネットワークI/Oカウンター、接続、ホストや起動に関する情報、ユーザー、プロセスごとのメモリ・CPU・オープンファイルなどを取得できます。
- gopsutil は無料で使えますか?ライセンスは?
- gopsutil は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- gopsutil は今もメンテナンスされていますか?
- 活発にメンテナンス中。gopsutil の最終コミットは 2026年11月5日 です。
- gopsutil は何に使えますか?
- ホストメトリクスをGoで報告する監視エージェントやexporterの開発 Linux、macOS、Windowsでシステム状況を表示するCLIツールの作成 診断やダッシュボード向けのプロセス別リソース使用量の収集 Linuxホスト上からDockerコンテナのcgroup統計情報を取得
- gopsutil のインストール方法は?
- ライブラリをGoモジュールにインストールします: go get github.com/shirou/gopsutil/v4 memなどのパッケージをインポートし、コード内でシステムメモリの統計情報を読み取ります
- gopsutil はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/shirou/gopsutil
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
CPU、GPU、メモリ、ディスク、ネットワーク、バッテリー、センサー、Bluetoothの使用状況をリアルタイム表示するmacOSメニューバーアプリ。
CPU温度、周波数、電力、使用率をグラフ表示し、CPU負荷テストも備えたターミナルUI。
カスタマイズ可能なASCIIロゴとともにシステム情報を表示する、高速なneofetch風コマンドラインツール。
htopは、スクロール、並べ替え、絞り込み、プロセス操作に対応した、Linux、BSD、macOS向けの対話型ターミナルプロセスビューアです。