macOSで個人用の通信量ダッシュボードを作る
macOS向け個人通信量ダッシュボードの実用的な構築方法。何を計測し何を無視すべきか、そして全てをローカルに留めるコツを紹介します。
- macOS
- Bandwidth
- Productivity
- Tutorial
半年ごとに、Hacker Newsの誰かが「PrometheusとGrafanaで個人モニタリングスタックを作った」を投稿します。美しく、土曜日にセットアップするのは楽しく、そして実際の問い——Macの各アプリがどれだけ通信量を使っているか——には極端に過剰です。TSDB、Docker composeファイル、TLS付きリバースプロキシは要りません。1画面に収まり、メニューバーに住み、邪魔をしないmacOS通信量ダッシュボードが必要なのです。週末を燃やさずに作る方法を示します。
主張: メニューバーアプリがライブと最近層を扱い、時々のCSVエクスポートがアーカイブ分析を扱う、それで完了。世話するサービス、編集するスクレイプ設定、保守するパネルもありません。
macOS通信量ダッシュボードでユーザーが実際に必要とするもの
Grafanaの幻想を取り除き、実際に何を見るかを問いましょう:
- 現在のレート。 「今何かが通信量を使っているか?」——最も一般的な問いで、1日に何十回も問われる。
- アプリ別の内訳。 答えが「はい」のとき、どのアプリかを知りたい。
- 最近の履歴。 直近1時間、1日、たぶん1週間。パターンを見つけるのに十分。
- 時々の深掘り。 月に1度、今月と先月を比較したり、何か別のものと相関させたい。
それだけです。それがプロダクトの全体です。多くの「個人モニタリング」スタックは何十のダッシュボードを出荷します——ツールがそれを促すからです。必要ありません。
2層設計
問題をライブ/最近層とアーカイブ層に分けます。
ライブ+最近: メニューバーアプリ
メニューバーアプリは最初の3つのニーズに正しい形です。常に動き、現在の活動から1クリック離れ、見ていないときには画面領域を取りません。メニューバーアイコンの情報密度——小さなグラフまたは2つの数字としての現在のレート——はまさに「今何かが通信量を使っているか」が欲しいものです。
これらの特性を持つものを選べば設定完了:
- メニューバーで一目見えるライブレートを表示
- アプリ別内訳のポップオーバーまたはウィンドウを持つ
- ヘルパープロセスを親アプリの下に折りたたむ(「Slack」が7行ではなく1行)
- 最低1日、理想的には1週間以上の履歴を保持
- macOSがフラグを立てないよう署名・公証済み
ovaはこのすべてを出荷しています。約3MB、約1Hzでサンプリング、macOS 14以降(Apple SiliconとIntel)で動作、データはローカル、テレメトリなし。
アーカイブ: 時々のCSVエクスポート
月に1度の「今月と先月を比較する」問いには、ライブシステムは要りません。フラットファイルが必要です。通信量モニターからCSVをエクスポートし、ノートブック(Jupyter、Observable、何でも)に投げ、クエリを実行。
ここは興味深い分析もする場所です: 時間帯のヒートマップ、アプリ別の宛先トップ、週次成長率。ライブで実行する必要はありません——月に1度でOK——そしてラップトップはGrafanaインスタンスをホストする必要がありません。
モニターがSQLiteにデータを保存していれば(ovaは~/Library/Application Support/ova/に保存します)、エクスポートは1コマンド:
sqlite3 -header -csv \
~/Library/Application\ Support/ova/<file>.sqlite \
"SELECT timestamp, app, bytes_in, bytes_out FROM samples" \
> ~/Desktop/bandwidth.csvそれからPython、R、DuckDBで読み込めば、Grafanaスタックの重作業層を1クエリとゼロインフラで持つことになります。
なぜGrafanaじゃないのか?
Grafana、Prometheus、InfluxDB、Loki——フリート向けには素晴らしいツールです。1台のMacには、運用オーバーヘッドが極端に不釣り合いです。必要なもの:
- ローカルで動くPrometheusインスタンス(RAM、ディスク、ポート)
proc_pidinfoまたはnettop出力を読むカスタムエクスポーター(誰かが書いて保守する必要)- ローカルで動くGrafana(Java/Goプロセス、ポート、データベース)
- 作って版管理するダッシュボード
- 定期的にダッシュボードにログインする理由(しません)
最初の土曜午後の輝きの後、スタックは腐ります。macOSをアップグレードするとエクスポーターが壊れます。Grafanaがパスワードリセットを求めます。3週間忘れ、まさにそれを作った異常を見逃します。
メニューバーアプリは邪魔をしません。時計を見るたびにレートが見えます。macOS通信量ダッシュボードのワークフローはルーチンに組み込まれていて、訪問を覚えなければならないウェブサイトではありません。
ステップバイステップのセットアップ
具体的に、15分でダッシュボードを組み上げる方法。
ステップ1: メニューバーアプリをインストール
ovaをインストール。約3MB。Applicationsへドラッグ、起動、ネットワーク統計を読む要求された権限を許可、完了。即座に約1Hzでサンプリングし、メニューバーに現在のレートを表示し始めます。
ステップ2: メニューバー表示を構成
ほとんどのメニューバー通信量ツールは何を表示するか選ばせてくれます。一般的なオプション:
- 現在の上下レート(例:
↓ 2.1 MB/s ↑ 80 KB/s) - 直近1分の小さなスパークライン
- アクティブなときに点灯するアイコンだけ
1つ選びましょう。2数字表示は最も密。スパークラインは最も「一目で分かる」。間違った答えはありません。実際に読むものを選びましょう。
ステップ3: いくつかのアプリをピン留め
一部のモニターは特定のアプリを「監視中」とマークさせてくれます——内訳ビューで最初に出ます。多くの人に有用なピン:
- 住んでいるブラウザ(Chrome、Safari、Arc、Firefox)
- 仕事のチャット(Slack、Discord、Teams)
- 開発ツール(Docker、VS Code、モバイルをするならシミュレータ)
- クラウド同期(Dropbox、iCloudの
cloudd、Google Drive)
1週間以内に、本当にピン留めしたいアプリと楽観的だったアプリが分かります。
ステップ4: 履歴が動くか確認
最近層の要点全体は遡れることです。ポップオーバーまたはウィンドウを開き、「過去24時間」のような時間範囲を選び、ピークと谷のあるチャートが見えることを確認しましょう。見えないなら、アプリはデータを永続化しておらず、立派なnettopを持っているだけです。別のツールに移りましょう。
ステップ5: 月次エクスポートをスケジュール
毎月1日にカレンダーリマインダーを追加: 「通信量データをエクスポート、ヒートマップノートブックを実行」。月に1度5分。それがアーカイブ層です。
何を見るか
ダッシュボードを動かしたら、定期的なペースで確認する価値のある問い。
毎日の一目
内訳ビューを開く。意外を探す。Chromeがトップなら正常。仕事時間中にclouddがトップなら、なぜか問う(おそらくiCloudの追いつき、写真のアップロード可能性も)。認識しないものがトップなら調査。
週次
日次合計を見る。一貫しているか? 1日だけ5倍のスパイクは、別のことをした(ゲームをダウンロード、大きな通話)か、自動的な何かが動いた(リモート先へのTime Machine、システムアップデート)を意味します。
月次
ヒートマップを実行。月別のトップアプリ。前月と比較。時間にわたる傾向は、通信量が忍び寄っているかを教えてくれる——通常、問うのを忘れた新しいアプリのため。
ovaを動かしてみる
一目で分かるメニューバー通信量モニター——ローカル、署名済み、約3MB。
実例
実際のあるユーザーのセットアップからのパターン:
- ライブレート: メニューバーの小さなスパークライン。一目はゼロ時間コスト。
- アプリ別ビュー: ovaのポップオーバーを開くホットキーにバインド。
- 週次チェック: 毎週金曜午後、ユーザーは7日ビューを開きトップ3アプリを記録。前週金曜になかったトップ3のものについては、理由を説明する1文をジャーナルに書く。
- 月次エクスポート: launchdジョブが毎月1日にCSVをダンプ。小さなObservableノートブックがヒートマップとアプリ別トップ10をプロット。合計時間: 月に1度90秒。
それがシステム全体です。Prometheusなし、Grafanaなし、リバースプロキシなし、認証なし、ポートなし、回転するログなし。「ダッシュボード」はメニューバーと月に1度開くノートブックです。
実際にサーバが必要なとき
集中スタックが正しいケースもあります:
- 複数のMacを管理する(小チーム、家族、ビルドマシンのフリート)
- Mac以外のデータ(ルーターログ、スマートホームトラフィック、仕事用VPN使用量)との相関が欲しい
- リアルタイムの警告ニーズがある(「アップロードが5分以上100MB/sを超えたら呼んで」)
それらは運用コストを正当化します。1台の個人Macには正当化しません。
まとめ
ユーザーが実際に開くmacOS通信量ダッシュボードはスタックを必要としません。常に現在のレートを表示するメニューバーアプリ、何かおかしく見えるときのアプリ別内訳、まれな深掘り用のエクスポートパスが必要。それで全部です。
シンプル版が欲しいなら、ovaをインストールしましょう——約3MB、macOS 14以降、約1Hzでサンプリング、すべてのデータがマシンの~/Library/Application Support/ova/に留まる、アカウント不要、買い切りで生涯アップデートと14日間返金可。ダウンロードからダッシュボードまで5分、composeファイルは見えません。