TelegrafとMetricFireでGitHubを監視しコード品質を維持する方法を解説

TelegrafとMetricFireでGitHubを監視しコード品質を維持する方法を解説

Table of Contents

Great systems are not just built. They are monitored.

MetricFire runs Graphite and Grafana as a fully managed service for growing engineering teams, taking care of storage, scaling, and version updates so your team doesn't have to. Plans start at $19/month, billed per metric namespace rather than per host, and include engineer-staffed support. Integrations work natively with Heroku, AWS, Azure, and GCP, and data is stored with 3× redundancy in SOC2- and ISO:27001-certified data centres.

はじめに

GitHubリポジトリを監視することは、コード品質の維持、コラボレーションの促進、円滑な開発ワークフローの実現、そしてプロジェクト管理と効率全体の向上に不可欠です。これにより、コードの変更、プルリクエスト、イシュー、コメントに関する最新情報を把握できるほか、チームメンバー間のコラボレーションが円滑になり、プロジェクトの進捗や状況についてチーム全体が確実に情報を共有できるようになります。

本記事では、Telegrafエージェントを使用してGitHubリポジトリの統計情報を収集し、データソースに転送する方法について詳しく解説します。

Telegrafエージェントの始め方

Telegrafは、InfluxDB上に構築されたプラグイン駆動型のサーバーエージェントであり、データベース、システム、プロセス、デバイス、アプリケーションからメトリクスやイベントを収集して送信します。Goで記述されており、外部依存のない単一のバイナリとしてコンパイルされ、最小限のメモリ使用量で動作します。Telegrafは多くのオペレーティングシステムと互換性があり、さまざまなシステムパフォーマンスメトリクスを収集・転送するための有用な出力プラグインおよび入力プラグインを多数備えています。

Telegrafのインストール(Linux / Redhat)

Telegrafをダウンロードして解凍します(最新バージョンおよび多くのOS向けのインストールコマンドについてはTelegrafのドキュメントをご参照ください)。パッケージやファイルは通常、/etcディレクトリにインストールされます。

Ubuntu/Debian
wget https://dl.influxdata.com/telegraf/releases/telegraf_1.21.2-1_amd64.deb
sudo dpkg -i telegraf_1.21.2-1_amd64.deb

RedHat/CentOS

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.21.4-1.x86_64.rpm
sudo yum localinstall telegraf-1.21.4-1.x86_64.rpm

出力の設定

Telegrafは、Kafka、Graphite、InfluxDB、Prometheus、SQL、NoSQLなど、さまざまなデータ送信先に出力するよう設定できます。

この例では、Graphite出力でtelegrafを設定します。現在データソースをホストしていない場合は、次の手順を進めるためにMetricFireのHosted Graphiteで無料トライアルを開始できます。

Hosted Graphiteアカウントは、データソースを提供し、アラート機能を提供し、可視化ツールとしてHosted Grafanaを含みます。

Graphite出力を設定するには、ダウンロードしたtelegraf設定ファイル(/etc/telegraf/telegraf.conf)を見つけ、好みのテキストエディタで開きます。その後、ファイルに対して以下の変更を行います:

次の行を見つけてコメントアウトします。

# [[outputs.influxdb]]

次の行のコメントを解除します。

[[outputs.graphite]]

次に、server行のコメントを解除し、以下のように編集します。

servers = ["carbon.hostedgraphite.com:2003"]

最後に、prefix行のコメントを解除し、以下のように編集します。

prefix = "<YOUR_API_KEY>.telegraf"
まだHosted Graphiteのアカウントをお持ちでない場合は、無料トライアルに登録してAPIキーを取得してください。
または、別のデータソースにメトリクスを送信するために、他のTelegraf出力を設定することも可能です。

TelegrafのGitHub入力プラグインの設定

Telegrafには、多くの一般的な技術やサードパーティソースから幅広いデータを収集できる多数の入力プラグインがあります。この例では、GitHubリポジトリからメトリクスを収集して転送する方法を説明します。

まず、telegraf.confファイル内で inputs.github セクションを探し、[[inputs.github]] の行のコメントを解除し、repositoriesの行もコメント解除および設定します。

 
[[inputs.github]]
 repositories = [
        "<account-name>/<repository>",
        "BenjaminPitts/django-practice-app"
   ]

次に、GitHubアカウント内でアクセストークンを作成する必要があります。これにより、TelegrafとGitHub間のリクエストが認証されます。

  • GitHubアカウントにログインした状態で、Account Settings ⇒ Developer Settings ⇒ Personal Access Tokens に移動します。その後、新しいトークンを生成し、有効期限を設定し、次の権限を選択します:admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages

TelegrafとMetricFireでGitHubを監視しコード品質を維持する方法を解説 - 1

  • その後、telegraf.confファイルに戻り、access_token の行をコメント解除して設定します。
  • また、pull間隔(GitHubへのリクエスト数を制限するため)を設定したり、PRデータを取得するために additional_fields の行をコメント解除して設定することもできます。

access_token = "ghp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
interval = "120m"
additional_fields = ['pull-requests']

最後に、変更を保存し、以下のコマンドを使用してTelegrafをサーバーとして実行し、出力に設定エラーがないか確認します:

telegraf --config telegraf.conf

Telegrafはこれで、各リポジトリごとにおよそ10個のメトリクスを設定されたデータソースに転送します。TelegrafのGraphite出力を使用している場合、メトリクスは以下の形式になります:

telegraf.<host>.<repo-language>.<repo-license>.<repo-name>.<repo-owner>.github_repository.<metric>

telegraf.confファイルで定義された各GitHubリポジトリに対して、以下のフィールドのメトリクスを受け取ることができます:

