1
0

More than 1 year has passed since last update.

Sysdig Monitoring API (curl)

Last updated at Posted at 2023-06-15

IBM Cloud Monitoring with Sysdigサービスは、管理者、DevOpsチーム、開発者向けの、フル管理のエンタープライズ・グレードのモニタリング・サービスです。コンテナの深い可視性、サービス指向のビュー、包括的なメトリックが得られます。

Sysdig UI の Dashboard や Panel を利用して Metric 情報を確認することが一般的ですが、Monitoring API を使用することで、JSON Format で Metric Data を取得することが可能です。
Panel の Export 機能でも Metric Data を取得することができますが、Monitoring API は、より詳細な設定が可能です。

Monitoring API は、curl または python で利用することができます。

Extracting metrics from a Monitoring instance by using the Monitoring API
https://cloud.ibm.com/docs/monitoring?topic=monitoring-metrics_api
Extracting metrics from an instance by using the Monitoring Python client
https://cloud.ibm.com/docs/monitoring?topic=monitoring-metrics_python

ここでは、curl による Sysdig Monitoring API の利用方法をご紹介します。

curl syntax

基本的な curl の syntax は以下の通りです。

curl -X POST <SYSDIG_REST_API_ENDPOINT>/data -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json" -d DATA

SYSDIG_REST_API_ENDPOINT

Sysdig の Endpoint を指定します。Endpoint は以下から確認できます。
REST API endpoints
https://cloud.ibm.com/docs/monitoring?topic=monitoring-endpoints#endpoints_rest_api

ここでは、以下の Endpoint を使用します。

export SYSDIG_REST_API_ENDPOINT="https://jp-tok.monitoring.cloud.ibm.com/api"

AUTH_TOKEN

Sysdig Instance へのアクセスに必要な認証トークンを指定します。これは、Sysdig UI から確認できます。
sysdig1.png

export AUTH_TOKEN="Bearer <Sysdig UI から確認した認証トークン>"

GUID

Sysdig Instance の GUID を指定します。GUID は以下から確認できます。

$ ibmcloud monitoring service-instances --all-resource-groups
Listing service instances for jp-tok region and for all resource groups...
OK
Name           Region   State    Service Name     Platform Metrics
my-sysdig-01   jp-tok   active   sysdig-monitor   Enabled

$ ibmcloud resource service-instance my-sysdig-01 --output json | jq -r '.[].guid'
****-****-****-****-****
export GUID="****-****-****-****-****"

TEAM_ID

TEAM_ID の指定は必須ではありませんので、ここでは割愛します。

SysdigTeamID is optional. When you specify this header, you limit the request to the data and resources available for the team specified.

DATA

取得する Metirc 情報を指定します。例として、IBM Cloud Databases for Redis (Redis) の CPU 使用率を取得するために、以下のような JSON ファイルを作成してみます。
Monitoring Integration
https://cloud.ibm.com/docs/databases-for-redis?topic=databases-for-redis-monitoring

$ cat REDIS_CPU.json
{
  "metrics": [
    {
      "id": "ibm_resource"
    },
    {
      "id": "ibm_databases_for_redis_cpu_used_percent",
      "aggregations": {"time": "max"}
    }
  ],
  "filter": "ibm_location = \"jp-tok\"",
  "start": "1685199600",
  "end": "1685285999",
  "sampling": "3600"
}

curl による Metric の取得

以下のように curl を実行すると、Metirc が取得できます。

$ curl -X POST "$SYSDIG_REST_API_ENDPOINT"/data -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "content-type: application/json" -d @REDIS_CPU.json -o CPU_METRIC.json

$ jq -r . CPU_METRIC.json | head -n 30
{
  "data": [
    {
      "t": 1685203200,
      "d": [
        "my-redis-01",
        0.055926
      ]
    },
    {
      "t": 1685203200,
      "d": [
        "my-redis-02",
        0.035095
      ]
    },
    {
      "t": 1685206800,
      "d": [
        "my-redis-01",
        0.025385
      ]
    },
    {
      "t": 1685206800,
      "d": [
        "my-redis-02",
        0.001892
      ]
    },

sampling が適切でない例

Sysdig では、Data Retention によって過去日の Metric 情報が更新されます。
Data Retention
https://docs.sysdig.com/en/docs/administration/data-retention/

前述の例は 1 hr: 3 months に該当するため、"sampling": "3600" と指定しました。
適切でない sampling を指定すると、以下のように Metric 情報が取得されないため、注意が必要です。

$ cat 600SEC_REDIS_CPU.json
{
  "metrics": [
    {
      "id": "ibm_resource"
    },
    {
      "id": "ibm_databases_for_redis_cpu_used_percent",
      "aggregations": {"time": "max"}
    }
  ],
  "filter": "ibm_location = \"jp-tok\"",
  "start": "1685199600",
  "end": "1685285999",
  "sampling": "600"
}
$ curl -X POST "$SYSDIG_REST_API_ENDPOINT"/data -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "content-type: application/json" -d @600SEC_REDIS_CPU.json -o 600SEC_CPU_METRIC.json

$ jq -r . 600SEC_CPU_METRIC.json
{
  "data": [],
  "start": 1685199600,
  "end": 1685285400
}
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