StatsD がメトリクスのみを受け付けるのに対して、DogStatsD は、Datadog の主要な 3 種類のデータタイプ、すなわちメトリクス、イベント、サービスチェックをすべて受け付けます。ここでは、サービスチェックの一般的な使用例をコード例を用いて説明します。
関数
DogStatsD をインストールした後、次の関数を使用して Datadog へサービスチェックを送信できます。
service_check(<SERVICE_CHECK_NAME>, <STATUS>, <TAGS>, <HOSTNAME>, <MESSAGE>)
サービスチェック関数パラメーター:
パラメーター | タイプ | 必須 | デフォルト値 | 説明 |
---|
<SERVICE_CHECK_NAME> | 文字列 | はい | - | サービスチェックの名前。 |
<STATUS> | Int | はい | - | サービスのステータスを説明する定数: OK には 0 、WARN には 1 、CRITICAL には 2 、UNKNOWN には 3 。 |
<タグ> | key:value ペアのリスト | いいえ | - | サービスチェックに関連付けられているタグのリスト |
<ホスト名> | 文字列 | いいえ | 現在のホスト | サービスチェックに関連付けられているホスト名 |
<MESSAGE> | 文字列 | いいえ | - | このステータスが発生した補足情報や説明 |
コード例
次のコードを実行して、DogStatsD を通じて Datadog にサービスチェックを送信します。必要がなくなったら、クライアントを フラッシュする
/閉じる
ことを忘れないでください。
from datadog import initialize, statsd
options = {"statsd_host": "127.0.0.1", "statsd_port": 8125}
initialize(**options)
statsd.service_check(
check_name="application.service_check",
status="0",
message="Application is OK",
)
require 'datadog/statsd'
statsd = Datadog::Statsd.new('localhost', 8125)
statsd.service_check('application.service_check', 0, {'message' => 'Application is OK'})
package main
import (
"log"
"time"
"github.com/DataDog/datadog-go/statsd"
)
func main() {
dogstatsdClient, err := statsd.New("127.0.0.1:8125")
if err != nil {
log.Fatal(err)
}
for {
dogstatsdClient.SimpleServiceCheck("application.service_check", 0)
time.Sleep(10 * time.Second)
}
}
import com.timgroup.statsd.ServiceCheck;
import com.timgroup.statsd.NonBlockingStatsDClientBuilder;
import com.timgroup.statsd.StatsDClient;
public class DogStatsdClient {
public static void main(String[] args) throws Exception {
StatsDClient Statsd = new NonBlockingStatsDClientBuilder()
.prefix("statsd").
.hostname("localhost")
.port(8125)
.build();
ServiceCheck sc = ServiceCheck.builder()
.withName("Service.check.name")
.withStatus(ServiceCheck.Status.OK)
.build();
Statsd.serviceCheck(sc);
}
}
using StatsdClient;
public class DogStatsdClient
{
public static void Main()
{
var dogstatsdConfig = new StatsdConfig
{
StatsdServerName = "127.0.0.1",
StatsdPort = 8125,
};
using (var dogStatsdService = new DogStatsdService())
{
if (!dogStatsdService.Configure(dogstatsdConfig))
throw new InvalidOperationException("Cannot initialize DogstatsD. Set optionalExceptionHandler argument in the `Configure` method for more information.");
dogStatsdService.ServiceCheck("Service.check.name", 0, message: "Application is OK.", tags: new[] { "env:dev" });
}
}
}
<?php
require __DIR__ . '/vendor/autoload.php';
use DataDog\DogStatsd;
$statsd = new DogStatsd(
array('host' => '127.0.0.1',
'port' => 8125,
)
);
$statsd->service_check('Service.check.name', 0);
サービスチェックが報告されたら、それを使用してサービスチェックモニターをトリガーできます。
その他の参考資料