StatsDとGrafanaでデータを可視化

StatsDを利用して、メトリクスをGrafanaで可視化する方法

Table of Contents

  • メトリクスの送信方法
  • メトリクスの送信

StatsDは、さまざまなアプリケーションからメトリクスを収集できる人気の高いオープンソースツールであり、指定した関数のカウンター、タイマー、ゲージをリッスンするデーモンとなります。 たとえば、ボタン付きのIoTデバイスがある場合、そのボタンにカウンターを設定して、ボタンが押された回数を追跡することが出来たりします。

通常、開始するには、サーバー上でStatsDデーモンをセットアップおよび構成する必要がありますが、この記事ではMetricFireのStatsDアドオンを使用するため、統計をすばやく起動して実行していきます。

StatsDデーモンをセットアップおよび構成の複雑なステップを省いて、すぐにStatsDの利用を開始するには、MetricFire無料トライアルにサインアップしてください。 この記事の残りの部分では、StatsDを使用してメトリックをMetricFireに送信する方法の詳細を解説していきます。

StatsDは通常、ユーザーが設定します。まずユーザーは、StatsDエンドポイントとして機能するURLを指定します。 ただ、MetricFireを使用することで、それはすでに完了しています。 MetricFireから指定されたURLにメトリックを送信するだけで、それらの情報をGrafanaで可視化できるようになります。

メトリクスの送信方法

以下のグラフは、StatsDにメトリックを送信する方法の一般的な手法を示しています。 通常、ほとんどのバックエンド言語には、StatsDメトリックをURL、ポート、およびプレフィックスに送信するのに役立つライブラリがあります。 アプリが記述されている言語でStatsDのライブラリをインストールしたら、カウンター、ゲージ、またはタイマーを使用して特定の関数を追跡するコードの追加を開始できます。 MetricFireを使用する場合、URL、ポート、およびプレフィックスは、MetricFireアプリのStatsDアドオンによって提供されています。

データの送信方法

今回は、Pythonを使用してStatsDメトリックをMetricFireアカウントに送信します。 まず、次の方法でStatsDパッケージを入手しましょう。

sudo pip install statsd

StatsDの設定

次に、MetricFireアカウントからURL、ポート、プレフィックスを取得しましょう。 Add-Ons > Add-Ons > StatsDに進んでください。

MetricFireのアドオンからStatsDを選択

次に、[Enable]ボタンがあるはずです。 StatsDを有効にすると、次のようなURL、ポート、プレフィックスが表示されます。

MetricFireでStatsDを有効化

これで、この情報を使用して、MetricFireアカウントへのメトリックの送信を開始できます。 このコードを含む実行可能なPythonファイルを作成します。

#!/usr/bin/env python3
import statsd
c = statsd.StatsClient("URL", PORT, prefix="PREFIX_KEY")
def button():
    c.incr("metric.button", 1)
    print("button has been pressed")
if __name__ == "__main__":
    for i in range(5):
        button()

image.png

メトリクスの送信

次に、カウンターメトリックをテストしましょう。 このファイルを1回実行すると、メトリック情報がMetricFireに送信されます。 具体的には、カウンターはファイルを実行するたびに5つのボタンの押下をカウントし、その値をメトリック名「countersmetricbuttoncount」でMetricFireに送信します。 次に、Grafanaダッシュボードでメトリック名をクエリすることにより、値をGrafanaにインポートできます。 以下の手順を見てみましょう。

まず、ファイルを実行してみましょう。

image.png

次に、メトリックがMetrics Treemapに送信されたことを確認します。 以下の画像は、MetricFireがPythonファイルからメトリックを受信したことを示しています。

メトリクスマップ

メトリックツリーマップにポップアップが表示されたら、Grafanaのグラフにプロットできるはずです。 Grafanaで新しいダッシュボードを作成していきましょう。

Grafanaダッシュボード

次に、「counters metric button count」と呼ばれるメトリックをクエリします。 下のグラフでは、カーソルが1つのドットの上にあります。 そのクエリには、グラフの値として5.000のドットがあります。 Pythonファイルを最後に実行した後、カウンターが5ボタンの押下をカウントしたので、これは正しく動作している証拠です。

image.png

Pythonファイルをもう少しスパムして、グラフでどのように表示されるかを確認しましょう。 以下の画像は、Pythonファイルのランダムな実行の束がどのように見えるかを示しています。 14:28に元の5つのボタンが押されたことも確認できます。

image.png

StatsDは、ユーザーがアプリに費やした時間や、何かが使用される頻度を追跡するのためにも役立ちます。 アプリケーションの改善に役立てるために追跡できる統計情報は無限にありますので、きっとあなたの役に立つはずです。

MetricFireでStatsDを試すことに興味がある場合は、無料トライアルにサインアップしてください。 StatsDアドオンを試して、GrafanaでどのようなStatsDグラフを作成できるかどうかを確認してください。 デモを予約してご相談いただくことも可能です。MetricFireが監視のニーズにどのように役立つかについて、直接お気軽にご相談ください。

You might also like other posts...
grafana Mar 12, 2024 · 6 min read

The Value Hosted Graphite brings to the Heroku Marketplace

Maximizing Heroku Monitoring Insights with HostedGraphite. Unlocking Heroku's Full Potential Through Real-time Monitoring and... Continue Reading

grafana Nov 27, 2023 · 7 min read

Grafana Tutorial - Annotations

This Grafana tutorial is about annotations. Grafana annotations are for users who want to... Continue Reading

grafana Oct 30, 2023 · 2 min read

Grafanaの使い方:アノテーション(注釈)を追加する方法

Grafanaは、ユーザーがデータベースを監視および分析できるようにすることで、パフォーマンスの問題を特定して修正するのに役立つツールです。 Grafanaは、さまざまな機能を備えた優れたグラフと視覚化で有名です。 この記事では、Grafanaの機能の1つである注釈についてです。 Continue Reading

header image

We strive for
99.999% uptime

Because our system is your system.

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