Prometheus Query Language (PromQL) を使用して Prometheus モニタリングデータをクエリできます。これにより、アラートルールの正確性と適時性を検証できます。
コンソールで Prometheus モニタリングデータをクエリする
Managed Service for Prometheus
Managed Service for Prometheus のデプロイと使用方法の詳細については、「Managed Service for Prometheus の使用」をご参照ください。
ARMS コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[Managed Service For Prometheus] ページの左上隅で、Container Service for Kubernetes (ACK) クラスターが配置されているリージョンを選択します。ターゲットインスタンスの [Grafana ワークスペース] 列にある [共有版] をクリックします。
ダッシュボードの左側のナビゲーションウィンドウで、
アイコンをクリックします。次に、左上隅の [Explore] の右側にあるドロップダウンリストから、適切なデータソースを選択します。[Metric] の横にあるテキストボックスに PromQL クエリ文を入力し、[Run Query] をクリックします。
オープンソース Prometheus
ACK クラスターにオープンソース Prometheus モニタリングをデプロイする方法の詳細については、「オープンソース Prometheus モニタリング」をご参照ください。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、目的のクラスターを見つけてその名前をクリックします。左側のペインで、 を選択します。
[サービス] ページで、[ack-prometheus-operator] がデプロイされている名前空間 (デフォルトでは [monitoring]) を選択します。[ack-prometheus-operator-prometheus] を見つけ、[アクション] 列の [更新] をクリックします。
[サービスの更新] ダイアログボックスで、[サービスタイプ] を [SLB] に設定します。[リソースの作成] を選択し、[アクセス方法] を [パブリックアクセス] に設定します。[課金方法] パラメーターに [従量課金 (CU 単位)] を選択し、必要に応じて他のパラメーターを設定して、[OK] をクリックします。
詳細は、「Classic Load Balancer (CLB) の課金」をご参照ください。
更新が完了したら、その外部 IP アドレスをコピーし、ブラウザのアドレスバーに
IP アドレス:ポート番号を入力して Prometheus にアクセスします。例:47.XX.XX.12:9090。Prometheus コンソールで、[Graph] タブをクリックします。テキストボックスに PromQL クエリ文を入力し、[Execute] をクリックします。
API を使用して Prometheus モニタリングデータをクエリする
Managed Service for Prometheus
ARMS コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[インスタンス] ページの上部で、Prometheus インスタンスが配置されているリージョンを選択します。ターゲットクラスターの [アクション] 列で、[設定] をクリックします。
[設定] ページの [HTTP API URL (Grafana Read URL)] セクションで、必要に応じてパブリックまたは内部 HTTP API URL をコピーします。
オプション。Prometheus V1 インスタンスの場合は、[トークンの生成] をクリックして認証トークンを取得します。このトークンは、モニタリングデータを Grafana にインポートする際のデータセキュリティを確保するために使用されます。
重要HTTP API を呼び出して、Managed Service for Prometheus からモニタリングデータをクエリします。
次のコードは、Managed Service for Prometheus を呼び出してモニタリングデータをクエリするリクエストの例です。HTTP API を使用して Prometheus モニタリングデータを取得する方法の詳細については、「HTTP API」をご参照ください。
V1
GET {HTTP API}/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}/api/v1/query Accept: application/json Content-Type: application/json Authorization: Basic <base64Encode(<accessKey:secretKey>)> { "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 にアクセスする場合は、ack-prometheus-operator サービスに SLB インスタンスをアタッチする必要があります。これを行うには、次のステップを実行します。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、目的のクラスターを見つけてその名前をクリックします。左側のペインで、 を選択します。
[サービス] ページの上部で、[名前空間] を [monitoring] に設定します。次に、[ack-prometheus-operator-prometheus] を見つけ、[アクション] 列の [更新] をクリックします。
[サービスの更新] ダイアログボックスで、次のパラメーターを設定し、[更新] をクリックします。
設定項目
設定
サービスタイプ
[サービスタイプ] を [Server Load Balancer (LoadBalancer)] に設定し、アクセス方法を [パブリックアクセス] に設定します。
ポートマッピング
ポート名を入力します。[サービスポート] を 9090、[コンテナポート] を 9090、[プロトコル] を [TCP] に設定します。
[サービス] ページで、[ack-prometheus-operator-prometheus] サービスをクリックします。[基本情報] セクションで、[外部 IP] を取得します。外部 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 を使用したアラートルールの設定に関するベストプラクティス」をご参照ください。