

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 連線至 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 外掛程式
+ 上傳 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 資料來源會與一個 GCP 專案整合。若要視覺化來自多個 GCP 專案的資料，您必須為每個 GCP 專案建立一個資料來源。

#### 啟用 APIs
<a name="google-enable-apis"></a>

 必須先啟用下列 APIs：
+  [監控 API](https://console.cloud.google.com/apis/library/monitoring.googleapis.com) 
+  [雲端資源管理員 API](https://console.cloud.google.com/apis/library/cloudresourcemanager.googleapis.com) 

 選擇列出的連結，然後選擇**啟用**按鈕。

#### 建立專案的 GCP 服務帳戶
<a name="create-a-gcp-service-account-for-a-project"></a>

1.  導覽至 [APIs和服務登入資料頁面](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="Choose role" >\$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)**。這兩種類型都會傳回時間序列資料。

### 指標查詢
<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 小時為 1 公尺 
+  時間範圍 >= 23 小時且 < 6 天的 5 公尺 
+  時間範圍 >= 6 天的 1 小時 

 另一個自動選項是 `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>


|  別名模式  |  Description  |  範例結果  | 
| --- | --- | --- | 
|  \$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>

 在分組依據下拉式清單中，您可以看到指標的指標和資源標籤清單。這些可使用別名模式包含在圖例金鑰中。


|  別名模式格式  |  Description  |  別名模式範例  |  範例結果  | 
| --- | --- | --- | --- | 
|  \$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`

 您也可以解析受監控資源類型的名稱。


|  別名模式格式  |  Description  |  範例結果  | 
| --- | --- | --- | 
|  \$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\$1 

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](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services.serviceLevelObjectives) 下拉式清單中選擇 **SLO**。

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 查詢的圖例索引鍵格式。


|  別名模式  |  Description  |  範例結果  | 
| --- | --- | --- | 
|  \$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  |  傳回指定指標resource label中 metric label和 的索引鍵清單。 | 
|  Labels Values  |  傳回指定指標中標籤的值清單。 | 
|  Resource Types  |  傳回指定指標的資源類型清單。 | 
|  Aggregations  |  傳回指定指標的彙總清單 （跨序列縮減器）。 | 
|  Aligners  |  傳回指定指標的對齊器清單 （每個系列對齊器）。 | 
|  Alignment periods  |  傳回 Grafana 中 Google Cloud Monitoring 查詢編輯器中可用的所有對齊期間清單。 | 
|  Selectors  |  傳回可用於 SLO （服務層級目標） 查詢的選取器清單。 | 
|  SLO Services  |  傳回可在 SLO 查詢中使用的服務監控服務清單。 | 
|  Service Level Objectives (SLO)  |  傳回指定 SLO 服務的 SLO 清單。 | 

### 在查詢中使用變數
<a name="google-using-variables-in-queries"></a>

 有兩種語法：
+  `$<varname>` 範例: `metric.label.$metric_label` 
+  `[[varname]]` 範例: `metric.label.[[metric_label]]` 

 為什麼使用兩種方式？ 第一個語法更容易讀取和寫入，但不允許您在單字中間使用變數。啟用*多值*或*包含所有值*選項時，Grafana 會將標籤從純文字轉換為 regex 相容字串，這表示您必須使用 `=~`而非 `=`。

## 註釋
<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>


|  別名模式格式  |  Description  |  別名模式範例  |  範例結果  | 
| --- | --- | --- | --- | 
|  \$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 Console 中的 Metrics Explorer
<a name="deep-linking-from-grafana-panels-to-the-metrics-explorer-in-google-cloud-console"></a>

**注意**  
 此功能僅適用於指標查詢。

 在面板中選擇時間序列，以查看內容選單，其中包含在 Google Cloud Console 中檢視指標總管的連結。選擇該連結會在 Google Cloud Console 中開啟 Metrics Explorer，並從該處 Grafana 面板執行查詢。此連結會先將使用者導覽至 Google 帳戶選擇器。成功選取帳戶後，使用者會重新導向至 Metrics Explorer。提供的連結對任何帳戶都有效，但只有在您的帳戶可以存取查詢中指定的 GCP 專案時，才會顯示查詢。