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

Container Service for Kubernetes:PromQLを使用したPrometheusモニタリングデータのクエリ

最終更新日:Dec 19, 2024

Prometheus Query Language (PromQL) を使用してPrometheusモニタリングデータをクエリし、アラートルールの有効性と適時性を検証できます。

コンソールを使用してPrometheusモニタリングデータを照会する

Managed Service for Prometheus

Prometheusのマネージドサービスを構成および使用する方法の詳細については、「Prometheusのマネージドサービス」をご参照ください。

  1. 最初に

    ARMSコンソールを使用します。

  2. 左側のナビゲーションウィンドウで、[Prometheusのマネージドサービス] > [インスタンス] を選択します。

  3. 上部のナビゲーションバーで、Container Service for Kubernetes (ACK) クラスターがデプロイされているリージョンを選択します。 管理するインスタンスを見つけて、Grafana Workspace列の [共有版] をクリックします。

  4. [ダッシュボード] ページの左側のナビゲーションウィンドウで、アイコンをクリックし大盘ます。 次に、[検索] の横にあるドロップダウンリストからデータソースを選択します。

  5. Metricsの横のテキストフィールドにPromQLステートメントを入力し、[クエリの実行] をクリックします。

オープンソースのPrometheus

ACKクラスターでオープンソースのPrometheusを構成する方法の詳細については、「オープンソースのPrometheusを使用してACKクラスターを監視する」をご参照ください。

  1. 次のコマンドを実行して、クラスター内のPrometheusをローカルポート9090にマッピングします。

    kubectl port-forward svc/ack-prometheus-operator-prometheus 9090:9090 -n monitoring
  2. Enter localhost: webブラウザのアドレスバーに9090し、コンソールのホームページでPromQLを使用してモニタリングデータを照会します。

APIを使用してPrometheusモニタリングデータを照会する

Managed Service for Prometheus

  1. 最初に

    ARMSコンソールを使用します。

  2. 左側のナビゲーションウィンドウで、Prometheusのマネージドサービス > インスタンス.

  3. [インスタンス] ページで、管理するPrometheusインスタンスがデプロイされているリージョンを選択し、[操作] 列の [設定] をクリックします。

  4. [設定] ページで、Prometheusインスタンスのパブリックエンドポイントまたは内部エンドポイントを [HTTP API URL (Grafana読み取りURL)] セクションにコピーします。 エンドポイントは、モニタリングデータをGrafanaにインポートするために使用されます。

  5. オプション: [トークンの生成] をクリックして、Prometheusインスタンスの認証トークンを取得します。 トークンは、モニタリングデータをGrafanaにインポートするときにデータのセキュリティを確保するために使用されます。

    重要

    トークンが生成された後、PrometheusインスタンスをGrafanaダッシュボードにデータソースとして追加するときに、トークンを指定する必要があります。 それ以外の場合、Prometheusインスタンスからモニタリングデータを読み取ることはできません。

  6. 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

  1. HTTP APIエンドポイントを取得します。

    • クラスター内からオープンソースのPrometheusにアクセスする場合、ack-prometheus-operatorコンポーネントを公開するために使用されるサービスのデフォルトエンドポイントはhttp:// ack-prometheus-operator-prometheus.monitoring:9090です。

    • インターネット経由でオープンソースのPrometheusにアクセスする場合は、Server Load Balancer (SLB) インスタンスを、ack-prometheus-operatorコンポーネントの公開に使用するサービスに関連付ける必要があります。 これを行うには、次の手順を実行します。

    1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

    2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ネットワーク] > [サービス] を選択します。

    3. [サービス] ページの上部で、[名前空間][監視] に設定します。 次に、ack-prometheus-operator-prometheusを見つけ、[操作] 列の [更新] をクリックします。

    4. では、サービスの更新ダイアログボックスで、以下のパラメーターを設定し、OK.

      パラメーター

      設定

      サービスタイプ

      [サービスタイプ][SLB] に設定し、[アクセス方法][パブリックアクセス] を選択します。

      ポートマッピング

      ポート名を入力し、サービスポートを9090、コンテナポートを9090、プロトコルTCPに設定します。

    5. [サービス] ページで、[ack-prometheus-operator-prometheus] をクリックします。 [基本情報] セクションでは、HTTP APIエンドポイントである [外部IP] を取得できます。

  2. 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でアラートルールを構成するためのベストプラクティス」をご参照ください。