すべてのプロダクト
Search
ドキュメントセンター

Managed Service for Prometheus:HTTP API URL を介した Prometheus モニタリングデータへのアクセス

最終更新日:Aug 18, 2026

Managed Service for Prometheus は、Alibaba Cloud コンソールの外部からモニタリングデータをクエリできる HTTP API URL を公開します。一般的なユースケースは次の 2 つです:

  • セルフマネージド Grafana:HTTP API URL を Prometheus データソースとして追加し、ご利用の Grafana インスタンスでメトリックを可視化します。

  • カスタムアプリケーション:Prometheus 互換の HTTP API を直接呼び出して、プログラムでメトリックを取得します。

認証

Managed Service for Prometheus は 2 つのインスタンスバージョンをサポートしており、それぞれ認証方式が異なります。

インスタンスバージョン認証方式認証情報
Prometheus V1トークンベース (任意)コンソールで生成された認証トークン
Prometheus V2Basic 認証 (必須)ご利用のアカウントの AccessKey ID と AccessKey Secret。また、関連付けられた RAM ユーザーは AliyunPrometheusMetricReadAccess または AliyunCloudMonitorFullAccess 権限を持っている必要があります
重要

Prometheus V2 の場合、データアクセスにはご利用のアカウントの AccessKey ID と AccessKey Secret の両方が必要です。また、関連付けられた RAM ユーザーは AliyunPrometheusMetricReadAccess または AliyunCloudMonitorFullAccess システム権限を持っている必要があります。

前提条件

開始する前に、次のものが揃っていることを確認してください:

  • 接続済みの Prometheus インスタンス。設定手順については、以下をご参照ください:

  • (Grafana の場合) 管理者アクセス権を持つセルフマネージド Grafana インスタンス

  • (Prometheus V2 の場合) ご利用のアカウントの AccessKey ペア。また、関連付けられた RAM ユーザーは必要な権限を持っている必要があります

HTTP API URL の取得

  1. CloudMonitor コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、Managed Service for Prometheus > インスタンス を選択します。

  3. 上部のナビゲーションバーで、ご利用の Prometheus インスタンスが存在するリージョンを選択します。

  4. ご利用の Prometheus インスタンスを見つけ、操作 列の 設定 をクリックします。

  5. 設定 タブで、HTTP API URL をコピーします。HTTP API URL on the Settings tab

    • ご利用の Grafana インスタンスまたはアプリケーションが Alibaba Cloud 内部ネットワークの外部にある場合は、パブリック URL を使用します。

    • ご利用の Grafana インスタンスまたはアプリケーションが同じ Alibaba Cloud リージョン内で実行されており、内部エンドポイントにアクセスできる場合は、内部 URL を使用します。

  6. (Prometheus V1 のみ) トークンの生成 をクリックして認証トークンを作成します。後で使用するために、このトークンを保存してください。

重要

Prometheus V1 インスタンスの場合、トークンを生成した後、Grafana データソースを設定する際にそのトークンを含める必要があります。トークンがないと、Grafana はインスタンスからモニタリングデータを読み取ることができません。

セルフマネージド Grafana データソースの設定

データソースの追加

  1. 管理者としてご利用の Grafana インスタンスにログインします。

  2. Connections > Data sources に移動します。

    このメニューは Grafana 管理者にのみ表示されます。Grafana 8 以前では、Configuration > Data sources に移動します。Connections メニューは Grafana 9 以降で利用できます。
  3. + Add data source をクリックし、Prometheus を選択します。

  4. Name フィールドに、データソースのわかりやすい名前を入力します。

  5. HTTP セクションの Prometheus server URL フィールドに、先ほどコピーした HTTP API URL を貼り付けます。

認証の設定

ご利用の Prometheus インスタンスのバージョンに応じた手順に従ってください。

Prometheus V1

トークンを生成した場合は、カスタム HTTP ヘッダーとして追加します:

  1. Custom HTTP Headers セクションで、+ Add header をクリックします。

  2. HeaderAuthorization に設定します。

  3. Value を認証トークンに設定します。

Custom HTTP header configuration for Prometheus V1

Prometheus V2

  1. Basic auth をオンにします。

  2. User をご利用の AccessKey ID に設定します。

  3. Password をご利用の AccessKey Secret に設定します。

Basic auth configuration for Prometheus V2

保存とテスト

Save & test をクリックします。成功メッセージが表示され、Grafana が Prometheus データソースに到達できることを確認します。

Grafana でのデータソースの検証

  1. Grafana で Dashboards に移動し、New > New dashboard をクリックします。

  2. + Add visualization をクリックし、設定したデータソースを選択します。

  3. Edit Panel ページで、Query タブを開きます。セクション A で、Metrics フィールドにメトリック名 (例:arms_prometheus_target_interval_length_seconds_sum) を入力し、必要に応じて Label filters を設定します。

  4. Run queries をクリックします。

メトリックデータを含むチャートがレンダリングされれば、データソースは機能しています。チャートが表示されない場合は、API URL またはトークンが有効であるか、またデータソースにモニタリングデータがあるかを確認してください。その他のヘルプについては、「トラブルシューティング」をご参照ください。

