StatsD の統合により、 StatsD -format data を New Relic に簡単に取り込むことができます。また、データに任意のタグ(キーと値のペア)を追加することもできます。メトリクスが New Relic に取り込まれると、 データを照会したり、 カスタムチャートやダッシュボードを作成することができます。
StatsDインテグレーションを試してみませんか? New Relicアカウントを作成してください 無料でご利用いただけます。クレジットカードは必要ありません。
要件この統合では、 Metric API と Event API を 使用してデータを取り込みます。 これらの API を使用するには、 アカウントのライセンスキー .
この統合は、Metric API の 要件とデータ制限 に従います。レート制限に達しているかどうかを確認するには、次の NrIntegrationError
イベント の NRQL クエリを実行します。
SELECT count ( * ) FROM NrIntegrationError
WHERE newRelicFeature = 'Metrics'
LIMIT 100 since 1 day ago
統合は、amd64およびarm64アーキテクチャ用のDockerHub でLinuxコンテナイメージとして利用できます。
インストールここでは、標準的なインストールの方法を説明します。KubernetesでStatsDを動作させたい場合は、 Kubernetes install をご覧ください。
StatsD 統合をインストールするには、次のコマンドを実行し、 New Relic アカウント ID と アカウントのライセンスキー . これにより、 gostatsd
で使用される TOML 構成ファイルが生成されます。
> -d --restart unless-stopped \
> --name newrelic-statsd \
> -e NR_ACCOUNT_ID = YOUR_ACCOUNT_ID \
> -e NR_API_KEY = NEW_RELIC_LICENSE_KEY \
> newrelic/nri-statsd:latest
組織が EU データセンター地域 にある場合は、これを上記のコマンドに追加します。
インストール後は
Kubernetesへのインストール ここでは、デプロイメントとサービスオブジェクトのためのKubernetesマニフェストの例を紹介します。
Kubernetesのマニフェストの例 以下は、Kubernetes 環境に StatsD をデプロイし、 newrelic-statsd
という名前の StatsD サービスを作成するための Kubernetes マニフェストの例です。 アカウント ID と アカウントのライセンスキー .
deployment.yml :
serviceAccountName : newrelic - statsd
image : newrelic/nri - statsd : latest
value : "NEW_RELIC_ACCOUNT_ID"
value : "NEW_RELIC_LICENSE_KEY"
service.yml :
service-account.yml :
設定の詳細については、 Kubernetes の設定 を参照してください。
設定インストール手順 では、環境変数を使用してnri-statsd
を実行します。これにより、TOML構成ファイルが生成されます。さらに、次の構成オプションを設定できます。
設定オプション
説明
expiry-interval
ストリング
この期間、指標が更新されない場合、その指標の報告を停止します。デフォルトは5m
です。
フラッシュ間隔の間に値が更新された場合にのみメトリックを送信する場合は、これを1ms
に構成します。メトリックを期限切れにしないようにするには、 0
に設定します。
percent-threshold
整数のリスト
メトリックの集計に使用されるパーセンタイルを指定します。デフォルト: 90
。
metrics-addr
ストリング
メトリックをリッスンするアドレスを示します。デフォルト: :8125
。 nri-statsd v2.3.0
(goStatsD v34.2.1
)から、Unixドメインソケット(UDS)を介した接続がサポートされます。構成で「[host]:port」の代わりに「metrics-addr = / some / path/newrelic-statsd.socket」を使用します。
ヒント StatsD統合を使用してFedRAMPコンプライアンスを確保するには、カスタム構成で以下のエンドポイントを定義する必要があります。
address = 'https://gov-insights-collector.newrelic.com/v1/accounts/ $NR_ACCOUNT_ID/events'
address-metrics = 'https://gov-infra-api.newrelic.com/metric/v1'
ここでは、デフォルトの設定を上書きして設定をカスタマイズする例を紹介します。
カスタム設定の例 # Specify after how long do we expire metrics, default:5m
# percent-threshold specify a list of percentiles for metrics aggregation, default:90
percent-threshold = [90, 99]
# flush types supported: metrics, insights, infra
address = 'https://insights-collector.newrelic.com/v1/accounts/$NR_ACCOUNT_ID/events'
address-metrics = 'https://metric-api.newrelic.com/metric/v1'
api-key = 'NEW_RELIC_LICENSE_KEY'
タイマーサブメトリクスの無効化
デフォルトでは、 nri_statsd
はタイマーメトリックに対して次の値を計算します:フラッシュ間隔の標準偏差、平均、中央値、合計、下限、および上限。これらのメトリックを無効にする場合は、 disabled-sub-metrics
構成セクションを追加し、無効にするメトリックにtrue
を設定することで無効にできます。次に例を示します。
# disabled-sub-metrics configuration section allows disabling timer sub-metrics
Docker: デフォルトの設定を上書きする コンテナーでの実行中にデフォルトのnri-statsd
構成を上書きするには、コンテナー内に構成ファイルをマウントできます。
以下のテンプレートは、お客様の状況に応じて適宜採用してください。
例:
# flush types supported: metrics, insights, infra
address-metrics = 'https://metric-api.newrelic.com/metric/v1'
api-key = 'NEW_RELIC_LICENSE_KEY'
ファイルを適切なパスにマウントした状態でコンテナを実行するには
> -v ${ PWD } /nri-statsd.toml:/etc/opt/newrelic/nri-statsd.toml \
$ newrelic/nri-statsd:latest
Kubernetes: デフォルトの設定を上書きする Kubernetesで実行されているnri-statsd
を設定するための最良のアプローチは、 configMap
を使用してconfigMap
をコンテナにマウントすることです。 (これは、Dockerで構成ファイルをマウントするのと同様のプロセスです。)
例:
# flush types supported: metrics, insights, infra
address = 'https://metric-api.newrelic.com/metric/v1'
api-key = '$NEW_RELIC_LICENSE_KEY'
configMapを使用するには、デプロイメント仕様テンプレートでボリュームを宣言してから、コンテナー仕様でvolumeMount
を宣言します。
例:
- mountPath: /etc/opt/newrelic/
- name: nri-statsd-config
メトリックフォーマットインテグレーションは、 StatsD プロトコル を使用してメトリクスを受信します。オプションで、サンプルレートを設定したり、タグを追加することができます。
ここでは、私たちが使用しているメトリックデータのフォーマットを紹介します。
<metric name>:<value>|<type>|@<sample rate>|#<tags>
ここでは、これらの分野について説明します。
フィールド名
説明
<metric name>
string
必須です。 メトリックの名前。
<value>
string
必須です。 メトリックタイプ 。
c
= counterg
= gaugems
= timer@<sample rate>
float
単純なカウンターやタイマーカウンターのオプション 。多くのメトリクスを送信する必要がある場合、サンプリングを使用してネットワーク・トラフィックを削減することができます。ただし、データの分解能が低下するという欠点があります。
1
未満のサンプルレートでこれがどのように機能するかの例:これを0.1
に設定すると、カウンターは10回に1回の測定値を送信します。
#<tags>
string
オプションです。 メトリクスに付けられたタグは、属性(キーと値のペア)に変換されます。タグ付けオプションの詳細については、 Tags を参照してください。
メトリックのタイプここでは、メトリクスの種類とそのフォーマットをご紹介します。
カウンター カウンターは、あるイベントの発生回数を測定するものです。例えば、レポート間隔ごとのキャッシュヒット数や、レポート間隔ごとのスレッド作成数などです。
カウンタは、値に符号を追加することにより、同じフラッシュ間隔中にインクリメントまたはデクリメントできます。次の例では、カウンター値は2
になります。
フラッシュするたびに、現在のカウントが送信され、 0
にリセットされます。カウントが更新されていない場合、次のフラッシュで値0
が送信されます。 expiry-interval
を1ms
に設定することで、この動作を無効にすることを選択できます。
ここでは、10回に1回の割合でサンプリングされているカウンターの例を紹介します。
ゲージ ゲージは、時間の経過とともに増加または減少する可能性のある値を表します。ゲージの例としては、温度、CPU使用率、メモリなどがあります。以下にその例を示します。
ゲージが更新されていない場合、次のフラッシュで前の値が送信されます。 expiry-interval
を1ms
に設定することで、この動作を無効にすることを選択できます。
タイマー タイマーメトリックタイプは、タイミングデータを測定します。
デフォルトでは、 nri_statsd
はタイマーメトリックに対して次の値を計算します:フラッシュ間隔の標準偏差、平均、中央値、合計、下限、および上限。これらは、次の形式でサブメトリックとして送信されます。
<metric_base_name>.std_dev
<metric_base_name>.median
<metric_base_name>.summary
<metric_base_name>.sum_squares
<metric_base_name>.per_second
設定されたパーセンタイルは、以下のメトリクスを生成します。パーセンタイルのしきい値は、タグとして付けられます。
<metric_base_name>.sum_squares.percentiles
<metric_base_name>.sum.percentiles
<metric_base_name>.count.percentiles
<metric_base_name>.upper.percentiles
<metric_base_name>.mean.percentiles
パーセンタイルしきい値は、 percent-threshold
構成オプションを使用して調整できます。これらは、 disabled-sub-metrics
構成セクション から制御できます。
データにタグを追加することができます。タグは 属性 (キーと値のペア)として保存されます。タグの追加には2つのオプションがあります。
すべてのメトリクスに適用されるデフォルトのタグを追加します。これらは、すべてのメトリクスに適用されます。これらは固定されており、時間が経っても変化しません。 メトリクスレベルのタグを追加します。このタグは特定のメトリクスに適用され、2回のサブミットの間に値を変更することができます。 メトリクスやイベントにタグを追加するには、 起動コマンド で環境変数を定義します。
ここでは、2つのタグを作成する例を紹介します。
-e TAGS="environment:production region:us"
起動コマンド で使用されている環境変数を示します。
-d --restart unless-stopped \
-e NR_ACCOUNT_ID=YOUR_ACCOUNT_ID \
-e NR_API_KEY=NEW_RELIC_LICENSE_KEY \
-e TAGS="environment:production region:us" \
newrelic/nri-statsd:latest
メトリックフォーマット を定義する際に、このフォーマットを使用してタグを追加することができます。
<bucket name>:<value>|<type>|#<tags>
この例では、 <tags>
はコンマで区切られたタグのリストです。タグの形式は、 simple
またはkey:value
です。
以下は、カスタムタグを含む NRQL クエリの例です。
SELECT count(*) FROM Metric WHERE environment = 'production'
アラートの作成 NRQLのアラート条件 を使ってStatsDのデータにアラートを出すことができます。
アラート例 この手順では、サンプルデータの送信から、そのデータを使ったアラート条件の作成までを行います。
まず、このデータをNew RelicのStatsDコンテナに送ります。
echo "prod.test.num:32|g" | nc -v -w 1 -u localhost 8125
次に、このクエリを使用して、 NRQL アラート条件 を作成します。
SELECT latest(prod.test.num) FROM Metric WHERE metricName = 'prod.test.num'
このNRQLのアラート条件を作成しているイメージは以下の通りです。送られてきたサンプルデータは、チャートの右上にある青い点で表されていることに注目してください。
それでは、これらの設定でアラート条件を作成します。
NRQL のアラート条件を作成する際には、必ず 条件名 を設定してください。
50を超える値のメトリックが送信された場合、インシデントが作成され、通知されます。このインシデントは24時間後に自動的にクローズされます。アラートが機能していることをテストするには、次のコマンドを実行します。
echo "prod.test.num:60|g" | nc -v -w 1 -u localhost 8125
データを見つけて使用する データを照会するには、New Relic の クエリオプション を使用します。例えば、 NRQL のようなクエリを実行します。
SELECT count(*) FROM Metric WHERE metricName = 'myMetric' and environment = 'production'
Metric
データ型をクエリする方法の詳細については、「メトリックデータのクエリ 」を参照してください。
ソースコードを確認してください この統合はオープン ソース ソフトウェアです。つまり、ソース コードを参照して 改善を送信したり、独自のフォークを作成してビルドしたりできます。