

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Google Cloud Monitoring データソースへの接続
<a name="using-google-cloud-monitoring-in-grafana"></a>

**注記**  
 以前のバージョンの Grafana では、このデータソースの名前は Google Stackdriver でした。

 Google Cloud Monitoring メトリクスのダッシュボードを構築できるようにするため、Google Cloud Monitoring データソースを追加します。

## データソースの追加
<a name="google-adding-the-data-source"></a>

1.  上部ヘッダーの Grafana アイコンを選択して、サイドメニューを開きます。

1.  サイドメニューの **[ダッシュボード]** リンクの下に、**[データソース]** リンクがあります。

1.  上部ヘッダーの **[\$1 データソースの追加]** ボタンを選択します。

1.  **[タイプ]** ドロップダウンリストから **[Google Cloud Monitoring]** を選択します。

1.  サービスアカウントのキーファイルにアップロードまたは貼り付けます。サービスアカウントのキーファイルを作成する手順については、このドキュメントの後半を参照してください。

**注記**  
 サイドメニューに **[データソース]** リンクが表示されない場合、現在のユーザーには `Admin` ロールがありません。


|  名前  |  説明  | 
| --- | --- | 
|  Name  |  データソース名。これはパネルとクエリでデータソースを参照する方法です。 | 
|  Default  |  デフォルトのデータソースは、新しいパネル用に事前に選択されたデータソースです。 | 
|  Service Account Key  |  GCP プロジェクトのサービスアカウントキーファイル。作成方法については、このドキュメントの後半の手順を参照してください。 | 

## 認証
<a name="google-authentication"></a>

 Google Cloud Monitoring プラグインの認証には 2 つの方法があります。
+ Google JWT ファイルのアップロード
+ Google メタデータサーバーから認証情報を自動的に取得

後者のオプションは、GCE 仮想マシンで Grafana を実行しているときにのみ使用できます。

### Google サービスアカウントのキーファイルの使用
<a name="using-a-google-service-account-key-file"></a>

 Google Cloud Monitoring API で認証するには、データを表示するプロジェクトの Google Cloud Platform (GCP) サービスのアカウントを作成する必要があります。Grafana データソースは 1 つの GCP プロジェクトと統合されます。複数の GCP プロジェクトのデータを視覚化するには、GCP プロジェクトごとに 1 つのデータソースを作成する必要があります。

#### API の有効化
<a name="google-enable-apis"></a>

 最初に次の API を有効にする必要があります。
