arrow_back

Managed Service for Prometheus の費用を削減する

ログイン 参加
700 以上のラボとコースにアクセス

Managed Service for Prometheus の費用を削減する

ラボ 1時間 30分 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP1027

Google Cloud セルフペース ラボのロゴ

概要

Google Cloud Managed Service for Prometheus では、Cloud Monitoring に取り込まれたサンプル数と、Monitoring API への読み取りリクエストに対して課金されます。費用の主な要因は、取り込まれたサンプル数です。

このラボでは、Google Cloud で Managed Service for Prometheus を利用する際の費用管理メカニズムについて確認します。

目標

このラボでは、次の方法について学びます。

  • Google Kubernetes Engine(GKE)クラスタに Google Managed Prometheus(GMP)と Python アプリケーションをデプロイする
  • 生成した指標データをフィルタすることで、マネージド サービスに送信する時系列指標の数を減らす
  • スクレイピング間隔を変更して、収集するサンプルの数を減らす

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. GKE クラスタをデプロイする

  • ラボを設定するために、基本的な GKE クラスタをデプロイします。
gcloud beta container clusters create gmp-cluster --num-nodes=1 --zone {{{project_0.default_zone|ZONE}}} --enable-managed-prometheus gcloud container clusters get-credentials gmp-cluster --zone={{{project_0.default_zone|ZONE}}}

タスク 2. マネージド コレクションをデプロイする

PodMonitoring リソースを構成する

次のマニフェストでは、gmp-test Namespace で PodMonitoring リソース prom-example を定義します。このリソースは、Kubernetes ラベル セレクターを使用して、Namespace にあるラベルが app で値が prom-example のすべての Pod を検索します。一致する Pod が 30 秒ごとに、/metrics HTTP パスの metrics というポートでスクレイピングされます。

apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: namespace: gmp-system name: collector labels: app.kubernetes.io/name: collector app.kubernetes.io/part-of: google-cloud-managed-prometheus spec: selector: matchLabels: app.kubernetes.io/name: collector endpoints: - port: prom-metrics interval: 10s - port: cfg-rel-metrics interval: 10s
  • このリソースを適用するには、次のコマンドを実行します。
kubectl -n gmp-system apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/main/examples/self-pod-monitoring.yaml

マネージド コレクタが一致する Pod をスクレイピングしています。

サンプル アプリケーションをデプロイする

このマネージド サービスは、指標ポートに Prometheus 指標を送信するサンプル アプリケーションのマニフェストを提供します。このアプリケーションは 3 つのレプリカを使用します。

  • サンプル アプリケーションをデプロイするには、次のコマンドを実行します。
kubectl -n gmp-system apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/main/examples/example-app.yaml Prometheus がデプロイされていることを確認する

タスク 3. Cloud Monitoring

Managed Service for Prometheus データを Cloud Monitoring で時系列に表示するには、Metrics Explorer を使用します。指標を表示するように Metrics Explorer を構成するには、次の手順を行います。

  1. Cloud コンソールから、[Monitoring] に移動します。
  2. [Monitoring] のナビゲーション パネルで、Metrics Explorer アイコン [Metrics Explorer] をクリックします。
  3. グラフに表示するデータを指定します。これには、MQL エディタを使用できます。
    • [MQL] タブを使用するには、次の操作を行います。

      a. 右上から [PromQL] をクリックし、新しい [クエリ] で [MQL] ラジオボタンを選択します。

      b. 次のクエリを入力します。

      fetch prometheus_target::prometheus.googleapis.com/up/gauge

      c. [クエリを実行] をクリックします。

タスク 4. グラフを作成する

  • [Monitoring] > [Metrics Explorer] に移動し、別のクエリを作成します。

  • [PromQL] ラジオボタンを選択し、[クエリを実行] をクリックして以下のクエリを実行し、指標を表示します。

go_memstats_heap_alloc_bytes

選択すると、下の画像のようなグラフが作成されます。

PromQL クエリ

タスク 5. エクスポートした指標をフィルタする

大量のデータを収集する場合は、費用を抑えるため、一部の時系列が Managed Service for Prometheus に送信されないようにする必要があります。

エクスポートされた指標をフィルタするには、OperatorConfig リソースで一連の PromQL 時系列セレクタを構成します。少なくとも 1 つのセレクタに一致すると、時系列が Managed Service for Prometheus にエクスポートされます。

  1. OperatorConfig リソースを開いて編集します。
