1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Splunk Observability Cloud - APIでディテクター作成

Last updated at Posted at 2024-05-09

はじめに

Splunk Observability Cloud の設定作業を API で行う方法をまとめておきたいと思います。この記事では、API でディテクターを設定していきます。

記事の内容

下記の操作を行う curl コマンドのサンプルです。

  • シンプルなディテクターを作成
  • 作成したディテクター設定の確認
  • ディテクターを削除

参考にしたドキュメント

準備

コマンドだけで作業を完結したいので、下記の記事を参考に APIアクセストークン(session token)を取得しておきます。

シンプルなディテクター作成

利用開始時に用意されているサンプルのメトリック demo.trans.latency を使って
シンプルなディテクターを作成してみます。

まずは上記の記事を参考に取得したAPIアクセストークンを環境変数にセットします。

export SPLUNK_O11Y_API_TOKEN=(取得したAPIアクセストークン)

そして Splunk Observability Cloud の Realm も環境変数にセットしておきます。

export SPLUNK_O11Y_REALM=(jp0 や us1 など)

作成するディテクターの設定を JSON ファイルとして準備します。

cat > request.json <<_EOF
{
  "name": "test detector 4",
  "description": "example",
  "maxDelay": 0,
  "programText" : "A = data('demo.trans.latency').percentile(pct=90).publish(label='A');detect(when(A > threshold(200)), auto_resolve_after='1h').publish('Latency is High')",
  "rules": [
    {
      "detectLabel": "Latency is High",
      "severity": "Major"
    }
  ],
  "tags": ["late_response"]
}
_EOF

最後にcurlコマンドでディテクターを作成します。

curl -X POST "https://app.${SPLUNK_O11Y_REALM}.signalfx.com/v2/detector" \
-H "Content-Type: application/json" \
-H "X-SF-Token: ${SPLUNK_O11Y_API_TOKEN}" \
-d @request.json

コマンドを実行すると次のような出力が表示されます。"id" 部分の「GNGUGeVA0AA」が今回作成したディテクターのIDです。

{
  "authorizedWriters" : {
    "teams" : [ ],
    "users" : [ ]
  },
  "created" : 1715217755370,
  "creator" : "(作成者のユーザーID)",
  "customProperties" : null,
  "description" : "example",
  "detectorOrigin" : "Standard",
  "id" : "GNGUGeVA0AA",
  "labelResolutions" : null,
  "lastUpdated" : 0,
  "lastUpdatedBy" : null,
  "maxDelay" : 0,
  "minDelay" : null,
  "name" : "test detector 1",
  (以下省略)

作成したディテクター設定の確認

curlコマンド先ほど作成したディテクターID(GNGUGeVA0AA)をGETします。

curl -X GET "https://app.${SPLUNK_O11Y_REALM}.signalfx.com/v2/detector/GNGUGeVA0AA" \
-H "Content-Type: application/json" \
-H "X-SF-Token: ${SPLUNK_O11Y_API_TOKEN}"

出力結果は次のようになります。

{
  "authorizedWriters" : {
    "teams" : [ ],
    "users" : [ ]
  },
  "created" : 1715217755370,
  "creator" : "(作成者のユーザーID)",
  "customProperties" : null,
  "description" : "example",
  "detectorOrigin" : "Standard",
  "id" : "GNGUGeVA0AA",
  "labelResolutions" : {
    "Latency is High" : 1000
  },
  "lastUpdated" : 1715217756154,
  (以下省略)

ディテクターを削除

先ほど作成したディテクターのIDを環境変数にセットしておきます。

export SPLUNK_O11Y_DETECTOR_ID=(削除したいディテクターのID)

curlコマンド(DELETE)で削除します。

curl -X DELETE "https://app.${SPLUNK_O11Y_REALM}.signalfx.com/v2/detector/${SPLUNK_O11Y_DETECTOR_ID}" \
-H "Content-Type: application/json" \
-H "X-SF-Token: ${SPLUNK_O11Y_API_TOKEN}"

おわりに

今回はdemoメトリクスを使ったシンプルなディテクターを作成する方法を紹介しましたが、APIリファレンスを参考にしたり、管理画面で作成したものを参考にすることで、実用的な設定のJSONファイルを用意することができると思います。
本記事が、ディテクター管理をコマンドで行う際の参考になればと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?