Repolode
shirou

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. 1

    ライブラリをGoモジュールにインストールします

    go get github.com/shirou/gopsutil/v4
  2. 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 の数値は毎日更新されます。

関連プロジェクト

.NETからコマンドラインプロセスを起動するライブラリ。柔軟な設定、stdin/stdout/stderrのパイプ接続、非同期キャンセルに対応。

5010+2 今週286C#MIT活発にメンテナンス更新 3 日前