kubectl -n gmp-public edit operatorconfig config
  1. apiVersion 行の後に「i」を押して、挿入モードに切り替えます。最後の行に移動し、Enter キーを押して新しい行に移動します。行頭にインデントがないことを確認します。次に、以下を貼り付けます。
collection: filter: matchOneOf: - '{job="prom-example"}' - '{__name__=~"job:.+"}'

ファイルを開くと、下のように表示されます。

オペレーターの構成コード

  1. ファイルを保存して終了するには、Esc キーを押してから「:wq」と入力し、Enter キーを押します。

これにより、Prometheus ジョブの指標と、ジョブレベルで集計された記録ルールによって生成された指標(命名のベスト プラクティスに従っている場合)のみがエクスポートされます。他の時系列のサンプルはすべて除外されます。デフォルトでは、セレクタは指定されず、すべての時系列がエクスポートされます。

filter.matchOneOf 構成セクションのセマンティクスは、Prometheus フェデレーションの match[] パラメータと同じです。

  1. op-config.yaml ファイルを作成します。
vi op-config.yaml
  1. 以下のコードを op-config.yaml ファイルにコピーします。
apiVersion: monitoring.googleapis.com/v1alpha1 collection: filter: matchOneOf: - '{job="prom-example"}' - '{__name__=~"job:.+"}' kind: OperatorConfig metadata: annotations: components.gke.io/layer: addon kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"monitoring.googleapis.com/v1alpha1","kind":"OperatorConfig","metadata":{"annotations":{"components.gke.io/layer":"addon"},"labels":{"addonmanager.kubernetes.io/mode":"Reconcile"},"name":"config","namespace":"gmp-public"}} creationTimestamp: "2022-03-14T22:34:23Z" generation: 1 labels: addonmanager.kubernetes.io/mode: Reconcile name: config namespace: gmp-public resourceVersion: "2882" uid: 4ad23359-efeb-42bb-b689-045bd704f295
  1. 作成した構成ファイルをアップロードして、次の点を検証します。
export PROJECT=$(gcloud config get-value project) gsutil mb -p $PROJECT gs://$PROJECT gsutil cp op-config.yaml gs://$PROJECT gsutil -m acl set -R -a public-read gs://$PROJECT 指標フィルタが適用されているか確認する

タスク 6. クエリを実行する

  1. [+ クエリを追加] をクリックして新しいクエリを作成し、[指標を選択] 入力フィルタに「up/gauge」と入力します。

  2. 結果の Prometheus 指標を選択し、[適用] を選択します。

タスク 7. アプリをモニタリングする

  1. 作成した prom-example-config.yaml ファイルをアップロードして、次の点を検証します。
vi prom-example-config.yaml
  1. 以下をファイルにコピーします。
apiVersion: monitoring.googleapis.com/v1alpha1 kind: PodMonitoring metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"monitoring.googleapis.com/v1alpha1","kind":"PodMonitoring","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"prom-example"},"name":"prom-example","namespace":"gmp-test"},"spec":{"endpoints":[{"interval":"30s","port":"metrics"}],"selector":{"matchLabels":{"app":"prom-example"}}}} creationTimestamp: "2022-03-14T22:33:55Z" generation: 1 labels: app.kubernetes.io/name: prom-example name: prom-example namespace: gmp-test resourceVersion: "2648" uid: c10a8507-429e-4f69-8993-0c562f9c730f spec: endpoints: - interval: 60s port: metrics selector: matchLabels: app: prom-example status: conditions: - lastTransitionTime: "2022-03-14T22:33:55Z" lastUpdateTime: "2022-03-14T22:33:55Z" status: "True" type: ConfigurationCreateSuccess observedGeneration: 1
  1. Cloud Shell で以下のコマンドを実行します。
export PROJECT=$(gcloud config get-value project) gsutil cp prom-example-config.yaml gs://$PROJECT gsutil -m acl set -R -a public-read gs://$PROJECT スクレイピング間隔が変更されたか確認する

これでラボは完了です。

お疲れさまでした

Managed Service for Prometheus の使用に関連するコストを削減する方法を学びました。Prometheus とサンプル アプリケーションをデプロイしました。次に、指標フィルタを適用し、スクレイピング間隔を変更して、Google Managed Prometheus サービスを使用した指標の取り込みに関連する費用を削減しました。

次のステップと詳細情報

  • Google Cloud Managed Service for Prometheus の詳細については、こちらをご覧ください。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 2 月 17 日

ラボの最終テスト日: 2025 年 2 月 17 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。