プログラムによる HTTP API のクエリ

以下の例では、即時クエリに /api/v1/query エンドポイントを使用します。範囲クエリ (/api/v1/query_range)、シリーズメタデータ、およびその他のエンドポイントについては、「Prometheus HTTP API リファレンス」をご参照ください。

Prometheus V1

curl -G '<your-http-api-url>/api/v1/query' \
  -H 'Authorization: <your-token>' \
  -H 'Accept: application/json' \
  --data-urlencode 'query=arms_prometheus_target_interval_length_seconds_sum' \
  --data-urlencode 'time=1635302655' \
  --data-urlencode 'timeout=1000'

次のプレースホルダーを実際の値に置き換えます:

プレースホルダー説明
<your-http-api-url>設定 タブの HTTP API URLhttps://cn-hangzhou.arms.aliyuncs.com/...
<your-token>コンソールで生成された認証トークンeyJhbGciOi...

また、Python の requests ライブラリを使用して API を呼び出すこともできます:

import requests

token = "your-token"
api_url = "https://your-prometheus-api-url"

response = requests.get(
    f"{api_url}/api/v1/query",
    params={"query": "up"},
    headers={"Authorization": f"Bearer {token}"}
)

data = response.json()
for result in data["data"]["result"]:
    print(f"Metric: {result['metric']}")
    print(f"Value: {result['value']}")
説明

token「HTTP API URL の取得」の手順で生成した認証トークンに、api_url をご利用の HTTP API URL に置き換えてください。

Prometheus V2

curl -G '<your-http-api-url>/api/v1/query' \
  -u '<your-accesskey-id>:<your-accesskey-secret>' \
  -H 'Accept: application/json' \
  --data-urlencode 'query=arms_prometheus_target_interval_length_seconds_sum' \
  --data-urlencode 'time=1635302655' \
  --data-urlencode 'timeout=1000'

次のプレースホルダーを実際の値に置き換えます:

プレースホルダー説明
<your-http-api-url>設定 タブの HTTP API URLhttps://cn-hangzhou.arms.aliyuncs.com/...
<your-accesskey-id>ご利用のアカウントの AccessKey IDLTAI5tXxx...
<your-accesskey-secret>ご利用のアカウントの AccessKey SecretxXxXxXx...
-u フラグは、AccessKey ID と AccessKey Secret を Base64 の Authorization: Basic ヘッダーとして自動的にエンコードします。

curl に加えて、Python の requests ライブラリと Basic 認証を使用して API を呼び出すこともできます:

import requests
import time

# コンソールから HTTP API URL を取得します。
api_url = 'http://cn-hangzhou.arms.aliyuncs.com:9090/api/v1/prometheus/{token}/{user_id}/{cluster_id}/{region}'

# AccessKey ID をユーザー名として、AccessKey Secret をパスワードとして使用します。
ak_id = 'your_access_key_id'
ak_secret = 'your_access_key_secret'

# メトリックをクエリします。
resp = requests.get(f'{api_url}/api/v1/query', params={'query': 'up'}, auth=(ak_id, ak_secret))
print(resp.json())

# 範囲クエリ (過去 1 時間)。
end = int(time.time())
start = end - 3600
resp = requests.get(f'{api_url}/api/v1/query_range', params={'query': 'up', 'start': start, 'end': end, 'step': '60s'}, auth=(ak_id, ak_secret))
print(resp.json())
説明

ak_idak_secret をご利用のアカウントの AccessKey ID と AccessKey Secret に置き換え、api_url の HTTP API URL を「HTTP API URL の取得」で取得したものに置き換えてください。API は STS 認証もサポートしており、その場合のシークレットのフォーマットは {secret}${STS Token} です。詳細については、「STS とは」をご参照ください。

クエリパラメーター

パラメーター必須説明
queryはい評価する PromQL 式
timeいいえ評価タイムスタンプ (UNIX タイムスタンプまたは RFC 3339)。デフォルトは現在のサーバー時間です
timeoutいいえ評価タイムアウト (ミリ秒)

レスポンスの例

クエリが成功すると、次のような JSON レスポンスが返されます:

{
    "status": "success",
    "data": {
        "resultType": "vector",
        "result": [
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "15s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "146655.24420603***"
                ]
            },
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "30s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "879810.747346***"
                ]
            },
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "20s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "73320.13578499***"
                ]
            }
        ]
    }
}

トラブルシューティング

現象考えられる原因解決策
HTTP 401 Unauthorized認証情報が無効または欠落トークン (V1) または AccessKey ペア (V2) を確認します。期限切れの場合は再生成してください。
HTTP 403 Forbidden権限が不十分RAM ユーザーに AliyunPrometheusMetricReadAccess または AliyunCloudMonitorFullAccess を付与します。
接続タイムアウトネットワーク到達不能Grafana が Alibaba Cloud の外部で実行されている場合は、パブリック HTTP API URL を使用します。同じリージョン内で実行されている場合は、内部 URL を使用します。
Grafana チャートにデータがないクエリされたメトリックに取り込まれたデータがないPrometheus インスタンスがアクティブにターゲットをスクレイピングしており、メトリック名が正しいことを確認します。

関連トピック