Google Cloud Managed Service for Prometheus

Google Cloud Managed Service for Prometheus では、Prometheus を大規模に手動で管理、運用しなくても、Prometheus を使用して Kubernetes のワークロードのモニタリングや、Kubernetes のデプロイに関するアラートの送信を行うことができます。

このドキュメントでは、このマネージド サービスの特徴について説明します。プロダクトが一般提供になったときに最新情報を受け取るには、登録フォームを送信してください。gmp-support@google.com にメールを送信してヘルプをリクエストすることもできます。

Managed Service for Prometheus は、Prometheus 指標の保存、クエリに対応する Google Cloud のフルマネージド サービスです。このサービスは、Cloud Monitoring と同じグローバルにスケーラブルなデータストアである Monarch 上に構築されています。Prometheus の thin fork は、既存の Prometheus デプロイを置き換え、ユーザーの操作なしにデータをマネージド サービスに送信します。このデータは、マネージド サービスでサポートされている Prometheus Query API を介して PromQL のクエリで取得することも、既存の Cloud Monitoring クエリ メカニズムを使用して取得することもできます。

Managed Service for Prometheus を使用すると、Prometheus と Cloud Monitoring の機能にアクセスできます。

このサービスは Prometheus への置き換えを意図するもので、Thanos を使用する必要はなくなります。既存の Grafana ダッシュボード、PromQL ベースのアラート、ワークフローを引き続き利用できます。マネージド Prometheus バイナリは、アップストリームの Prometheus を使用しているすべての場所で使用できます。このコレクタは、ローカル ストレージやルール評価など、通常の Prometheus 機能をすべて保持しています。

Prometheus for Managed Service によるデータ収集

Managed Service for Prometheus では、マネージドまたはセルフデプロイのいずれかのモードでデータを収集できます。以下では、このモードの違いについて説明します。

Managed Service for Prometheus は、Kubernetes 環境でマネージド モードでデータを収集するオペレーターを提供します。マネージド コレクションでは、Prometheus サーバーのデプロイ、スケーリング、シャーディング、構成、メンテナンスなどの複雑さが軽減されるまで、こちらのモードの使用をおすすめします。マネージド コレクションは、GKE と GKE 以外の Kubernetes 環境でサポートされています。

セルフデプロイ コレクションでは、Prometheus 環境を通常どおりユーザー自身で管理します。アップストリーム Prometheus との唯一の違いは、アップストリーム Prometheus バイナリではなく、Prometheus Service for Prometheus のドロップイン代替バイナリを実行する点です。

データ収集モードを選択する場合は、次の点を考慮してください。

  • マネージド モードのデータ収集:

    • Kubernetes 環境に推奨のアプローチです。
    • kubectl ツールを使用してデプロイされます。
    • スクレイピング構成の生成、取り込みのスケーリング、適切なデータに対するルールのスコープ設定など、Prometheus のオペレーションは Kubernetes オペレーターによってすべて処理されます。
    • スクレイピングとルールは、軽量のカスタム リソース(CR)を使用して構成されます。
    • 簡単に使用できるフルマネージド環境が必要な場合に適しています。
    • prometheus-operator 構成ファイルから簡単に移行できます。
    • 現在の Prometheus のユースケースのほとんどに対応しています。
  • セルフデプロイ コレクション:

    • Managed Service for Prometheus バイナリは、アップストリーム Prometheus のドロップイン代替バイナリです。
    • prometheus-operator や手動デプロイなど、任意のデプロイ メカニズムを使用できます。
    • アノテーションや prometheus-Operator など、任意のメソッドを使用してスクレイピングを構成できます。
    • スケーリングと機能的シャーディングは手動で行います。
    • 既存の複雑な設定に迅速に統合する場合に適しています。既存の構成ファイルを再利用し、アップストリーム Prometheus と Managed Service for Prometheus を並べて実行できます。
    • マネージド コレクションでは、まだ未対応のユースケースがサポートされている可能性があります。

    Managed Service for Prometheus にデータをストリーミングすると、追加のリソースが消費されます。コレクタを手動でデプロイする場合は、CPU とメモリの上限を 5 倍に増やし、実際の使用量に基づいて調整することをおすすめします。