+  [Monitoring API](https://console.cloud.google.com/apis/library/monitoring.googleapis.com) 
+  [Cloud Resource Manager API](https://console.cloud.google.com/apis/library/cloudresourcemanager.googleapis.com) 

 一覧されているリンクを選択してから **[有効化]** ボタンを選択します。

#### プロジェクトの GCP サービスアカウントの作成
<a name="create-a-gcp-service-account-for-a-project"></a>

1.  [API とサービスの認証情報ページ](https://console.cloud.google.com/apis/credentials)に移動します。

1.  **[認証情報の作成]** ドロップダウン/ボタンを選択して **[サービスアカウントキー]** オプションを選択します。

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1create\$1service\$1account\$1button.png" class="docs-image–no-shadow" caption="サービスアカウントの作成ボタン" >\$1\$1 

1.  **[サービスアカウントキーの作成]** ページで、キータイプ `JSON` を選択します。次に、**[サービスアカウント]** ドロップダウンリストで、**[新しいサービスアカウント]** オプションを選択します。

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1create\$1service\$1account\$1key.png" class="docs-image–no-shadow" caption="サービスアカウントキーの作成" >\$1\$1 

1.  いくつかの新しいフィールドが表示されます。**[サービスアカウント名]** フィールドにサービスアカウントの名前を入力してから、**[ロール]** ドロップダウンリストから **[モニタリングビューワー]** ロールを選択します。

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1service\$1account\$1choose\$1role.png" class="docs-image–no-shadow" caption="ロールを選択" >\$1\$1 

1.  **[サーバーの作成]** ボタンを選択します。JSON キーファイルが作成されてコンピュータにダウンロードされます。このファイルは Google Cloud Monitoring データへのアクセスを許可するためのものですから、安全な場所に保存してください。

1.  データソース **[設定]** ページで Grafana にアップロードします。ファイルをアップロード、またはファイルの内容に貼り付けることができます。

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1grafana\$1upload\$1key.png" class="docs-image–no-shadow" caption="サービスのキーファイルを Grafana にアップロード" >\$1\$1 

1.  ファイルの内容は暗号化されて Grafana データベースに保存されます。ファイルをアップロードした後は必ず保存してください。

    \$1\$1< docs-imagebox img="/img/docs/v71/cloudmonitoring\$1grafana\$1key\$1uploaded.png" class="docs-image–no-shadow" caption="サービスのキーファイルを Grafana にアップロード" >\$1\$1 

## クエリエディタの使用
<a name="google-using-the-query-editor"></a>

 Google Cloud Monitoring クエリエディタでは、**メトリクス**と**サービスレベル目標 (SLO)** の 2 種類のクエリを構築できます。どちらのタイプも時系列データを返します。

### メトリクスクエリ
<a name="google-metric-queries"></a>

 メトリクスクエリエディタでは、メトリクスを選択して、ラベルと時間ごとにグループ化/集計し、フィルターを使用して結果に含める時系列を指定できます。

 メトリクスクエリを作成するには、以下の手順に従います。

1.  **クエリタイプ**のドロップダウンリストで オプションの**メトリクス**を選択します。

1.  ドロップダウンリストから **[プロジェクト]** を選択します。

1.  **サービス**のドロップダウンリストから Google Cloud Platform サービスを選択します。

1.  **メトリクス**のドロップダウンリストからメトリクスを選択します。

1.  句によってフィルターやグループを追加または削除するには、フィルターおよびグループ化セクションのプラスとマイナスアイコンを使用します。この手順は省略可能です。

 Google Cloud Monitoring メトリクスにはさまざまな種類 (GAUGE、DELTA、CUMULATIVE) があり、これらの種類ではさまざまな集約オプション (リデューサーとアライナー) がサポートされます。Grafana クエリエディタには選択したメトリクスで使用可能な集約方法のリストが表示され、メトリクスを選択するときにデフォルトのリデューサーとアライナーがセットされます。Y 軸の単位もクエリエディタが自動的に選択します。

#### フィルター
<a name="google-filter"></a>

 フィルターを追加するには、プラスアイコンを選択して、フィルタリングするフィールドを選択し、フィルター値を入力します。たとえば、`instance_name = grafana-1` と入力します。フィルターを削除するには、フィルター名を選択して `--remove filter--` を選択します。

##### 単純なワイルドカード文字
<a name="google-simple-wildcards"></a>

 演算子を `=` または `!=` に設定すると、フィルター値のフィールドにワイルドカード文字を追加できます。例えば、`us-*` は「us-」で始まるすべての値をキャプチャし、`*central-a` は「central-a」で終わるすべての値をキャプチャします。`*-central-*` は、`central-` の部分文字列を持つすべての値をキャプチャします。単純なワイルドカード文字は正規表現よりも安価です。

##### 正規表現
<a name="google-regular-expressions"></a>

 演算子を `=~` または `!=~` に設定すると、フィルター値のフィールドに正規表現を追加できます。例えば、`us-central[1-3]-[af]` は「us-central」で始まり、1～3 の範囲の数値、ダッシュ、「a」または「f」のいずれかが続くすべての値に一致します。正規表現を作成するときは、先頭のスラッシュと末尾のスラッシュは必要ありません。

#### 集計
<a name="google-aggregation"></a>

 集計フィールドでは一般的な統計に基づいて時系列を組み合わせることができます。集計の詳細については、「[集計オプション](https://cloud.google.com/monitoring/charts/metrics-selector#aggregation-options)」を参照してください。

 `Aligner` フィールドでは、同じグループの後に複数の時系列を時間間隔で配置できます。アライナーの詳細については、「[アライメントメトリクスセレクタ](https://cloud.google.com/monitoring/charts/metrics-selector#alignment)」を参照してください。

##### アライメント期間と時間によるグループ化
<a name="alignment-periodgroup-by-time"></a>

 集計が選択されている場合、`Alignment Period` はメトリクスを時間ごとにグループ化します。デフォルトでは GCP Google Cloud Monitoring のデフォルトグループを使用します (これにより、Grafana のグラフと Google Cloud Monitoring UI のグラフを比較できます)。そのオプションは `cloud monitoring auto` と呼ばれ、デフォルトは次のとおりです。
+  時間範囲が 23 時間未満の場合は 1m 
+  時間範囲が 23 時間以上 6 日未満の場合は 5m 
+  時間範囲が 6 日以上の場合は 1h 

 別の自動オプションは `grafana auto` です。このオプションでは、選択した時間範囲とグラフパネルの幅に応じて、自動的に時間ごとにグループが設定されます。詳細については、「[間隔変数の追加](variables-types.md#add-an-interval-variable)」を参照してください。

 また、`1h`や `1d` など、グループ化する固定時間の間隔を選択することもできます。

#### グループ化の条件
<a name="google-group-by"></a>

 リソースラベルまたはメトリクスラベルでグループ化して時系列の数を減らし、グループごとに結果を集計します。例えば、instance\$1name でグループ化してコンピューティングインスタンスの集計メトリクスを表示します。

##### メタデータラベル
<a name="google-metadata-labels"></a>

 リソースメタデータラベルには Google Cloud のリソースを一意に識別するための情報が含まれています。メタデータラベルは、時系列リクエストの **[グループ化]** セグメントの一部である場合にのみ、時系列レスポンスで返されます。メタデータラベルを取得するための API がないため、選択したサービスとメトリクスで使用できるメタデータラベルを使用して、ドロップダウンリストでグループに入力することはできません。ただし、**[グループ化]** フィールドのドロップダウンリストには、一般的なシステムラベルの定義済みリストが用意されています。

 ユーザーラベルは事前に定義することはできませんが、**[グループ化]** フィールドには手動で入力できます。メタデータラベル、ユーザーラベル、またはシステムラベルが **[グループ化]** セグメントに含まれている場合は、それに基づいてフィルターを作成し、**[エイリアス]** フィールドでその値を展開できます。

#### エイリアスパターン
<a name="google-alias-patterns"></a>

 [エイリアス方法] フィールドを使用すると凡例キーの形式を制御できます。デフォルトではメトリクス名とラベルが表示されます。これは長くて読みにくくなる場合があります。エイリアスフィールドで次のパターンを使用して、お好みの方法で凡例キーをフォーマットできます。

#### メトリクスタイプのパターン
<a name="metric-type-patterns"></a>


|  エイリアスパターン  |  説明  |  結果の例  | 
| --- | --- | --- | 
|  \$1\$1metric.type\$1\$1  |  完全なメトリクスタイプを返します。 |  compute.googleapis.com/instance/cpu/utilization  | 
|  \$1\$1metric.name\$1\$1  |  メトリクス名の部分を返します。 |  instance/cpu/utilization  | 
|  \$1\$1metric.service\$1\$1  |  サービスのパートを返します。 |  compute  | 

#### ラベルパターン
<a name="google-label-patterns"></a>

 [グループ化] ドロップダウンリストには、メトリクスのリストとメトリクスのリソースラベルが表示されます。エイリアスパターンを使用すると、これらを凡例キーに含めることができます。


|  エイリアスパターン形式  |  説明  |  エイリアスパターンの例  |  結果の例  | 
| --- | --- | --- | --- | 
|  \$1\$1metric.label.xxx\$1\$1  |  メトリクスラベルの値を返します。 |  \$1\$1metric.label.instance\$1name\$1\$1  |  grafana-1-prod  | 
|  \$1\$1resource.label.xxx\$1\$1  |  リソースラベルの値を返します。 |  \$1\$1resource.label.zone\$1\$1  |  us-east1-b  | 
|  \$1\$1metadata.system\$1labels.xxx\$1\$1  |  メタデータシステムラベルの値を返します。 |  \$1\$1metadata.system\$1labels.name\$1\$1  |  grafana  | 
|  \$1\$1metadata.user\$1labels.xxx\$1\$1  |  メタデータユーザーラベルの値を返します。 |  \$1\$1metadata.user\$1labels.tag\$1\$1  |  production  | 

 エイリアス方法の例: `{{metric.type}} - {{metric.label.instance_name}}` 

 結果の例: `compute.googleapis.com/instance/cpu/usage_time - server1-prod` 

 また、モニタリング対象のリソースタイプの名前を解決することもできます。


|  エイリアスパターン形式  |  説明  |  結果の例  | 
| --- | --- | --- | 
|  \$1\$1resource.type\$1\$1  |  モニタリング対象のリソースタイプの名前を返します。 |  gce\$1instance  | 

 エイリアス方法の例: `{{resource.type}} - {{metric.type}}` 

 結果の例: `gce_instance - compute.googleapis.com/instance/cpu/usage_time` 

### SLO クエリ
<a name="slo-service-level-objective-queries"></a>

**注記**  
 SLO クエリは Grafana v7.0 以降でのみ使用できます 

Google Cloud Monitoring データソースの SLO クエリビルダーを使用すると、SLO データを時系列形式で表示できます。サービスモニタリングの基本概念を理解するには、Google Cloud Monitoring の[公式ドキュメント](https://cloud.google.com/monitoring/service-monitoring)を参照してください。

#### SLO クエリの作成
<a name="how-to-create-an-slo-query"></a>

 SLO クエリを作成するには、以下の手順に従います。

1.  **[クエリタイプ]** ドロップダウンリストから **[サービスレベル目標 (SLO)]** オプションを選択します。

1.  ドロップダウンリストから **[プロジェクト]** を選択します。

1.  **[サービス]** ドロップダウンリストから [[SLO サービス]](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services) を選択します。

1.  **[SLO]** ドロップダウンリストから [[SLO]](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services.serviceLevelObjectives) を選択します。

1.  **[セレクタ]** ドロップダウンリストから [[時系列セレクタ]](https://cloud.google.com/monitoring/service-monitoring/timeseries-selectors#ts-selector-list) を選択します。

 時系列セレクタのフレンドリ名が Grafana に表示されます。次の表は、サービスモニタリングのドキュメントで使用される、わかりやすい名前からシステム名へのマッピングを示しています。


|  セレクタのドロップダウンリストの値  |  使用する対応時系列セレクタ  | 
| --- | --- | 
|  SLI の値  |  select\$1slo\$1health  | 
|  SLO コンプライアンス  |  select\$1slo\$1compliance  | 
|  残りの SLO エラーバジェット  |  select\$1slo\$1budget\$1fraction  | 

#### SLO クエリのエイリアスパターン
<a name="alias-patterns-for-slo-queries"></a>

 [エイリアス方法] フィールドを使用すると SLO クエリの凡例キーの形式を制御できます。


|  エイリアスパターン  |  説明  |  結果の例  | 
| --- | --- | --- | 
|  \$1\$1project\$1\$1  |  GCP プロジェクト名を返します。 |  myProject  | 
|  \$1\$1service\$1\$1  |  サービス名を返します。 |  myService  | 
|  \$1\$1slo\$1\$1  |  SLO を返します。 |  latency-slo  | 
|  \$1\$1selector\$1\$1  |  セレクタを返します。 |  select\$1slo\$1health  | 

#### SLO クエリのアライメント期間と時間によるグループ化
<a name="alignment-periodgroup-by-time-for-slo-queries"></a>

 SLO クエリはメトリクスクエリと同じアライメント期間機能を使用します。詳細については、「[メトリクスクエリ](#google-metric-queries)」を参照してください。

## テンプレート作成
<a name="google-templating"></a>

 メトリクスクエリでサーバー、アプリケーション、センサー名などのものをハードコーディングする代わりに変数を使用できます。変数は、ダッシュボードの上部にドロップダウン選択ボックスとして表示されます。これらのドロップダウンボックスを使用して、ダッシュボードに表示されるデータを変更できます。

 テンプレート作成とテンプレート変数の詳細については、「[テンプレートおよび変数](templates-and-variables.md)」を参照してください。

### クエリ変数
<a name="google-query-variable"></a>

 *クエリ*タイプの変数を使用すると、さまざまなタイプのデータに対して Google Cloud Monitoring をクエリできます。Google Cloud Monitoring データソースプラグインには次の `Query Types` が用意されています。


|  名前  |  説明  | 
| --- | --- | 
|  Metric Types  |  指定のサービスで使用できるメトリクスタイプ名のリストを返します。 | 
|  Labels Keys  |  指定のテーブルの metric label および resource label のキーのリストを返します。 | 
|  Labels Values  |  指定のメトリクス内のラベルの値のリストを返します。 | 
|  Resource Types  |  指定のメトリクスのリソースタイプのリストを返します。 | 
|  Aggregations  |  指定のメトリクスの集計のリスト (シリーズリデューサー間) を返します。 | 
|  Aligners  |  指定のメトリクスのアライナーのリスト (シリーズアライナーごと) を返します。 | 
|  Alignment periods  |  Grafana の Google Cloud Monitoring クエリエディタで使用できる、すべてのアライメント期間のリストを返します。 | 
|  Selectors  |  SLO (サービスレベル目標) クエリで使用できるセレクタのリストを返します。 | 
|  SLO Services  |  SLO クエリで使用できる Service Monitoring サービスのリストを返します。 | 
|  Service Level Objectives (SLO)  |  指定の SLO サービスの SLO のリストを返します。 | 

### クエリでの変数の使用
<a name="google-using-variables-in-queries"></a>

 2 つの構文があります。
+  `$<varname>`例: `metric.label.$metric_label` 
+  `[[varname]]`例: `metric.label.[[metric_label]]` 

 なぜ 2 つの方法があるのですか？ 最初の構文は読み書きが容易ですが、単語の途中で変数を使用することは許可されません。*[複数値]*オプションまたは*[すべての値を含める]*オプションが有効になっている場合、Grafana はラベルをプレーンテキストから正規表現互換の文字列に変換します。つまり、`=` の代わりに `=~` を使用する必要があります。

## ‏注釈
<a name="google-annotations"></a>

 注釈を使用して、グラフの上にリッチイベント情報をオーバーレイできます。ダッシュボードメニュー/注釈ビューを使用して注釈クエリを追加します。注釈のレンダリングは高価であるため、返される行数を制限することは重要です。Google Cloud Monitoring の注釈とイベントを表示はまだサポートされていませんが、Google Cloud Monitoring の[カスタムメトリクス](https://cloud.google.com/monitoring/custom-metrics/)を使用するとうまく機能します。

注釈の詳細については、「[‏注釈](dashboard-annotations.md)」を参照してください。

 注釈のクエリエディタを使用すると、メトリクスとフィルターを選択できます。**[タイトル]** フィールドと **[テキスト]** フィールドはテンプレート化をサポートしており、クエリから返されるデータを使用できます。例えば、[タイトル] フィールドには次のテキストを含めることができます。

 `{{metric.type}} has value: {{metric.value}}` 

 結果の例: `monitoring.googleapis.com/uptime_check/http_status has this value: 502` 

### 注釈クエリエディタのパターン
<a name="patterns-for-the-annotation-query-editor"></a>


|  エイリアスパターン形式  |  説明  |  エイリアスパターンの例  |  結果の例  | 
| --- | --- | --- | --- | 
|  \$1\$1metric.value\$1\$1  |  メトリクス/ポイントの値。 |  \$1\$1metric.value\$1\$1  |  555  | 
|  \$1\$1metric.type\$1\$1  |  完全なメトリクスタイプを返します。 |  \$1\$1metric.type\$1\$1  |  compute.googleapis.com/instance/cpu/utilization  | 
|  \$1\$1metric.name\$1\$1  |  メトリクス名の部分を返します。 |  \$1\$1metric.name\$1\$1  |  instance/cpu/utilization  | 
|  \$1\$1metric.service\$1\$1  |  サービスのパートを返します。 |  \$1\$1metric.service\$1\$1  |  compute  | 
|  \$1\$1metric.label.xxx\$1\$1  |  メトリクスラベルの値を返します。 |  \$1\$1metric.label.instance\$1name\$1\$1  |  grafana-1-prod  | 
|  \$1\$1resource.label.xxx\$1\$1  |  リソースラベルの値を返します。 |  \$1\$1resource.label.zone\$1\$1  |  us-east1-b  | 

## Grafana パネルから Google Cloud コンソールのメトリクスエクスプローラーへのディープリンク
<a name="deep-linking-from-grafana-panels-to-the-metrics-explorer-in-google-cloud-console"></a>

**注記**  
 この機能はメトリクスクエリでのみ使用できます。

 パネルで時系列を選択すると、Google Cloud コンソールの Metrics Explorer で表示へのリンクを含むコンテキストメニューが表示されます。リンクを選択すると、Google Cloud コンソールで Metrics Explorer が開き、そこの Grafana パネルからクエリを実行します。リンクを使用すると、まず Google Account Chooser に移動します。アカウントの選択に成功すると、そのユーザーは Metrics Explorer にリダイレクトされます。指定リンクは任意のアカウントで有効ですが、クエリで指定された GCP プロジェクトにアクセスできるアカウントでのみクエリが表示されます。