closed_pull_requests, forks, networks, open_issues, open_pull_requests, size, stars, subscribers watchers

追加の設定オプションについては、GitHubプラグインの公式GitHubリポジトリをご参照ください。

MetricFireのHosted Graphiteを使用してカスタムダッシュボードとアラートを作成

MetricFireは、サーバー、データベース、ネットワーク、プロセス、デバイス、アプリケーションからメトリクスやデータを収集・可視化・分析できるモニタリングプラットフォームです。MetricFireを使用することで、インフラストラクチャ内の問題を簡単に特定し、リソースを最適化することができます。MetricFireのHosted Graphiteは、監視ソリューションを自分でホスティングする負担を取り除き、より重要な作業に時間と自由を割くことを可能にします。

Hosted Graphiteアカウントにサインアップし、上記の手順でサーバーをTelegrafエージェントで設定すると、メトリクスはHosted Graphiteのバックエンドに転送され、タイムスタンプが付与され、集約されます。

  1. メトリクスは次のGraphite形式で送信および保存されます:metric.name.path <numeric-value> <unix-timestamp>

  2. このドット表記の形式はツリー構造のようなデータ構造を提供し、効率的なクエリを可能にします。

  3. メトリクスはHosted Graphiteアカウントに2年間保存され、カスタムアラートやGrafanaダッシュボードの作成に利用できます。

Hosted GraphiteのHosted Grafanaでダッシュボードを構築

Hosted GraphiteのUIで、Dashboards ⇒ Primary Dashboards に移動し、「+」ボタンを選択して新しいパネルを作成します。

TelegrafとMetricFireでGitHubを監視しコード品質を維持する方法を解説 - 2

その後、クエリUIを使用してGraphiteのメトリクスパスを選択できます(Hosted Graphiteアカウント経由でGrafanaにアクセスしている場合、デフォルトのデータソースはHosted Graphiteのバックエンドになります)。

TelegrafとMetricFireでGitHubを監視しコード品質を維持する方法を解説 - 3

Hosted Graphiteのデータソースは、指定したパスに一致するすべてのメトリクスを取得するために、ワイルドカード(*)検索もサポートしています。

次に、これらのメトリクスに対してGraphite関数を適用できます。例えば、aliasByNode() を使ってメトリクス名を再フォーマットしたり、exclude() を使って特定のメトリクスパターンを除外したりできます。

TelegrafとMetricFireでGitHubを監視しコード品質を維持する方法を解説 - 4

Grafanaには、さまざまな可視化を適用したり、表示を変更したり、測定単位を設定したり、ダッシュボード変数やイベント注釈の設定といったより高度な機能も多数用意されています。

詳細については、Hosted Graphiteのダッシュボードドキュメントをご参照ください。

Graphiteアラートの作成

Hosted GraphiteのUIで、Alerts ⇒ Graphite Alerts に移動し、新しいアラートを作成します。アラートに名前を付け、アラート対象のメトリクスフィールドにクエリを追加し、このアラートが何を示すものかの説明を追加します。

TelegrafとMetricFireでGitHubを監視しコード品質を維持する方法を解説 - 5

その後、Alert Criteriaタブを選択してしきい値を設定し、通知チャネルを選択します。デフォルトの通知チャネルは、Hosted Graphiteアカウント登録時に使用したメールアドレスです。さらに、Slack、PagerDuty、Microsoft Teams、OpsGenie、カスタムWebhookなどのチャネルも簡単に設定できます。通知チャネルの詳細については、Hosted Graphiteのドキュメントをご参照ください。

TelegrafとMetricFireでGitHubを監視しコード品質を維持する方法を解説 - 6

まとめ

アクティブなGitHubリポジトリを監視することは、コード品質、セキュリティ、コンプライアンス、効果的なコラボレーション、パフォーマンス最適化、リスク軽減を確保するのに役立ちます。また、ビジネスの目標に沿ったデータ駆動型の意思決定を行うことにも貢献します。

ダッシュボードやアラートのようなツールは、リアルタイムの可視化、問題の事前検知、過去のトレンド分析、そして十分な情報に基づいた意思決定を可能にすることで、このデータを補完します。これらはすべて、堅牢で効率的なインフラを維持するために不可欠です。

無料トライアルに登録して、今すぐGitHubリポジトリの監視をお試しください。また、デモを予約して、監視のニーズについてMetricFireチームと直接ご相談いただくことも可能です。

You might also like other posts...
metricfire Apr 22, 2026 · 4 min read

TelegrafでSNMPデバイスを監視する方法【ステップバイステップガイド】

本記事では、Telegrafエージェントを使用してSNMP(MIB)のパフォーマンス統計情報を収集し、それをデータソースに転送する方法について詳しく解説します。 Continue Reading

metricfire Apr 16, 2026 · 5 min read

Telegrafを使ったKubernetes監視の最適な方法【チュートリアル】

本記事では、TelegrafをDaemonSetとして導入し、KubernetesクラスターのノードやPodのメトリクスを効率的に収集・可視化する方法を解説。ダッシュボード作成やアラート設定まで、実践的な手順をご紹介します。 Continue Reading

metricfire Apr 16, 2026 · 2 min read

ログとメトリクスを組み合わせて可視化する実践的ユースケース

本記事では、ログとメトリクスを組み合わせた可視化で、静かに進行するセキュリティ脅威を早期に検知・分析する方法を解説。Fail2BanやTelegraf、Promtail、Grafanaを活用し、インシデント対応の迅速化と安全なインフラ運用を実現します。 Continue Reading

header image

We strive for 99.95% uptime

Because our system is your system.

14-day trial 14-day trial
No Credit Card Required No Credit Card Required