Prometheus と Google Cloud 向けのマネージド サービス

Managed Service for Prometheus は Google Cloud プロダクトであり、特定の課金と割り当てが適用されます。

課金

このサービスの課金は、主にストレージに取り込まれた指標サンプルの数に基づいて行われます。また、読み取り API 呼び出しにも少額の料金が発生します。Prometheus マネージド サービスでは、指標データの保存または保持に課金されません。

割り当て

Managed Service for Prometheus は、取り込みと読み取りの割り当てを Cloud Monitoring と共有します。取り込みのデフォルトの割り当ては、プロジェクトごとに 500 QPS です。1 回の呼び出しで最大 200 のサンプルを取得できます。読み取りのデフォルトの割り当ては、指標スコープごとに 100 QPS です。

指標とクエリ ボリュームをサポートするために、これらの割り当ての増加をリクエストできます。割り当ての管理と割り当ての増加リクエストについては、割り当ての操作をご覧ください。

アップストリーム Prometheus との相互運用

以降のセクションでは、Prometheus の一般的なユースケースと、Managed Service for Prometheus の利点について説明します。

既存の Prometheus のデプロイ

Managed Service for Prometheus は、Kubernetes 環境用のマネージド コレクタをアップストリーム Prometheus に追加します。マネージド コレクションを使用すると、Prometheus のマネージド サービスによるデータ収集で説明されているように、Prometheus のデプロイの設定とメンテナンスが容易になります。設定手順については、マネージド コレクションを使ってみるをご覧ください。

セルフデプロイ コレクションでマネージド サービスを実行することもできます。Managed Deployment for Prometheus コンテナ イメージまたはバイナリを使用して、既存のデプロイ構成を複製して使用できます。既存のすべての構成とワークフローが引き続き機能し、データは Monarch に保存されます。設定手順については、セルフデプロイ コレクションを使ってみるをご覧ください。

Google Kubernetes Engine の外部でマネージド サービスを使用する場合は、追加の構成が必要になることがあります。認証情報を明示的に提供するをご覧ください。

記録ルール

引き続き、ローカルでコレクタの記録ルールを評価できます。記録ルールの結果は、直接収集される指標データと同じように Monarch に保存されます。

Managed Service for Prometheus には、スタンドアロン ルール評価ツールも用意されています。これにより、指標スコープでアクセス可能なすべてのデータに対して、記録ルールとアラートルールを評価できます。マルチプロジェクトの指標スコープでルールを評価することで、すべての対象データを 1 つの Prometheus サーバーまたは 1 つの Google Cloud プロジェクトの同じ場所に配置する必要がなくなります。

エクスポートされるデータの制限

大量のデータがある場合は、一部の時系列データが Managed Service for Prometheus に送信されないようにして、コストを抑えることをおすすめします。エクスポートされるデータは、フィルタを使用して制限できます。詳細については、マネージド コレクションのフィルタリングまたはセルフデプロイ コレクションのフィルタリングをご覧ください。

フェデレーション サーバー

フェデレーション サーバーで Managed Service for Prometheus バイナリを使用することはおすすめしません。マネージド サービスは、グローバルにスケーラブルなストレージにより、すべてのデータのグローバル ビューを提供します。Prometheus のフェデレーションでは、通常、このようなスケーラブルなストレージの欠如を回避しようとします。そのため、フェデレーションとマネージド サービスでは、指標データのグローバル ビューを実現するアプローチが異なります。

Managed Service for Prometheus は、エクスポートされる指標を Monarch に制限するフィルタリングをサポートしています。エクスポート フィルタリングはフェデレーションと同じ構成セマンティクスを持つため、同じ目的を達成するためにフェデレーションをエクスポート フィルタリングに切り替えることができます。

高可用性 Prometheus

Managed Service for Prometheus は高可用性収集をサポートしていません。マネージド コレクタを使用すると、コレクタがノード エージェントとして実行されるため、高可用性コレクタが不要になります。

自動スケーリング

自動スケーリングには GKE ワークロードの指標と同じ手法を使用できますが、指標の接頭辞は workload.googleapis.com ではなく、prometheus.googleapis.com になります。詳細については、GKE ワークロードの指標を使用したデプロイの自動スケーリングをご覧ください。

次のステップ