GSP1027

概要
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 コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。
左側の [ラボの詳細] ペインには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
-
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}}
[ラボの詳細] ペインでもユーザー名を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}}
[ラボの詳細] ペインでもパスワードを確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。
注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
-
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。
Cloud Shell をアクティブにする
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
-
Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン
をクリックします。
-
ウィンドウで次の操作を行います。
- 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 にプリインストールされており、タブ補完がサポートされています。
- (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
- [承認] をクリックします。
出力:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (省略可)次のコマンドを使用すると、プロジェクト 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 を構成するには、次の手順を行います。
- Cloud コンソールから、[Monitoring] に移動します。
- [Monitoring] のナビゲーション パネルで、
[Metrics Explorer] をクリックします。
- グラフに表示するデータを指定します。これには、MQL エディタを使用できます。
タスク 4. グラフを作成する
go_memstats_heap_alloc_bytes
選択すると、下の画像のようなグラフが作成されます。

タスク 5. エクスポートした指標をフィルタする
大量のデータを収集する場合は、費用を抑えるため、一部の時系列が Managed Service for Prometheus に送信されないようにする必要があります。
エクスポートされた指標をフィルタするには、OperatorConfig リソースで一連の PromQL 時系列セレクタを構成します。少なくとも 1 つのセレクタに一致すると、時系列が Managed Service for Prometheus にエクスポートされます。
-
OperatorConfig
リソースを開いて編集します。
kubectl -n gmp-public edit operatorconfig config
- apiVersion 行の後に「i」を押して、挿入モードに切り替えます。最後の行に移動し、Enter キーを押して新しい行に移動します。行頭にインデントがないことを確認します。次に、以下を貼り付けます。
collection:
filter:
matchOneOf:
- '{job="prom-example"}'
- '{__name__=~"job:.+"}'
ファイルを開くと、下のように表示されます。

- ファイルを保存して終了するには、Esc キーを押してから「:wq」と入力し、Enter キーを押します。
これにより、Prometheus ジョブの指標と、ジョブレベルで集計された記録ルールによって生成された指標(命名のベスト プラクティスに従っている場合)のみがエクスポートされます。他の時系列のサンプルはすべて除外されます。デフォルトでは、セレクタは指定されず、すべての時系列がエクスポートされます。
filter.matchOneOf
構成セクションのセマンティクスは、Prometheus フェデレーションの match[] パラメータと同じです。
-
op-config.yaml
ファイルを作成します。
vi op-config.yaml
- 以下のコードを
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
- 作成した構成ファイルをアップロードして、次の点を検証します。
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. クエリを実行する
-
[+ クエリを追加] をクリックして新しいクエリを作成し、[指標を選択] 入力フィルタに「up/gauge
」と入力します。
-
結果の Prometheus 指標を選択し、[適用] を選択します。
タスク 7. アプリをモニタリングする
- 作成した prom-example-config.yaml ファイルをアップロードして、次の点を検証します。
vi prom-example-config.yaml
- 以下をファイルにコピーします。
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
- 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 の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。