Prometheus Query Language (PromQL) を使用してPrometheusモニタリングデータをクエリし、アラートルールの有効性と適時性を検証できます。
コンソールを使用してPrometheusモニタリングデータを照会する
Managed Service for Prometheus
Prometheusのマネージドサービスを構成および使用する方法の詳細については、「Prometheusのマネージドサービス」をご参照ください。
最初に
ARMSコンソールを使用します。左側のナビゲーションウィンドウで、
を選択します。上部のナビゲーションバーで、Container Service for Kubernetes (ACK) クラスターがデプロイされているリージョンを選択します。 管理するインスタンスを見つけて、Grafana Workspace列の [共有版] をクリックします。
[ダッシュボード] ページの左側のナビゲーションウィンドウで、アイコンをクリックします。 次に、[検索] の横にあるドロップダウンリストからデータソースを選択します。
Metricsの横のテキストフィールドにPromQLステートメントを入力し、[クエリの実行] をクリックします。
オープンソースのPrometheus
ACKクラスターでオープンソースのPrometheusを構成する方法の詳細については、「オープンソースのPrometheusを使用してACKクラスターを監視する」をご参照ください。
次のコマンドを実行して、クラスター内のPrometheusをローカルポート9090にマッピングします。
kubectl port-forward svc/ack-prometheus-operator-prometheus 9090:9090 -n monitoring
Enter localhost: webブラウザのアドレスバーに9090し、コンソールのホームページでPromQLを使用してモニタリングデータを照会します。
APIを使用してPrometheusモニタリングデータを照会する
Managed Service for Prometheus
最初に
ARMSコンソールを使用します。左側のナビゲーションウィンドウで、 .
[インスタンス] ページで、管理するPrometheusインスタンスがデプロイされているリージョンを選択し、[操作] 列の [設定] をクリックします。
[設定] ページで、Prometheusインスタンスのパブリックエンドポイントまたは内部エンドポイントを [HTTP API URL (Grafana読み取りURL)] セクションにコピーします。 エンドポイントは、モニタリングデータをGrafanaにインポートするために使用されます。
オプション: [トークンの生成] をクリックして、Prometheusインスタンスの認証トークンを取得します。 トークンは、モニタリングデータをGrafanaにインポートするときにデータのセキュリティを確保するために使用されます。
重要トークンが生成された後、PrometheusインスタンスをGrafanaダッシュボードにデータソースとして追加するときに、トークンを指定する必要があります。 それ以外の場合、Prometheusインスタンスからモニタリングデータを読み取ることはできません。
HTTP APIリクエストを送信して、Prometheus Serviceのモニタリングデータを照会します。
次のコードブロックに例を示します。 HTTP APIを使用してPrometheusモニタリングデータを取得する方法の詳細については、「HTTP API」をご参照ください。
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" }
オープンソースのPrometheus
HTTP APIエンドポイントを取得します。
クラスター内からオープンソースのPrometheusにアクセスする場合、ack-prometheus-operatorコンポーネントを公開するために使用されるサービスのデフォルトエンドポイントはhttp:// ack-prometheus-operator-prometheus.monitoring:9090です。
インターネット経由でオープンソースのPrometheusにアクセスする場合は、Server Load Balancer (SLB) インスタンスを、ack-prometheus-operatorコンポーネントの公開に使用するサービスに関連付ける必要があります。 これを行うには、次の手順を実行します。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
[サービス] ページの上部で、[名前空間] を [監視] に設定します。 次に、ack-prometheus-operator-prometheusを見つけ、[操作] 列の [更新] をクリックします。
では、サービスの更新ダイアログボックスで、以下のパラメーターを設定し、OK.
パラメーター
設定
サービスタイプ
[サービスタイプ] を [SLB] に設定し、[アクセス方法] の [パブリックアクセス] を選択します。
ポートマッピング
ポート名を入力し、サービスポートを9090、コンテナポートを9090、プロトコルをTCPに設定します。
[サービス] ページで、[ack-prometheus-operator-prometheus] をクリックします。 [基本情報] セクションでは、HTTP APIエンドポイントである [外部IP] を取得できます。
HTTP APIリクエストを送信して、Prometheus Serviceのモニタリングデータを照会します。
リアルタイムモニタリングデータを照会します。 次のコードブロックに例を示します。
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でアラートルールを構成するためのベストプラクティス」をご参照ください。