Prometheus Query Language (PromQL) を使用して Prometheus モニタリングデータをクエリし、アラートルールの正確性と適時性を検証できます。
コンソールでの Prometheus モニタリングデータのクエリ
Managed Service for Prometheus
Managed Service for Prometheus のデプロイと使用の詳細については、「Managed Service for Prometheus への接続と設定」をご参照ください。
-
ARMS コンソールにログインします。
-
左側のナビゲーションペインで、を選択します。
-
Prometheus 監視 ページの左上隅で、お使いの Container Service for Kubernetes (ACK) クラスターが配置されているリージョンを選択し、ターゲットインスタンスを見つけ、grafana ワークスペース 列の [共有版] をクリックします。
-
ダッシュボードの左側のナビゲーションペインで、
アイコンをクリックします。左上隅で、[Explore] の右側にあるドロップダウンリストからデータソースを選択します。 -
[メトリック] の右側のテキストボックスに PromQL クエリを入力し、[クエリの実行] をクリックします。
オープンソース Prometheus
ACK クラスターにオープンソース Prometheus をデプロイする方法の詳細については、「オープンソース Prometheus モニタリング」をご参照ください。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
-
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
-
[サービス] ページで、ack-prometheus-operator がデプロイされている monitoring 名前空間を選択します。ack-prometheus-operator-prometheus の [操作] 列で、 更新 をクリックします。
-
ダイアログボックスで、[タイプ] を [ロードバランサ (LoadBalancer)] に設定します。 リソースの新規作成 を選択し、 アクセス方式 を [パブリックアクセス] に、 課金方法 を [従量課金 (PayByCLCU)] に設定します。 [OK] をクリックします。
「CLB 課金の概要」をご参照ください。
-
更新後、外部 IP アドレスをコピーします。
<外部 IP アドレス>:9090(例:47.XX.XX.12:9090) で Prometheus UI を開きます。 -
Prometheus コンソールで、[グラフ] タブをクリックします。テキストボックスに PromQL クエリを入力し、[実行] をクリックします。
API によるモニタリングデータのクエリ
Managed Service for Prometheus
にログインします。 ARMSコンソールを使用します。
左側のナビゲーションウィンドウで、.
-
インスタンス ページの上部で、Prometheus インスタンスが配置されているリージョンを選択します。目的のインスタンスを見つけ、設定 を Actions 列でクリックします。
-
設定 ページにある HTTP API アドレス (Grafana 読み取りアドレス) セクションで、パブリックまたは内部 HTTP API URL をコピーします。
-
V1 Prometheus インスタンスの場合、Grafana でのデータ読み取りのセキュリティを向上させるには、[トークンを生成] をクリックして Prometheus インスタンスの認証トークンを取得します。
重要-
V1 インスタンス:トークンを生成した後、Grafana でデータソースを追加する際にそのトークンを設定する必要があります。そうしないと、Prometheus インスタンスからモニタリングデータを読み取ることができません。
-
V2 インスタンス:デフォルトでは、アカウントの AccessKey ID と AccessKey secret を使用してデータにアクセスする必要があります。AccessKey ID を所有する RAM ユーザーには、AliyunPrometheusMetricReadAccess または AliyunCloudMonitorFullAccess のシステム権限が必要です。
-
-
HTTP API を使用して Prometheus モニタリングデータをクエリします。
次のコードはリクエストの例です。HTTP API を使用して Prometheus モニタリングデータを取得する方法の詳細については、「HTTP API」をご参照ください。
V1
GET {HTTP API URL}/api/v1/query Accept: application/json Content-Type: application/json Authorization: {Token} { "query":"arms_prometheus_target_interval_length_seconds_sum", "time":"1635302655", "timeout":"1000" }V2
GET {HTTP API URL}/api/v1/query Accept: application/json Content-Type: application/json Authorization: Basic <base64Encode(<AccessKey ID:AccessKey secret>)> { "query":"arms_prometheus_target_interval_length_seconds_sum", "time":"1635302655", "timeout":"1000" }
オープンソース Prometheus
-
HTTP API の URL を取得します。
クラスター内からオープンソースの Prometheus にアクセスする場合、ack-prometheus-operator のデータリクエストサービスのデフォルト URL は
http://ack-prometheus-operator-prometheus.monitoring:9090です。オープンソース Prometheus にパブリックアクセスを使用する場合は、次の手順に従って Classic Load Balancer (CLB) インスタンスを
ack-prometheus-operatorのデータリクエストサービスにアタッチします。ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
-
サービス ページの上部で、名前空間 を monitoring に設定します。ack-prometheus-operator-prometheus を探し、更新 を、操作 列でクリックします。
-
サービスの更新 ダイアログボックスで、次のパラメーターを設定し、更新 をクリックします。
パラメーター
設定
サービスタイプ
サービスタイプ を ロードバランサ (LoadBalancer) に設定し、アクセス方法を パブリックアクセス に設定します。
ポートマッピング
ポート名を入力します。サービスポート を 9090 に、コンテナーポート を 9090 に、プロトコル を TCP に設定します。
-
サービス ページで、ack-prometheus-operator-prometheus サービスをクリックします。基本情報 セクションで、外部 IP アドレス (External IP) を取得します。これが HTTP API URL です。
-
HTTP API を使用して Prometheus モニタリングデータをクエリします。
-
特定の時点のモニタリングデータを取得します。
GET {HTTP API}/api/v1/query Headers: Accept: application/json Content-Type: application/json Param: { "query":"{{PromQL}}", "time":"1635302655", "timeout":"1000" }-
time: データをクエリする時点を指定します。
-
timeout: タイムアウトをミリ秒単位で指定します。クエリがこのタイムアウトを超えた場合、現在の結果が返されます。
-
-
時間範囲内のモニタリングデータをクエリします。
GET {HTTP API}/api/v1/query_range Headers: Accept: application/json Content-Type: application/json Param: { "query":"{{PromQL}}", "start": 1673946024, "end": 1673949624, "step": 30 }-
start: クエリの開始時刻を指定します。
-
end: クエリの終了時刻を指定します。
-
step: 返されるモニタリングデータのデータポイント間の時間ステップを指定します。
-
-
関連ドキュメント
カスタム PromQL クエリを使用してアラートルールを作成するには、「Prometheus を使用したアラートルールの設定に関するベストプラクティス」をご参照ください。