

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

# 連線至內建資料來源
<a name="AMG-data-sources-builtin"></a>

每個 Amazon Managed Grafana 工作區都支援下列資料來源。

對於支援第 9 版及更新版本的工作區，根據預設可能不會安裝其中一些資料來源。核心資料來源適用於所有安裝，但不屬於核心集的資料來源可能需要安裝正確的 Grafana 外掛程式。您可以為此處未列出的其他資料來源安裝外掛程式。如需管理外掛程式的詳細資訊，請參閱 [使用外掛程式擴展您的工作區](grafana-plugins.md)。

**Topics**
+ [警示管理員](data-source-alertmanager.md)
+ [Amazon CloudWatch](using-amazon-cloudwatch-in-AMG.md)
+ [Amazon OpenSearch Service](using-Amazon-OpenSearch-in-AMG.md)
+ [AWS IoT SiteWise](using-iotsitewise-in-AMG.md)
+ [AWS IoT TwinMaker](AMG-iot-twinmaker.md)
+ [Prometheus](prometheus-data-source.md)
+ [Amazon Timestream](timestream-datasource.md)
+ [Amazon Athena](AWS-Athena.md)
+ [Amazon Redshift](AWS-Redshift.md)
+ [AWS X-Ray](x-ray-data-source.md)
+ [Azure 監視器](using-azure-monitor-in-AMG.md)
+ [石榴](using-graphite-in-AMG.md)
+ [Google 雲端監控](using-google-cloud-monitoring-in-grafana.md)
+ [InfluxDB](using-influxdb-in-AMG.md)
+ [Jaeger](jaeger-data-source.md)
+ [Loki](using-loki-in-AMG.md)
+ [Microsoft SQL Server](using-microsoft-sql-server-in-AMG.md)
+ [MySQL](using-mysql-in-AMG.md)
+ [OpenSearch](using-opensearch-in-AMG.md)
+ [OpenTSDB](using-opentsdb-in-AMG.md)
+ [PostgreSQL](using-postgresql-in-AMG.md)
+ [Templ](tempo-data-source.md)
+ [TestData](testdata-data-source.md)
+ [Zipkin](zipkin-data-source.md)

# 連線至 Alertmanager 資料來源
<a name="data-source-alertmanager"></a>

Grafana 包含對 Prometheus Alertmanager 的內建支援。設定 Grafana 提醒後，您可以使用 Grafana 提醒 UI 來管理靜音、聯絡點以及通知政策。這些頁面中的下拉式清單選項可讓您在 Grafana 和任何已設定的 Alertmanager 資料來源之間切換。

**警示管理員實作**

支援 Alertmanager 的 [Prometheus](https://prometheus.io/)、[Cortex](https://cortexmetrics.io/) 和 [Grafana Mimir](https://grafana.com/docs/mimir/latest/) 實作。您可以在資料來源設定頁面中指定實作。Prometheus 聯絡點和通知政策在 Grafana 提醒 UI 中為唯讀，因為它不支援透過 HTTP API 更新組態。

## 設定 Alertmanager 資料來源
<a name="data-source-alertmanager-create"></a>

您可以設定 Alertmanager 資料來源以搭配 Grafana 警示使用。

**先決條件**

若要設定 Alertmanager，您必須完成下列先決條件：
+ Prometheus 執行個體，具有擷取的指標，並至少設定一個提醒或記錄規則。您需要工作區的 URL。
+ 為 Amazon Managed Grafana 定義的許可，可讓您從 Alertmanager 實作中讀取提醒、提醒群組、靜音和聯絡點。

**設定 Alertmanager 資料來源**

1. 在 Grafana 主控台的 Grafana 功能表中，選擇**組態**下的**資料來源**頁面。

1. 選擇**新增資料來源**，然後從資料來源類型清單中選擇**警示管理員**。

1. 為您的新資料來源提供下列資訊。
   + 針對**名稱**，提供您為資料來源選擇的名稱。
   + 針對**實作**，選擇您的 Alertmanager 實作 – **Prometheus**、**Mimir** 或 **Cortex**。
   + 在 **HTTP** 下，針對 **URL**，提供 Alertmanager URL。對於 Prometheus，這是工作區 URL，已`alertmanager`附加 。例如 `https://myprometheus/workspaces/ws-example-1234-5678-abcd-xyz00000001/alertmanager`。
   + 在**驗證**下，設定存取 Alertmanager 實作所需的身分驗證詳細資訊。

1. 選擇**儲存並測試**以完成資料來源設定。

   如果您的資料來源設定正確，您會看到一則訊息，指出**運作狀態檢查已通過**。

# 連線至 Amazon CloudWatch 資料來源
<a name="using-amazon-cloudwatch-in-AMG"></a>

使用 Amazon Managed Grafana，您可以使用 Grafana 工作區主控台中的資料來源組態選項，將 Amazon CloudWatch 新增為 AWS 資料來源。此功能可探索現有的 CloudWatch 帳戶，並管理存取 CloudWatch 所需的身分驗證憑證組態，以簡化將 CloudWatch 新增為資料來源的程序。您可以使用此方法來設定身分驗證，並將 CloudWatch 新增為資料來源。或者，您可以使用與自我管理 Grafana 伺服器上相同的方法，手動設定資料來源和必要的身分驗證憑證。

**Topics**
+ [使用 AWS 資料來源組態將 CloudWatch 新增為資料來源](adding-CloudWatch-AWS-config.md)
+ [手動新增 CloudWatch 做為資料來源](adding--CloudWatch-manual.md)
+ [使用查詢編輯器](CloudWatch-using-the-query-editor.md)
+ [統籌儀表板](CloudWatch-curated-dashboards.md)
+ [範本查詢](cloudwatch-templated-queries.md)
+ [使用 ec2\$1instance\$1attribute 範例](cloudwatch-ec2-instance-attribute-examples.md)
+ [使用 JSON 格式範本變數](cloudwatch-using-json-format-template-variables.md)
+ [定價](cloudwatch-pricing.md)
+ [Service Quotas](cloudwatch-service-quotas.md)
+ [跨帳戶可觀測性](cloudwatch-cross-account.md)

# 使用 AWS 資料來源組態將 CloudWatch 新增為資料來源
<a name="adding-CloudWatch-AWS-config"></a>

若要使用 AWS 資料來源組態，請先使用 Amazon Managed Grafana 主控台來啟用服務受管 IAM 角色，以授予工作區讀取您帳戶或整個組織單位中 CloudWatch 資源所需的 IAM 政策。然後，您可以使用 Amazon Managed Grafana 工作區主控台將 CloudWatch 新增為資料來源。

**使用 AWS 資料來源組態將 CloudWatch 新增為資料來源**

1. 開啟位於 https：//[https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/) 的 Amazon Managed Grafana 主控台。

1. 在導覽窗格中，選擇選單圖示，然後選擇**所有工作區**。

1. 選擇工作區的名稱。

1. 如果您在建立工作空間時未選擇對此工作空間使用服務受管許可，則從使用客戶受管許可變更為使用服務受管許可，以確保在 Grafana 工作空間主控台中使用 AWS 資料來源組態選項啟用適當的 IAM 角色和政策。若要執行此作業，請依 **IAM 角色**選擇編輯圖示，然後選擇**服務受管**、**儲存變更**。如需詳細資訊，請參閱[AWS 資料來源的 Amazon Managed Grafana 許可和政策](AMG-manage-permissions.md)。

1. 選擇**資料來源**索引標籤。

1. 選取 **Amazon CloudWatch** 的核取方塊，然後選擇**動作**、**啟用服務受管政策**。

1. 再次選擇**資料來源**索引標籤。

1. 在 **Amazon CloudWatch 列中選擇在 Grafana 中設定**。 **Amazon CloudWatch** 

1. 如有必要，請使用 IAM Identity Center 登入 Grafana 工作區主控台。

1. 在 Grafana 工作區主控台的導覽列上，選擇 AWS 圖示，然後選擇**AWS 服務** **CloudWatch**。

1. 選取您希望 CloudWatch 資料來源查詢的預設區域。

1. 選取您想要的帳戶，然後選擇**新增資料來源**。

# 手動新增 CloudWatch 做為資料來源
<a name="adding--CloudWatch-manual"></a>

**手動新增 CloudWatch 資料來源**

1. 在 Grafana 主控台側邊選單中，將滑鼠游標暫留在**組態** （齒輪） 圖示上，然後選擇**資料來源**。

1. 選擇**新增資料來源**。

1. 選擇 **CloudWatch** 資料來源。如有必要，您可以開始**CloudWatch**在搜尋方塊中輸入 ，以協助您找到它。

## CloudWatch 設定
<a name="settings-CloudWatch"></a>

適用下列 CloudWatch 設定。


| 名稱 | 描述 | 
| --- | --- | 
|  `Name`  | 資料來源名稱。這是您在面板和查詢中看到資料來源的方式。 | 
|  `Default`  | 指定要為新面板預先選取的資料來源。 | 
|  `Default Region`  | 在查詢編輯器中設定區域。可以根據每個查詢進行變更。 | 
|  `Namespaces of Custom Metrics`  | 指定自訂指標的 CloudWatch 命名空間。可以包含多個命名空間，以逗號分隔。 | 
|  `Auth Provider`  | 指定要取得登入資料的提供者。 | 
|  `Assume Role Arn`  | 指定要擔任的角色的 Amazon Resource Name (ARN)。 | 
|  `External ID`  | （選用） 指定外部 ID。如果您在使用外部 ID 建立 AWS 帳戶 的另一個 中擔任角色，請使用 。 | 
| `Timeout` | 專門為 CloudWatch Logs 查詢設定逾時。 | 
| `X-Ray trace links` | 若要在日誌包含 `@xrayTraceId` 欄位時自動新增日誌中的連結，請在資料來源組態的 X-Ray **追蹤連結區段中連結 X-Ray** 資料來源。您必須已設定 [X-Ray 資料來源](x-ray-data-source.md)。 | 

### 身分驗證
<a name="CloudWatch-authentication"></a>

若要在 Amazon Managed Grafana 和 CloudWatch 之間啟用身分驗證，您可以使用 Amazon Managed Grafana 主控台快速建立所需的政策和許可。或者，您可以使用在自我管理 Grafana 伺服器上使用的一些相同方法手動設定身分驗證。

若要使用 Amazon Managed Grafana 資料來源組態快速設定政策，請遵循中的步驟[使用 AWS 資料來源組態將 CloudWatch 新增為資料來源](adding-CloudWatch-AWS-config.md)。

若要手動設定許可，請使用下節中的其中一個方法。

#### AWS 登入資料
<a name="CloudWatch-authentication-aws-credentials"></a>

有三種不同的身分驗證方法可用。
+ **AWS SDK 預設** — 使用連接至工作區的角色中定義的許可。如需詳細資訊，請參閱[客戶受管許可](AMG-manage-permissions.md#AMG-customer-managed)。
+ **存取和私密金鑰** — 對應至 適用於 Go 的 AWS SDK `StaticProvider`。使用指定的存取金鑰 ID 和私密金鑰進行身分驗證。此方法沒有任何備用，如果提供的金鑰對無法運作，則 會失敗。

#### IAM 角色
<a name="CloudWatch-authentication-iam-roles"></a>

 目前，Grafana 後端會使用官方 AWS SDK 完成對 CloudWatch 的所有存取。如果您選擇 *AWS SDK 預設*身分驗證方法，且您的 Grafana 伺服器正在執行 AWS，則可以使用 IAM 角色自動處理身分驗證。

 如需詳細資訊，請參閱 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。

#### IAM 政策
<a name="CloudWatch-authentication-iam-policies"></a>

Grafana 需要透過 IAM 授予的許可，才能讀取 CloudWatch 指標和 EC2 標籤、執行個體和區域。您可以將這些許可連接到 IAM 角色，並使用內建的 Grafana 支援來擔任角色。

 下列程式碼範例顯示最少的政策。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowReadingMetricsFromCloudWatch",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:DescribeAlarmsForMetric",
                "cloudwatch:DescribeAlarmHistory",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:GetMetricData",
                "cloudwatch:GetInsightRuleReport"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowReadingLogsFromCloudWatch",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:GetLogGroupFields",
                "logs:StartQuery",
                "logs:StopQuery",
                "logs:GetQueryResults",
                "logs:GetLogEvents"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowReadingTagsInstancesRegionsFromEC2",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeTags",
                "ec2:DescribeInstances",
                "ec2:DescribeRegions"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowReadingResourcesForTags",
            "Effect": "Allow",
            "Action": "tag:GetResources",
            "Resource": "*"
        },
        {
            "Sid": "AllowReadingAcrossAccounts",
            "Effect": "Allow",
            "Action": [
                "oam:ListSinks",
                "oam:ListAttachedLinks"
            ],
            "Resource": "*"
        }
    ]
}
```

------

#### 擔任角色
<a name="CloudWatch-assuming-a-role"></a>

 `Assume Role ARN` 欄位可讓您指定要擔任的 IAM 角色，如果有的話。如果您將此保留空白，則會直接使用提供的登入資料，且相關聯的角色或使用者應具備必要的許可。如果此欄位不是空白的，則會使用提供的登入資料來執行 `sts:AssumeRole` 呼叫。

# 使用查詢編輯器
<a name="CloudWatch-using-the-query-editor"></a>

Amazon Managed Grafana 中的 CloudWatch 資料來源提供強大的查詢編輯器，可讓您從將資料傳送至 CloudWatch 的各種 AWS 服務擷取和分析指標和日誌。查詢編輯器支援兩種不同的查詢模式：指標搜尋和 CloudWatch Logs。

指標的查詢編輯器模式使用 CloudWatch API 來尋找上傳至 CloudWatch 的指標。日誌的 模式使用 CloudWatch Logs APIs來尋找日誌記錄。每個模式都有自己的專用查詢編輯器。您可以使用編輯器頂端的查詢模式切換來選取要查詢的 API。

**Topics**
+ [使用指標查詢編輯器](CloudWatch-using-the-metric-query-editor.md)
+ [使用 Amazon CloudWatch Logs 查詢編輯器](CloudWatch-using-the-logs-query-editor.md)

# 使用指標查詢編輯器
<a name="CloudWatch-using-the-metric-query-editor"></a>

指標查詢編輯器可讓您建置兩種類型的查詢：**指標搜尋**和**指標查詢**。**指標查詢**選項會使用 CloudWatch Metrics Insights 查詢資料。

## 常見查詢編輯器欄位
<a name="metrics-insights-common-fields"></a>

 **指標搜尋**和**指標查詢**模式都常見三個欄位。

 **常見欄位**

**Id**  
`GetMetricData` API 要求所有查詢都必須有唯一的 ID。使用此欄位來指定選擇的 ID。ID 可以包含數字、字母和底線，且必須以小寫字母開頭。如果未指定 ID，Amazon Managed Grafana 會使用下列模式產生 ID：`query[refId of the current query row]`。例如， `queryA`代表面板編輯器中的第一個查詢列。

**Period**  
期間是與特定 CloudWatch 統計資料相關聯的時間長度。期間是以秒數定義。有效值包括 1、5、10、30 或 60 的任何倍數。如果您將期間欄位保持空白或設定為 `auto`，則會根據時間範圍和 CloudWatch 保留政策自動計算。使用的公式是 `time range in seconds / 2000`，然後在根據保留移除期間之後，在預先定義的期間 【60、300、900、3600、21600、86400】 陣列中移至下一個較高的值。若要查看 Amazon Managed Grafana 使用的期間，請在**查詢編輯器中選擇顯示查詢預覽**。

**Alias (別名)**  
適用下列別名模式。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/grafana/latest/userguide/CloudWatch-using-the-metric-query-editor.html)

# 使用指標搜尋選項
<a name="CloudWatch-using-the-metric-search"></a>

 若要在**指標搜尋**中建立有效的查詢，您必須指定命名空間、指標名稱和至少一個統計資料。如果已開啟 **Match Exact**，您也必須指定所查詢指標的所有維度。指標結構描述必須完全相符。如需詳細資訊，請參閱 [CloudWatch 搜尋表達式語法 ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/search-expression-syntax.html)。

如果關閉 **Match Exact**，您可以指定要篩選的任何維度數量。最多傳回 100 個符合您篩選條件的指標。

## 使用維度萬用字元的動態查詢
<a name="dynamic-queries-using-dimension-wildcards"></a>

 您可以針對一或多個維度值使用星號 (`*`) 萬用字元來監控指標的動態清單。

 這可協助您監控 AWS 資源的指標，例如 EC2 執行個體或容器。例如，當新執行個體建立為自動擴展事件的一部分時，它們會自動出現在圖形中，而不必追蹤新的執行個體 IDs。此功能目前限制為擷取最多 100 個指標。您可以選擇**顯示查詢預覽**，以查看為支援萬用字元而自動建置的搜尋表達式。

 根據預設，搜尋表達式的定義方式是查詢的指標必須完全符合定義的維度名稱。這表示在範例中，只會`InstanceId`傳回具有完全相同名稱維度的指標。

 若要包含已定義其他維度的指標，您可以關閉 **Match Exact**。關閉 **Match Exact** 也會建立搜尋表達式，即使您不使用萬用字元。Grafana 會搜尋任何至少符合命名空間、指標名稱和所有定義維度的指標。

## 多值範本變數
<a name="cloudwatch-multi-value-template-variables"></a>

 根據多值範本變數定義維度值時，系統會使用搜尋表達式來查詢相符指標。這可在單一查詢中使用多個範本變數。您也可以將範本變數用於關閉 **Match Exact** 選項的查詢。

 搜尋表達式目前限制為 1024 個字元，因此如果您有長的值清單，您的查詢可能會失敗。如果您想要查詢具有特定維度名稱任何值的所有指標，建議您使用星號 (`*`) 萬用字元，而非 `All`選項。

 只有維度值支援使用多值範本變數。`Metric Name` 不支援對 `Region`、 `Namespace`或 使用多值範本變數。

## 指標數學表達式
<a name="cloudwatch-metric-math-expressions"></a>

 您可以使用數學函數在 CloudWatch 指標上操作，以建立新的時間序列指標。支援算術運算子、無索引減法和其他函數，並且可以套用至 CloudWatch 指標。如需 CloudWatch 指標數學函數的詳細資訊，請參閱[使用指標數學](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。

 例如，若要在指標上套用算術操作，請將 ID （唯一字串） 提供給原始指標。然後，您可以使用此 ID，並在新指標的 `Expression` 欄位中對其套用算術操作。

 如果您使用 `Expression` 欄位來參考另一個查詢，例如 `queryA * 2`，則無法根據該查詢建立提醒規則。

## Period
<a name="cloudwatch-period"></a>

 期間是與特定 Amazon CloudWatch 統計資料相關聯的時間長度。期間是以秒數定義。有效值包括 1、5、10、30 或 60 的任何倍數。

如果您將期間欄位保留空白或設定為**自動**，則會根據時間範圍自動計算。使用的公式是 `time range in seconds / 2000`，然後移至預先定義期間 陣列中的下一個較高的值`[60, 300, 900, 3600, 21600, 86400]`。若要查看 Amazon Managed Grafana 使用的期間，請在**查詢編輯器中選擇顯示查詢預覽**。

## 從 Grafana 面板深度連結至 CloudWatch 主控台
<a name="deep-linking-from-grafana-panels-to-the-cloudwatch-console"></a>

 在面板中選擇時間序列會顯示內容功能表，其中包含在 ** CloudWatch 主控台中檢視**的連結。選擇該連結會開啟新標籤，帶您前往 CloudWatch 主控台，並顯示該查詢的所有指標。如果您目前尚未登入 CloudWatch 主控台，連結會將您轉送至登入頁面。提供的連結適用於任何 ， AWS 帳戶 但只有在您登入對應至 Grafana 中所選資料來源的 時 AWS 帳戶 ，才會顯示正確的指標。

 此功能不適用於以指標數學表達式為基礎的指標。

# 使用指標查詢選項來查詢 CloudWatch Metrics Insights 資料
<a name="CloudWatch-using-the-metric-query"></a>

**注意**  
Amazon CloudWatch Metrics Insights 處於預覽狀態。CloudWatch Metrics Insights 功能開放給所有 AWS 帳戶。功能可能會有所變更。

 您可以在指標查詢**編輯器**中選擇 `metric query` 模式來查詢 CloudWatch Metrics Insights 資料。

 CloudWatch Metrics Insights 是功能強大的高效能 SQL 查詢引擎，可用來大規模查詢您的指標。這是一個快速、靈活、以 SQL 為基礎的查詢引擎，您可以用來即時識別所有 CloudWatch 指標中的趨勢和模式。它使用 SQL 的方言。如需 Metrics Insights 查詢語法的詳細資訊，請參閱 [查詢語法和關鍵字](#metrics-insights-syntax-keywords)。

## 查詢語法和關鍵字
<a name="metrics-insights-syntax-keywords"></a>

CloudWatch Metrics Insights 使用 SQL 方言。下列範例顯示查詢語法。

```
SELECT FUNCTION(metricName)
FROM namespace | [ SCHEMA(namespace[, labelKey [, ...] ]) ]
     [ WHERE labelKey OPERATOR labelValue [AND|OR|([...])*] [, ...] ]
[ GROUP BY labelKey [, ...]]
[ ORDER BY FUNCTION() [DESC | ASC] ]
[ LIMIT number]
```

 關鍵字不區分大小寫，但識別符區分大小寫。識別符包括指標的名稱、命名空間和維度。

 下表提供查詢關鍵字及其描述。


|  關鍵字  |  Description  | 
| --- | --- | 
|  FUNCTION  |  必要. 指定要使用的彙總函數，並指定要查詢的指標名稱。有效值為AVG、COUNT、MAX、MIN、SUM。 | 
|  MetricName   |  必要. 例如 CPUUtilization。 | 
|  FROM  |  必要. 指定指標的來源。您可以指定包含要查詢之指標的指標命名空間，或 SCHEMA 資料表函數。有些命名空間範例是 AWS/EC2和 AWS/Lambda。 | 
|  SCHEMA  |  （選用） 篩選查詢結果，以僅顯示完全相符的指標，或不相符的指標。 | 
|  WHERE  |  （選用） 篩選結果，以僅顯示符合您指定表達式的指標。例如 WHERE InstanceType \$1= 'c3.4xlarge'。 | 
|  GROUP BY  |  （選用） 將查詢結果分組為多個時間序列。例如 GROUP BY ServiceName。 | 
|  ORDER BY  |  （選用） 指定要傳回的時間序列順序。選項為 ASC和 DESC。 | 
|  LIMIT  |  （選用） 限制要傳回的時間序列數目。 | 

下列是一些範例：
+ 

  ```
  SELECT AVG(CPUUtilization) FROM "AWS/EC2" 
  ```

   符合`AWS/EC2`命名空間中的所有`CPUUtilization`指標、忽略其維度，並傳回單一彙總時間序列。
+ 

  ```
  SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2")
  ```

   僅比對`AWS/EC2`命名空間中未定義任何維度的`CPUUtilization`指標。
+ 

  ```
  SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2", InstanceId)
  ```

   只比對回報給 CloudWatch 的`CPUUtilization`指標，且只有一個維度 `InstanceId`。
+ 

  ```
  SELECT SUM(RequestCount) FROM SCHEMA("AWS/ApplicationELB", LoadBalancer,
  AvailabilityZone)
  ```

   僅處理從 向 CloudWatch 報告的`RequestCount`指標，`AWS/ApplicationELB`只有兩個維度 `LoadBalancer`和 `AvailabilityZone`。

 標籤值必須以單引號括住。

### 逸出字元
<a name="escape-characters"></a>

在查詢中，標籤值一律必須以單引號括住。  例如 `SELECT MAX(CPUUtilization) FROM "AWS/EC2" WHERE AutoScalingGroupName = 'my-production-fleet'`。

 包含字母、數字和底線 (`_`) 以外字元的指標命名空間、指標名稱和標籤索引鍵，必須以雙引號括住。例如 `SELECT MAX("My.Metric")`。如果其中一個包含雙引號本身 （例如 `Bytes"Input"`)，您必須逸出具有反斜線的雙引號，如 所示`SELECT AVG("Bytes\"Input\"")`。如果指標命名空間、指標名稱或標籤索引鍵包含在 Metrics Insights 中保留關鍵字的文字，則這些文字也必須以雙引號括住。例如，如果您的指標名為 `LIMIT`，則您可以使用 `SELECT AVG("LIMIT")`。也可以用雙引號括住任何命名空間、指標名稱或標籤，即使其不包含保留的關鍵字也一樣。

## 建置器模式和程式碼模式
<a name="metrics-insights-query-modes"></a>

您可以在 `Builder` 模式或 `Code` 模式中建立查詢。

**在 `Builder` 模式下建立查詢**

1. 使用上表中的資訊瀏覽並選取指標命名空間、指標名稱、篩選條件、群組和順序選項。

1. 對於每個選項，請從可能的選項清單中選擇。

**在 `Code` 模式下建立查詢**

1. 在程式碼編輯器中寫入您的查詢。

1. 若要執行查詢，請在程式碼編輯器中選擇**執行查詢**。

若要在 `builder` 模式中建立查詢：
+ 使用上表中的資訊瀏覽並選取指標命名空間、指標名稱、篩選條件、群組和順序選項。
+ 對於每個選項，請從可能的選項清單中選擇。

Grafana 會根據您的選擇自動建構 SQL 查詢。

 若要在 `code` 模式中建立查詢：
+ 在程式碼編輯器中寫入您的查詢。
+ 若要執行查詢，請選擇程式碼編輯器上的**執行查詢**。

程式碼編輯器具有內建的自動完成功能，可提供關鍵字、彙總、命名空間、指標、標籤和標籤值的建議。當您輸入空格、逗號或貨幣符號時，會顯示建議。您也可以使用鍵盤組合 `CTRL+Space`。

程式碼編輯器可以自動完成查詢。不過，在程式碼編輯器中使用範本變數可能會干擾自動完成。

## CloudWatch Metrics Insights 範例
<a name="goldeneye-examples"></a>

**注意**  
CloudWatch Metrics Insights 為開放預覽。預覽版開放給所有 AWS 帳戶，您不需要請求存取權。在宣布一般可用性之前，可能會新增或變更功能。

本節包含實用的 CloudWatch Metrics Insights 查詢範例，您可以直接複製和使用，或在查詢編輯器中複製和修改。部分範例已在主控台中提供，您可以藉由在 **Metrics** (指標) 檢視中選擇 **Add query** (新增查詢)，來存取這些範例。

### EC2 範例
<a name="goldeneye-EC2-examples"></a>

 檢視每個執行個體指標的 CPU 使用率

```
SELECT AVG(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
```

檢視整個機群的平均 CPU 使用率

```
SELECT AVG(CPUUtilization)
FROM SCHEMA("AWS/EC2", InstanceId)
```

 檢視平均 CPU 使用率最高的 10 個執行個體 

```
SELECT MAX(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
LIMIT 10
```

檢視 CPU 使用率最高的 10 個執行個體，依上限排序，以遞減順序排列

```
SELECT AVG(CPUUtilization)
FROM "AWS/EC2"
GROUP BY InstanceId
ORDER BY MAX() DESC
LIMIT 10
```

在此情況下，CloudWatch 代理程式會收集每個應用程式的 CPUUtilization 指標。此查詢會針對特定應用程式名稱篩選此指標的平均值。

```
SELECT AVG(CPUUtilization)
FROM "AWS/CWAgent"
WHERE ApplicationName = 'eCommerce'
SELECT AVG(ConcurrentExecutions)
FROM "AWS/Lambda"
```

檢視前 10 個 Lambda 函數的平均執行時間，依最大值排序，以遞減順序排列

```
SELECT AVG(Duration)
FROM "AWS/Lambda"
GROUP BY FunctionName
ORDER BY MAX() DESC
LIMIT 10
```

檢視 Lambda 執行時間的最大值、平均值和最小值

```
SELECT MAX(Duration)
FROM "AWS/Lambda"
```

### Application Load Balancer 範例
<a name="application-loadbalancer-examples"></a>

 檢視具有 **LoadBalancer** 和 **AvailabilityZone** 維度的指標

```
SELECT SUM(RequestCount)
FROM SCHEMA("AWS/ApplicationELB", LoadBalancer, AvailabilityZone)
```

檢視具有作用中並行 TCP 連線數目的指標

```
SELECT AVG(ActiveConnectionCount)
FROM "AWS/ApplicationELB"
```

### Amazon EBS 範例
<a name="Amazon-elastic-block-store-examples"></a>

 依遞減順序檢視每個磁碟區前 10 個平均寫入位元組

```
SELECT AVG(VolumeWriteBytes)
FROM "AWS/EBS"
GROUP BY VolumeId
ORDER BY MAX() DESC
LIMIT 10
```

檢視平均 Amazon EBS 磁碟區寫入時間

```
SELECT AVG(VolumeTotalWriteTime)
FROM "AWS/EBS"
```

檢視平均 Amazon EBS 磁碟區閒置時間

```
SELECT AVG(VolumeIdleTime)
FROM "AWS/EBS"
View average burst balance per volume
SELECT AVG(BurstBalance)
FROM "AWS/EBS"
GROUP BY VolumeId
View average read bytes across Amazon EBS volumes
SELECT AVG(VolumeReadBytes)
FROM "AWS/EBS"
```

檢視跨 Amazon EBS 磁碟區的平均寫入位元組

```
SELECT AVG(VolumeWriteBytes)
FROM "AWS/EBS"
```

### Amazon Simple Storage Service 範例
<a name="simple-storage-service-examples"></a>

 依儲存貯體名稱檢視平均延遲群組

```
SELECT AVG(TotalRequestLatency)
FROM "AWS/S3"
GROUP BY BucketName
```

檢視所有 Amazon S3 儲存貯體中每個儲存貯體的平均物件數量

```
SELECT AVG(NumberOfObjects)
FROM "AWS/S3"
GROUP BY BucketName
```

### Amazon Simple Notification Service 範例
<a name="Amazon-simple-notificaation-service-examples"></a>

Amazon-simple-notificaation-service-examples 

```
SELECT AVG(NumberOfMessagesPublished)
FROM "AWS/SNS"
```

檢視每個主題名稱的平均失敗訊息數量

```
SELECT AVG(NumberOfNotificationsFailed)
FROM "AWS/SNS"
GROUP BY TopicName
```

### AWS API 用量範例
<a name="AWS-API-usage-examples"></a>

依您帳戶中的呼叫數量檢視前 20 AWS APIs 

```
SELECT COUNT(CallCount)
FROM "AWS/Usage"
WHERE "Type" = 'API'
GROUP BY "Service", "Resource"
ORDER BY SUM() DESC
LIMIT 20
```

## CloudWatch Metrics Insights 限制
<a name="metrics-insights-limits"></a>

CloudWatch Metrics Insights 目前具有下列限制：
+ 您只能查詢最近三個小時的資料。
+ 單一查詢可處理不超過 10,000 個指標。這表示如果 `SELECT`、 `FROM`和 `WHERE`子句符合超過 10，000 個指標，則查詢只會處理前 10，000 個找到的這些指標。
+ 單個查詢可以傳回不超過 500 個時間序列。這表示如果查詢正在處理超過 500 個指標，則並非所有指標都會在查詢結果中傳回。如果您使用 `ORDER BY`子句，則會排序處理的所有指標，並傳回根據您的`ORDER BY`子句具有最高或最低值的 500。如果您不包含 `ORDER BY`子句，則無法控制傳回的 500 個相符指標。
+ 每個`GetMetricData`操作只能有一個查詢，但您可以在儀表板中擁有多個小工具，每個小工具都包含查詢。

# 使用 Amazon CloudWatch Logs 查詢編輯器
<a name="CloudWatch-using-the-logs-query-editor"></a>

 若要查詢 CloudWatch Logs，請選取您要查詢的區域和最多 20 個日誌群組。使用主要輸入區域來撰寫查詢。如需詳細資訊，請參閱 [CloudWatch Logs Insights 查詢語法](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)。

 您也可以使用 CloudWatch Logs Insights 中的 `stats`命令，撰寫傳回時間序列資料的查詢。在探索中進行`stats`查詢時，您必須確定您處於指標探索模式。

 查詢輸入欄位右側有一個 CloudWatch Logs Insights 連結，可使用您的查詢開啟 CloudWatch Logs Insights 主控台。如有必要，您可以繼續探索。

## 使用範本變數
<a name="cloudwatch-using-template-variables"></a>

 如同數個其他資料來源，CloudWatch 資料來源支援在查詢中使用範本變數。如需詳細資訊，請參閱[範本和變數](templates-and-variables.md)。

## 從 Grafana 面板深度連結至 CloudWatch Logs 主控台
<a name="deep-linking-from-grafana-panels-to-the-cloudwatch-console-2"></a>

 如果您想要在 CloudWatch Logs Insights 主控台中檢視查詢，請選擇查詢編輯器旁的 **CloudWatch Logs Insights** 按鈕。如果您目前尚未登入 CloudWatch 主控台，連結會將您轉送至登入頁面。提供的連結適用於任何 ， AWS 帳戶 但只有在您登入對應至 Grafana 中所選資料來源的 時 AWS 帳戶 ，才會顯示正確的指標。

## 提醒
<a name="cloudwatch-alerting"></a>

 由於 CloudWatch Logs 查詢可以傳回數值資料，例如透過使用 `stats`命令，因此支援警示。如需詳細資訊，請參閱[Grafana 提醒](alerts-overview.md)。

# 統籌儀表板
<a name="CloudWatch-curated-dashboards"></a>

 更新的 CloudWatch 資料來源隨附五個最熱門 AWS 服務的預先設定儀表板：
+  Amazon EC2 
+  Amazon Elastic Block Store 
+  AWS Lambda 
+  Amazon CloudWatch Logs 
+  Amazon Relational Database Service 

 若要匯入預先設定的儀表板，請前往 CloudWatch 資料來源的組態頁面，然後選擇**儀表板**索引標籤。針對您要使用的儀表板選擇**匯入**。若要自訂儀表板，建議您以不同的名稱儲存儀表板，否則儀表板會在發行新版本的儀表板時遭到覆寫。

# 範本查詢
<a name="cloudwatch-templated-queries"></a>

 您可以在指標查詢中使用變數，而不是硬式編碼詳細資訊，例如伺服器、應用程式和感應器名稱。變數會顯示為儀表板頂端的下拉式清單選取方塊。您可以使用這些下拉式方塊來變更儀表板中顯示的資料。

 [範本](templates-and-variables.md#templates) 如需範本功能的簡介和不同類型的範本變數，請參閱 。

## 查詢變數
<a name="cloudwatch-query-variable"></a>

 CloudWatch 資料來源提供下列查詢，您可以在**變數**編輯檢視的**查詢**欄位中指定。您可以使用這些項目來填入變數的選項清單，例如 `region`、`metric names`、 `namespaces`和 `dimension keys/values`。

 您可以`region`指定 `default`使用資料來源中設定的預設區域取代 。


|  名稱  |  描述  | 
| --- | --- | 
|  regions()  |  傳回所有 AWS 區域的清單。 | 
|  namespaces()  |  傳回 CloudWatch 支援的命名空間清單。 | 
|  metrics(namespace, [region])  |  傳回 命名空間中的指標清單。（指定區域或"default"用於自訂指標。)  | 
|  dimension\$1keys(namespace)  |  傳回 命名空間中的維度索引鍵清單。 | 
|  dimension\$1values(region, namespace, metric, dimension\$1key, [filters])  |  傳回符合指定 region、metric、 namespace或 的維度值清單dimension\$1key。或者，您可以使用維度filters來取得更具體的結果。 | 
|  ebs\$1volume\$1ids(region, instance\$1id)  |  傳回符合指定 region、 的磁碟區 IDs 清單instance\$1id。 | 
|  ec2\$1instance\$1attribute(region, attribute\$1name, filters)  |  傳回符合指定 region、attribute\$1name、 的屬性清單filters。 | 
|  resource\$1arns(region, resource\$1type, tags)  |  傳回符合指定 region、 resource\$1type和 的 ARNs 清單tags。 | 
|  statistics()  |  傳回所有標準統計資料的清單。 | 

 如需 CloudWatch 提供的指標詳細資訊，請參閱[AWS 發佈 CloudWatch 指標的 服務](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html)。

### 範本化查詢的範例
<a name="cloudwatch-examples-templated-queries"></a>

 下表顯示傳回個別 AWS 服務資源清單的範例維度查詢。


|  Query  |  服務  | 
| --- | --- | 
|  dimension\$1values(us-east-1,AWS/ELB,RequestCount,LoadBalancerName)  |  Elastic Load Balancing  | 
|  dimension\$1values(us-east-1,AWS/ElastiCache,CPUUtilization,CacheClusterId)  |  Amazon ElastiCache  | 
|  dimension\$1values(us-east-1,AWS/Redshift,CPUUtilization,ClusterIdentifier)  |  Amazon Redshift  | 
|  dimension\$1values(us-east-1,AWS/RDS,CPUUtilization,DBInstanceIdentifier)  |  Amazon RDS  | 
|  dimension\$1values(us-east-1,AWS/S3,BucketSizeBytes,BucketName)  |  Amazon Simple Storage Service (Amazon S3)  | 
|  dimension\$1values(us-east-1,CWAgent,disk\$1used\$1percent,device,\$1"InstanceId":"\$1instance\$1id"\$1)  |  CloudWatch 代理程式  | 
|  resource\$1arns(eu-west-1,elasticloadbalancing:loadbalancer,\$1"elasticbeanstalk:environment-name":["myApp-dev","myApp-prod"]\$1)  |  Elastic Load Balancing  | 
|  resource\$1arns(eu-west-1,ec2:instance,\$1"elasticbeanstalk:environment-name":["myApp-dev","myApp-prod"]\$1)  |  Amazon EC2  | 

# 使用 ec2\$1instance\$1attribute 範例
<a name="cloudwatch-ec2-instance-attribute-examples"></a>

## JSON 篩選條件
<a name="json-filters"></a>

 `ec2_instance_attribute` 查詢`filters`採用 JSON 格式。您可以指定 的預先定義篩選條件`ec2:DescribeInstances`。請注意，實際篩選是在 中進行 AWS，而不是在 Grafana 中進行。

 下列程式碼範例顯示篩選條件語法。

```
{ filter_name1: [ filter_value1 ], filter_name2: [ filter_value2 ] }
```

 下列範例顯示`ec2_instance_attribute()`查詢。

```
ec2_instance_attribute(us - east - 1, InstanceId, { 'tag:Environment': ['production'] });
```

## 選取屬性
<a name="cloudwatch-selecting-attributes"></a>

 每個執行個體只能傳回一個屬性。您可以選取任何一般屬性 （亦即， 如果屬性具有單一值，且不是物件或陣列）。下列一般屬性可供使用。
+  `AmiLaunchIndex` 
+  `Architecture` 
+  `ClientToken` 
+  `EbsOptimized` 
+  `EnaSupport` 
+  `Hypervisor` 
+  `IamInstanceProfile` 
+  `ImageId` 
+  `InstanceId` 
+  `InstanceLifecycle` 
+  `InstanceType` 
+  `KernelId` 
+  `KeyName` 
+  `LaunchTime` 
+  `Platform` 
+  `PrivateDnsName` 
+  `PrivateIpAddress` 
+  `PublicDnsName` 
+  `PublicIpAddress` 
+  `RamdiskId` 
+  `RootDeviceName` 
+  `RootDeviceType` 
+  `SourceDestCheck` 
+  `SpotInstanceRequestId` 
+  `SriovNetSupport` 
+  `SubnetId` 
+  `VirtualizationType` 
+  `VpcId` 

 可以透過在標籤名稱前面加上 來選取標籤`Tags`。

 下列範例顯示`ec2_instance_attribute()`查詢。

```
ec2_instance_attribute(us - east - 1, Tags.Name, { 'tag:Team': ['sysops'] });
```

# 使用 JSON 格式範本變數
<a name="cloudwatch-using-json-format-template-variables"></a>

 有些查詢接受 JSON 格式的篩選條件，Grafana 支援將範本變數轉換為 JSON。

 如果為 `env = 'production', 'staging'`，下列查詢會傳回`Environment`標籤為 `production`或 的 EC2 執行個體 ARNs`staging`。

```
resource_arns(us-east-1, ec2:instance, {"Environment":${env:json}})
```

# 定價
<a name="cloudwatch-pricing"></a>

 Grafana 的 Amazon CloudWatch 資料來源會使用 `ListMetrics`和 `GetMetricData` CloudWatch API 呼叫來列出和擷取指標。CloudWatch Logs 的定價是以透過 CloudWatch Logs Insights 查詢擷取、封存和分析的資料量為基礎。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing)。

 每次在查詢編輯器中選擇維度時，Grafana 都會發出`ListMetrics`請求。每當您變更查詢編輯器中的查詢時，就會向 GetMetricData 發出新的請求。

 擷取資料範例的 API 請求會使用 `GetMetricData`操作。此操作可更好地支援 CloudWatch 指標數學。它也支援在使用萬用字元或關閉 **Match Exact** 選項時自動產生搜尋表達式。`GetMetricData` 操作會產生費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing)。

# Service Quotas
<a name="cloudwatch-service-quotas"></a>

 AWS 定義您 AWS 帳戶中資源、操作和項目的配額或限制。根據儀表板中的查詢數量和存取儀表板的使用者數量，您可能會達到各種 CloudWatch 和 CloudWatch Logs 資源的使用限制。請注意，配額是依帳戶和 AWS 區域定義。如果您使用多個區域，或已設定多個 CloudWatch 資料來源來針對多個帳戶進行查詢，則必須針對每個帳戶和達到限制的每個區域請求增加配額。

 如需詳細資訊，請參閱 [ CloudWatch 服務配額](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html)。

# 跨帳戶可觀測性
<a name="cloudwatch-cross-account"></a>

**警告**  
此功能需要您的 Grafana 工作區為第 9 版或更新版本。

CloudWatch 外掛程式可讓您監控多個區域帳戶之間的應用程式並進行疑難排解。使用跨帳戶可觀測性，您可以無縫搜尋、視覺化和分析指標和日誌，而無需擔心帳戶界限。

若要啟用跨帳戶可觀測性，請先在 CloudWatch 中啟用，然後將適當的 IAM 動作新增至執行外掛程式的角色/使用者。如果您的 Amazon Managed Grafana 工作區在 VPC 中執行，則您也必須有 NAT 閘道以支援網際網路存取。
+ 若要了解如何啟用此功能，請參閱《Amazon [CloudWatch 使用者指南》中的 CloudWatch 跨帳戶可觀測性](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html)。 *Amazon CloudWatch *
+ 下列動作是為執行外掛程式的角色/使用者新增的適當 IAM 動作。

  ```
  {
  "Sid":  "AllowReadingAcrossAccounts",
  "Effect":  "Allow",
  "Action": [
    "oam:ListSinks",
    "oam:ListAttachedLinks"
  ],
  "Resource":  "*"
  }
  ```
+ CloudWatch 資料來源的跨帳戶可觀測性依賴 Amazon CloudWatch 可觀測性存取管理員。Observability Access Manager 不支援 VPC 端點。如果您的 Amazon Managed Grafana 工作區在 VPC 中執行，則您還必須擁有允許工作區在網際網路上呼叫 APIs的 NAT 閘道。

**注意**  
您還必須擁有 IAM 許可，才能讀取您嘗試存取之帳戶中的 CloudWatch 資料。

# 連線至 Amazon OpenSearch Service 資料來源
<a name="using-Amazon-OpenSearch-in-AMG"></a>

**注意**  
在支援第 9 版或更新版本的工作區中，此資料來源可能會要求您安裝適當的外掛程式。如需詳細資訊，請參閱[使用外掛程式擴展您的工作區](grafana-plugins.md)。

使用 Amazon Managed Grafana，您可以使用 Grafana 工作區主控台中的 AWS 資料來源組態選項，將 Amazon OpenSearch Service 新增為資料來源。此資料來源支援執行 OpenSearch 叢集和舊版 Elasticsearch 叢集的 OpenSearch Service 網域。

 AWS 資料來源組態選項可探索現有的 OpenSearch Service 帳戶，簡化將 OpenSearch Service 新增為資料來源的程序，並管理存取 OpenSearch 所需的身分驗證憑證組態。您可以使用此方法設定身分驗證，並將 OpenSearch Service 新增為資料來源，或者您可以使用與自我管理 Grafana 伺服器上相同的方法手動設定資料來源和必要的身分驗證憑證。

OpenSearch Service 資料來源支援管道處理語言 (PPL)。如需 PPL 的詳細資訊，請參閱[使用 Piped Processing Language 查詢 Amazon OpenSearch Service 資料](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ppl-support.html)。

您可以使用 OpenSearch Service 資料來源來執行許多類型的簡單或複雜的 OpenSearch 查詢，以視覺化儲存在 OpenSearch 中的日誌或指標。您也可以使用儲存在 OpenSearch 中的日誌事件來註釋圖表。

**Topics**
+ [使用 AWS 資料來源組態將 OpenSearch Service 新增為資料來源](ES-adding-AWS-config.md)
+ [手動新增 Amazon OpenSearch Service 作為資料來源](ES-adding-the-data-source.md)
+ [OpenSearch Service 設定](#ES-settings)
+ [使用 Amazon OpenSearch Service 資料來源](ES-use-datasource.md)
+ [Amazon OpenSearch Service Serverless](datasources-opensearch-serverless.md)
+ [追蹤支援](datasources-opensearch-traces.md)

# 使用 AWS 資料來源組態將 OpenSearch Service 新增為資料來源
<a name="ES-adding-AWS-config"></a>

若要使用 AWS 資料來源組態，請先使用 Amazon Managed Grafana 主控台來啟用服務受管 IAM 角色，以授予工作區讀取您帳戶或整個組織單位中 OpenSearch Service 資源所需的 IAM 政策。然後，您可以使用 Amazon Managed Grafana 工作區主控台將 OpenSearch Service 新增為資料來源。

**使用 AWS 資料來源組態將 OpenSearch Service 新增為資料來源**

1. 開啟位於 https：//[https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/) 的 Amazon Managed Grafana 主控台。

1. 選擇頁面左上角的功能表圖示，然後選擇**所有工作區**。

1. 選擇工作區的名稱。

1. 如果您在建立工作空間時未選擇對此工作空間使用服務受管許可，則從使用客戶受管許可變更為使用服務受管許可，以確保在 Grafana 工作空間主控台中使用 AWS 資料來源組態選項啟用適當的 IAM 角色和政策。若要這樣做，請選擇依 **IAM 角色**編輯圖示，然後選擇**服務受管**、**儲存變更**。如需詳細資訊，請參閱[AWS 資料來源的 Amazon Managed Grafana 許可和政策](AMG-manage-permissions.md)。

1. 選擇**資料來源**索引標籤。然後選取 **Amazon OpenSearch Service** 的核取方塊，然後選擇**動作**、**啟用服務受管政策**。

1. 再次選擇**資料來源**索引標籤，然後在 **Amazon OpenSearch Service** 列中選擇在 **Grafana 中設定**。

1. 如有必要，請使用 IAM Identity Center 登入 Grafana 工作區主控台。

1. 在 Grafana 工作區主控台的左側導覽列中，選擇 AWS 圖示，然後選擇**AWS 服務** **Amazon OpenSearch Service**。

1. 選取您希望 Amazon Managed Grafana 搜尋以探索 OpenSearch Service 資源的區域，然後選取您要新增的帳戶和 OpenSearch Service 網域、設定索引設定，然後選擇**新增資料來源**。

# 手動新增 Amazon OpenSearch Service 作為資料來源
<a name="ES-adding-the-data-source"></a>

**手動新增 Amazon OpenSearch Service 資料來源**

1.  在 Grafana 主控台側邊選單中，選擇 **AWS** 圖示，然後選擇**資料來源**。

1. 選擇 **Amazon OpenSearch Service** 資料來源。如有必要，您可以開始**OpenSearch**在搜尋方塊中輸入 ，以協助您找到它。

1. 選擇您要從中搜尋資料**的區域**。

1. 選擇**新增資料來源**。

**注意**  
 如果您在側邊選單中看不到**資料來源**連結，表示您目前的使用者沒有 `Admin`角色。

## OpenSearch Service 設定
<a name="ES-settings"></a>


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板和查詢中查看資料來源的方式。 | 
|  Default  |  預設資料來源表示新面板會預先選取該資料來源。 | 
|  Url  |  OpenSearch Service 網域的端點。端點採用下列格式：https：//https://search-my-domain.us-east-1.es.amazonaws.com。 | 
|  Access  |  伺服器 （預設） = URL 必須可從 Grafana 後端/伺服器存取。瀏覽器 = URL 必須可從瀏覽器存取。 | 

 存取模式控制將如何處理對資料來源的請求。如果未說明其他項目，伺服器應該是偏好的方式。

### 伺服器存取模式 （預設）
<a name="ES-server-access-mode-default"></a>

 所有請求都是從瀏覽器向 Grafana 後端或伺服器提出，其會將請求轉送至資料來源，以規避可能的跨來源資源共享 (CORS) 要求。如果您選擇此存取模式，則必須從 Grafana 後端或伺服器存取 URL。

### 瀏覽器 （直接） 存取
<a name="ES-browser-direct-access"></a>

Amazon Managed Grafana 不支援瀏覽器直接存取。

### 索引設定
<a name="ES-index-settings"></a>

 您可以在這裡為 指定預設值，`time field`並指定 OpenSearch 索引的名稱。您可以使用索引名稱或萬用字元的時間模式。

### OpenSearch/Elasticsearch 版本
<a name="OpenSearch-version"></a>

在版本下拉式選單中指定您的 OpenSearch 或舊版 Elasticsearch 版本。版本很重要，因為每個版本的查詢撰寫方式有所不同。目前，Grafana 支援 OpenSearch 1.0.x。支援的 Elasticsearch 版本為 `2.0+`、`5.0+`、`6.0+`、 `5.6+`和 `7.0+`。此值`5.6+`表示 5.6 版或更新版本，但低於 6.0。此值`6.0+`表示 6.0 版或更新版本，但低於 7.0。最後， `7.0+`表示 7.0 版或更新版本，但低於 8.0。

### 最短時間間隔
<a name="ES-min-time-interval"></a>

依時間間隔分類的自動群組下限。建議設定為寫入頻率；例如，`1m`如果您的資料每分鐘寫入一次。也可以在資料來源選項下的儀表板面板中覆寫/設定此選項。此值的格式**必須是**數字，後面接著有效的時間識別符；例如 `1m`(1 分鐘） 或 `30s`(30 秒）。支援下列時間識別符。


|  識別符  |  Description  | 
| --- | --- | 
|  y  |  年  | 
|  M  |  月  | 
|  w  |  週  | 
|  d  |  天  | 
|  h  |  小時  | 
|  m  |  分鐘  | 
|  s  |  秒  | 
|  ms  |  毫秒  | 

### 日誌
<a name="ES-logs-beta"></a>

在 中視覺化日誌時`Level field name`，可以從資料來源設定頁面選擇性地設定兩個參數 `Message field name`和 ，以決定哪些欄位將用於日誌訊息和日誌層級[探索](explore.md)。

 例如，如果您使用 Filebeat 的預設設定將日誌運送到 OpenSearch Service，則下列組態應該可以運作。
+  **訊息欄位名稱：**訊息 
+  **層級欄位名稱：**Fields.level 

### 資料連結
<a name="ES-data-links"></a>

 資料連結會從可在探索日誌檢視中存取的指定欄位建立連結。

 每個資料連結組態都包含下列項目：
+ **欄位** – 資料連結所使用的欄位名稱。
+ **URL/查詢 ** – 如果連結是外部連結，請輸入完整的連結 URL。如果連結是內部連結，則此輸入會做為目標資料來源的查詢。在這兩種情況下，您可以將 欄位的值插入`${__value.raw }`巨集。
+ **內部連結** – 如果連結是內部或外部，請選取此選項。如果連結是內部連結，則資料來源選取器可讓您選取目標資料來源。僅支援追蹤資料來源。

# 使用 Amazon OpenSearch Service 資料來源
<a name="ES-use-datasource"></a>

## 指標查詢編輯器
<a name="ES-metric-query-editor"></a>

OpenSearch 查詢編輯器可讓您依多個詞彙或篩選條件選取多個指標和群組。使用右側的加號和減號圖示，依子句新增/移除指標或群組。有些指標和依子句分組都有選項。選擇選項文字以展開\$1 列，以檢視和編輯指標或依選項分組。

## 使用管道處理語言 (PPL)
<a name="ES-PPL"></a>

Amazon OpenSearch Service 資料來源支援 Piped Processing Language (PPL)，可為 OpenSearch 啟用更簡單但強大的查詢和視覺化功能。PPL 可讓客戶探索和尋找資料，而不必撰寫冗長的 OpenSearch Domain Specific Language (DSL) 陳述式或使用 JSON 物件寫入查詢。使用 PPL，您可以將查詢撰寫為一組以類似 UNIX 管道的管道分隔的命令。

以下列範例 DSL 查詢為範例：

```
GET opensearch_sample_data_logs/_search{"from":0,"size":0,"timeout":"1m","query":{"bool":{"should":[{"term":{"response.keyword":{"value":"404","boost":1}}},{"term":{"response.keyword":{"value":"503","boost":1}}}],"adjust_pure_negative":true,"boost":1}},"sort":[{"_doc":{"order":"asc"}}],"aggregations":{"composite_buckets":{"composite":{"size":1000,"sources":[{"host":{"terms":{"field":"host.keyword","missing_bucket":true,"order":"asc"}}},{"response":{"terms":{"field":"response.keyword","missing_bucket":true,"order":"asc"}}}]},"aggregations":{"request_count":{"value_count":{"field":"request.keyword"}},"sales_bucket_sort":{"bucket_sort":{"sort":[{"request_count":{"order":"desc"}}],"size":10}}}}}}>
```

上述 DSL 查詢可以取代為下列 PPL 命令，該命令簡潔且可人類讀取。

```
source = opensearch_sample_data_logs | where response='404' or response='503' | stats count(request) as request_count by host, response | sort –request_count
```

如需 PPL 的詳細資訊，請參閱[使用 Piped Processing Language 查詢 Amazon OpenSearch Service 資料](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ppl-support.html)。

## 系列命名和別名模式
<a name="ES-series-naming-and-alias-patterns"></a>

 您可以使用`Alias`輸入欄位來控制時間序列的名稱。


|  模式  |  Description  | 
| --- | --- | 
|  \$1\$1term fieldname\$1\$1  |  以 Group By 一詞的值取代。 | 
|  \$1\$1metric\$1\$1  |  以指標名稱 （例如 平均值、最小值、最大值）。 | 
|  \$1\$1field\$1\$1  |  以指標欄位名稱取代。 | 

## 管道指標
<a name="ES-pipeline-metrics"></a>

有些指標彙總稱為管道彙總，例如*移動平均*和*衍生*。OpenSearch 管道指標需要根據另一個指標。使用指標旁的眼睛圖示，隱藏指標不出現在圖形中。這對於您在查詢中只有用於管道指標的指標很有用。

## 範本化
<a name="ES-templating"></a>

 您可以在指標查詢中使用變數，而不是硬式編碼，例如伺服器、應用程式和感應器名稱。變數會顯示為儀表板頂端的下拉式清單選取方塊。您可以使用這些下拉式方塊來變更儀表板中顯示的資料。

 如需範本和範本變數的詳細資訊，請參閱 [範本和變數](templates-and-variables.md)。

### 查詢變數
<a name="ES-query-variable"></a>

 OpenSearch Service 資料來源支援兩種類型的查詢，您可以在*查詢*變數的*查詢*欄位中使用。查詢是使用自訂 JSON 字串撰寫。


|  Query  |  Description  | 
| --- | --- | 
|  \$1"find": "fields", "type": "keyword"\$1  |  傳回索引類型為 的欄位名稱清單keyword。 | 
|  \$1"find": "terms", "field": "@hostname", "size": 1000\$1  |  使用詞彙彙總傳回欄位的值清單。查詢將使用目前的儀表板時間範圍做為查詢的時間範圍。 | 
|  \$1"find": "terms", "field": "@hostname", "query": '<lucene query>'\$1  |  使用詞彙彙總和指定的 Lucene 查詢篩選條件，傳回欄位的值清單。查詢將使用目前的儀表板時間範圍做為查詢的時間範圍。 | 

詞彙查詢的預設大小限制為 500。若要設定自訂限制，請在查詢中設定大小屬性。您可以在查詢內使用其他變數。下列程式碼範例顯示名為 之變數的查詢定義`$host`。

```
{"find": "terms", "field": "@hostname", "query": "@source:$source"}
```

在上一個範例中，我們使用在查詢定義`$source`內名為 的另一個變數。每當您使用下拉式清單變更`$source`變數的目前值時，就會啟動`$host`變數的更新。更新之後， `$host`變數只會包含由 篩選的主機名稱，在此情況下為`@source`文件屬性。

預設情況下，這些查詢會依詞彙順序傳回結果 （然後，任何變數都可以按字母或數字排序）。若要產生依文件計數排序的詞彙清單 （前 N 個值清單），請新增 的 `orderBy` 屬性`doc_count`。這會自動選取遞減排序。使用 `asc`搭配 doc\$1count (N 底部清單） 可以透過設定 來完成`order: "asc"`，但不建議這麼做，因為它會增加文件計數的錯誤。若要將術語保留在文件計數順序中，請將變數的**排序**下拉式清單設定為**已停用**。或者，您可能仍然想要使用**字母來**重新排序它們。

```
{"find": "terms", "field": "@hostname", "orderBy": "doc_count"}
```

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

 有兩種語法：
+  `$<varname>` 範例：@hostname：\$1hostname 
+  `[[varname]]` 範例：@hostname：【【hostname】】 

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

 在先前的範例中，我們有使用名為 的變數，根據 `@hostname` 屬性篩選文件的 lucene 查詢`$hostname`。它也在「依欄位輸入分組*」*方塊中使用變數。這可讓您使用變數來快速變更資料的分組方式。

## 註釋
<a name="ES-annotations"></a>

註釋可讓您在圖形上方疊加豐富的事件資訊。您可以使用儀表板功能表或註釋檢視來新增註釋查詢。Grafana 可以查詢註釋事件的任何 OpenSearch 索引。如需詳細資訊，請參閱[註釋](dashboard-annotations.md)。


|  名稱  |  描述  | 
| --- | --- | 
|  Query  |  您可以保持搜尋查詢空白，或指定 Lucene 查詢。 | 
|  Time  |  時間欄位的名稱；必須是日期欄位。 | 
|  Time End  |  時間結束欄位的選用名稱必須是日期欄位。如果設定，註釋將標記為時間和結束時間之間的區域。 | 
|  Text  |  事件描述欄位。 | 
|  Tags  |  用於事件標籤的選用欄位名稱 （可以是陣列或 CSV 字串）。 | 

## 查詢 日誌
<a name="ES-querying-logs-beta"></a>

 從 OpenSearch 查詢和顯示日誌資料可在探索中取得。若要顯示日誌，請選取 OpenSearch Service 資料來源，然後選擇性地輸入 Lucene 查詢。如需詳細資訊，請參閱[探索](explore.md)。

### 日誌查詢
<a name="ES-log-queries"></a>

 傳回結果後，日誌面板會顯示日誌資料列清單和長條圖，其中 x 軸顯示時間，y 軸顯示頻率或計數。

### 篩選日誌訊息
<a name="ES-filter-log-messages"></a>

 或者，在查詢欄位中輸入 Lucene 查詢來篩選日誌訊息。例如，使用預設的 Filebeat 設定，您應該能夠使用 `fields.level:error` 僅顯示錯誤日誌訊息。

# Amazon OpenSearch Service Serverless
<a name="datasources-opensearch-serverless"></a>

**注意**  
OpenSearch Service Serverless 支援僅適用於執行 Grafana 9.4 版和更新版本的 Grafana 工作區。

您可以使用 OpenSearch Service 資料來源，透過 Amazon Managed Grafana 存取 Amazon OpenSearch Service Serverless 資料。資料的存取是由資料存取政策所控制。下列範例顯示允許使用者查詢特定集合和索引的政策。請務必*`principal_arn`*將 *`collection_name`*、 *`index_name`*和 取代為您的使用案例的正確值。

```
[
  {
    "Rules": [
      {
        "Resource": ["collection/{collection_name}"],
        "Permission": ["aoss:DescribeCollectionItems"],
        "ResourceType": "collection"
      },
      {
        "Resource": ["index/{collection_name}/{index_name}"],
        "Permission": ["aoss:DescribeIndex", "aoss:ReadDocument"],
        "ResourceType": "index"
      }
    ],
    "Principal": ["principal_arn"],
    "Description": "read-access"
  }
]
```

# 追蹤支援
<a name="datasources-opensearch-traces"></a>

OpenSearch 外掛程式支援以資料表形式檢視追蹤清單，並在**追蹤檢視**中檢視單一追蹤，其中顯示追蹤範圍的時間軸。

**注意**  
查詢 OpenSearch 追蹤只能使用 Lucene 查詢。  
追蹤支援僅適用於支援 9.4 版或更新版本的 Grafana 工作區。

若要建立顯示所有追蹤的查詢，請使用 Lucene 查詢類型`Traces`搭配空白查詢。如有必要，請選取**資料表**視覺化類型。

在資料表中選取追蹤 ID 會在追蹤檢視中開啟該追蹤。

若要建立顯示單一追蹤的查詢，請使用查詢 `traceid: {traceId}`，並視需要選取**追蹤**視覺化類型。

# 連線至 AWS IoT SiteWise 資料來源
<a name="using-iotsitewise-in-AMG"></a>

**注意**  
在支援第 9 版或更新版本的工作區中，此資料來源可能會要求您安裝適當的外掛程式。如需詳細資訊，請參閱[使用外掛程式擴展您的工作區](grafana-plugins.md)。

 使用 Amazon Managed Grafana，您可以使用 Grafana 工作區主控台中的 AWS 資料來源組態選項，將 新增 AWS IoT SiteWise 為資料來源。此功能可探索您現有的 AWS IoT SiteWise 帳戶，並管理存取所需的身分驗證憑證組態，以簡化將 AWS IoT SiteWise 新增至資料來源的程序 AWS IoT SiteWise。您可以使用此方法來設定身分驗證並新增 AWS IoT SiteWise 做為資料來源，或者您可以使用與自我管理 Grafana 伺服器上相同的方法手動設定資料來源和必要的身分驗證憑證。

**Topics**
+ [使用 AWS 資料來源組態將 新增 AWS IoT SiteWise 為資料來源](IoTSiteWise-adding-AWS-config.md)
+ [手動新增 AWS IoT SiteWise 資料來源](iotsitewise-add-the-data-source.md)
+ [AWS IoT SiteWise 設定](#iotsitewise-settings)
+ [使用 AWS IoT SiteWise 資料來源](IoTSiteWise-using.md)

# 使用 AWS 資料來源組態將 新增 AWS IoT SiteWise 為資料來源
<a name="IoTSiteWise-adding-AWS-config"></a>

若要使用 AWS 資料來源組態，請先使用 Amazon Managed Grafana 主控台來啟用服務受管 IAM 角色，以授予工作區讀取帳戶或整個組織單位中 AWS IoT SiteWise 資源所需的 IAM 政策。然後，您可以使用 Amazon Managed Grafana 工作區主控台將 新增 AWS IoT SiteWise 為資料來源。

**使用 AWS 資料來源組態將 新增 AWS IoT SiteWise 為資料來源**

1. 開啟位於 https：//[https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/) 的 Amazon Managed Grafana 主控台。

1. 選擇頁面左上角的功能表圖示，然後選擇**所有工作區**。

1. 選擇工作區的名稱。

1. 如果您在建立工作空間時未選擇對此工作空間使用服務受管許可，則從使用客戶受管許可變更為使用服務受管許可，以確保在 Grafana 工作空間主控台中使用 AWS 資料來源組態選項啟用適當的 IAM 角色和政策。若要這樣做，請選擇依 **IAM 角色**編輯圖示，然後選擇**服務受管**、**儲存變更**。如需詳細資訊，請參閱[AWS 資料來源的 Amazon Managed Grafana 許可和政策](AMG-manage-permissions.md)。

1. 選擇**資料來源**索引標籤。然後選取 **AWS IoT SiteWise** 的核取方塊，然後選擇**動作**、**啟用服務受管政策**。

1. 再次選擇**資料來源**索引標籤，然後在 **AWS IoT SiteWise** 列中選擇**在 Grafana 中設定**。

1. 如有必要，請使用 IAM Identity Center 登入 Grafana 工作區主控台。

1. 在 Grafana 工作區主控台的左側導覽列中，選擇 AWS 圖示，然後選擇**AWS 服務** **IoT SiteWise**。

1. 選取您希望 AWS IoT SiteWise 資料來源查詢的預設區域，選取帳戶，然後選擇**新增資料來源**。

# 手動新增 AWS IoT SiteWise 資料來源
<a name="iotsitewise-add-the-data-source"></a>

**手動新增 AWS IoT SiteWise 資料來源**

1.  在 Grafana 主控台側邊選單中，暫停**組態** （齒輪） 圖示，然後選擇**資料來源**。

1. 選擇**新增資料來源**。

1. 選擇 **AWS IoT SiteWise** 資料來源。如有必要，您可以開始**SiteWise**在搜尋方塊中輸入 ，以協助您找到它。

## AWS IoT SiteWise 設定
<a name="iotsitewise-settings"></a>


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板和查詢中查看資料來源的方式。 | 
|  驗證提供者  |  指定要取得登入資料的提供者。 | 
|  預設區域  |  用於查詢編輯器以設定區域 （可以根據每個查詢進行變更）。 | 
|  登入資料設定檔名稱  |  指定要使用的設定檔名稱 （如果您使用 \$1/.aws/credentials 檔案）；預設請保留空白。 | 
|  擔任角色 Arn  |  指定要擔任的角色的 ARN。 | 
|  端點 （選用）  |  如果您必須指定替代服務端點。 | 

# 使用 AWS IoT SiteWise 資料來源
<a name="IoTSiteWise-using"></a>

如需如何使用 AWS IoT SiteWise 資料來源的資訊，請參閱 Github 上的[AWS IoT SiteWise 資料來源](https://github.com/grafana/iot-sitewise-datasource/blob/main/src/README.md)。

# 連線至 an AWS IoT TwinMaker 資料來源
<a name="AMG-iot-twinmaker"></a>

**注意**  
在支援第 9 版或更新版本的工作區中，此資料來源可能需要您安裝適當的外掛程式。如需詳細資訊，請參閱[使用外掛程式擴展您的工作區](grafana-plugins.md)。

 使用 Amazon Managed Grafana，您可以在 Grafana 工作區中新增強大的工業資料分析服務 AWS IoT TwinMaker，做為應用程式和資料來源。透過 AWS IoT TwinMaker，您可以建立最終使用者 3D 數位分身應用程式來監控工業操作。 AWS IoT TwinMaker 是一種服務，可讓開發人員更快速地建立真實世界系統的數位複本，協助更多客戶實現數位分身的潛力以最佳化操作。 AWS IoT TwinMaker for Grafana 提供自訂面板、儀表板範本和資料來源，以連線至您的數位分身資料。

# 手動新增 AWS IoT TwinMaker 資料來源
<a name="twinmaker-add-the-data-source"></a>

## 先決條件
<a name="twinmaker-prerequisites"></a>

開始之前，請確定您可以從 存取 **AWS IoT TwinMaker** AWS 帳戶。

 若要了解如何將許可新增至工作區 IAM 角色以存取 AWS IoT TwinMaker，請參閱 [將 AWS IoT TwinMaker 的許可新增至您的工作區使用者角色](AMG-iot-twinmaker.md#twinmaker-add-permission)。

**若要新增 AWS IoT TwinMaker 資料來源：**

1. 確保您的使用者角色是管理員或編輯器。

1.  在 Grafana 主控台側邊選單中，將滑鼠游標暫留在**組態** （齒輪） 圖示上，然後選擇**資料來源**。

1. 選擇**新增資料來源**。

1. 選擇 **AWS IoT TwinMaker** 資料來源。如有必要，您可以開始**TwinMaker**在搜尋方塊中輸入 ，以協助您找到它。

1. 這會開啟**連線詳細資訊**頁面。請遵循設定 中的步驟[AWS IoT TwinMaker 連線詳細資訊設定](AMG-iot-twinmaker.md#twinmaker-connection-details)。

## 將 AWS IoT TwinMaker 的許可新增至您的工作區使用者角色
<a name="twinmaker-add-permission"></a>

**若要將 AWS IoT TwinMaker 許可新增至工作區使用者角色，請擔任 Amazon Managed Grafana 工作區和 TwinMaker 儀表板角色之間的角色許可。**

1. 前往 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 手動建立儀表板角色。如需建立儀表板角色的詳細資訊，請參閱 [手動建立 Grafana AWS IoT TwinMaker 儀表板角色](#iot-twinmaker-dashboard-role)。

## AWS IoT TwinMaker 連線詳細資訊設定
<a name="twinmaker-connection-details"></a>

**設定連線詳細資訊設定**

1.  在**連線詳細資訊**功能表中，選取身分驗證提供者 （建議：**工作區 IAM 角色**)。

1.  選擇您要查詢**的預設區域**。

1.  在 **TwinMaker 設定**中，輸入 AWS IoT TwinMaker 工作區名稱。

# 使用 AWS IoT TwinMaker 資料來源
<a name="IoT-twinmaker-using"></a>

如需有關如何使用 AWS IoT TwinMaker 資料來源的資訊，請參閱 GitHub 上的 [AWS IoT TwinMaker 資料來源](https://github.com/grafana/grafana-iot-twinmaker-app)。

## 手動建立 Grafana AWS IoT TwinMaker 儀表板角色
<a name="iot-twinmaker-dashboard-role"></a>

**手動建立 Grafana AWS IoT TwinMaker 儀表板角色**

1. 登入 IAM 主控台，網址為 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在摘要中尋找您的 Amazon Managed Grafana 工作區角色。它如下所示：

   ```
    AmazonGrafanaServiceRole-random_ID
   ```

1. 將下列內嵌政策新增至角色：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRole",
           "Resource": "arn:aws:iam::111122223333:role/TwinMakerDashboardRole"
       }
   }
   ```

------

1. 為每個儀表板角色新增內嵌政策。或者，在資源列新增角色 Amazon **Resource** Name (ARNs) 的清單。

1. 在 IAM 主控台中尋找您的儀表板角色。它應該有 `SceneViewer`政策，以及選擇性`VideoPlayer`的政策。

1. 選擇**信任關係**索引標籤。

1. 選擇**編輯信任關係**。

1. 輸入下列政策，將 *AMGWorkspaceRoleArn* 取代為來自您帳戶的 Arn：

------
#### [ JSON ]

****  

   ```
      {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": "AMGWorkspaceRoleARN"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

## 範例 an AWS IoT TwinMaker 政策
<a name="AMG-TM-policy"></a>

以下是您可以連接到儀表板角色的 minimal AWS IoT TwinMaker 政策。您必須根據自己的資源，取代 AWS IoT TwinMaker 工作區 ARN 和 ID 以及 Amazon S3 儲存貯體 ARN 的值。

# 連線至 Amazon Managed Service for Prometheus 和開放原始碼 Prometheus 資料來源
<a name="prometheus-data-source"></a>

 在 Amazon Managed Grafana 中，Prometheus 資料來源支援使用自我管理的 Prometheus 伺服器和 Amazon Managed Service for Prometheus 工作區作為資料來源。如需 Amazon Managed Service for Prometheus 的詳細資訊，請參閱[什麼是 Amazon Managed Service for Prometheus？](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html)

 使用 Amazon Managed Grafana，您可以使用 Grafana 工作區主控台中的資料來源組態選項，將 Amazon Managed Service for Prometheus 工作區新增為 AWS 資料來源。此功能可探索您現有的 Amazon Managed Service for Prometheus 帳戶，並管理存取 Amazon Managed Service for Prometheus 所需的身分驗證憑證組態，以簡化將 Amazon Managed Service for Prometheus 新增為資料來源的程序。

**注意**  
您可以透過 在統一的 Grafana 警示界面中檢視 Prometheus 警示[設定 Alertmanager 資料來源](data-source-alertmanager.md#data-source-alertmanager-create)。

**Topics**
+ [使用 AWS 資料來源組態將 Amazon Managed Service for Prometheus 新增為資料來源](AMP-adding-AWS-config.md)
+ [手動新增 Prometheus 資料來源](prometheus-manually-adding.md)
+ [使用 Prometheus 資料來源](using-prometheus-datasource.md)
+ [視覺化來自 Amazon Managed Service for Prometheus 的提醒](amp-configure-alerts.md)
+ [設定範例](amp-configure-exemplars.md)

# 使用 AWS 資料來源組態將 Amazon Managed Service for Prometheus 新增為資料來源
<a name="AMP-adding-AWS-config"></a>

若要使用 AWS 資料來源組態，請先使用 Amazon Managed Grafana 主控台來啟用服務受管 IAM 角色，以授予工作區讀取帳戶或整個組織單位中 Amazon Managed Service for Prometheus 資源所需的 IAM 政策。然後，您可以使用 Amazon Managed Grafana 工作區主控台將 Amazon Managed Service for Prometheus 新增為資料來源。

**使用 AWS 資料來源組態將 Amazon Managed Service for Prometheus 新增為資料來源**

1. 開啟位於 https：//[https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/) 的 Amazon Managed Grafana 主控台。

1. 選擇頁面左上角的功能表圖示，然後選擇**所有工作區**。

1. 選擇工作區的名稱。

1. 如果您在建立工作空間時未選擇對此工作空間使用服務受管許可，則從使用客戶受管許可變更為使用服務受管許可，以確保在 Grafana 工作空間主控台中使用 AWS 資料來源組態選項啟用適當的 IAM 角色和政策。若要這樣做，請選擇依 **IAM 角色**編輯圖示，然後選擇**服務受管**、**儲存變更**。如需詳細資訊，請參閱[AWS 資料來源的 Amazon Managed Grafana 許可和政策](AMG-manage-permissions.md)。

1. 選擇**資料來源**索引標籤。然後選取 **Amazon Managed Service for Prometheus** 的核取方塊，然後選擇**動作**、**啟用服務受管政策**。

1. 再次選擇**資料來源**索引標籤，然後在 **Amazon Managed Service for Prometheus** 列中選擇**在 Grafana 中設定**。

1. 如有必要，請使用 IAM Identity Center 登入 Grafana 工作區主控台。

1. 在 Grafana 工作區主控台的左側導覽列中，選擇 AWS 圖示，然後選擇**AWS 服務** **Prometheus**。

1. 選取您要 Amazon Managed Grafana 搜尋的區域，以探索 Amazon Managed Service for Prometheus 工作區，然後選取您要新增的帳戶和 Amazon Managed Service for Prometheus 工作區，然後選擇**新增資料來源**。

# 手動新增 Prometheus 資料來源
<a name="prometheus-manually-adding"></a>

**手動新增 Prometheus 資料來源**

1.  在 Grafana 主控台側邊選單中，暫停**管理**選單項目 （或 Grafana v8 中的**組態** （齒輪） 圖示），然後選擇**資料來源**。

1. 選擇**新增資料來源**。

1. 選擇 **Prometheus** 資料來源。如有必要，您可以開始**Prometheus**在搜尋方塊中輸入 ，以協助您找到它。

# 使用 Prometheus 資料來源
<a name="using-prometheus-datasource"></a>

## Prometheus 設定
<a name="prometheus-settings"></a>


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板和查詢中查看資料來源的方式。 | 
|  Default  |  預設資料來源表示新面板會預先選取該資料來源。 | 
|  Url  |  Prometheus 伺服器的 URL；例如 https://prometheus.example.org:9090。 | 
|  Access  |  伺服器 （預設） = URL 必須可從 Grafana 後端/伺服器存取。 | 
|  Basic Auth  |  啟用 Prometheus 資料來源的基本身分驗證。 | 
|  User  |  基本身分驗證的使用者名稱。 | 
|  Password  |  基本身分驗證的密碼。 | 
|  Scrape interval  |  將此設定為 Prometheus 中設定的典型湊集和評估間隔。預設為 15 秒。 | 
|  Disable metrics lookup  |  勾選此選項將停用查詢欄位自動完成中的指標選擇器和指標/標籤支援。如果您對更大的 Prometheus 執行個體有效能問題，這很有幫助。 | 
|  Custom Query Parameters  |  將自訂參數新增至 Prometheus 查詢 URL。例如 timeout、dedup、 partial\$1response或 max\$1source\$1resolution。多個參數應與「&」串連。 | 

## Prometheus 查詢編輯器
<a name="prometheus-query-editor"></a>

 下列各節提供儀表板和探索中 Prometheus 查詢編輯器的資訊和選項。

### 儀表板中的查詢編輯器
<a name="query-editor-in-dashboards"></a>

 選擇標題，然後選擇**編輯** （或在面板上暫停時按下 **e** 鍵），以編輯模式開啟圖形。


|  名稱  |  描述  | 
| --- | --- | 
|  Query expression  |  如需 Prometheus 查詢表達式的詳細資訊，請參閱 [Prometheus 文件](https://prometheus.io/docs/querying/basics/)。 | 
|  Legend format  |  使用名稱或模式控制時間序列的名稱。例如， \$1\$1hostname\$1\$1 會取代為標籤 的標籤值hostname。 | 
|  Min step  |  [`step` Prometheus 範圍查詢的 參數](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries)以及 \$1\$1\$1interval和 \$1\$1\$1rate\$1interval變數的額外下限。限制是絕對的，不會由解析度設定修改。 | 
|  Resolution  |  1/1 同時設定 Prometheus 範圍查詢的 \$1\$1\$1interval變數和 參數，讓每個像素對應至一個資料點。 [https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries)為了獲得更好的效能，請使用較低的解析度。 1/2只會擷取每隔一個像素的資料點，並1/10擷取每 10 個像素一個資料點。請注意，最短時間間隔和最短步驟都會限制 \$1\$1\$1interval和 的最終值step。 | 
|  Metric lookup  |  在此輸入欄位中搜尋指標名稱。 | 
|  Format as  |  在 Table、 Time series或 之間切換Heatmap。 Table 僅適用於資料表面板。 Heatmap 適用於在熱度圖面板上顯示長條圖類型的指標。它會將累積長條圖轉換為一般長條圖，並依儲存貯體界限排序序列。 | 
|  Instant  |  執行「即時」查詢，只傳回 Prometheus 針對請求的時間序列所抓取的最新值。即時查詢會傳回比正常範圍查詢更快的結果。使用它們來查詢標籤集。 | 
|  Min time interval  |  此值乘以解析設定中的分母，會將下限值設定為 Prometheus 範圍查詢的 \$1\$1\$1interval變數和 參數。 [https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries)預設為擴展間隔，如資料來源選項中所設定。 | 

**注意**  
 Amazon Managed Grafana 會修改查詢的請求日期，使其與動態計算的步驟保持一致。這可確保指標資料的一致性顯示，但它可能會在圖形的右側邊緣造成一小段資料間隙。

#### 儀表板中的即時查詢
<a name="prometheus-instant-queries-in-dashboards"></a>

 Prometheus 資料來源可讓您執行即時查詢，該查詢只會查詢最新的值。您可以在資料表面板中視覺化結果，以查看時間序列的所有可用標籤。

 即時查詢結果每個序列僅包含一個資料點。在序列覆寫的協助下，它們可以顯示在圖形面板中。若要在圖形中將其顯示為最新的值點，請新增序列覆寫並選取 `Points > true`。若要顯示整個圖形的水平線，請新增序列覆寫，然後選取 `Transform > constant` 如需序列覆寫的詳細資訊，請參閱[系列覆寫](graph-panel.md#graph-panel-series-overrides)。

### 探索中的查詢編輯器
<a name="p-query-editor-in-explore"></a>


|  名稱  |  描述  | 
| --- | --- | 
|  Query expression  |  如需 Prometheus 查詢表達式的詳細資訊，請參閱 [Prometheus 文件](https://prometheus.io/docs/querying/basics/)。 | 
|  Step  |  [`Step` Prometheus 範圍查詢的 參數](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries)。您可以在這裡使用時間單位，例如：5s、1m、3h、1d、1y。如果未指定單位，則預設單位為 s（秒）。 | 
|  Query type  |  Range, Instant, 或 Both. 執行範圍查詢時，查詢的結果會顯示在圖形和資料表中。即時查詢只會傳回 Prometheus 針對請求的時間序列所抓取的最新值，並顯示在資料表中。選取兩者時，會同時執行即時查詢和範圍查詢。範圍查詢的結果會顯示在圖表中，而即時查詢的結果會顯示在表格中。 | 

## 指標瀏覽器
<a name="prometheus-metrics-browser"></a>

指標瀏覽器可讓您快速尋找指標，並選取相關標籤來建置基本查詢。當您開啟瀏覽器時，您會看到所有可用的指標和標籤。如果您的 Prometheus 執行個體支援，每個指標都會將其 HELP 和 TYPE 顯示為工具提示。

當您選取指標時，瀏覽器會縮小可用的標籤，僅顯示適用於指標的標籤。然後，您可以選取一或多個標籤，可用標籤值會顯示在底部區段的清單中。為每個標籤選取一或多個值，以縮小查詢範圍。

**注意**  
如果您不記得開頭的指標名稱，您也可以先選取幾個標籤，縮小清單範圍，然後尋找相關的標籤值。

指標瀏覽器中的所有清單上方都有搜尋欄位，可快速篩選符合特定字串的指標或標籤。值區段只有一個搜尋欄位。其篩選會套用至所有標籤，以協助您在選取標籤之後跨標籤尋找值，例如，在您的標籤應用程式、任務中，只有 job\$1name 可能具有您要尋找的值。

一旦您對查詢感到滿意，請按一下「使用查詢」來執行查詢。**使用做為速率查詢**按鈕會在查詢周圍新增 rate(...)【\$1\$1\$1interval】，以協助撰寫計數器指標的查詢。「驗證選取器」按鈕會向 Prometheus 檢查該選取器有多少時間序列可用。

### 限制
<a name="metrics-browser-limitations"></a>

指標瀏覽器的硬性限制為 10，000 個標籤 （索引鍵） 和 50，000 個標籤值 （包括指標名稱）。如果您的 Prometheus 執行個體傳回更多結果，瀏覽器會繼續運作。不過，結果集會中斷超過這些上限。

## 範本化
<a name="p-templating"></a>

 您可以在指標查詢中使用變數，而不是硬式編碼，例如伺服器、應用程式和感應器名稱。變數會顯示為儀表板頂端的下拉式清單選取方塊。您可以使用這些下拉式方塊來變更儀表板中顯示的資料。

 如需範本和範本變數的詳細資訊，請參閱 [範本和變數](templates-and-variables.md)。

### 查詢變數
<a name="p-query-variable"></a>

 *查詢*類型的變數可讓您查詢 Prometheus 以取得指標、標籤或標籤值的清單。Prometheus 資料來源外掛程式提供下列函數，您可以在**查詢**輸入欄位中使用。


|  名稱  |  描述  | 
| --- | --- | 
|  label\$1names()  |  傳回標籤名稱的清單。 | 
|  label\$1values(label)  |  傳回每個指標label中 的標籤值清單。 | 
|  label\$1values(metric, label)  |  傳回指定指標label中 的標籤值清單。 | 
|  metrics(metric)  |  傳回符合指定 regex metric 的指標清單。 | 
|  query\$1result(query)  |  傳回 的 Prometheus 查詢結果清單query。 | 

 如需有關什麼是*指標名稱*、*標籤名稱*和*標籤值*的資訊，請參閱 [Prometheus 文件](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)。

#### 使用間隔和範圍變數
<a name="p-using-interval-and-range-variables"></a>

**注意**  
 `$__range`、 `$__range_s`和 的支援`$__range_ms`僅適用於 Grafana 5.3 版。

 您可以在查詢變數中使用一些全域變數：`$__interval`、`$__interval_ms`、`$__range_s`、 `$__range`和 `$__range_ms`。如需詳細資訊，請參閱[全域變數](variables-types.md#global-variables)。當您因為`query_result`函數不支援查詢而必須篩選變數查詢時，這些可以方便地與`label_values`函數搭配使用。

 若要在變更儀表板上的時間範圍時取得正確的執行個體，請務必將變數的`refresh`觸發設定為 `On Time Range Change`。

下列程式碼範例示範如何根據儀表板中顯示的時間範圍內的平均 QPS，以最忙碌的五個請求執行個體填入變數。

```
Query: query_result(topk(5, sum(rate(http_requests_total[$__range])) by (instance)))
Regex: /"([^"]+)"/
```

 下列程式碼範例示範如何使用 ，在儀表板中顯示的時間範圍內將具有特定狀態的執行個體填入變數`$__range_s`。

```
Query: query_result(max_over_time(<metric>[${__range_s}s]) != <state>)
Regex:
```

### 使用 `$__rate_interval` 變數
<a name="p-using-__rate_interval-variable"></a>

 `$__rate_interval` 變數旨在用於 速率函數。其定義為 max( `$__interval` \$1 *Scrape 間隔*，4 \$1 *Scrape 間隔*)。*縮放間隔*是最小步驟設定 (AKA query\$1interval，每個 PromQL 查詢的設定），如果有設定，否則是 Prometheus 資料來源中設定的*縮放間隔* （但忽略面板中的任何最小間隔設定，因為解析度設定會修改後者）。

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

 有兩種語法：
+  `$<varname>` 範例： rate(http\$1requests\$1total\$1job=\$1"\$1job"\$1【5m】) 
+  `[[varname]]` 範例： rate(http\$1requests\$1total\$1job=\$1"【【job】】"\$1【5m】) 

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

## 註釋
<a name="p-annotations"></a>

 您可以使用註釋在圖形上方覆蓋豐富的事件資訊。您可以使用儀表板功能表或註釋檢視來新增註釋查詢。如需詳細資訊，請參閱[註釋](dashboard-annotations.md)。

 Prometheus 支援兩種查詢註釋的方式。
+  一般指標查詢 
+  待定和觸發提醒的 Prometheus 查詢。如需詳細資訊，請參閱[在執行時間檢查提醒](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/#inspecting-alerts-during-runtime))。

 步驟選項有助於限制從查詢傳回的事件數量。

# 視覺化來自 Amazon Managed Service for Prometheus 的提醒
<a name="amp-configure-alerts"></a>

您可以透過為已連線的 Prometheus 資料來源設定 Alertmanager 資料來源，在 Amazon Managed Grafana 中視覺化 Amazon Managed Service for Prometheus 或 Prometheus 提醒。

**先決條件**

若要設定 Alertmanager 以搭配 Amazon Managed Service for Prometheus 使用，您必須完成下列先決條件：
+ [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) 執行個體，具有擷取指標，並至少設定一個提醒或記錄規則。您將需要工作區的 URL （從 Amazon Managed Service for Prometheus 中工作區的詳細資訊，您可以看到**端點** URL。 工作區 URl 是端點 URL，結尾沒有 `api/v1/remote_write` )。
+ 使用[設定為資料來源](prometheus-data-source.md)的 Prometheus 執行個體[建立](AMG-create-workspace.md)的 Amazon Managed Grafana 工作區。
+ Amazon Managed Grafana 必須具備下列許可才能使用您的 Prometheus 資源。您必須將這些政策新增至中 [AWS 資料來源的 Amazon Managed Grafana 許可和政策](AMG-manage-permissions.md) 所述的服務管理或客戶管理政策。
  + `aps:ListRules`
  + `aps:ListAlertManagerSilences`
  + `aps:ListAlertManagerAlerts`
  + `aps:GetAlertManagerStatus`
  + `aps:ListAlertManagerAlertGroups`
  + `aps:PutAlertManagerSilences`
  + `aps:DeleteAlertManagerSilence`

**設定與 Amazon Managed Service for Prometheus 搭配使用的 Alertmanager 資料來源**

1. 在 Grafana 主控台的 Grafana 功能表中，選擇**組態**下的**資料來源**頁面。

1. 選擇**新增資料來源**，然後從資料來源類型清單中選擇**警示管理員**。

1. 為您的新資料來源提供下列資訊。
   + 針對**實作**，選擇 **Prometheus**。
   + 在 **HTTP** 下，針對 **URL**，提供`alertmanager`附加的 Prometheus 工作區 URL。例如 `https://aps-workspaces.us-east1.amazonaws.com/workspaces/ws-example-1234-5678-abcd-xyz00000001/alertmanager`。
   + 在**驗證**下，開啟 **SigV4Auth**。這告訴 Grafana 對請求使用[AWS 身份驗證](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)。
   + 在 **SigV4Auth 詳細資料**下，對於**預設區域**，提供您 Prometheus 執行個體的區域，例如 `us-east-1`。

1. 選擇**儲存並測試**以完成資料來源設定。

   如果您的資料來源設定正確，您會看到一則訊息，指出**運作狀態檢查已通過**。

**將新的 Alertmanager 資料來源連線至 Prometheus 資料來源**

1. 在 Grafana 主控台的 Grafana 功能表中，選擇**組態**下的**資料來源**頁面。

1. 選取原始 Amazon Managed Service for Prometheus 資料來源，並透過**警示 UI 切換開關開啟管理提醒**。

1. 選擇**儲存並測試**以完成資料來源的設定。

# 設定範例
<a name="amp-configure-exemplars"></a>

**注意**  
此功能需要 Prometheus 2.26 版或更新版本。  
Amazon Managed Service for Prometheus 不支援範例。

您可以在探索和儀表板中將範例資料與指標一起顯示。範例會將來自特定事件的較高基數中繼資料與傳統時間序列資料建立關聯。

您可以在資料來源設定中設定範例，方法是將連結新增至您的範例。您可以在 URL 中使用巨集。例如，您可以建立 URL，例如 `https://example.com/${__value.raw}`。

# 連線至 Amazon Timestream 資料來源
<a name="timestream-datasource"></a>

**注意**  
在支援第 9 版或更新版本的工作區中，此資料來源可能需要您安裝適當的外掛程式。如需詳細資訊，請參閱[使用外掛程式擴展您的工作區](grafana-plugins.md)。

 透過 Amazon Managed Grafana，您可以使用 Grafana 工作區主控台中的資料來源組態選項，將 Amazon Timestream 新增為 AWS 資料來源。此功能可探索現有的 Timestream 帳戶，並管理存取 Timestream 所需的身分驗證憑證組態，以簡化將 Timestream 新增為資料來源的程序。您可以使用此方法設定身分驗證，並將 Timestream 新增為資料來源，也可以使用與自我管理 Grafana 伺服器上相同的方法手動設定資料來源和必要的身分驗證憑證。



# 使用 AWS 資料來源組態將 Timestream 新增為資料來源
<a name="Timestream-adding-AWS-config"></a>

若要使用 AWS 資料來源組態，請先使用 Amazon Managed Grafana 主控台來啟用服務受管 IAM 角色，以授予工作區讀取您帳戶或整個組織單位中 Timestream 資源所需的 IAM 政策。然後，您可以使用 Amazon Managed Grafana 工作區主控台將 Timestream 新增為資料來源。

**使用 AWS 資料來源組態將 Timestream 新增為資料來源**

1. 開啟位於 https：//[https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/) 的 Amazon Managed Grafana 主控台。

1. 選擇頁面左上角的功能表圖示，然後選擇**所有工作區**。

1. 選擇工作區的名稱。

1. 如果您在建立工作空間時未選擇對此工作空間使用服務受管許可，則從使用客戶受管許可變更為使用服務受管許可，以確保在 Grafana 工作空間主控台中使用 AWS 資料來源組態選項啟用適當的 IAM 角色和政策。若要這樣做，請選擇依 **IAM 角色**編輯圖示，然後選擇**服務受管**、**儲存變更**。如需詳細資訊，請參閱[AWS 資料來源的 Amazon Managed Grafana 許可和政策](AMG-manage-permissions.md)。

1. 選擇**資料來源**索引標籤。然後選取 **Amazon Timestream** 的核取方塊，然後選擇**動作**、**啟用服務受管政策**。

1. 再次選擇**資料來源**索引標籤，然後在 **Amazon Timestream** 列中選擇在 **Grafana 中設定**。

1. 如有必要，請使用 IAM Identity Center 登入 Grafana 工作區主控台。

1. 在 Grafana 工作區主控台的左側導覽列中，選擇**應用程式**和**AWS 資料來源 **（在 Grafana v8 中，從左側選單中選擇 AWS 圖示）。

1. 選擇**AWS 服務**索引標籤，然後選擇 **Timestream**。

1. 選取您希望 **Timestream** 資料來源查詢的預設區域，選取帳戶，然後選擇**新增資料來源**。

# 手動新增 Timestream 資料來源
<a name="timestream-add-the-data-source"></a>

**手動新增 Timestream 資料來源**

1.  在 Grafana 主控台側邊選單中，暫停**組態** （齒輪） 圖示，然後選擇**資料來源**。

1. 選擇**新增資料來源**。

1. 選擇 **Amazon Timestream** 資料來源。如有必要，您可以開始**Timestream**在搜尋方塊中輸入 ，以協助您找到它。

## Timestream 設定
<a name="timestream-settings"></a>


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板和查詢中看到資料來源的方式。 | 
|  驗證提供者  |  指定要取得登入資料的提供者。 | 
|  預設區域  |  在查詢編輯器中用於設定區域 （可以根據每個查詢進行變更）。 | 
|  登入資料設定檔名稱  |  指定要使用的設定檔名稱 （如果您使用 \$1/.aws/credentials 檔案），預設請保留空白。 | 
|  擔任角色 Arn  |  指定要擔任的角色的 ARN。 | 
|  端點 （選用）  |  如果您必須指定替代服務端點。 | 

### 身分驗證
<a name="timestream-authentication"></a>

 本節涵蓋可用於 Amazon Timestream 資料來源的不同身分驗證類型。

#### AWS 登入資料範例
<a name="timestream-example-aws-credentials"></a>

 您無法在 Amazon Managed Grafana 中使用登入資料檔案驗證方法。

# 使用 Timestream 資料來源
<a name="timestream-query-editor"></a>

## 查詢編輯器
<a name="timestream-query-editor"></a>

 除了先前列出的巨集和任何儀表板範本變數之外，查詢編輯器接受 Timestream 語法。

 按 **Ctrl\$1Space** 開啟 IntelliSense 建議。

## 巨集
<a name="timestream-macros"></a>

 為了簡化語法並允許動態部分，例如日期範圍篩選條件，查詢可以包含巨集。


|  巨集範例  |  Description  | 
| --- | --- | 
|  *\$1\$1\$1 資料庫* |  將指定選取的資料庫。這會使用資料來源組態中的預設值，或查詢編輯器中的明確值。 | 
|  *\$1\$1\$1table*  |  將指定選取的資料庫。這會使用資料來源組態中的預設值，或查詢編輯器中的明確值。 | 
|  *\$1\$1\$1量值*  |  將指定選取的量值。這會使用資料來源組態中的預設值，或查詢編輯器中的明確值。 | 
|  *\$1\$1\$1timeFilter*  |  將由將時間限制在儀表板範圍的表達式取代  | 
|  *\$1\$1\$1interval\$1ms*  |  將由代表圖形中單一像素應涵蓋的時間量的數字取代。 | 

# 連線至 Amazon Athena 資料來源
<a name="AWS-Athena"></a>

**注意**  
在支援第 9 版或更新版本的工作區中，此資料來源可能需要您安裝適當的外掛程式。如需詳細資訊，請參閱[使用外掛程式擴展您的工作區](grafana-plugins.md)。

**注意**  
 本指南假設在使用 Athena 資料來源之前，您已熟悉 Amazon Athena 服務。

透過 Amazon Managed Grafana，您可以使用 Grafana 工作區主控台中的資料來源組態選項，將 Athena 新增為 AWS 資料來源。此功能可探索現有的 Athena 帳戶，並管理存取 Athena 所需的身分驗證憑證組態，以簡化將 Athena 新增為資料來源的程序。您可以使用此方法來設定身分驗證，並將 Athena 新增為資料來源，也可以使用與自我管理 Grafana 伺服器上相同的方法手動設定資料來源和必要的身分驗證憑證。



 Athena 有先決條件可供 Amazon Managed Grafana 存取。如需使用 Athena 資料來源與 相關聯的先決條件，請參閱 [先決條件](Athena-prereq.md)。

# 先決條件
<a name="Athena-prereq"></a>

若要使用 Amazon Managed Grafana for Athena 的受管政策，請先完成下列任務，再設定 Athena 資料來源：
+ 使用 標記您的 Athena 工作群組`GrafanaDataSource: true`。
+ 建立名稱開頭為 的 S3 儲存貯體`grafana-athena-query-results-`。此政策提供將查詢結果寫入具有該命名慣例的 S3 儲存貯體的許可。

此受管政策不包含存取 Athena 查詢基礎資料來源的 Amazon S3 許可。您必須根據case-by-case手動新增 Amazon S3 儲存貯體的必要許可。如需詳細資訊，請參閱本指南[中 Amazon Managed Grafana 中的身分型政策範例](https://docs.aws.amazon.com/grafana/latest/userguide/security_iam_id-based-policy-examples.html)。

# 使用 AWS 資料來源組態將 Amazon Athena 新增為資料來源
<a name="Athena-adding-AWS-config"></a>

## 先決條件
<a name="Athena-prerequisites"></a>
+ [AWS CLI ](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) 已安裝並設定在您的環境中。
+ 您可以從您的帳戶存取 Athena。

若要使用 AWS 資料來源組態，請先前往 Amazon Managed Grafana 主控台，以啟用服務受管 IAM 角色，將讀取您帳戶或整個組織單位中 Athena 資源所需的 IAM 政策授予工作區。然後，您可以使用 Amazon Managed Grafana 工作區主控台將 Athena 新增為資料來源。

# 使用 AWS 資料來源組態將 Athena 新增為資料來源


1.  確保您的使用者角色是管理員或編輯器。

1.  從 Amazon Managed Grafana 主控台選取您要使用的工作區，網址為 https：//[https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)。

1. 如果您在建立工作空間時未選擇對此工作空間使用服務受管許可，則從使用客戶受管許可變更為使用服務受管許可，以確保在 Grafana 工作空間主控台中使用 AWS 資料來源組態選項啟用適當的 IAM 角色和政策。若要這樣做，請選擇依 **IAM 角色**編輯圖示，然後選擇**服務受管**、**儲存變更**。如需詳細資訊，請參閱[AWS 資料來源的 Amazon Managed Grafana 許可和政策](AMG-manage-permissions.md)。

1. 選擇**資料來源**索引標籤。然後選取 **Amazon Athena** 的核取方塊，然後選擇**動作**、**啟用服務受管政策**。

1. 再次選擇**資料來源**索引標籤，然後在 **Amazon Athena** 列中選擇在 **Grafana 中設定**。

1. 如有必要，請使用 IAM Identity Center 登入 Grafana 工作區主控台。使用者應該將 Athena 存取政策連接到使用者/角色，才能存取 Athena 資料來源。如需更多詳細資訊，請參閱 [AWS 受管政策：AmazonGrafanaAthenaAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaAthenaAccess)。

1. 在 Grafana 工作區主控台的左側導覽列中，選擇下方 AWS 圖示 （有兩個），然後從**資料來源**功能表中選擇 **Athena**。

1. 選取您希望 Athena 資料來源查詢的預設區域，然後選取您想要的帳戶，然後選擇**新增資料來源**。

1.  依照步驟在 中設定 **Athena 詳細資訊** [**Athena 詳細資訊**設定](#Athena-settings)

## **Athena 詳細資訊**設定
<a name="Athena-settings"></a>

**設定 **Athena 詳細資訊**設定**

1.  在**連線詳細資訊**功能表中，選取身分驗證提供者 （建議：**工作區 IAM 角色**)。

1.  選取您擁有 Athena 帳戶的目標 Athena 資料來源。如果您未選取任何資料來源，則下拉式清單中會有預設資料來源。

   若要建立新的 Athena 帳戶，請遵循 [Athena 入門](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html)中的指示

1.  在上述選取的資料來源中選取目標 Athena 資料庫。

1.  選取工作群組。**主要** 預設為 。

1.  如果您的工作群組尚未設定輸出位置，請指定要用於查詢結果的 S3 儲存貯體和資料夾。例如 `s3://grafana-athena-plugin-test-data/query-result-output/ ` 

1.  選取**儲存並測試**。

# 手動新增 Athena 資料來源
<a name="Athena-add-the-data-source"></a>

## 先決條件
<a name="Athena-prerequisites2"></a>
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) 已安裝並設定在您的環境中。
+  您可以從您的帳戶存取 **Amazon Athena**。

**若要手動新增 Athena 資料來源：**

1.  在 Grafana 主控台側邊選單中，暫停**組態** （齒輪） 圖示，然後選擇**資料來源**。

1. 選擇**新增資料來源**。

1. 選擇 **AWS Athena** 資料來源。如有必要，您可以開始**Athena**在搜尋方塊中輸入 ，以協助您找到它。

1.  在**連線詳細資訊**功能表中，設定身分驗證提供者 （建議：**工作區 IAM 角色**) 

1.  選取目標 Athena 資料來源、資料庫和工作群組。

   若要建立新的 Athena 帳戶，請遵循 [Athena 入門](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html)中的指示。

1.  如果您的工作群組尚未設定輸出位置，請指定要用於查詢結果的 S3 儲存貯體和資料夾。例如 `s3://grafana-athena-plugin-test-data/query-result-output/ `。

1.  選取**儲存並測試**。

以下是 **Athena 詳細資訊**設定的範例。

![\[Athena 詳細資訊範例\]](http://docs.aws.amazon.com/zh_tw/grafana/latest/userguide/images/athena.png)


# 使用 Athena 資料來源
<a name="Athena-using-the-data-source"></a>

## IAM 政策
<a name="Athena-policies"></a>

 Grafana 需要透過 IAM 授予的許可，才能讀取 Athena 指標。您可以將這些許可連接到 IAM 角色，並利用 Grafana 的內建支援來擔任角色。請注意，您必須先設定角色[所需的政策，](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)才能將資料來源新增至 Grafana。您需要管理員或編輯器角色來新增資料來源。內建 Amazon Grafana Athena 存取政策在 [AWS 受管政策：AmazonGrafanaAthenaAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaAthenaAccess)區段中定義。

## 查詢 Athena 資料
<a name="Athena-query"></a>

Athena 資料來源提供標準 SQL 查詢編輯器。Amazon Managed Grafana 包含一些巨集，可協助撰寫更複雜的時間序列查詢。

巨集


|  巨集  |  Description  |  範例  |  輸出範例  | 
| --- | --- | --- | --- | 
|  \$1\$1\$1dateFilter(column)  |  \$1\$1\$1dateFilter 會根據面板的日期範圍，建立條件式篩選條件來選取資料 （使用 column)。 |  \$1\$1\$1date(my\$1date)  | my\$1date BETWEEN date '2017-07-18' AND date '2017-07-18' | 
|  \$1\$1\$1parseTime(column,format)  |  \$1\$1\$1parseTime 會將 varchar 轉換為具有指定格式的時間戳記。 |  \$1\$1\$1parseTime(eventtime, 'yyyy-MM-dd''T''HH:mm:ss''Z')  | parse\$1datetime(time,'yyyy-MM-dd''T''HH:mm:ss''Z') | 
|  \$1\$1\$1timeFilter(column,format)  |  \$1\$1\$1timeFilter 會建立條件式，根據面板的時間範圍篩選資料 （使用 column )。第二個引數用於選擇性地將資料欄從 varchar 剖析為具有特定格式的時間戳記。 | \$1\$1\$1timeFilter(time, 'yyyy-MM-dd HH:mm:ss') | TIMESTAMP time BETWEEN TIMESTAMP '2017-07-18T11:15:52Z' AND TIMESTAMP '2017-07-18T11:15:52Z' | 
|  \$1\$1\$1timeFrom()  |  \$1\$1\$1timeFrom 會使用引號輸出面板範圍的目前開始時間。 | \$1\$1\$1timeFrom() | TIMESTAMP '2017-07-18 11:15:52' | 
|  \$1\$1\$1timeTo()  |  \$1\$1\$1timeTo  會使用引號輸出面板範圍的目前結束時間。 | \$1\$1\$1timeTo() | TIMESTAMP '2017-07-18 11:15:52' | 
|  \$1\$1\$1timeGroup(column, '1m', format)  |  \$1\$1\$1timeGroup  群組時間戳記，因此圖形上的每個期間只有 1 點。第三個引數用於選擇性地將資料欄從 varchar 剖析為具有特定格式的時間戳記。 | \$1\$1\$1timeGroup(time,'5m','yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z') | FROM\$1UNIXTIME(FLOOR(TO\$1UNIXTIME(parse\$1datetime(time,'yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z'))/300)\$1300) | 
|  \$1\$1\$1table  |   \$1\$1\$1table 傳回在資料表選取器中選取的資料表。 | \$1\$1\$1table | my\$1table | 
|  \$1\$1\$1column  |  \$1\$1\$1column 傳回在資料欄選取器中選取的資料欄 （需要資料表）。 | \$1\$1\$1column  | col1  | 

**視覺化**

Athena 中的大多數查詢最好以資料表視覺化呈現。查詢會在資料表中顯示傳回資料。如果可以查詢，則可以將其顯示為資料表。

此範例會傳回資料表視覺化的結果：

```
SELECT {column_1}, {column_2} FROM {table};
```

**時間序列/圖形視覺化 **

對於時間序列和圖形視覺化，您必須：
+ 選取具有 `date`或 `datetime`類型的資料欄。資料`date`欄必須依遞增順序排列 （使用 `ORDER BY column ASC`)。
+ 也會選取數值欄。

**檢查查詢 **

Amazon Managed Grafana 支援 Athena 不支援的巨集，這表示直接複製並貼入 Athena 時，查詢可能無法運作。若要檢視直接在 Athena 中運作的完整插補查詢，請按一下**查詢檢查器**按鈕。完整查詢會顯示在**查詢**索引標籤下。

## 範本和變數
<a name="using-Athena-templates-variables"></a>

如需新增 Athena 查詢變數的詳細資訊，請參閱 [新增查詢變數](variables-types.md#add-a-query-variable)。使用 Athena 資料來源做為可用查詢的資料來源。

從 Athena 資料表查詢的任何值都可以用作變數。避免選取太多值，因為這可能會導致效能問題。

建立變數之後，您可以使用 在 Athena 查詢中使用它[變數語法](templates-and-variables.md#variable-syntax)。如需變數的詳細資訊，請參閱 [範本和變數](templates-and-variables.md)。

## 註釋
<a name="using-Athena-annotations"></a>

[註釋](dashboard-annotations.md) 可讓您在圖形上方疊加豐富的事件資訊。您可以透過選取面板或使用**儀表板**功能表註釋檢視新增註釋查詢來新增**註釋**。

自動新增註釋的範例查詢：

```
SELECT
  time as time,
  environment as tags,
  humidity as text
FROM
  tableName
WHERE
  $__dateFilter(time) and humidity > 95
```

下表代表可用於轉譯註釋的資料欄描述：


|  名稱  |  描述  | 
| --- | --- | 
|  Time  |  日期/時間欄位的名稱。可以是具有原生 SQL 日期/時間資料類型或 epoch 值的資料欄。 | 
|  Timeend  |  結束日期/時間欄位的選用名稱。可以是具有原生 SQL 日期/時間資料類型或 epoch 值的資料欄。(Grafana v6.6\$1)  | 
|  Text  |  事件描述欄位。 | 
|  Tags  |  用於事件標籤的選用欄位名稱，做為逗號分隔字串。 | 

## 非同步查詢資料支援
<a name="athena-async-query"></a>

Amazon Managed Grafana 中的 Athena 查詢會以非同步方式處理，以避免逾時。非同步查詢使用單獨的請求來啟動查詢，然後檢查其進度，最後擷取結果。這可避免長時間執行的查詢逾時。

## 查詢結果重複使用
<a name="athena-query-reuse"></a>

您可以重複使用先前查詢的結果，以改善查詢效能。若要啟用查詢重複使用，請在查詢編輯器的**查詢結果重複使用**區段中啟用 。這必須針對您要重複使用查詢的每個查詢完成。

**注意**  
此功能需要您的 Athena 執行個體位於引擎版本 3。如需詳細資訊，請參閱《*Amazon Athena * [Athena 使用者指南》中的變更 Athena 引擎版本](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-changing.html)。

# 連線至 Amazon Redshift 資料來源
<a name="AWS-Redshift"></a>

**注意**  
在支援第 9 版或更新版本的工作區中，此資料來源可能需要您安裝適當的外掛程式。如需詳細資訊，請參閱[使用外掛程式擴展您的工作區](grafana-plugins.md)。

**注意**  
 本指南假設使用者在使用 Amazon Redshift 資料來源之前熟悉 Amazon Redshift 服務。

使用 Amazon Managed Grafana，您可以使用 Grafana 工作區主控台中的 AWS 資料來源組態選項，將 Amazon Redshift 新增為資料來源。此功能可探索現有的 Amazon Redshift 帳戶，並管理存取 Amazon Redshift 所需的身分驗證憑證組態，以簡化將 Amazon Redshift 新增為資料來源的程序。您可以使用此方法來設定身分驗證，並將 Amazon Redshift 新增為資料來源，也可以使用與自我管理 Grafana 伺服器上相同的方法來手動設定資料來源和必要的身分驗證憑證。

Amazon Managed Grafana 有存取 Amazon Redshift 的先決條件。如需使用 Amazon Redshift 資料來源與 相關聯的先決條件，請參閱 [先決條件](Redshift-prereq.md)。

# 先決條件
<a name="Redshift-prereq"></a>

若要使用 Amazon Managed Grafana 的 AWS 受管政策，請先完成下列任務，再設定 Amazon Redshift 資料來源：
+ 使用 標記您的 Amazon Redshift 叢集`GrafanaDataSource: true`。否則，將無法存取。
+ 以下列其中一個互斥方式建立資料庫登入資料：
  + 如果您想要使用預設機制 （臨時登入資料選項） 對 Redshift 資料庫進行身分驗證，您必須建立名為 的資料庫使用者`redshift_data_api_user`。
  + 如果您想要使用 Secrets Manager 的登入資料，您必須使用 標記秘密`RedshiftQueryOwner: true`。如需詳細資訊，請參閱本指南[中 Amazon Managed Grafana 中的身分型政策範例](https://docs.aws.amazon.com/grafana/latest/userguide/security_iam_id-based-policy-examples.html)。

# 使用 AWS 資料來源組態將 Amazon Redshift 新增為資料來源
<a name="Redshift-configure"></a>

# 使用 AWS 資料來源組態將 Amazon Redshift 新增為資料來源


1.  確保您的使用者角色是管理員或編輯器。

1.  從 Amazon Managed Grafana 主控台選取您要使用的工作區，網址為 https：//[https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)。

1. 如果您在建立工作空間時未選擇對此工作空間使用服務受管許可，則從使用客戶受管許可變更為使用服務受管許可，以確保在 Grafana 工作空間主控台中使用 AWS 資料來源組態選項啟用適當的 IAM 角色和政策。若要這樣做，請選擇依 **IAM 角色**編輯圖示，然後選擇**服務受管**、**儲存變更**。如需詳細資訊，請參閱[AWS 資料來源的 Amazon Managed Grafana 許可和政策](AMG-manage-permissions.md)。

1. 選擇**資料來源**索引標籤。然後選取 **Amazon Redshift** 的核取方塊，然後選擇**動作**、**啟用服務受管政策**。

1. 再次選擇**資料來源**索引標籤，然後在 **Amazon Redshift** 資料列中選擇**在 Grafana 中設定**。

1. 如有必要，請使用 IAM Identity Center 登入 Grafana 工作區主控台。

1. 在 Grafana 工作區主控台的左側導覽列中，選擇下方 AWS 圖示 （有兩個），然後選擇 **Redshift**。

1. 選取您希望 Amazon Redshift 資料來源查詢的預設區域，然後選取您想要的帳戶，然後選擇**新增資料來源**。

1.  依照步驟在 中設定**連線詳細資訊**[**連線詳細資訊**設定](Redshift-config.md#Redshift-connection-details)。

# 手動新增 Amazon Redshift 資料來源
<a name="Redshift-add-the-data-source"></a>

## 先決條件
<a name="Redshift-prerequisites"></a>
+  您可以從您的帳戶存取 **Amazon Redshift**。

**若要新增 Amazon Redshift 資料來源：**

1. 將 [AmazonRedshiftAccessPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaRedshiftAccess) 連接至工作區使用者角色。

1. 確保您的使用者角色是管理員或編輯器。

1.  從 Amazon Managed Grafana 主控台選取您要使用的工作區，網址為 https：//[https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/)。

1.  在 Grafana 主控台側邊選單中，暫停**組態** （齒輪） 圖示，然後選擇**資料來源**。

1. 選擇**新增資料來源**。

1. 選擇 **AWS Redshift** 資料來源。如有必要，您可以開始**Redshift**在搜尋方塊中輸入 ，以協助您找到它。

1. 這會開啟**連線詳細資訊**頁面。請遵循設定 的步驟[**連線詳細資訊**設定](Redshift-config.md#Redshift-connection-details)。

# 設定 Amazon Redshift
<a name="Redshift-config"></a>

 將 Amazon Redshift 資料來源新增至工作區後，請設定 Amazon Redshift 設定，如下所示：

## 先決條件
<a name="Redshift-prerequisites"></a>
+  您可以從您的帳戶存取 **Amazon Redshift**。

## **連線詳細資訊**設定
<a name="Redshift-connection-details"></a>

**設定連線詳細資訊設定**

1.  在**連線詳細資訊**功能表中，選取身分驗證提供者 （建議：**工作區 IAM 角色**)。

1.  選擇您要查詢**的預設區域**。

## **身分驗證**設定
<a name="Redshift-Authentication"></a>

**設定**身分驗證**設定**

1.  在**身分驗證**功能表中，選擇**暫時登入**資料或 **AWS Secrets Manager** 索引標籤做為您的存取登入資料提供者。如需暫時登入資料和 AWS Secrets Manager 的詳細資訊，請參閱 [AWS 受管政策：AmazonGrafanaRedshiftAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaRedshiftAccess)

1.  如果您選擇預設的**暫時登入**資料，請遵循下列步驟。如果您選擇 **AWS Secrets Manager**，請在輸入欄位中輸入 **AWS Secrets Manager** 登入資料。

1.  選擇您在 Amazon Redshift 中建立之叢集的**叢集識別符**。

   如需 Redshift 叢集的詳細資訊，請參閱 [ Redshift 連線](https://docs.aws.amazon.com/redshift/latest/gsg/connection.html)。

1.  選擇您的目標 Redshift 資料庫。

1.  選取您為上述叢集建立的資料庫使用者。

1.  選擇**儲存並測試**。

以下是**暫時登入**資料設定的範例。

![\[暫時登入資料範例\]](http://docs.aws.amazon.com/zh_tw/grafana/latest/userguide/images/redshift.png)


以下是 **AWS Secrets Manager** 功能表的範例。

![\[Secrets Manager 範例\]](http://docs.aws.amazon.com/zh_tw/grafana/latest/userguide/images/secretsmanager.png)


# 使用 Amazon Redshift 資料來源
<a name="Redshift-using-the-data-source"></a>

## IAM 政策
<a name="Redshift-policies"></a>

 Grafana 需要使用 IAM 授予的許可，才能讀取 Redshift 指標。您可以將這些許可連接到 IAM 角色，並利用 Grafana 的內建支援來擔任角色。內建 Amazon Grafana Redshift 存取政策在 [AWS 受管政策：AmazonGrafanaRedshiftAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGrafanaRedshiftAccess)區段中定義。

## 查詢 Amazon Redshift 資料
<a name="Redshift-query"></a>

 Amazon Redshift 資料來源提供標準 SQL 查詢編輯器。Amazon Managed Grafana 包含一些巨集，以協助撰寫更複雜的時間查詢。

巨集


|  巨集  |  Description  |  輸出範例  | 
| --- | --- | --- | 
|  \$1\$1\$1timeEpoch(column)  |  \$1\$1\$1timeEpoch 將由表達式取代，以轉換為 UNIX 時間戳記，並將資料欄重新命名為時間  |  UNIX\$1TIMESTAMP(dateColumn) as "time"  | 
|  \$1\$1\$1timeFilter(column)  |  \$1\$1\$1timeFilter會根據面板的時間範圍建立條件式來篩選資料 （使用 column)  |  time BETWEEN '2017-07-18T11:15:52Z' AND '2017-07-18T11:15:52Z'  | 
|  \$1\$1\$1timeFrom()  |  \$1\$1\$1timeFrom 會使用引號輸出面板範圍的目前開始時間  | '2017-07-18T11:15:52Z' | 
|  \$1\$1\$1timeTo()  |  \$1\$1\$1timeTo 會使用引號輸出面板範圍的目前結束時間  | '2017-07-18T11:15:52Z' | 
|  \$1\$1\$1timeGroup(column, '1m')  |  \$1\$1\$1timeGroup 群組時間戳記，因此圖形上的每個期間只有 1 點  | floor(extract(epoch from time)/60)\$160 AS "time" | 
|  \$1\$1\$1schema  |  \$1\$1\$1schema  使用選取的結構描述  | public | 
|  \$1\$1\$1table  |   \$1\$1\$1table 從指定的 輸出資料表 \$1\$1\$1schema（預設使用公有結構描述）  | sales | 
|  \$1\$1\$1column  |  \$1\$1\$1column 從目前的 輸出資料欄 \$1\$1\$1table  | date  | 
|  \$1\$1\$1unixEpochFilter(column)  |  \$1\$1\$1unixEpochFilter 使用指定的資料欄名稱取代為時間範圍篩選條件，時間以 Unix 時間戳記表示  |   column >= 1624406400 AND column <= 1624410000  | 
|  \$1\$1\$1unixEpochGroup(column)  |  \$1\$1\$1unixEpochGroup 與 相同，\$1\$1\$1timeGroup但時間儲存為 Unix 時間戳記  | floor(time/60)\$160 AS "time" | 

**視覺化**

Redshift 中的大多數查詢最好以資料表視覺化呈現。任何查詢都會在資料表中顯示資料。如果可以查詢，則可以放在資料表中。

此範例會傳回資料表視覺化的結果：

```
SELECT {column_1}, {column_2} FROM {table};
```

**時間序列和圖形視覺化 **

對於時間序列和圖形視覺化，有幾個需求：
+ 必須選取具有 `date`或 `datetime`類型的資料欄。
+ 資料`date`欄必須按遞增順序 （使用 `ORDER BY column ASC`)。
+ 您必須選取數值欄。

若要建立更合理的圖形，請務必使用 `$__timeFilter`和 `$__timeGroup`巨集。

**範例 timeeries 查詢：**

```
SELECT
  avg(execution_time) AS average_execution_time,
  $__timeGroup(start_time, 'hour'),
  query_type
FROM
  account_usage.query_history
WHERE
  $__timeFilter(start_time)
group by
  query_type,start_time
order by
  start_time,query_type ASC;
```

**填充模式**

Grafana 也會自動完成沒有預設值的影格。若要設定此值，請在查詢編輯器中變更**填滿值**。

**檢查查詢**

由於 Grafana 支援 Redshift 不支援的巨集，因此可以直接複製並貼入 Redshift 的完整轉譯查詢會顯示在查詢檢查器中。若要檢視完整插補查詢，請選擇**查詢檢查器**功能表，而完整查詢會顯示在**查詢**索引標籤上。

## 範本和變數
<a name="using-redshift-templates-variables"></a>

如需如何新增 Redshift 查詢變異的詳細資訊，請參閱 [新增查詢變數](variables-types.md#add-a-query-variable)。使用 Redshift 資料來源做為可用查詢的資料來源。

從 Amazon Redshift 資料表查詢的任何值都可以用作變數。請務必避免選取太多值，因為這可能會導致效能問題。

建立變數之後，您可以使用 在 Redshift 查詢中使用它[變數語法](templates-and-variables.md#variable-syntax)。如需變數的詳細資訊，請參閱 [範本和變數](templates-and-variables.md)。

## 註釋
<a name="using-redshift-annotations"></a>

[註釋](dashboard-annotations.md) 可讓您在圖形上方疊加豐富的事件資訊。您可以透過選取面板或使用從儀表板****功能表開啟的註釋檢視新增註釋查詢來新增**註釋**。

自動新增註釋的查詢範例：

```
SELECT
  time as time,
  environment as tags,
  humidity as text
FROM
  $__table
WHERE
  $__timeFilter(time) and humidity > 95
```

下表代表考量到轉譯註釋的資料欄值：


|  名稱  |  描述  | 
| --- | --- | 
|  Time  |  日期或時間欄位的名稱。可以是具有原生 SQL 日期或時間資料類型或 epoch 值的資料欄。 | 
|  Timeend  |  結束日期或時間欄位的選用名稱。可以是具有原生 SQL 日期或時間資料類型或 epoch 值的資料欄。 | 
|  Text  |  事件描述欄位。 | 
|  Tags  |  用於事件標籤的選用欄位名稱，做為逗號分隔字串。 | 

# 連線至 AWS X-Ray 資料來源
<a name="x-ray-data-source"></a>

**注意**  
在支援第 9 版或更新版本的工作區中，此資料來源可能需要您安裝適當的外掛程式。如需詳細資訊，請參閱[使用外掛程式擴展您的工作區](grafana-plugins.md)。

 新增 AWS X-Ray 做為資料來源，然後建置儀表板或使用 探索搭配 X-Ray 來查看追蹤、分析或洞見。

 使用 Amazon Managed Grafana，您可以使用 Grafana 工作區主控台中的 AWS 資料來源組態選項，將 X-Ray 新增為資料來源。此功能可探索您現有的 X-Ray 帳戶，並管理存取 X-Ray 所需的身分驗證憑證組態，以簡化將 X-Ray 新增為資料來源的程序。您可以使用此方法來設定身分驗證，並將 X-Ray 新增為資料來源，也可以使用與自我管理 Grafana 伺服器上相同的方法來手動設定資料來源和必要的身分驗證憑證。

**Topics**
+ [使用 AWS 資料來源組態將 X-Ray 新增為資料來源](xray-adding-AWS-config.md)
+ [手動新增 X-Ray 資料來源](xray-add-the-data-source.md)
+ [X-Ray 設定](#xray-settings)
+ [使用 X-Ray 資料來源](xray-using.md)

# 使用 AWS 資料來源組態將 X-Ray 新增為資料來源
<a name="xray-adding-AWS-config"></a>

若要使用 AWS 資料來源組態，請先使用 Amazon Managed Grafana 主控台來啟用服務受管 IAM 角色，以授予工作區讀取您帳戶或整個組織單位中 X-Ray 資源所需的 IAM 政策。然後，您可以使用 Amazon Managed Grafana 工作區主控台將 X-Ray 新增為資料來源。

**使用 AWS 資料來源組態將 X-Ray 新增為資料來源**

1. 開啟位於 https：//[https://console.aws.amazon.com/grafana/](https://console.aws.amazon.com/grafana/home/) 的 Amazon Managed Grafana 主控台。

1. 選擇頁面左上角的功能表圖示，然後選擇**所有工作區**。

1. 選擇工作區的名稱。

1. 如果您在建立工作空間時未選擇對此工作空間使用服務受管許可，則從使用客戶受管許可變更為使用服務受管許可，以確保在 Grafana 工作空間主控台中使用 AWS 資料來源組態選項啟用適當的 IAM 角色和政策。若要執行此作業，請依 **IAM 角色**選擇編輯圖示，然後選擇**服務受管**、**儲存變更**。如需詳細資訊，請參閱[AWS 資料來源的 Amazon Managed Grafana 許可和政策](AMG-manage-permissions.md)。

1. 選擇**資料來源**索引標籤。然後選取 的核取方塊**AWS X-Ray**，然後選擇**動作**、**啟用服務受管政策**。

1. 再次選擇**資料來源**索引標籤，然後在資料**AWS X-Ray**列中選擇在 **Grafana 中設定**。

1. 如有必要，請使用 IAM Identity Center 登入 Grafana 工作區主控台。

1. 在 Grafana 工作區主控台的左側導覽列中，選擇 AWS 圖示，然後選擇**AWS 服務** **X-Ray**。

1. 選取您希望 X-Ray 資料來源查詢的預設區域，選取帳戶，然後選擇**新增資料來源**。

# 手動新增 X-Ray 資料來源
<a name="xray-add-the-data-source"></a>

**手動新增 X-Ray 資料來源**

1.  在 Grafana 主控台側邊選單中，暫停**組態** （齒輪） 圖示，然後選擇**資料來源**。

1. 選擇**新增資料來源**。

1. 選擇 **X-Ray** 資料來源。如有必要，您可以開始**X-Ray**在搜尋方塊中輸入 ，以協助您找到它。

## X-Ray 設定
<a name="xray-settings"></a>


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板和查詢中查看資料來源的方式。 | 
|  預設  |  預設資料來源表示將針對新面板預先選取。 | 
|  預設區域  |  在查詢編輯器中用於設定區域 （可以根據每個查詢進行變更）。 | 
|  驗證提供者  |  指定要取得登入資料的提供者。 | 
|  登入資料設定檔名稱  |  指定要使用的設定檔名稱 （如果您使用 \$1/.aws/credentials 檔案），預設請保留空白。 | 
|  擔任角色 Arn  |  指定要擔任的角色的 ARN。 | 
|  外部 ID  |  如果您在另一個帳戶中擔任角色，而該帳戶已使用外部 ID 建立，請在此處指定外部 ID。 | 

### 身分驗證
<a name="xray-authentication"></a>

本節涵蓋可用於 X-Ray 資料來源的不同身分驗證類型。

#### IAM 角色
<a name="xray-iam-roles"></a>

 目前，Grafana 工作區後端會使用官方 AWS SDK 完成對 X-Ray 的所有存取。如果您的 Grafana 伺服器正在執行 AWS，您可以使用 IAM 角色，且會自動處理身分驗證。

 如需詳細資訊，請參閱 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。

### IAM 政策
<a name="xray-iam-policies"></a>

 Grafana 需要透過 IAM 授予的許可，才能讀取 X-Ray 資料和 EC2 tags/instances/regions。您可以將這些許可連接到 IAM 角色，並使用內建的 Grafana 支援來擔任角色。

 下列程式碼範例顯示最少的政策。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "xray:BatchGetTraces",
                "xray:GetTraceSummaries",
                "xray:GetTraceGraph",
                "xray:GetGroups",
                "xray:GetTimeSeriesServiceStatistics",
                "xray:GetInsightSummaries",
                "xray:GetInsight",
                "ec2:DescribeRegions"
            ],
            "Resource": "*"
        }
    ]
}
```

------

#### AWS 登入資料範例
<a name="xray-example-aws-credentials"></a>

 您無法在 Amazon Managed Grafana 中使用登入資料檔案方法。

# 使用 X-Ray 資料來源
<a name="xray-using"></a>

## 查詢編輯器
<a name="xray-query-editor"></a>

 編輯器中最重要的欄位是查詢類型。有四種查詢類型：
+  追蹤清單 ( 中的追蹤 AWS) 
+  追蹤統計資料 
+  追蹤分析 ( 中的分析 AWS) 
+  洞見 

## 追蹤清單
<a name="xray-trace-list"></a>

 追蹤清單類型可讓您搜尋顯示在資料表中的追蹤。在第一欄中選擇追蹤 ID 會在右側開啟追蹤。請注意編輯器中的查詢欄位。您可以撰寫查詢、篩選表達式，也可以插入將在追蹤檢視中顯示的單一追蹤 ID。如需篩選條件表達式的詳細資訊，請參閱 [AWS X-Ray 文件](https://docs.aws.amazon.com/xray/latest/devguide/xray-console-filters.html)。

**注意**  
 追蹤清單只會顯示前 1000 個追蹤。

## 追蹤統計資料
<a name="xray-trace-statistics"></a>

 在追蹤統計資料中，您可以看到圖表和資料表，其中顯示錯誤、故障、調節、成功和總計數的相關資訊。您可以使用查詢編輯器中的資料欄欄位，只查看指定的資料欄。

## Trace Analytics
<a name="xray-trace-analytics"></a>

 在 Trace Analytics 中，您可以視覺化下列資料表。
+  根本原因 
  +  回應時間 
    +  根本原因服務 （路徑中的最後一個服務） 
    +  路徑 （多個路徑） 
  +  錯誤 
    +  根本原因服務 （路徑中的最後一個服務） 
    +  路徑 
    +  錯誤訊息 
  +  故障 
    +  根本原因服務 （路徑中的最後一個服務） 
    +  路徑 
    +  錯誤訊息 
+  最終使用者影響 
+  URL 
+  HTTP 狀態碼 

## 洞見
<a name="xray-insights"></a>

 在 Insights 中，您可以查看 Insights 的摘要資料表。選擇 InsightId 將帶您前往 AWS 管理主控台。

## 提醒
<a name="xray-alerting"></a>

 由於 X-Ray 查詢可以傳回數值資料，因此支援提醒。如需詳細資訊，請參閱[Grafana 提醒](alerts-overview.md)。

# 連線至 Azure Monitor 資料來源
<a name="using-azure-monitor-in-AMG"></a>

 Azure Monitor 資料來源支援 Azure 雲端中的多項服務：
+  **Azure Monitor 服務**是平台服務，提供單一來源來監控 Azure 資源。如需詳細資訊，請參閱[查詢 Azure Monitor 服務](#query-the-azure-monitor-service)。
+  **Application Insights 伺服器**是適用於多個平台上 Web 開發人員的可擴展應用程式效能管理 (APM) 服務，可用於監控即時 Web 應用程式，它會自動偵測效能異常。如需詳細資訊，請參閱[查詢 Application Insights Analytics 服務](#query-the-application-insights-analytics-service)。
+  **Azure Log Analytics** （或 Azure Logs) 可讓您存取 Azure Monitor 所收集的日誌資料。如需詳細資訊，請參閱[查詢 Azure Log Analytics 服務](#querying-the-azure-log-analytics-service)。
+  使用 **Application Insights Analytics 服務**，使用與 Azure Log Analytics 相同的查詢語言來查詢 [Application Insights 資料](https://docs.microsoft.com/en-us/azure/azure-monitor/app/analytics)。如需詳細資訊，請參閱[查詢 Application Insights Analytics 服務](#query-the-application-insights-analytics-service)。

## 新增資料來源
<a name="azure-add-the-data-source"></a>

 資料來源可以從四個不同的服務存取指標。您可以設定對您所用服務的存取。如果這是您在 Azure Entra ID 中設定的方式，也可以對多個服務使用相同的登入資料。
+  [註冊 Microsoft Entra 應用程式並建立服務主體](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal) 

1.  從 Grafana 主選單存取，新安裝的資料來源可以立即新增到資料來源區段中。接著，選擇右上角的**新增資料來源**按鈕。Azure Monitor 資料來源將可在資料來源清單中的雲端區段中選擇。

1.  在名稱欄位中，Grafana 會自動填入資料來源的名稱： `Azure Monitor`或 等。 `Azure Monitor - 3`如果您要設定多個資料來源，請將名稱變更為資訊更豐富的名稱。

1.  如果您使用的是 Azure Monitor，則需要 Azure 入口網站的四項資訊 （如需詳細說明，請參閱先前提供的連結）：
   +  **租用戶 ID **(Azure Entra ID、屬性、目錄 ID) 
   +  **用戶端 ID **(Azure Entra ID、應用程式註冊、選擇您的應用程式、應用程式 ID) 
   +  **用戶端秘密** (Azure Entra ID、應用程式註冊、選擇您的應用程式、金鑰） 
   +  **預設訂閱 ID **（訂閱、選擇訂閱、概觀、訂閱 ID) 

1.  將這四個項目貼到 Azure Monitor API 詳細資訊區段中的欄位。
   +  每個查詢都可以變更訂閱 ID。儲存資料來源並重新整理頁面，以查看指定用戶端 ID 可用的訂閱清單。

1.  如果您也使用 Azure Log Analytics 服務，則必須指定這兩個組態值，或重複使用上一個步驟的用戶端 ID 和秘密。
   +  用戶端 ID (Azure Entra ID、應用程式註冊、選擇您的應用程式、應用程式 ID) 
   +  用戶端秘密 (Azure Entra ID、應用程式註冊、選擇您的應用程式、金鑰、建立金鑰、使用用戶端秘密） 

1.  如果您使用的是 Application Insights，則需要來自 Azure 入口網站的兩項資訊 （如需詳細說明，請參閱先前提供的連結）：
   +  應用程式 ID 
   +  API 金鑰 

1.  將這兩個項目貼到 Application Insights API 詳細資訊區段中的適當欄位。

1.  選擇**儲存與**測試按鈕，測試組態詳細資訊是否正確。

 或者，在步驟 4 中，如果您要建立新的 Azure Entra ID 應用程式，請使用 [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest)：

```
az ad sp create-for-rbac -n "http://localhost:3000"
```

## 選擇服務
<a name="azure-choose-a-service"></a>

 在面板的查詢編輯器中，選擇 Azure Monitor 資料來源之後，第一個步驟是選取服務。有四個選項：
+  `Azure Monitor` 
+  `Application Insights` 
+  `Azure Log Analytics` 
+  `Insights Analytics` 

 查詢編輯器會根據您選取的選項而變更。Azure Monitor 是預設值。

## 查詢 Azure Monitor 服務
<a name="query-the-azure-monitor-service"></a>

 Azure Monitor 服務會為您執行的所有 Azure 服務提供指標。它可協助您了解 Azure 上的應用程式如何執行，並主動找出影響應用程式的問題。

 如果您的 Azure Monitor 登入資料可讓您存取多個訂閱，請先選擇適當的訂閱。

 您可以從服務取得的指標範例如下：
+  `Microsoft.Compute/virtualMachines - Percentage CPU` 
+  `Microsoft.Network/networkInterfaces - Bytes sent` 
+  `Microsoft.Storage/storageAccounts - Used Capacity` 

 查詢編輯器可讓您查詢支援它們的指標的多個維度。支援多個維度的指標是 [Azure Monitor 支援的指標清單中列出的指標](https://docs.microsoft.com/en-us/azure/azure-monitor/platform/metrics-supported)，這些指標在指標的**維度**欄中列出一或多個值。

### 使用 Azure Monitor 的別名格式化圖例金鑰
<a name="format-legend-keys-with-aliases-for-azure-monitor"></a>

 Azure Monitor API 的預設圖例格式為：

 `metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}` 

 這些長度可能很長，但您可以使用別名來變更此格式。在**圖例格式**欄位中，您可以任意組合下列別名。

 Azure Monitor 範例：
+  `Blob Type: {{ blobtype }}` 
+  `{{ resourcegroup }} - {{ resourcename }}` 

### Azure Monitor 的別名模式
<a name="alias-patterns-for-azure-monitor"></a>
+  `{{ resourcegroup }}` = 以資源群組的值取代 
+  `{{ namespace }}` = 以命名空間的值取代 （例如 Microsoft.Compute/virtualMachines) 
+  `{{ resourcename }}` = 以資源名稱的值取代 
+  `{{ metric }}` = 以指標名稱取代 （例如， 百分比 CPU) 
+  `{{ dimensionname }}` = *7.1\$1 的舊版 （用於回溯相容性）*，以第一個維度的索引鍵/標籤取代 （依索引鍵/標籤排序） （例如 blobtype) 
+  `{{ dimensionvalue }}` = *7.1\$1 的舊版 （用於回溯相容性）*，以第一個維度的值取代 （依索引鍵/標籤排序） （例如 BlockBlob) 
+  `{{ arbitraryDim }}` = *提供 7.1\$1 版本*，以對應維度的值取代。（例如， `{{ blobtype }}` 成為 BlockBlob) 

### 建立 Azure Monitor 的範本變數
<a name="create-template-variables-for-azure-monitor"></a>

 您可以在指標查詢中使用變數，而不是硬式編碼，例如伺服器、應用程式和感應器名稱。變數會顯示為儀表板頂端的下拉式清單選取方塊。您可以使用這些下拉式方塊來變更儀表板中顯示的資料。

 請注意，Azure Monitor 服務尚不支援多個值。若要視覺化多個時間序列 （例如，伺服器 1 和伺服器 2 的指標），請新增多個查詢，以便在相同的圖形或相同的資料表中檢視它們。

 Azure Monitor 資料來源外掛程式提供下列查詢，您可以在變數編輯檢視的**查詢**欄位中指定。您可以使用它們來填入變數的選項清單。


|  名稱  |  描述  | 
| --- | --- | 
|  Subscriptions()  |  傳回訂閱清單。 | 
|  ResourceGroups()  |  傳回資源群組的清單。 | 
|  ResourceGroups(12345678-aaaa-bbbb-cccc-123456789aaa)  |  傳回指定訂閱的資源群組清單。 | 
|  Namespaces(aResourceGroup)  |  傳回指定資源群組的命名空間清單。 | 
|  Namespaces(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup)  |  傳回指定資源群組和訂閱的命名空間清單。 | 
|  ResourceNames(aResourceGroup, aNamespace)  |  傳回資源名稱的清單。 | 
|  ResourceNames(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace)  |  傳回指定訂閱的資源名稱清單。 | 
|  MetricNamespace(aResourceGroup, aNamespace, aResourceName)  |  傳回指標命名空間的清單。 | 
|  MetricNamespace(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace, aResourceName)  |  傳回指定訂閱的指標命名空間清單。 | 
|  MetricNames(aResourceGroup, aNamespace, aResourceName)  |  傳回指標名稱的清單。 | 
|  MetricNames(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace, aResourceName)  |  傳回指定訂閱的指標名稱清單。 | 

 範例：
+  資源群組查詢： `ResourceGroups()`
+  在指標名稱變數中傳遞： `Namespaces(cosmo)`
+  鏈結範本變數： `ResourceNames($rg, $ns)`
+  請勿引用參數： `MetricNames(hg, Microsoft.Network/publicIPAddresses, grafanaIP)`

 如需範本和範本變數的詳細資訊，請參閱 [範本](templates-and-variables.md#templates)。

### 支援的 Azure Monitor 指標清單
<a name="list-of-supported-azure-monitor-metrics"></a>

 並非所有 Azure Monitor API 傳回的指標都有值。為了讓建立查詢更容易，Grafana 資料來源具有支援的 Azure Monitor 指標清單，而且會忽略永遠不會有值的指標。當新的服務和指標新增至 Azure 雲端時，此清單會定期更新。

### Azure Monitor 提醒
<a name="azure-monitor-alerting"></a>

 Azure Monitor 服務支援 Grafana 提醒。這不是 Azure Alerts 支援。如需 Grafana 提醒的詳細資訊，請參閱 [Grafana 提醒](alerts-overview.md)。

## 查詢 Application Insights 服務
<a name="query-the-application-insights-service"></a>

### 使用 Application Insights 的別名格式化圖例金鑰
<a name="formatting-legend-keys-with-aliases-for-application-insights"></a>

 預設圖例格式為：

 `metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}` 

 在圖例格式欄位中，下列別名可以任意組合。

 Application Insights 範例：
+  `city: {{ client/city }}` 
+  `{{ metric }} [Location: {{ client/countryOrRegion }}, {{ client/city }}]` 

### Application Insights 的別名模式
<a name="alias-patterns-for-application-insights"></a>
+  `{{ groupbyvalue }}` = *Grafana 7.1\$1 的舊版 （用於回溯相容性）*，以第一個維度的索引鍵/標籤取代 （依索引鍵/標籤排序） 
+  `{{ groupbyname }}` = *Grafana 7.1\$1 的舊版 （用於回溯相容性）*，以第一個維度的值取代 （依索引鍵/標籤排序） （例如 BlockBlob) 
+  `{{ metric }}` = 以指標名稱取代 （例如， 請求/計數） 
+  `{{ arbitraryDim }}` = *提供 7.1\$1 版本*，以對應維度的值取代。（例如， `{{ client/city }}` 變成芝加哥） 

### Application Insights 的篩選條件表達式
<a name="filter-expressions-for-application-insights"></a>

 篩選條件欄位採用 OData 篩選條件表達式。

 範例：
+  `client/city eq 'Boydton'` 
+  `client/city ne 'Boydton'` 
+  `client/city ne 'Boydton' and client/city ne 'Dublin'` 
+  `client/city eq 'Boydton' or client/city eq 'Dublin'` 

### 使用 Application Insights 的變數進行範本化
<a name="templating-with-variables-for-application-insights"></a>

 在變數編輯檢視的**查詢**欄位中，使用下列其中一個查詢。

 如需範本和範本變數的詳細資訊，請參閱 [範本](templates-and-variables.md#templates)。


|  名稱  |  描述  | 
| --- | --- | 
|  AppInsightsMetricNames()  |  傳回指標名稱的清單。 | 
|  AppInsightsGroupBys(aMetricName)  |  傳回指定指標名稱的group by子句清單。 | 

 範例：
+  指標名稱查詢： `AppInsightsMetricNames()`
+  在指標名稱變數中傳遞： `AppInsightsGroupBys(requests/count)`
+  鏈結範本變數： `AppInsightsGroupBys($metricnames)`

### Application Insights 提醒
<a name="application-insights-alerting"></a>

 Application Insights 支援 Grafana 提醒。這不是 Azure Alerts 支援。如需 Grafana 提醒的詳細資訊，請參閱 [Grafana 提醒](alerts-overview.md)。

## 查詢 Azure Log Analytics 服務
<a name="querying-the-azure-log-analytics-service"></a>

 查詢是以新的 [Azure Log Analytics （或 KustoDB) 查詢語言](https://docs.microsoft.com/en-us/azure/azure-monitor/log-query/query-language)撰寫。Log Analytics 查詢可以格式化為時間序列資料或資料表資料。

 如果您的登入資料可讓您存取多個訂閱，請在輸入查詢之前選擇適當的訂閱。

### 時間序列查詢
<a name="azure-time-series-queries"></a>

 時間序列查詢適用於圖形面板和其他面板，例如 SingleStat 面板。每個查詢必須至少包含一個日期時間資料欄和一個數值資料欄。結果必須依日期時間資料欄遞增排序。

 下列程式碼範例顯示的查詢會傳回依小時分組的彙總計數。

```
Perf
| where $__timeFilter(TimeGenerated)
| summarize count() by bin(TimeGenerated, 1h)
| order by TimeGenerated asc
```

 查詢也可以有一或多個非數值/非日期時間資料欄，這些資料欄會被視為維度，並在回應中成為標籤。例如，查詢會傳回依小時、電腦和 CounterName 分組的彙總計數。

```
Perf
| where $__timeFilter(TimeGenerated)
| summarize count() by bin(TimeGenerated, 1h), Computer, CounterName
| order by TimeGenerated asc
```

 您也可以選取額外的數值欄 （有或沒有多個維度）。例如，按小時、Computer、CounterName 和 InstanceName 取得計數和平均值：

```
Perf
| where $__timeFilter(TimeGenerated)
| summarize Samples=count(), ["Avg Value"]=avg(CounterValue)
    by bin(TimeGenerated, $__interval), Computer, CounterName, InstanceName
| order by TimeGenerated asc
```

**注意**  
 **秘訣**：在上一個查詢中，Kusto 語法 和 `Samples=count()``["Avg Value"]=...`用於重新命名這些欄 — 允許空格的第二個語法。這會變更 Grafana 使用的指標名稱。因此，序列圖例和資料表資料欄等物件將符合您指定的內容。在此範例中，`Samples`會顯示 而非 `_count`。

### 資料表查詢
<a name="azure-table-queries"></a>

 資料表查詢主要用於資料表面板，並顯示資料欄和資料列的清單。此範例查詢會傳回具有六個指定資料欄的資料列。

```
AzureActivity
| where $__timeFilter()
| project TimeGenerated, ResourceGroup, Category, OperationName, ActivityStatus, Caller
| order by TimeGenerated desc
```

### 格式化 Log Analytics 的顯示名稱
<a name="format-the-display-name-for-log-analytics"></a>

 預設顯示名稱格式為：

 `metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}` 

 這可以透過使用顯示名稱欄位選項來自訂。

### Azure Log Analytics 巨集
<a name="azure-log-analytics-macros"></a>

 為了讓撰寫查詢更容易，Grafana 提供數個巨集，您可以在查詢的 子句中使用：
+  `$__timeFilter()` – 展開至 `TimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) and` `TimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z)` Grafana 時間挑選器的往返日期時間。
+  `$__timeFilter(datetimeColumn)` – 展開至 `datetimeColumn ≥ datetime(2018-06-05T18:09:58.907Z) and` `datetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z)` Grafana 時間挑選器的往返日期時間。
+  `$__timeFrom()` – 從 Grafana 挑選器傳回起始日期時間。範例：`datetime(2018-06-05T18:09:58.907Z)`。
+  `$__timeTo()` – 從 Grafana 挑選器傳回起始日期時間。範例：`datetime(2018-06-05T20:09:58.907Z)`。
+  `$__escapeMulti($myVar)` – 用於包含非法字元的多值範本變數。如果 `$myVar`具有下列兩個值做為字串 `'\\grafana-vm\Network(eth0)\Total','\\hello!'`，則會展開為：`@'\\grafana-vm\Network(eth0)\Total', @'\\hello!'`。如果使用單一值變數，則不需要此巨集，請改為內嵌逸出變數：`@'\$myVar'`。
+  `$__contains(colName, $myVar)` – 要與多值範本變數搭配使用。如果 `$myVar`的值為 `'value1','value2'`，則會展開為：`colName in ('value1','value2')`。

   如果使用**全部**選項，請勾選**包含全部選項**核取方塊，然後在**自訂所有值**欄位中，輸入下列值：**all**。如果 `$myVar`的值為 `all`，則巨集會改為擴展到 `1 == 1`。對於具有許多選項的範本變數，這會透過不建置大型 "where..in" 子句來提高查詢效能。

### Azure Log Analytics 內建變數
<a name="azure-log-analytics-builtin-variables"></a>

 還有一些 Grafana 變數可用於 Azure Log Analytics 查詢：
+  `$__interval` - Grafana 會計算可用於在查詢中依時間分組的最短時間粒度。它傳回`1h`可在 bin 函數中使用的時間粒度，例如 `5m`或 ；例如 `summarize count() by bin(TimeGenerated, $__interval)`。如需間隔變數的詳細資訊，請參閱 [新增間隔變數](variables-types.md#add-an-interval-variable)。

### 使用 Azure Log Analytics 的變數進行範本化
<a name="templating-with-variables-for-azure-log-analytics"></a>

 傳回值清單的任何 Log Analytics 查詢都可以在變數編輯檢視的**查詢**欄位中使用。Log Analytics 也有一個 Grafana 函數可傳回工作區清單。

 如需範本和範本變數的相關資訊，請參閱 [範本和變數](templates-and-variables.md)。


|  名稱  |  描述  | 
| --- | --- | 
|  workspaces()  |  傳回預設訂閱的工作區清單。 | 
|  workspaces(12345678-aaaa-bbbb-cccc-123456789aaa)  |  傳回指定訂閱的工作區清單 （可以引用或取消引用 參數）。 | 

 下表顯示變數查詢範例。


|  Query  |  Description  | 
| --- | --- | 
|  subscriptions()  |  傳回 Azure 訂閱的清單。 | 
|  workspaces()  |  傳回預設訂閱的工作區清單。 | 
|  workspaces("12345678-aaaa-bbbb-cccc-123456789aaa")  |  傳回指定訂閱的工作區清單。 | 
|  workspaces("\$1subscription")  |  使用 訂閱參數的範本變數。 | 
|  workspace("myWorkspace").Heartbeat \$1\$1 distinct Computer  |  傳回虛擬機器的清單。 | 
|  workspace("\$1workspace").Heartbeat \$1\$1 distinct Computer  |  傳回具有範本變數的虛擬機器清單。 | 
|  workspace("\$1workspace").Perf \$1\$1 distinct ObjectName  |  從 Perf 資料表傳回物件清單。 | 
|  workspace("\$1workspace").Perf \$1\$1 where ObjectName == "\$1object" \$1\$1 distinct CounterName  |  傳回 Perf 資料表中的指標名稱清單。 | 

 下列程式碼 xample 顯示使用變數的時間序列查詢。

```
Perf
| where ObjectName == "$object" and CounterName == "$metric"
| where TimeGenerated >= $__timeFrom() and TimeGenerated <= $__timeTo()
| where  $__contains(Computer, $computer)
| summarize avg(CounterValue) by bin(TimeGenerated, $__interval), Computer
| order by TimeGenerated asc
```

### 從 Grafana 面板深度連結至 Azure 入口網站中的 Log Analytics 查詢編輯器
<a name="deep-linking-from-grafana-panels-to-the-log-analytics-query-editor-in-azure-portal"></a>

 在面板中選擇時間序列，以查看內容功能表，其中包含在 **Azure 入口網站中檢視**的連結。選擇該連結會在 Azure 入口網站中開啟 Azure Log Analytics 查詢編輯器，並從該處 Grafana 面板執行查詢。

 如果您目前尚未登入 Azure 入口網站，則連結會開啟登入頁面。提供的連結對任何帳戶都有效，但只有在您的帳戶可以存取查詢中指定的 Azure Log Analytics 工作區時，才會顯示查詢。

### Azure Log Analytics 提醒
<a name="azure-log-analytics-alerting"></a>

 Application Insights 支援 Grafana 提醒。這不是 Azure Alerts 支援。如需在 Grafana 工作區中提醒的詳細資訊，請參閱 [Grafana 提醒](alerts-overview.md)。

## 查詢 Application Insights Analytics 服務
<a name="query-the-application-insights-analytics-service"></a>

 如果您將服務類型變更為 **Insights Analytics**，則會提供與 Log Analytics 服務類似的編輯器。此服務也使用 Kusto 語言，因此查詢資料的指示與 相同[查詢 Azure Log Analytics 服務](#querying-the-azure-log-analytics-service)，除非您改為查詢 Application Insights Analytics 資料。

# 連接至 Graphite 資料來源
<a name="using-graphite-in-AMG"></a>

 Grafana 具有進階的 Graphite 查詢編輯器，可讓您快速導覽指標空間、新增函數、變更函數參數等等。編輯器可以處理所有類型的石圖查詢。它甚至可以透過使用查詢參考來處理複雜的巢狀查詢。

## 石墨設定
<a name="graphite-settings"></a>

 若要存取 Graphite 設定，請在**組態** （齒輪） 圖示上暫停，然後選擇**資料來源**，然後選擇 Graphite 資料來源。


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板和查詢中看到資料來源的方式。 | 
|  Default  |  預設資料來源表示新面板會預先選取。 | 
|  URL  |  您的 graphite-web 或 graphite-api 安裝的 HTTP 通訊協定、IP 和連接埠。 | 
|  Access  |  伺服器 （預設） = URL 必須可從 Grafana 後端/伺服器存取。 | 
|  Auth  |  | 
|  Basic Auth  |  啟用資料來源的基本身分驗證。 | 
|  User  |  基本身分驗證的使用者名稱。 | 
|  Password  |  基本身分驗證的密碼。 | 
|  Custom HTTP Headers  |  選擇新增標頭以新增自訂 HTTP 標頭。 | 
|  Header  |  輸入自訂標頭名稱。 | 
|  Value  |  輸入自訂標頭值。 | 
|  Graphite details  |  | 
|  Version  |  選取您的 Graphite 版本。 | 
|  Type  |  選取您的 Graphite 類型。 | 

 存取模式控制將如何處理對資料來源的請求。如果未說明其他項目，伺服器應該是偏好的方式。

### 伺服器存取模式 （預設）
<a name="graphite-server-access-mode-default"></a>

 所有請求都是從瀏覽器向 Amazon Managed Grafana 提出，其會將請求轉送至資料來源，以規避可能的跨來源資源共享 (CORS) 要求。如果您選擇此存取模式，則必須從 Amazon Managed Grafana 存取 URL。

### 瀏覽器存取模式
<a name="graphite-browser-access-mode"></a>

 Amazon Managed Grafana 不支援 Graphite 資料來源的瀏覽器直接存取。

## 石磚查詢編輯器
<a name="graphite-query-editor"></a>

 Grafana 包含 Graphite 特定的查詢編輯器，可協助您建置查詢。

 若要查看傳送至 Graphite 的查詢原始文字，請選擇**切換文字編輯模式 **（鉛筆） 圖示。

### 選擇要查詢的指標
<a name="graphite-choose-metrics-to-query"></a>

 選擇**選取指標**以導覽指標空間。開始之後，您可以繼續使用指標或鍵盤方向鍵。您可以選取萬用字元並繼續。

### 函數
<a name="graphite-functions"></a>

 若要新增函數，請選擇**函數**旁的加號圖示。您可以搜尋函數，或從選單中選取它。選取函數之後，將會新增該函數，而您的焦點將位於第一個參數的文字方塊中。若要編輯或變更參數，請選擇它，它會變成文字方塊。- 若要刪除函數，請選擇函數名稱，後面接著 x 圖示。

 有些函數，例如 `aliasByNode`，支援選用的第二個引數。若要新增引數，請在第一個引數上暫停，然後選擇出現的`+`符號。若要移除第二個選用參數，請選擇它並保留空白。編輯器會將其移除。

### 排序標籤
<a name="graphite-sort-labels"></a>

 如果您想要一致排序，請使用 `sortByName`。當您在多個圖形上有相同的標籤時，這可能會令人煩惱，而且它們的排序方式和使用不同的顏色。若要修正此問題，請使用 `sortByName()`。

### 巢狀查詢
<a name="graphite-nested-queries"></a>

 您可以依查詢所在的列*字母*來參考查詢 （類似 Microsoft Excel)。如果您將第二個查詢新增至圖形，則可以在 \$1A 中輸入 來參考第一個查詢。這提供了建立複合查詢的便利方式。

### 使用萬用字元來避免許多查詢
<a name="avoiding-many-queries-by-using-wildcards"></a>

 有時，您可能會想要看到繪製在相同圖形上的多個時間序列。例如，您可能想要查看 CPU 在機器上的使用方式。最初，您可以透過為每個時間序列新增查詢來建立圖形，例如 `cpu.percent.user.g`、 `cpu.percent.system.g`等。這會導致對資料來源進行 *n* 個查詢，這是無效的。

 為了更有效率，您可以在搜尋中使用萬用字元，請在一個查詢中傳回所有時間序列。例如 `cpu.percent.*.g`。

### 修改資料表或圖表中的指標名稱
<a name="modify-the-metric-name-in-my-tables-or-charts"></a>

 使用 `alias`函數來變更 Grafana 資料表或圖形上的指標名稱；例如 `aliasByNode()`或 `aliasSub()`。

## 點合併
<a name="graphite-point-consolidation"></a>

 所有 Graphite 指標都會合併，因此 Graphite 不會傳回超過圖形中像素的資料點。根據預設，此合併會使用 `avg`函數完成。您可以新增 Graphite consolidateBy 函數來控制 Graphite 合併指標的方式。

**注意**  
 這表示圖例摘要值 （最大值、最小值、總計） 無法同時更正。它們是由 Grafana 計算的用戶端。根據您的合併函數，同時只能有一個或兩個是正確的。

## 結合時間序列
<a name="graphite-combine-time-series"></a>

 若要合併時間序列，請在**函數**清單中選擇**合併**。

## 資料探勘和標籤
<a name="data-exploration-and-tags"></a>

 在 Graphite 中，一切都是一個標籤。

 探索資料時，先前選取的標籤會用來篩選剩餘的結果集。若要選取資料，您可以使用 `seriesByTag`函數，其會採用標籤表達式 (`=`、`!=`、`=~`、`!=~`) 來篩選時間序列。

 當您選取標籤時，Grafana 查詢建置器會自動為您執行此操作。

**注意**  
 **秘訣：**規則表達式搜尋在高基數標籤上可能會很慢，因此請嘗試先使用其他標籤來縮小範圍。從特定名稱或命名空間開始，有助於減少結果。

## 範本變數
<a name="graphite-template-variables"></a>

 您可以在指標查詢中使用變數，而不是硬式編碼，例如伺服器、應用程式和感應器名稱。變數會顯示為儀表板頂端的下拉式清單選取方塊。您可以使用這些下拉式方塊來變更儀表板中顯示的資料。

 如需範本和範本變數的詳細資訊，請參閱 [範本和變數](templates-and-variables.md)。

 若要使用標籤值建立變數，請使用 Grafana 函數 `tags`和 `tag_values`。


|  Query  |  Description  | 
| --- | --- | 
|  tags()  |  傳回所有標籤。 | 
|  tags(server=\$1backend\$1\$1)  |  僅傳回在符合篩選條件表達式的序列中發生的標籤。 | 
|  tag\$1values(server)  |  傳回指定標籤的標籤值。 | 
|  tag\$1values(server, server=\$1backend\$1\$1)  |  在符合這些表達式的序列中，傳回所指定標籤發生的篩選標籤值。 | 
|  tag\$1values(server, server=\$1backend\$1\$1, app=\$1\$1\$1apps:regex\$1)  |  多個篩選條件表達式和表達式可以包含其他變數。 | 

 如需詳細資訊，請參閱[標籤自動完成 API 上的 Graphite 文件](https://graphite.readthedocs.io/en/latest/tags.html#auto-complete-support)。

### 查詢變數
<a name="graphite-query-variable"></a>

 您在查詢欄位中指定的查詢應該是查詢的指標尋找類型。例如， 之類的查詢`prod.servers.*`會將存在於萬用字元位置中的所有可能值填入變數。

 您也可以建立在其定義中使用其他變數的巢狀變數。例如， `apps.$app.servers.*` 會在其查詢定義`$app`中使用 變數。

#### 使用 `__searchFilter` 篩選查詢變數結果
<a name="using-__searchfilter-to-filter-query-variable-results"></a>

 `__searchFilter` 在查詢欄位中使用 會根據您在下拉式清單選取方塊中輸入的內容來篩選查詢結果。當您未輸入任何內容時，當做為規則表達式的一部分使用時， 的預設值`__searchFilter`為 `*`和 ``。

 下列範例顯示如何使用 `__searchFilter`做為查詢欄位的一部分，以在使用者在下拉式清單選取方塊中輸入文字`server`時啟用搜尋。

 Query 

```
apps.$app.servers.$__searchFilter
```

 TagValues 

```
tag_values(server, server=~${__searchFilter:regex})
```

### 變數用量
<a name="variable-usage"></a>

 您可以在指標節點路徑中使用變數，或做為函數的參數。

 有兩種語法：
+  `$<varname>` 範例：apps.frontend.\$1server.requests.count 
+  `${varname}` 範例：apps.frontend.\$1\$1server\$1.requests.count 

 為什麼使用兩種方式？ 第一個語法更容易讀取和寫入，但不允許您在單字中間使用變數。在 等表達式中使用第二個語法`my.server${serverNumber}.count`。

### 標籤查詢中的變數用量
<a name="variable-usage-in-tag-queries"></a>

 標籤查詢中的多值變數使用 Grafana 5.0 中針對變數推出的進階格式化語法：`{var:regex}`。非標籤查詢將使用多值變數的預設 glob 格式。

 下列程式碼範例顯示具有 regex 格式和使用等於 Tilde 運算子 的標籤表達式`=~`。

```
server=~${servers:regex}
```

 如需詳細資訊，請參閱[進階變數格式選項](templates-and-variables.md#advanced-variable-format-options)。

## 註釋
<a name="graphite-annotations"></a>

 註釋可讓您在圖形上方疊加豐富的事件資訊。您可以透過儀表板功能表/註釋檢視新增註釋查詢。如需詳細資訊，請參閱[註釋](dashboard-annotations.md)。

 Graphite 支援兩種查詢註釋的方式：
+ 一般指標查詢。為此，您可以使用 **Graphite 查詢**文字方塊。
+ Graphite 事件查詢。為此，您可以使用`Graphite event tags`文字方塊，並指定標籤或萬用字元 （保留空白也可以運作）。

# 連線至 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 專案時，才會顯示查詢。

# 連線至 InfluxDB 資料來源
<a name="using-influxdb-in-AMG"></a>

 Grafana 隨附功能豐富的 InfluxDB 資料來源外掛程式。外掛程式包含自訂查詢編輯器，並支援註釋和查詢範本。

## 新增資料來源
<a name="influxdb-add-the-data-source"></a>

1.  選擇頂端標頭中的 Grafana 圖示，開啟側邊選單。

1.  在連結下方的側邊選單中，****儀表板應該會找到名為**資料來源**的連結。

1.  選擇頂端標頭中的 **\$1 新增資料來源**按鈕。

1.  從**類型**下拉式清單中選取 **InfluxDB**。

1.  從**查詢語言**清單中選取 **InfluxQL** 或 **Flux**。

**注意**  
 如果您在側邊選單中看不到**資料來源**連結，這表示您目前的使用者沒有 `Admin`角色。

# 連接至 Jaeger 資料來源
<a name="jaeger-data-source"></a>

 Jaeger 資料來源提供開放原始碼的end-to-end分散式追蹤。

## 新增資料來源
<a name="jaeger-adding-the-data-source"></a>

 若要存取 Jaeger 設定，請選擇**組態** （齒輪） 圖示，然後選擇**資料來源**，然後選擇 **Jaeger**。


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板、查詢和探索中看到資料來源的方式。 | 
|  Default  |  預設資料來源表示新面板會預先選取該資料來源。 | 
|  URL  |  Jaeger 執行個體的 URL，例如 http://localhost:16686。 | 
|  Access  |  伺服器 （預設） = URL 必須可從 Grafana 後端/伺服器存取。 | 
|  Basic Auth  |  啟用對 Jaeger 資料來源的基本身分驗證。 | 
|  User  |  基本身分驗證的使用者名稱。 | 
|  Password  |  基本身分驗證的密碼。 | 

## 查詢追蹤
<a name="jaeger-query-traces"></a>

 您可以透過探索從 Jaeger 查詢和顯示追蹤。如需詳細資訊，請參閱[探索](explore.md)。

 Jaeger 查詢編輯器可讓您透過追蹤 ID 直接查詢，或從追蹤選取器中選取追蹤。若要依追蹤 ID 查詢，請將 ID 插入文字輸入。

 使用追蹤選取器，從您在探索中選取的時間範圍中記錄的所有追蹤中選取特定追蹤。追蹤選取器有三個巢狀層級：1。您感興趣的服務。1. 特定操作是所選服務的一部分。1. 執行所選操作的特定追蹤，以根操作名稱和追蹤持續時間表示。

## 從日誌連結到追蹤 ID
<a name="linking-trace-id-from-logs"></a>

 您可以透過使用內部連結設定衍生欄位，從 Loki 中的日誌連結到 Jaeger 追蹤。如需詳細資訊，請參閱[衍生欄位](using-loki-in-AMG.md#loki-derived-fields)。

# 連線至 Loki 資料來源
<a name="using-loki-in-AMG"></a>

 Loki 資料來源可讓您存取 Grafana 的日誌彙總系統 Loki。

## 新增資料來源
<a name="loki-adding-the-data-source"></a>

1.  開啟 Grafana 工作區，並確保您已登入。

1.  在**組態**連結下方的側邊選單中，您應該會找到**資料來源**連結。

1.  選擇頂端的**新增資料來源**按鈕。

1.  從資料來源清單中選取 **Loki**。

**注意**  
 如果您在側邊選單中看不到**資料來源**連結，表示您目前的使用者沒有 `Admin`角色。


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板、查詢和探索中看到資料來源的方式。 | 
|  Default  |  預設資料來源表示新面板會預先選取。 | 
|  URL  | Loki 執行個體的 URL，例如 http://localhost:3100。這可以是 Amazon EC2 主機的 URL，或是 Amazon EKS 叢集前面的 Application Load Balancer，或是 Loki 執行個體的任何其他 URL。 | 
|  Maximum lines  |  Loki 傳回的日誌行數上限 （預設為 1000)。在探索中顯示日誌時，如果您的瀏覽器緩慢，請減少 。 | 

### 衍生欄位
<a name="loki-derived-fields"></a>

 您可以使用*衍生欄位*組態來執行下列動作：
+  新增從日誌訊息剖析的欄位。
+  新增使用 欄位值的連結。

 您可以使用此功能直接從您的日誌連結到您的追蹤後端，或者如果日誌列中存在 userId，則連結到使用者設定檔頁面。這些連結會出現在日誌詳細資訊中。如需詳細資訊，請參閱[標籤和偵測到的欄位](explore.md#labels-and-detected-fields)。

每個衍生欄位都包含下列項目：
+  **名稱** – 在日誌詳細資訊中顯示為標籤。
+  **Regex** – 在日誌訊息上執行的 Regex 模式，並將其部分擷取為新欄位的值。只能包含單一擷取群組。
+  **URL/查詢** – 如果連結是外部連結，請輸入完整的連結 URL。如果連結是內部連結，則此輸入會做為目標資料來源的查詢。在這兩種情況下，您可以將 欄位的值插入`${__value.raw }`巨集。
+  **內部連結** – 選取連結是內部或外部。如果是內部連結，資料來源選取器可讓您選取目標資料來源。僅支援追蹤資料來源。

 您可以使用偵錯區段來查看欄位擷取的內容以及 URL 插入的方式。選擇**顯示範例日誌訊息**，以顯示您可以輸入日誌訊息的文字區域。

 具有顯示在日誌詳細資訊中連結的新欄位。

## 查詢 日誌
<a name="loki-querying-logs"></a>

 透過探索和視覺化中的日誌面板，查詢和顯示 Loki 的日誌資料。選取 Loki 資料來源，然後輸入 LogQL 查詢以顯示您的日誌。如需 LogQL 的詳細資訊，請參閱 [LogQL](https://grafana.com/docs/loki/latest/logql/)。

### 日誌查詢
<a name="loki-log-queries"></a>

 日誌查詢包含兩個部分：**日誌串流選擇器**和**搜尋表達**式。基於效能考量，您必須從選擇日誌串流的日誌標籤開始。

 查詢欄位旁的 Logs Explorer (**日誌標籤**按鈕） 會顯示可用日誌串流的標籤清單。撰寫查詢的替代方法是使用查詢欄位的自動完成。首先輸入左大括號`{`，自動完成功能表會建議標籤清單。按 **Enter** 鍵執行查詢。

 傳回結果後，日誌面板會顯示日誌資料列清單和長條圖，其中 x 軸顯示時間，y 軸顯示頻率/計數。

### 日誌串流選取器
<a name="log-stream-selector"></a>

 對於查詢表達式的標籤部分，請以大括號包裝，`{}`然後使用索引鍵值語法來選取標籤。多個標籤表達式以逗號分隔：

 `{app="mysql",name="mysql-backup"}` 

 目前支援下列標籤比對運算子：
+  `=` 完全相同。
+  `!=` 不相等。
+  `=~` regex-match。
+  `!~` 不要進行 regex-match。

 範例：
+  `{name=~"mysql.+"}` 
+  `{name!~"mysql.+"}` 

 新增標籤選擇器的另一種方式是在資料表區段中。選擇標籤旁的**篩選條件**，將標籤新增至查詢表達式。這甚至適用於多個查詢，並將標籤選擇器新增至每個查詢。

### 搜尋表達式
<a name="loki-search-expression"></a>

 撰寫日誌串流選取器之後，您可以透過撰寫搜尋表達式進一步篩選結果。搜尋表達式可以是文字或 regex 表達式。

 範例查詢：
+  `{job="mysql"} |= "error"` 
+  `{name="kafka"} |~ "tsdb-ops.*io:2003"` 
+  `{instance=~"kafka-[23]",name="kafka"} != "kafka.server:type=ReplicaManager"` 

 篩選條件運算子可以鏈結，並依序篩選表達式。產生的日誌行將滿足每個篩選條件。

 範例 

 `{job="mysql"} |= "error" != "timeout"` 

 目前支援下列篩選條件類型：
+  `|=` 行包含字串。
+  `!=` 行不包含字串。
+  `|~` 行符合規則表達式。
+  `!~` 行不符合規則表達式。

**注意**  
 如需 Loki 查詢語言 LogQL 的詳細資訊，請參閱 [Loki LogQL](https://grafana.com/docs/loki/latest/logql/)。

## 日誌內容
<a name="loki-log-context"></a>

 使用上述的搜尋表達式時，您現在可以擷取篩選結果周圍的內容。透過選擇篩選資料列上的`Show Context`連結，您將能夠調查您感興趣的日誌訊息前後的日誌訊息。

## 範本化
<a name="loki-templating"></a>

 您可以在指標查詢中使用變數，而不是硬式編碼，例如伺服器、應用程式和感應器名稱。變數會顯示為儀表板頂端的下拉式清單選取方塊。您可以使用這些下拉式方塊來變更儀表板中顯示的資料。

 如需範本和範本變數的詳細資訊，請參閱 [範本和變數](templates-and-variables.md)。

## 註釋
<a name="loki-annotations"></a>

 您可以使用任何非指標 Loki 查詢做為註釋的來源。日誌內容將用作註釋文字，而日誌串流標籤將用作標籤，因此不需要額外的映射。

# 連線至 Microsoft SQL Server 資料來源
<a name="using-microsoft-sql-server-in-AMG"></a>

 使用 Microsoft SQL Server (MSSQL) 資料來源查詢和視覺化任何 Microsoft SQL Server 2005 或更新版本的資料，包括 Microsoft Azure SQL Database。

**重要**  
Grafana 8.0 版會變更 Microsoft SQL Server、Postgres 和 MySQL 的資料框架基礎資料結構。因此，時間序列查詢結果會以寬格式傳回。如需詳細資訊，請參閱 Grafana 資料影格文件中的[廣角格式](https://grafana.com/developers/plugin-tools/introduction/data-frames#wide-format)。  
若要讓視覺化效果如之前一樣運作，您可能需要進行一些手動遷移。一個解決方案記錄在 Github 上的 [Postgres/MySQL/MSSQL：中斷 v8.0 中與時間序列查詢和資料欄排序相關的變更](https://github.com/grafana/grafana/issues/35534)。

## 新增資料來源
<a name="mssql-adding-the-data-source"></a>

1.  選擇頂端標頭中的 Grafana 圖示，開啟側邊選單。

1.  在連結下方的側邊選單中，****您應該會找到**資料來源**連結。

1.  選擇頂端標頭中的 **\$1 新增資料來源**按鈕。

1.  從**類型**下拉式清單中選取 **Microsoft SQL Server**。

### 資料來源選項
<a name="mssql-data-source-options"></a>


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板和查詢中查看資料來源的方式。 | 
|  Default  |  預設資料來源表示將針對新面板預先選取。 | 
|  Host  |  MSSQL 執行個體的 IP 地址/主機名稱和選用連接埠。如果省略連接埠，則會使用預設的 1433。 | 
|  Database  |  MSSQL 資料庫的名稱。 | 
|  User  |  資料庫使用者的登入/使用者名稱。 | 
|  Password  |  資料庫使用者的密碼。 | 
|  Encrypt  |  此選項會決定安全 SSL TCP/IP 連線是否會與伺服器交涉，預設 false(Grafana v5.4\$1)。 | 
|  Max open  |  預設資料庫的開啟連線數目上限 unlimited(Grafana v5.4\$1)。 | 
|  Max idle  |  預設閒置連線集區中的連線數目上限 2(Grafana v5.4\$1)。 | 
|  Max lifetime  |  可以重複使用連線的秒數上限，預設為 14400/4 小時。 | 

### 最短時間間隔
<a name="mssql-min-time-interval"></a>

 `$_interval` `$_interval_ms` 變數的下限。建議設定為寫入頻率，例如`1m`，如果您的資料每分鐘寫入一次。也可以在資料來源選項下的儀表板面板中覆寫/設定此選項。此值的格式**必須是**數字，後面接著有效的時間識別符；例如 `1m`(1 分鐘） 或 `30s`(30 秒）。支援下列時間識別符。


|  識別符  |  Description  | 
| --- | --- | 
|  y  |  年  | 
|  M  |  月  | 
|  w  |  週  | 
|  d  |  天  | 
|  h  |  小時  | 
|  m  |  分鐘  | 
|  s  |  秒  | 
|  ms  |  毫秒  | 

### 資料庫使用者許可
<a name="mssql-database-user-permissions-important"></a>

**重要**  
 您在新增資料來源時指定的資料庫使用者，應只獲得您要查詢之指定資料庫和資料表的 SELECT 許可。Grafana 不會驗證查詢是否安全。查詢可能包含任何 SQL 陳述式。例如，`DROP TABLE user;`會執行 `DELETE FROM user;`和 等陳述式。為了防止這種情況，強烈建議您建立具有受限許可的特定 MSSQL 使用者。

 下列範例程式碼顯示建立具有受限許可的特定 MSSQL 使用者。

```
 CREATE USER grafanareader WITH PASSWORD 'password'
 GRANT SELECT ON dbo.YourTable3 TO grafanareader
```

 確定使用者未從公有角色取得任何不需要的許可。

### 已知問題
<a name="mssql-known-issues"></a>

 如果您使用的是舊版 Microsoft SQL Server，例如 2008 和 2008R2，您可能需要停用加密才能連線。如果可能，我們建議您使用最新的 Service Pack，以獲得最佳相容性。

## 查詢編輯器
<a name="mssql-query-editor"></a>

 您可以在圖形、Singlestat 或資料表面板的編輯模式中的指標索引標籤中找到 MSSQL 查詢編輯器。您可以選擇面板標題，然後選擇編輯，以進入編輯模式。編輯器可讓您定義 SQL 查詢，以選取要視覺化的資料。

1.  選取*格式化為* `Time series`（用於圖形或 Singlestat 面板等） 或 `Table`（用於資料表面板等）。

1.  這是您寫入 SQL 查詢的實際編輯器。

1.  在查詢編輯器下方顯示 MSSQL 的說明區段。

1.  顯示已執行的 SQL 查詢。成功執行查詢後，會先提供 。

1.  新增額外的查詢，其中會顯示額外的查詢編輯器。

## 巨集
<a name="mssql-macros"></a>

 為了簡化語法並允許動態部分，例如日期範圍篩選條件，查詢可以包含巨集。


|  巨集範例  |  Description  | 
| --- | --- | 
|  \$1\$1\$1time(dateColumn)  |  將由表達式取代，以不時重新命名資料欄。例如，dateColumn 做為時間 。 | 
|  \$1\$1\$1timeEpoch(dateColumn)  |  將由表達式取代，將 DATETIME 資料欄類型轉換為 Unix 時間戳記，並將其重新命名為時間。例如，DATEDIFF（秒， "1970-01-01"， dateColumn) AS 時間。 | 
|  \$1\$1\$1timeFilter(dateColumn)  |  將由使用指定資料欄名稱的時間範圍篩選條件取代。例如，dateColumn BETWEEN "2017-04-21T05：01：17Z" AND "2017-04-21T05：06：17Z"。 | 
|  \$1\$1\$1timeFrom()  |  將由目前作用中時間選擇的開始取代。例如，「2017-04-21T05：01：17Z」。 | 
|  \$1\$1\$1timeTo()  |  將取代為目前作用中時間選擇的結尾。例如，「2017-04-21T05：06：17Z」。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m'[, fillvalue])  |  將由 GROUP BY 子句中可用的表達式取代。提供 NULL 或浮點數的 fillValue 會自動以該值填入時間範圍中的空序列。例如，CAST(ROUND(DATEDIFF(second， "1970-01-01"， time\$1column)/300.0， 0) as bigint)\$1300。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', 0)  |  與上述相同，但具有填充參數，因此 grafana 會新增該系列中的遺失點，並使用 0 做為值。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', NULL)  |  與上述相同，但 NULL 將用作遺失點的值。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', previous)  |  與上述相同，但如果尚未看到 NULL，則會使用該序列中的上一個值作為填充值 （僅適用於 Grafana 5.3\$1)。 | 

 查詢編輯器具有**產生的 SQL** 連結，會在查詢執行後，在面板編輯模式中顯示。選擇它，它會展開並顯示已執行的原始插補 SQL 字串。

## 資料表查詢
<a name="mssql-table-queries"></a>

 如果查詢選項設定為 ，**Format as******Table，則基本上您可以執行任何類型的 SQL 查詢。資料表面板會自動顯示查詢傳回的任何資料欄和資料列的結果。

 下列範例程式碼顯示資料庫資料表。

```
CREATE TABLE [event] (
  time_sec bigint,
  description nvarchar(100),
  tags nvarchar(100),
)
```

```
CREATE TABLE [mssql_types] (
  c_bit bit, c_tinyint tinyint, c_smallint smallint, c_int int, c_bigint bigint, c_money money, c_smallmoney smallmoney, c_numeric numeric(10,5),
  c_real real, c_decimal decimal(10,2), c_float float,
  c_char char(10), c_varchar varchar(10), c_text text,
  c_nchar nchar(12), c_nvarchar nvarchar(12), c_ntext ntext,
  c_datetime datetime,  c_datetime2 datetime2, c_smalldatetime smalldatetime, c_date date, c_time time, c_datetimeoffset datetimeoffset
)

INSERT INTO [mssql_types]
SELECT
  1, 5, 20020, 980300, 1420070400, '$20000.15', '£2.15', 12345.12,
  1.11, 2.22, 3.33,
  'char10', 'varchar10', 'text',
  N'☺nchar12☺', N'☺nvarchar12☺', N'☺text☺',
  GETDATE(), CAST(GETDATE() AS DATETIME2), CAST(GETDATE() AS SMALLDATETIME), CAST(GETDATE() AS DATE), CAST(GETDATE() AS TIME), SWITCHOFFSET(CAST(GETDATE() AS DATETIMEOFFSET), '-07:00')
```

 下列範例程式碼顯示查詢。

```
SELECT * FROM [mssql_types]
```

 您可以使用一般 `AS` SQL 資料欄選取語法來控制資料表面板資料欄的名稱，如下列範例程式碼所示。

```
SELECT
  c_bit as [column1], c_tinyint as [column2]
FROM
  [mssql_types]
```

 產生的資料表面板：

## 時間序列查詢
<a name="mssql-time-series-queries"></a>

 如果您將**格式化設定為****時間序列**，例如在圖形面板中使用，查詢必須具有名為 的資料欄`time`，以秒為單位傳回 SQL 日期時間或任何代表 Unix epoch 的數值資料類型。您可以傳回名為 的資料欄`metric`，做為值資料欄的指標名稱。除了 `time`和 以外的任何資料欄`metric`都會視為值資料欄。如果您省略資料`metric`欄，值資料欄的名稱將是指標名稱。您可以選取多個值資料欄，每個資料欄的名稱都會做為指標。如果您傳回多個值資料欄和名為 的資料欄`metric`，則會使用此資料欄做為序列名稱的字首。

 時間序列查詢的結果集必須依時間排序。

 下列範例程式碼顯示資料庫資料表。

```
CREATE TABLE [event] (
  time_sec bigint,
  description nvarchar(100),
  tags nvarchar(100),
)
```

```
CREATE TABLE metric_values (
  time datetime,
  measurement nvarchar(100),
  valueOne int,
  valueTwo int,
)

INSERT metric_values (time, measurement, valueOne, valueTwo) VALUES('2018-03-15 12:30:00', 'Metric A', 62, 6)
INSERT metric_values (time, measurement, valueOne, valueTwo) VALUES('2018-03-15 12:30:00', 'Metric B', 49, 11)
...
INSERT metric_values (time, measurement, valueOne, valueTwo) VALUES('2018-03-15 13:55:00', 'Metric A', 14, 25)
INSERT metric_values (time, measurement, valueOne, valueTwo) VALUES('2018-03-15 13:55:00', 'Metric B', 48, 10)
```

 下列範例程式碼顯示一欄`value`和一`metric`欄。

```
SELECT
  time,
  valueOne,
  measurement as metric
FROM
  metric_values
WHERE
  $__timeFilter(time)
ORDER BY 1
```

 在圖形面板中使用上述查詢時，會產生兩個名為 `Metric A`和 的序列，`Metric B`其值為 `valueOne`，並`valueTwo`繪製在 上`time`。

 下列範例程式碼顯示多個`value`資料欄。

```
SELECT
  time,
  valueOne,
  valueTwo
FROM
  metric_values
WHERE
  $__timeFilter(time)
ORDER BY 1
```

 在圖形面板中使用上述查詢時，會產生兩個名為 `Metric A`和 的序列，`Metric B`其值為 `valueOne`，並`valueTwo`繪製在 上`time`。

 下列範例程式碼顯示使用 \$1\$1\$1timeGroup 巨集。

```
SELECT
  $__timeGroup(time, '3m') as time,
  measurement as metric,
  avg(valueOne)
FROM
  metric_values
WHERE
  $__timeFilter(time)
GROUP BY
  $__timeGroup(time, '3m'),
  measurement
ORDER BY 1
```

 在圖形面板中使用上一個查詢時，會產生兩個名為 `Metric A`和 的序列`Metric B`，其值為 `valueOne`，並`valueTwo`繪製在 上`time`。在三分鐘的時段內缺少值的任何兩個序列都會轉譯這兩行之間的線條。您會注意到右側的圖形永遠不會下降到零。

 下列範例程式碼顯示使用 \$1\$1\$1timeGroup 巨集，且填充參數設為零。

```
SELECT
  $__timeGroup(time, '3m', 0) as time,
  measurement as metric,
  sum(valueTwo)
FROM
  metric_values
WHERE
  $__timeFilter(time)
GROUP BY
  $__timeGroup(time, '3m'),
  measurement
ORDER BY 1
```

 在圖形面板中使用此查詢時，結果是兩個名為 `Metric A`和 的序列`Metric B`，加總以 `valueTwo`繪製`time`。在 3 分鐘內缺少值的任何序列將具有零值，您會在右側的圖表中看到該值。

## 範本化
<a name="mssql-templating"></a>

 您可以在指標查詢中使用變數，而不是硬式編碼，例如伺服器、應用程式和感應器名稱。變數會顯示為儀表板頂端的下拉式清單選取方塊。您可以使用這些下拉式方塊來變更儀表板中顯示的資料。

 如需範本和範本變數的詳細資訊，請參閱 [範本和變數](templates-and-variables.md)。

### 查詢變數
<a name="mssql-query-variable"></a>

 如果您新增類型 的範本變數`Query`，您可以撰寫 MSSQL 查詢，以傳回顯示為下拉式清單選取方塊的測量名稱、索引鍵名稱或索引鍵值等物件。

 例如，如果您在範本變數查詢**設定中指定這類查詢，您可以有一個變數，其中包含資料表中資料`hostname`欄的所有值。

```
SELECT hostname FROM host
```

 查詢可以傳回多個資料欄，Grafana 會自動從中建立清單。例如，下列查詢將傳回來自 `hostname`和 的值清單`hostname2`。

```
SELECT [host].[hostname], [other_host].[hostname2] FROM host JOIN other_host ON [host].[city] = [other_host].[city]
```

 另一個選項是可建立索引鍵/值變數的查詢。查詢應傳回兩個名為 `__text`和 的資料欄`__value`。`__text` 資料欄值應該是唯一的 （如果不是唯一的，則會使用第一個值）。下拉式清單中的選項會有文字和值，可讓您將易記的名稱做為文字，並將 ID 做為值。使用 `hostname`做為文字和 `id`做為值的範例查詢：

```
SELECT hostname __text, id __value FROM host
```

 您也可以建立巢狀變數。例如，如果您有另一個名為 的變數`region`。然後，您可以讓主機變數只顯示目前所選區域中具有此類查詢的主機 （如果 `region` 是多值變數，則使用`IN`比較運算子，而不是`=`比對多個值）。

```
SELECT hostname FROM host WHERE region IN ($region)
```

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

**注意**  
 只有在範本變數是 時，才會引用範本變數值`multi-value`。

 如果變數是多值變數，請使用`IN`比較運算子`=`，而不是比對多個值。

 有兩種語法：

 `$<varname>` 範本變數名為 的範例`hostname`：

```
SELECT
  atimestamp time,
  aint value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in($hostname)
ORDER BY atimestamp
```

 `[[varname]]` 範本變數名為 的範例`hostname`：

```
SELECT
  atimestamp as time,
  aint as value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in([[hostname]])
ORDER BY atimestamp
```

#### 關閉多值變數的引號
<a name="mssql-disabling-quoting-for-multi-value-variables"></a>

 Grafana 會自動為多值變數建立以逗號分隔的引號字串。例如，如果選取 `server02` `server01`和 ，則會格式化為：`'server01', 'server02'`。若要關閉引號，請使用變數的 csv 格式選項。

 `${servers:csv}` 

 如需變數格式化選項的詳細資訊，請參閱 [範本和變數](templates-and-variables.md)。

## 註釋
<a name="mssql-annotations"></a>

 您可以使用註釋在圖形上方覆蓋豐富的事件資訊。您可以透過儀表板功能表/註釋檢視新增註釋查詢。如需詳細資訊，請參閱[註釋](dashboard-annotations.md)。

 **資料欄：**


|  名稱  |  描述  | 
| --- | --- | 
|  time  |  日期/時間欄位的名稱。可以是具有原生 SQL 日期/時間資料類型或 epoch 值的資料欄。 | 
|  timeend  |  結束日期/時間欄位的選用名稱。可以是具有原生 SQL 日期/時間資料類型或 epoch 值的資料欄。 | 
|  text  |  事件描述欄位。 | 
|  tags  |  用於事件標籤的選用欄位名稱，做為逗號分隔字串。 | 

 下列範例程式碼顯示資料庫資料表。

```
CREATE TABLE [events] (
  time_sec bigint,
  description nvarchar(100),
  tags nvarchar(100),
)
```

 我們也使用 中定義的資料庫資料表[時間序列查詢](#mssql-time-series-queries)。

 下列範例程式碼使用具有 epoch 值的時間欄來顯示查詢。

```
SELECT
  time_sec as time,
  description as [text],
  tags
FROM
  [events]
WHERE
  $__unixEpochFilter(time_sec)
ORDER BY 1
```

 下列範例程式碼顯示使用具有 epoch 值的時間和結束時間資料欄的區域查詢。

```
SELECT
  time_sec as time,
  time_end_sec as timeend,
  description as [text],
  tags
FROM
  [events]
WHERE
  $__unixEpochFilter(time_sec)
ORDER BY 1
```

 下列範例程式碼顯示使用原生 SQL 日期/時間資料類型的時間欄的查詢。

```
SELECT
  time,
  measurement as text,
  convert(varchar, valueOne) + ',' + convert(varchar, valueTwo) as tags
FROM
  metric_values
WHERE
  $__timeFilter(time_column)
ORDER BY 1
```

## 預存程序支援
<a name="stored-procedure-support"></a>

 已驗證存放程序是否正常運作。不過，在某些情況下，它可能無法如您預期般運作。應支援資料表、時間序列和註釋查詢中存放的程序，只要您使用相同的資料欄命名，並以與先前各章節所述的相同格式傳回資料。

 巨集函數無法在預存程序中運作。

### 範例
<a name="mssql-examples"></a>

 針對下列範例，資料庫資料表是在時間序列查詢中定義。假設您想要在圖形面板中視覺化四個序列，例如資料欄 `valueOne`、 `valueTwo`和 的所有組合`measurement`。右側的圖形面板可視覺化我們想要達成的目標。若要解決此問題，您必須使用兩個查詢：

 下列範例程式碼顯示第一個查詢。

```
SELECT
  $__timeGroup(time, '5m') as time,
  measurement + ' - value one' as metric,
  avg(valueOne) as valueOne
FROM
  metric_values
WHERE
  $__timeFilter(time)
GROUP BY
  $__timeGroup(time, '5m'),
  measurement
ORDER BY 1
```

 下列範例程式碼顯示第二個查詢。

```
SELECT
  $__timeGroup(time, '5m') as time,
  measurement + ' - value two' as metric,
  avg(valueTwo) as valueTwo
FROM
  metric_values
GROUP BY
  $__timeGroup(time, '5m'),
  measurement
ORDER BY 1
```

#### 使用 epoch 格式的時間存放程序
<a name="mssql-stored-procedure-using-time-in-epoch-format"></a>

 您可以定義預存程序，以傳回在如上述的圖形面板中轉譯四個序列所需的所有資料。在此情況下，預存程序接受兩種參數 `@from`和 `int`資料類型的 `@to`，其應為 epoch 格式的時間範圍 （從-到），用於篩選要從預存程序傳回的資料。

 這會模擬選取`$__timeGroup(time, '5m')`中的 ，並依表達式分組，因此需要許多冗長的表達式。如果需要，這些可以解壓縮到 MSSQL 函數。

```
CREATE PROCEDURE sp_test_epoch(
  @from int,
  @to   int
)   AS
BEGIN
  SELECT
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, DATEADD(second, DATEDIFF(second,GETDATE(),GETUTCDATE()), time))/600 as int)*600 as int) as time,
    measurement + ' - value one' as metric,
    avg(valueOne) as value
  FROM
    metric_values
  WHERE
    time >= DATEADD(s, @from, '1970-01-01') AND time <= DATEADD(s, @to, '1970-01-01')
  GROUP BY
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, DATEADD(second, DATEDIFF(second,GETDATE(),GETUTCDATE()), time))/600 as int)*600 as int),
    measurement
  UNION ALL
  SELECT
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, DATEADD(second, DATEDIFF(second,GETDATE(),GETUTCDATE()), time))/600 as int)*600 as int) as time,
    measurement + ' - value two' as metric,
    avg(valueTwo) as value
  FROM
    metric_values
  WHERE
    time >= DATEADD(s, @from, '1970-01-01') AND time <= DATEADD(s, @to, '1970-01-01')
  GROUP BY
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, DATEADD(second, DATEDIFF(second,GETDATE(),GETUTCDATE()), time))/600 as int)*600 as int),
    measurement
  ORDER BY 1
END
```

 然後，您可以針對圖形面板使用下列查詢。

```
DECLARE
  @from int = $__unixEpochFrom(),
  @to int = $__unixEpochTo()

EXEC dbo.sp_test_epoch @from, @to
```

#### 使用日期時間格式的時間存放程序
<a name="mssql-stored-procedure-using-time-in-datetime-format"></a>

 您可以定義預存程序，以傳回在如上述的圖形面板中轉譯四個序列所需的所有資料。在此情況下，預存程序接受兩種參數 `@from`和 `datetime`資料類型`@to`的 ，其應為時間範圍 （從-到），將用於篩選要從預存程序傳回的資料。

 這會模擬選取`$__timeGroup(time, '5m')`中的 ，並依表達式分組，因此需要許多冗長的表達式。如果需要，這些可以解壓縮到 MSSQL 函數。

```
CREATE PROCEDURE sp_test_datetime(
  @from datetime,
  @to   datetime
)   AS
BEGIN
  SELECT
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, time)/600 as int)*600 as int) as time,
    measurement + ' - value one' as metric,
    avg(valueOne) as value
  FROM
    metric_values
  WHERE
    time >= @from AND time <= @to
  GROUP BY
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, time)/600 as int)*600 as int),
    measurement
  UNION ALL
  SELECT
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, time)/600 as int)*600 as int) as time,
    measurement + ' - value two' as metric,
    avg(valueTwo) as value
  FROM
    metric_values
  WHERE
    time >= @from AND time <= @to
  GROUP BY
    cast(cast(DATEDIFF(second, {d '1970-01-01'}, time)/600 as int)*600 as int),
    measurement
  ORDER BY 1
END
```

 然後，您可以針對圖形面板使用下列查詢。

```
DECLARE
  @from datetime = $__timeFrom(),
  @to datetime = $__timeTo()

EXEC dbo.sp_test_datetime @from, @to
```

## 提醒
<a name="mssql-alerting"></a>

 時間序列查詢應在提醒條件下運作。警示規則條件中尚不支援資料表格式的查詢。

# 連線至 MySQL 資料來源
<a name="using-mysql-in-AMG"></a>

 新增 MySQL 資料來源，以查詢和視覺化 MySQL 相容資料庫中的資料。

**重要**  
Grafana 8.0 版會變更 MySQL、Postgres 和 Microsoft SQL Server 資料來源的資料影格基礎資料結構。因此，時間序列查詢結果會以寬格式傳回。如需詳細資訊，請參閱 Grafana 資料影格文件中的[廣角格式](https://grafana.com/developers/plugin-tools/introduction/data-frames#wide-format)。  
若要讓視覺化效果如之前一樣運作，您可能需要進行一些手動遷移。一個解決方案記錄在 Github 上的 [Postgres/MySQL/MSSQL：中斷 v8.0 中與時間序列查詢和資料欄排序相關的變更](https://github.com/grafana/grafana/issues/35534)。

## 新增資料來源
<a name="mysql-adding-the-data-source"></a>

1.  選擇頂端標頭中的 Grafana 圖示，開啟側邊選單。

1.  在**儀表板**連結下的側邊選單中，您應該會找到名為**資料來源**的連結。

1.  選擇頂端標頭中的 **\$1 新增資料來源**按鈕。

1.  從**類型**下拉式清單中選取 **MySQL**。

### 資料來源選項
<a name="mysql-data-source-options"></a>


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板和查詢中查看資料來源的方式。 | 
|  Default  |  預設資料來源表示將針對新面板預先選取。 | 
|  Host  |  MySQL 執行個體的 IP 地址/主機名稱和選用連接埠。 | 
|  Database  |  MySQL 資料庫的名稱。 | 
|  User  |  資料庫使用者的登入/使用者名稱。 | 
|  Password  |  資料庫使用者的密碼。 | 
|  Max open  |  預設資料庫的開啟連線數目上限 unlimited(Grafana v5.4\$1)。 | 
|  Max idle  |  預設閒置連線集區中的連線數目上限 2(Grafana v5.4\$1)。 | 
|  Max lifetime  |  可以重複使用連線的秒數上限，預設為 14400/4 小時。這應一律低於 MySQL 中設定的 [wait\$1timeout](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_wait_timeout) (Grafana v5.4\$1)。 | 

### 最短時間間隔
<a name="mysql-min-time-interval"></a>

 `$_interval` `$_interval_ms` 變數的下限。建議設定為寫入頻率，例如`1m`，如果您的資料每分鐘寫入一次。也可以在資料來源選項下的儀表板面板中覆寫/設定此選項。此值的格式**必須是**數字，後面接著有效的時間識別符；例如 `1m`(1 分鐘） 或 `30s`(30 秒）。支援下列時間識別符。


|  識別符  |  Description  | 
| --- | --- | 
|  y  |  年  | 
|  M  |  月  | 
|  w  |  週  | 
|  d  |  天  | 
|  h  |  小時  | 
|  m  |  分鐘  | 
|  s  |  秒  | 
|  ms  |  毫秒  | 

### 資料庫使用者許可
<a name="database-user-permissions-important"></a>

**重要**  
 您在新增資料來源時指定的資料庫使用者，應僅獲得您要查詢之指定資料庫和資料表的 SELECT 許可。Grafana 不會驗證查詢是否安全。查詢可能包含任何 SQL 陳述式。例如，`DROP TABLE user;`會執行 `USE otherdb;`和 等陳述式。為了防止這種情況，強烈建議您建立具有受限許可的特定 MySQL 使用者。

 下列程式碼範例顯示建立具有受限許可的特定 MySQL 使用者。

```
 CREATE USER 'grafanaReader' IDENTIFIED BY 'password';
 GRANT SELECT ON mydatabase.mytable TO 'grafanaReader';
```

 若要授予對更多資料庫和資料表的存取權，您可以視需要使用萬用字元 (`*`) 取代資料庫或資料表。

## 查詢編輯器
<a name="mysql-query-editor"></a>

 您可以在面板編輯模式中的指標索引標籤中找到 MySQL 查詢編輯器。您可以選擇面板標題，然後選擇編輯，以進入**編輯**模式。

 查詢編輯器具有**產生的 SQL** 連結，會在查詢執行後，在面板編輯模式中顯示。選擇它，它會展開並顯示已執行的原始插補 SQL 字串。

### 選取資料表、時間欄和指標欄 (FROM)
<a name="select-table-time-column-and-metric-column-from"></a>

 當您第一次進入編輯模式或新增查詢時，Grafana 會嘗試使用具有時間戳記欄和數值欄的第一個資料表預先填入查詢建置器。

 在 FROM 欄位中，Grafana 會建議已設定資料庫中的資料表。若要選取資料庫使用者可存取的另一個資料庫中的資料表或檢視，您可以手動輸入完整名稱 (database.table)，例如 `otherDb.metrics`。

 時間欄欄位是指保留時間值的資料欄名稱。選取指標資料欄欄位的值是選用的。如果選取值，則會使用指標欄欄位做為序列名稱。

 指標欄建議只會包含具有文字資料類型 （文字、小文字、中文字、長文字、varchar、char) 的資料欄。如果您想要使用具有不同資料類型的資料欄做為指標資料欄，您可以輸入具有轉換的資料欄名稱：`CAST(numericColumn as CHAR)`。您也可以在評估為文字資料類型的指標資料欄欄位中輸入任意 SQL 表達式，例如 `CONCAT(column1, " ", CAST(numericColumn as CHAR))`。

### 資料欄和彙總函數 (SELECT)
<a name="columns-and-aggregation-functions-select"></a>

 在 `SELECT`列中，您可以指定要使用的資料欄和函數。在資料欄欄位中，您可以撰寫任意表達式，而不是資料欄名稱，例如 `column1 * column2 / column3`。

 如果您使用彙總函數，則必須將結果集分組。`GROUP BY time`如果您新增彙總函數，編輯器會自動新增 。

 您可以選擇加號按鈕並從`Column`選單中選取，以新增更多值欄。圖形面板中的多個值資料欄將繪製為個別序列。

### 篩選資料 (WHERE)
<a name="mysql-filter-data-where"></a>

 若要新增篩選條件，請選擇`WHERE`條件右側的加號圖示。您可以透過選擇篩選條件並選取 來移除篩選條件`Remove`。目前所選時間範圍的篩選條件會自動新增至新查詢。

### 分組依據
<a name="mysql-group-by"></a>

 若要依時間或任何其他資料欄分組，請選擇 GROUP BY 資料列結尾的加號圖示。建議下拉式清單只會顯示目前所選資料表的文字資料欄，但您可以手動輸入任何資料欄。您可以透過選擇項目，然後選擇 來移除群組`Remove`。

 如果您新增任何分組，則所有選取的資料欄都必須套用彙總函數。當您新增分組時，查詢建置器會自動將彙總函數新增至所有資料欄，而不需要彙總函數。

#### 間隙填充
<a name="mysql-gap-filling"></a>

 當您依時間分組時，Grafana 可以填入缺少的值。時間函數接受兩個引數。第一個引數是您要分組的時間範圍，第二個引數是您希望 Grafana 填入缺少項目的值。

### 文字編輯器模式 （原始）
<a name="mysql-text-editor-mode-raw"></a>

 您可以選擇漢堡圖示並選取**切換編輯器模式，或選擇查詢下方的編輯 SQL，即可切換到原始查詢編輯器模式**。 ****

**注意**  
 如果您使用原始查詢編輯器，請確定您的查詢至少具有 ，`ORDER BY time`並在傳回的時間範圍上有一個篩選條件。

## 巨集
<a name="mysql-macros"></a>

 為了簡化語法並允許動態部分，例如日期範圍篩選條件，查詢可以包含巨集。


|  巨集範例  |  Description  | 
| --- | --- | 
|  \$1\$1\$1time(dateColumn)  |  將由表達式取代，以轉換為 UNIX 時間戳記，並將資料欄重新命名為 time\$1sec；例如 UNIX\$1TIMESTAMP(dateColumn) 作為 time\$1sec。 | 
|  \$1\$1\$1timeEpoch(dateColumn)  |  將由表達式取代，以轉換為 UNIX 時間戳記，並將資料欄重新命名為 time\$1sec；例如 UNIX\$1TIMESTAMP(dateColumn) 作為 time\$1sec。 | 
|  \$1\$1\$1timeFilter(dateColumn)  |  將由使用指定資料欄名稱的時間範圍篩選條件取代。例如，dateColumn BETWEEN FROM\$1UNIXTIME(1494410783) 和 FROM\$1UNIXTIME(1494410983)。 | 
|  \$1\$1\$1timeFrom()  |  將由目前作用中時間選擇的開始取代。例如 FROM\$1UNIXTIME(1494410783)。 | 
|  \$1\$1\$1timeTo()  |  將取代為目前作用中時間選擇的結尾。例如 FROM\$1UNIXTIME(1494410983)。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m')  |  將由 GROUP BY 子句中可用的表達式取代。例如，Cast(cast(UNIX\$1TIMESTAMP(dateColumn)/(300) 為已簽署），300 為已簽署），\$1  | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', 0)  |  與上一列相同，但具有填充參數，因此 grafana 會新增該系列中的遺失點，並使用 0 做為值。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', NULL)  |  與上述相同，但 NULL 將用作遺失點的值。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', previous)  |  與上述相同，但如果尚未看到 NULL，則會使用該序列中的上一個值作為填充值 （僅適用於 Grafana 5.3\$1)。 | 
|  \$1\$1\$1timeGroupAlias(dateColumn,'5m')  |  將與 相同，\$1\$1\$1timeGroup但以新增的資料欄別名取代 （僅適用於 Grafana 5.3\$1)。 | 
| \$1\$1\$1unixEpochFilter(dateColumn) | 將使用指定資料欄名稱取代為時間範圍篩選條件，時間表示為 Unix 時間戳記。例如 dateColumn > 1494410783 AND dateColumn < 1494497183。 | 
| \$1\$1\$1unixEpochFrom() | 將由目前作用中時間選擇的開頭取代為 Unix 時間戳記。例如 1494410783。 | 
| \$1\$1\$1unixEpochTo() | 將被目前作用中時間選擇的結尾取代為 Unix 時間戳記。例如 1494497183。 | 
| \$1\$1\$1unixEpochNanoFilter(dateColumn) | 將使用指定的資料欄名稱取代為時間範圍篩選條件，時間表示為奈秒時間戳記。例如 dateColumn > 1494410783152415214 AND dateColumn < 1494497183142514872。 | 
| \$1\$1\$1unixEpochNanoFrom() | 將由目前作用中時間選擇的開頭取代為奈秒時間戳記。例如 1494410783152415214。 | 
| \$1\$1\$1unixEpochNanoTo() | 將被目前作用中時間選擇的結尾取代為奈秒時間戳記。例如 1494497183142514872。 | 
| \$1\$1\$1unixEpochGroup(dateColumn,"5m", [fillmode]) | 與 相同，\$1\$1\$1timeGroup但適用於儲存為 Unix 時間戳記的時間 （僅適用於 Grafana 5.3\$1)。 | 
| \$1\$1\$1unixEpochGroupAlias(dateColumn,"5m", [fillmode])` | 與上述相同，但也會新增資料欄別名 （僅適用於 Grafana 5.3\$1)。 | 

 查詢編輯器具有**產生的 SQL** 連結，會在查詢執行後，在面板編輯模式中顯示。選擇它，它會展開並顯示已執行的原始插補 SQL 字串。

## 資料表查詢
<a name="mysql-table-queries"></a>

 如果**格式化為**查詢選項設定為**資料表**，基本上您可以執行任何類型的 SQL 查詢。資料表面板會自動顯示查詢傳回的任何資料欄和資料列的結果。

 下列程式碼顯示範例查詢。

```
SELECT
  title as 'Title',
  user.login as 'Created By' ,
  dashboard.created as 'Created On'
 FROM dashboard
INNER JOIN user on user.id = dashboard.created_by
WHERE $__timeFilter(dashboard.created)
```

 您可以使用一般 `as` SQL 資料欄選取語法來控制資料表面板資料欄的名稱。

## 時間序列查詢
<a name="mysql-time-series-queries"></a>

 如果您**將 格式**設定為**時間序列**，例如用於圖形面板，查詢必須傳回名為 的資料欄`time`，該資料欄會傳回 SQL 日期時間或任何代表 Unix epoch 的數值資料類型。除了 `time`和 以外的任何資料欄`metric`都會視為值資料欄。您可以傳回名為 的資料欄`metric`，做為值資料欄的指標名稱。如果您傳回多個值資料欄和名為 的資料欄`metric`，則此資料欄會用作序列名稱的字首 （僅適用於 Grafana 5.3\$1)。

 時間序列查詢的結果集必須依時間排序。

 下列程式碼範例顯示 `metric`欄。

```
SELECT
  $__timeGroup(time_date_time,'5m'),
  min(value_double),
  'min' as metric
FROM test_data
WHERE $__timeFilter(time_date_time)
GROUP BY time
ORDER BY time
```

 下列程式碼範例顯示使用 \$1\$1\$1timeGroup 巨集中的填充參數，將 null 值改為零。

```
SELECT
  $__timeGroup(createdAt,'5m',0),
  sum(value_double) as value,
  measurement
FROM test_data
WHERE
  $__timeFilter(createdAt)
GROUP BY time, measurement
ORDER BY time
```

 下列程式碼範例顯示多個資料欄。

```
SELECT
  $__timeGroup(time_date_time,'5m'),
  min(value_double) as min_value,
  max(value_double) as max_value
FROM test_data
WHERE $__timeFilter(time_date_time)
GROUP BY time
ORDER BY time
```

根據時間範圍和面板寬度，不支援依時間的動態群組。

## 範本化
<a name="mysql-templating"></a>

 您可以在指標查詢中使用變數，而不是硬式編碼，例如伺服器、應用程式和感應器名稱。變數會顯示為儀表板頂端的下拉式清單選取方塊。您可以使用這些下拉式方塊來變更儀表板中顯示的資料。

 如需範本和範本變數的詳細資訊，請參閱 [範本](templates-and-variables.md#templates)。

### 查詢變數
<a name="mysql-query-variable"></a>

 如果您新增類型 的範本變數`Query`，您可以撰寫 MySQL 查詢，以傳回顯示為下拉式清單選取方塊的測量名稱、索引鍵名稱或索引鍵值等物件。

 例如，如果您在範本變數查詢**設定中指定這類查詢，您可以有一個變數，其中包含資料表中資料`hostname`欄的所有值。

```
SELECT hostname FROM my_host
```

 查詢可以傳回多個資料欄，Grafana 會自動從中建立清單。例如，下列查詢將傳回來自 `hostname`和 的值清單`hostname2`。

```
SELECT my_host.hostname, my_other_host.hostname2 FROM my_host JOIN my_other_host ON my_host.city = my_other_host.city
```

 若要在查詢`$__timeFilter(column)`中使用時間範圍相依巨集，例如 ，範本變數的重新整理模式必須設定為*時間範圍變更*。

```
SELECT event_name FROM event_log WHERE $__timeFilter(time_column)
```

 另一個選項是可建立索引鍵/值變數的查詢。查詢應傳回兩個名為 `__text`和 的資料欄`__value`。`__text` 資料欄值應該是唯一的 （如果不是唯一的，則會使用第一個值）。下拉式清單中的選項會有文字和值，因此您可以將易記的名稱做為文字，並將 ID 做為值。

下列程式碼範例顯示使用 `hostname`做為文字和 `id` 做為值的查詢。

```
SELECT hostname AS __text, id AS __value FROM my_host
```

 您也可以建立巢狀變數。例如，如果您有另一個名為 的變數`region`。然後，您可以讓主機變數只顯示目前所選區域中具有此類查詢的主機 （如果 `region` 是多值變數，則使用`IN`比較運算子，而不是`=`比對多個值）。

```
SELECT hostname FROM my_host  WHERE region IN($region)
```

#### 使用 `__searchFilter` 在查詢變數中篩選結果
<a name="using-__searchfilter-to-filter-results-in-query-variable"></a>

 `__searchFilter` 在查詢欄位中使用 會根據下拉式清單選取方塊中的使用者類型來篩選查詢結果。當使用者未輸入任何內容時， 的預設值`__searchFilter`為 `%`。

**注意**  
 請務必使用引號括住`__searchFilter`表達式，因為 Grafana 不會為您執行此操作。

 下列範例示範如何使用 `__searchFilter`做為查詢欄位的一部分，以在下拉式清單選取方塊中的使用者類型`hostname`時啟用搜尋。

```
SELECT hostname FROM my_host  WHERE hostname LIKE '$__searchFilter'
```

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

 從 Grafana 4.3.0 到 4.6.0，範本變數一律會自動引號，因此如果是字串值，則不會在 子句所在的引號中包裝它們。

 從 Grafana 4.7.0 開始，只有在範本變數為 時，才會引用範本變數值。 `multi-value`

 如果變數是多值變數，請使用`IN`比較運算子`=`，而不是比對多個值。

 有兩種語法：

 `$<varname>` 範本變數名為 的範例`hostname`：

```
SELECT
  UNIX_TIMESTAMP(atimestamp) as time,
  aint as value,
  avarchar as metric
FROM my_table
WHERE $__timeFilter(atimestamp) and hostname in($hostname)
ORDER BY atimestamp ASC
```

 `[[varname]]` 範本變數名為 的範例`hostname`：

```
SELECT
  UNIX_TIMESTAMP(atimestamp) as time,
  aint as value,
  avarchar as metric
FROM my_table
WHERE $__timeFilter(atimestamp) and hostname in([[hostname]])
ORDER BY atimestamp ASC
```

#### 關閉多值變數的引號
<a name="disabling-quoting-for-multi-value-variables"></a>

 Grafana 會自動為多值變數建立以逗號分隔的引號字串。例如：如果選取 `server02` `server01`和 ，則會格式化為：`'server01', 'server02'`。若要關閉引號，請使用變數的 csv 格式選項。

 `${servers:csv}` 

 如需變數格式化選項的詳細資訊，請參閱 [進階變數格式選項](templates-and-variables.md#advanced-variable-format-options)。

## 註釋
<a name="mysql-annotations"></a>

 您可以使用註釋在圖形上方覆蓋豐富的事件資訊。您可以透過儀表板功能表/註釋檢視新增註釋查詢。如需詳細資訊，請參閱。

 下列範例程式碼顯示使用具有 epoch 值的時間欄的查詢。

```
SELECT
  epoch_time as time,
  metric1 as text,
  CONCAT(tag1, ',', tag2) as tags
FROM
  public.test_data
WHERE
  $__unixEpochFilter(epoch_time)
```

下列範例程式碼顯示使用具有 epoch 值的時間和結束時間資料欄進行區域查詢。

**注意**  
 僅適用於 Grafana v6.6\$1。

```
SELECT
  epoch_time as time,
  epoch_timeend as timeend,
  metric1 as text,
  CONCAT(tag1, ',', tag2) as tags
FROM
  public.test_data
WHERE
  $__unixEpochFilter(epoch_time)
```

 下列範例程式碼使用原生 SQL 日期/時間資料類型的時間資料欄顯示查詢。

```
SELECT
  native_date_time as time,
  metric1 as text,
  CONCAT(tag1, ',', tag2) as tags
FROM
  public.test_data
WHERE
  $__timeFilter(native_date_time)
```


|  名稱  |  描述  | 
| --- | --- | 
|  time  |  日期/時間欄位的名稱。可以是具有原生 SQL 日期/時間資料類型或 epoch 值的資料欄。 | 
|  timeend  |  結束日期/時間欄位的選用名稱。可以是具有原生 SQL 日期/時間資料類型或 epoch 值的資料欄。 | 
|  text  |  事件描述欄位。 | 
|  tags  |  用於事件標籤的選用欄位名稱，做為逗號分隔字串。 | 

## 提醒
<a name="mysql-alerting"></a>

 時間序列查詢應在提醒條件下運作。警示規則條件中尚不支援資料表格式的查詢。

# 連線至 OpenSearch 資料來源
<a name="using-opensearch-in-AMG"></a>

**注意**  
在支援第 9 版或更新版本的工作區中，此資料來源可能需要您安裝適當的外掛程式。如需詳細資訊，請參閱[使用外掛程式擴展您的工作區](grafana-plugins.md)。

使用 Amazon Managed Grafana，您可以將開放原始碼 [OpenSearch](https://opensearch.org/docs/) （或舊版 Elasticsearch) 新增為資料來源。您可以執行許多類型的簡單或複雜的 OpenSearch 查詢，以視覺化儲存在 OpenSearch 中的日誌或指標。您也可以使用儲存在 OpenSearch 中的日誌事件來註釋圖表。

## 新增 OpenSearch 做為資料來源
<a name="opensearch-adding-the-data-source"></a>

**注意**  
若要能夠新增 OpenSearch 資料來源，您需要將 Grafana IAM 帳戶新增至 ALL\$1ACCESS 和 SECURITY\$1MANAGER 角色。

1.  選擇頂端標頭中的 Grafana 圖示，開啟側邊選單。

1.  在**儀表板**連結下的側邊選單中，您應該會找到具名**資料來源**連結。

1.  選擇頂端標頭中的 **\$1 新增資料來源**按鈕。

1.  從**類型**下拉式清單中選取 **OpenSearch**。

**注意**  
 如果您在側邊選單中看不到**資料來源**連結，這表示您目前的使用者沒有 `Admin`角色。


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板和查詢中查看資料來源的方式。 | 
|  Default  |  預設資料來源表示將針對新面板預先選取。 | 
|  Url  |  OpenSearch 伺服器的 HTTP 通訊協定、IP 和連接埠。 | 
|  Access  |  伺服器 （預設） = URL 必須可從 Grafana 後端/伺服器存取。瀏覽器 = URL 必須可從瀏覽器存取。 | 

 存取模式控制將如何處理對資料來源的請求。如果未說明其他項目，伺服器應該是偏好的方式。

### 伺服器存取模式 （預設）
<a name="opensearch-server-access-mode-default"></a>

 所有請求都是從瀏覽器向 Grafana 後端或伺服器提出，其會將請求轉送至資料來源，以規避可能的跨來源資源共享 (CORS) 要求。如果您選擇此存取模式，則必須從 Grafana 後端或伺服器存取 URL。

### 瀏覽器 （直接） 存取
<a name="opensearch-browser-direct-access"></a>

 Amazon Managed Grafana 不支援 OpenSearch 資料來源的瀏覽器直接存取。

### 索引設定
<a name="opensearch-index-settings"></a>

 您可以在這裡為 指定預設值，`time field`並指定 OpenSearch 索引的名稱。您可以使用索引名稱或萬用字元的時間模式。

### OpenSearch/Elasticsearch 版本
<a name="opensearch-version"></a>

在版本下拉式選單中指定您的 OpenSearch 或舊版 Elasticsearch 版本。版本很重要，因為每個版本的查詢撰寫方式有所不同。目前，Grafana 支援 OpenSearch 1.0.x。支援的 Elasticsearch 版本為 `2.0+`、`5.0+`、`6.0+`、 `5.6+`和 `7.0+`。此值`5.6+`表示 5.6 版或更新版本，但低於 6.0。此值`6.0+`表示 6.0 版或更新版本，但低於 7.0。最後， `7.0+`表示 7.0 版或更新版本，但低於 8.0 版。

### 最短時間間隔
<a name="opensearch-min-time-interval"></a>

 依時間間隔分類的自動群組下限。建議設定為寫入頻率；例如，`1m`如果您的資料每分鐘寫入一次。也可以在資料來源選項下的儀表板面板中覆寫/設定此選項。此值的格式**必須是**數字，後面接著有效的時間識別符；例如 `1m`(1 分鐘） 或 `30s`(30 秒）。支援下列時間識別符。


|  識別符  |  Description  | 
| --- | --- | 
|  y  |  年  | 
|  M  |  月  | 
|  w  |  週  | 
|  d  |  天  | 
|  h  |  小時  | 
|  m  |  分鐘  | 
|  s  |  秒  | 
|  ms  |  毫秒  | 

### 日誌
<a name="opensearch-logs-beta"></a>

在 中視覺化日誌時`Level field name`，可以從資料來源設定頁面選擇性地設定兩個參數 `Message field name`和 ，以決定哪些欄位將用於日誌訊息和日誌層級[探索](explore.md)。

 例如，如果您使用 Filebeat 的預設設定將日誌運送到 OpenSearch，則下列組態應該可以運作。
+  **訊息欄位名稱：**訊息 
+  **層級欄位名稱：**Fields.level 

### 資料連結
<a name="opensearch-data-links"></a>

 資料連結會從可在探索日誌檢視中存取的指定欄位建立連結。

 每個資料連結組態都包含下列項目：
+ **欄位** – 資料連結所使用的欄位名稱。
+ **URL/查詢 ** – 如果連結是外部連結，請輸入完整的連結 URL。如果連結是內部連結，則此輸入會做為目標資料來源的查詢。在這兩種情況下，您可以將 欄位的值插入`${__value.raw }`巨集。
+ **內部連結** – 如果連結是內部或外部，請選取此選項。如果連結是內部連結，則資料來源選取器可讓您選取目標資料來源。僅支援追蹤資料來源。

## 使用 OpenSearch 資料來源
<a name="opensearch-use-datasource"></a>

### 指標查詢編輯器
<a name="opensearch-metric-query-editor"></a>

 OpenSearch 查詢編輯器可讓您依多個詞彙或篩選條件選取多個指標和群組。使用右側的加號和減號圖示，依子句新增/移除指標或群組。有些指標和依子句分組都有選項。選擇選項文字來展開資料列，以檢視和編輯指標或依選項分組。

### 系列命名和別名模式
<a name="opensearch-series-naming-and-alias-patterns"></a>

 您可以透過`Alias`輸入欄位控制時間序列的名稱。


|  模式  |  Description  | 
| --- | --- | 
|  \$1\$1term fieldname\$1\$1  |  以 Group By 一詞的值取代。 | 
|  \$1\$1metric\$1\$1  |  以指標名稱 （例如 平均值、最小值、最大值）。 | 
|  \$1\$1field\$1\$1  |  以指標欄位名稱取代。 | 

### 管道指標
<a name="opensearch-pipeline-metrics"></a>

有些指標彙總稱為管道彙總，例如*移動平均*和*衍生*。OpenSearch 管道指標需要根據另一個指標。使用指標旁的眼睛圖示，隱藏指標不出現在圖形中。這對於您在查詢中只有用於管道指標的指標很有用。

### 範本化
<a name="opensearch-templating"></a>

您可以在指標查詢中使用變數，而不是硬式編碼，例如伺服器、應用程式和感應器名稱。變數會顯示為儀表板頂端的下拉式清單選取方塊。您可以使用這些下拉式方塊來變更儀表板中顯示的資料。

 如需範本和範本變數的詳細資訊，請參閱 [範本和變數](templates-and-variables.md)。

#### 查詢變數
<a name="opensearch-query-variable"></a>

 OpenSearch 資料來源支援兩種類型的查詢，您可以在*查詢*變數的*查詢*欄位中使用。查詢是使用自訂 JSON 字串撰寫。


|  Query  |  Description  | 
| --- | --- | 
|  \$1"find": "fields", "type": "keyword"\$1  |  傳回索引類型為 的欄位名稱清單keyword。 | 
|  \$1"find": "terms", "field": "@hostname", "size": 1000\$1  |  使用詞彙彙總傳回欄位的值清單。查詢將使用目前的儀表板時間範圍做為查詢的時間範圍。 | 
|  \$1"find": "terms", "field": "@hostname", "query": '<lucene query>'\$1  |  使用詞彙彙總和指定的 Lucene 查詢篩選條件，傳回欄位的值清單。查詢將使用目前的儀表板時間範圍做為查詢的時間範圍。 | 

詞彙查詢的預設大小限制為 500。若要設定自訂限制，請在查詢中設定大小屬性。您可以在查詢內使用其他變數。下列程式碼範例顯示名為 之變數的查詢定義`$host`。

```
{"find": "terms", "field": "@hostname", "query": "@source:$source"}
```

在上一個範例中，我們使用在查詢定義`$source`內名為 的另一個變數。每當您透過下拉式清單變更`$source`變數的目前值時，就會啟動`$host`變數的更新。更新之後， `$host`變數只會包含由 篩選的主機名稱，在此情況下為`@source`文件屬性。

預設情況下，這些查詢會依詞彙順序傳回結果 （然後，任何變數都可以按字母或數字排序）。若要產生依文件計數排序的詞彙清單 （前 N 個值清單），請新增 的 `orderBy` 屬性`doc_count`。這會自動選取遞減排序。使用 `asc`搭配 doc\$1count (N 底部清單） 可以透過設定 來完成`order: "asc"`，但不建議這麼做，因為它會增加文件計數的錯誤。若要將術語保留在文件計數順序中，請將變數的**排序**下拉式清單設定為**已停用**。或者，您可能仍然想要使用**按字母順序**重新排序它們。

```
{"find": "terms", "field": "@hostname", "orderBy": "doc_count"}
```

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

 有兩種語法：
+  `$<varname>` 範例：@hostname：\$1hostname 
+  `[[varname]]` 範例：@hostname：【【hostname】】 

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

 在先前的範例中，我們有使用名為 的變數，根據 `@hostname` 屬性篩選文件的 lucene 查詢`$hostname`。它也在 Terms **群組中依欄位輸入方塊中使用變數。這可讓您使用變數來快速變更資料的分組方式。

### 註釋
<a name="opensearch-annotations"></a>

註釋可讓您在圖形上方疊加豐富的事件資訊。您可以透過儀表板功能表或註釋檢視新增註釋查詢。Grafana 可以查詢註釋事件的任何 OpenSearch 索引。如需詳細資訊，請參閱[註釋](dashboard-annotations.md)。


|  名稱  |  描述  | 
| --- | --- | 
|  Query  |  您可以保持搜尋查詢空白，或指定 Lucene 查詢。 | 
|  Time  |  時間欄位的名稱；必須是日期欄位。 | 
|  Time End  |  時間結束欄位的選用名稱必須是日期欄位。如果設定，註釋將標記為時間與時間結束之間的區域。 | 
|  Text  |  事件描述欄位。 | 
|  Tags  |  用於事件標籤的選用欄位名稱 （可以是陣列或 CSV 字串）。 | 

### 查詢 日誌
<a name="opensearch-querying-logs-beta"></a>

 探索中提供從 OpenSearch 查詢和顯示日誌資料。若要顯示日誌，請選取 OpenSearch 資料來源，然後選擇性地輸入 Lucene 查詢。如需詳細資訊，請參閱[探索](explore.md)。

#### 日誌查詢
<a name="opensearch-log-queries"></a>

 傳回結果後，日誌面板會顯示日誌資料列清單和長條圖，其中 x 軸顯示時間，y 軸顯示頻率或計數。

#### 篩選日誌訊息
<a name="opensearch-filter-log-messages"></a>

 或者，在查詢欄位中輸入 Lucene 查詢來篩選日誌訊息。例如，使用預設的 Filebeat 設定，您應該能夠使用 `fields.level:error` 僅顯示錯誤日誌訊息。

# 連線至 OpenTSDB 資料來源
<a name="using-opentsdb-in-AMG"></a>

 Amazon Managed Grafana 隨附 OpenTSDB 的進階支援。

## 新增資料來源
<a name="opentsdb-adding-the-data-source"></a>

1.  選擇頂端標頭中的 Grafana 圖示，開啟側邊選單。

1.  在**儀表板**連結下的側邊選單中，您應該會找到**資料來源**連結。

1.  選擇頂端標頭中的 **\$1 新增資料來源**按鈕。

1.  從**類型**下拉式清單中選取 **OpenTSDB**。

**注意**  
 如果您在側邊選單中看不到**資料來源**連結，這表示您目前的使用者沒有 `Admin`角色。


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板和查詢中查看資料來源的方式。 | 
|  Default  |  預設資料來源表示新面板會預先選取該資料來源。 | 
|  Url  |  Opentsdb 伺服器的 HTTP 通訊協定、ip 和連接埠 （預設連接埠通常為 4242)。 | 
|  Access  |  伺服器 （預設） = URL 必須可從 Grafana 後端/伺服器存取。 | 
|  Version  |  版本 = opentsdb 版本，<=2.1 或 2.2。 | 
|  Resolution  |  Opentsdb 的指標可以具有秒或毫秒解析度的資料點。 | 

## 查詢編輯器
<a name="opentsdb-query-editor"></a>

 選擇標題，以編輯模式開啟圖形。如果資料來源的版本 <=2.1 或 = 2.2，則查詢編輯器會有所不同。在舊版中，只有標籤可用於查詢 OpenTSDB。但在後者版本中，篩選條件以及標籤可用於查詢 opentsdb。填補政策也在 OpenTSDB 2.2 中推出。

**注意**  
 使用 OpenTSDB 2.2 資料來源時，請務必使用篩選條件或標籤，因為它們是互斥的。如果一起使用， 可能會為您提供奇怪的結果。

### 使用自動完成建議
<a name="auto-complete-suggestions"></a>

 一旦您開始輸入指標名稱、標籤名稱和標籤值 ，您應該會看到反白的自動完成建議。只有在 OpenTSDB 建議 API 已啟用時，自動完成才會運作。

## 範本查詢
<a name="opentsdb-templating-queries"></a>

 您可以在指標查詢中使用變數，而不是硬式編碼，例如伺服器、應用程式和感應器名稱。變數會顯示為儀表板頂端的下拉式清單選取方塊。您可以使用這些下拉式方塊來變更儀表板中顯示的資料。

 如需範本和範本變數的詳細資訊，請參閱 [範本和變數](templates-and-variables.md)。

### 查詢變數
<a name="opentsdb-query-variable"></a>

 OpenTSDB 資料來源支援範本變數查詢。這表示您可以建立範本變數，從 OpenTSDB 擷取值。例如，指標名稱、標籤名稱或標籤值。

 使用 OpenTSDB 搭配 `query`類型的範本變數時，您可以使用下列語法進行查詢。


|  Query  |  Description  | 
| --- | --- | 
|  metrics(prefix)  |  傳回具有特定字首的指標名稱 （可以是空的）。 | 
|  tag\$1names(cpu)  |  傳回特定 cpu 指標的標籤名稱 （即 索引鍵）。 | 
|  tag\$1values(cpu, hostname)  |  傳回指標 cpu 和標籤索引鍵主機名稱的標籤值。 | 
|  suggest\$1tagk(prefix)  |  傳回具有特定字首 （可以是空的） 之所有指標的標籤名稱 （即 索引鍵）。 | 
|  suggest\$1tagv(prefix)  |  傳回具有特定字首的所有指標的標籤值 （可以是空的）。 | 

 如果您沒有看到範本變數在`Preview of values`區段中填入，您必須在 OpenTSDB 伺服器設定`tsd.core.meta.enable_realtime_ts`中啟用 。此外，若要在 OpenTSDB 中填入現有時間序列資料的中繼資料，您必須在 `tsdb uid metasync` OpenTSDB 伺服器上執行 。

### 巢狀範本
<a name="nested-templating"></a>

 一個範本變數可用來篩選另一個範本變數的標籤值。第一個參數是指標名稱，第二個參數是您需要尋找標籤值的標籤索引鍵，之後所有其他相依範本變數。以下是一些範例，可讓巢狀範本查詢成功運作。


|  Query  |  Description  | 
| --- | --- | 
|  tag\$1values(cpu, hostname, env=\$1env)  |  傳回 cpu 指標的標籤值、選取的 env 標籤值和標籤索引鍵主機名稱。 | 
|  tag\$1values(cpu, hostname, env=\$1env, region=\$1region)  |  傳回 cpu 指標的標籤值、選取的 env 標籤值、選取的區域標籤值和標籤索引鍵主機名稱。 | 

 如需 OpenTSDB 指標查詢的詳細資訊，請參閱 [OpenTSDB 文件](https://opentsdb.net/docs/build/html/index.html) 

# 連線至 PostgreSQL 資料來源
<a name="using-postgresql-in-AMG"></a>

 您可以使用 PostgreSQL 資料來源來查詢和視覺化來自 Amazon Aurora PostgreSQL 資料庫的資料。

**重要**  
*Grafana 第 8 版*會變更 Postgres、MySQL 和 Microsoft SQL Server 資料來源的資料影格基礎資料結構。因此，時間序列查詢結果會以寬格式傳回。如需詳細資訊，請參閱 Grafana 資料影格文件中的[寬格式](https://grafana.com/developers/plugin-tools/introduction/data-frames#wide-format)。若要讓視覺化效果如第 8 版之前一樣運作，您可能需要進行一些手動遷移。一個解決方案記錄在 Github 上的 [Postgres/MySQL/MSSQL：中斷 v8.0 中與時間序列查詢和資料欄排序相關的變更。](https://github.com/grafana/grafana/issues/35534)  
在 *Grafana 第 9 版*中，PostgreSQL 資料來源會設定根憑證，以與先前版本不同的方式連線至資料庫。如果您將工作區從第 8 版更新至第 9 版，您可能需要變更連線方式。如需詳細資訊，請參閱[對更新工作區的問題進行故障診斷](AMG-workspace-version-update-troubleshoot.md)。

## 新增資料來源
<a name="postgresql-adding-the-data-source"></a>

1.  選擇頂端標頭中的 Grafana 圖示，開啟側邊選單。

1.  在側邊選單的**組態**圖示下，您應該會找到**資料來源**連結。

1.  選擇頂端標頭中的 **\$1 新增資料來源**按鈕。

1.  從**類型**下拉式清單中選取 **PostgreSQL**。

### 資料來源選項
<a name="postgresql-data-source-options"></a>


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板和查詢中看到資料來源的方式。 | 
|  Default  |  預設資料來源表示新面板會預先選取。 | 
|  Host  |  PostgreSQL 執行個體的 IP 地址/主機名稱和選用連接埠。請勿包含資料庫名稱。連線至 Postgres 的連線字串將不正確，且會導致錯誤。 | 
|  Database  |  PostgreSQL 資料庫的名稱。 | 
|  User  |  資料庫使用者的登入/使用者名稱。 | 
|  Password  |  資料庫使用者的密碼  | 
|  SSL Mode  |  此選項會決定安全 SSL TCP/IP 連線是否或優先與伺服器交涉。 | 
|  Max open  |  預設資料庫的開啟連線數目上限 unlimited(Grafana v5.4\$1)。 | 
|  Max idle  |  預設閒置連線集區中的連線數目上限 2(Grafana v5.4\$1)。 | 
|  Max lifetime  |  可以重複使用連線的秒數上限，預設 14400/4 小時 (Grafana v5.4\$1)。 | 
|  Version  |  此選項會決定查詢建置器中可用的函數 （僅適用於 Grafana 5.3\$1)。 | 
|  TimescaleDB  |  TimescaleDB 是建置為 PostgreSQL 延伸模組的時間序列資料庫。如果啟用，Grafana 將在\$1\$1\$1timeGroup巨集time\$1bucket中使用 ，並在查詢建置器中顯示 TimescaleDB 特定彙總函數 （僅適用於 Grafana 5.3\$1)。 | 

### 最短時間間隔
<a name="postgresql-min-time-interval"></a>

 `$_interval` `$_interval_ms` 變數的下限。建議設定為寫入頻率，例如`1m`，如果資料每分鐘寫入一次。也可以在資料來源選項下的儀表板面板中覆寫/設定此選項。此值的格式**必須是**數字，後面接著有效的時間識別符；例如 `1m`(1 分鐘） 或 `30s`(30 秒）。支援下列時間識別符。


|  識別符  |  Description  | 
| --- | --- | 
|  y  |  年  | 
|  M  |  月  | 
|  w  |  週  | 
|  d  |  天  | 
|  h  |  小時  | 
|  m  |  分鐘  | 
|  s  |  秒  | 
|  ms  |  毫秒  | 

### 資料庫使用者許可
<a name="postgresql-database-user-permissions-important"></a>

**重要**  
 您在新增資料來源時指定的資料庫使用者，應只獲得您要查詢之指定資料庫和資料表的 SELECT 許可。Grafana 不會驗證查詢是否安全。查詢可能包含任何 SQL 陳述式。例如，`DROP TABLE user;`會執行 `DELETE FROM user;`和 等陳述式。為了防止這種情況，強烈建議您建立具有受限許可的特定 PostgreSQL 使用者。

下列範例程式碼顯示建立具有受限許可的 specifice PostgreSQL 使用者。

```
 CREATE USER grafanareader WITH PASSWORD 'password';
 GRANT USAGE ON SCHEMA schema TO grafanareader;
 GRANT SELECT ON schema.table TO grafanareader;
```

 確定使用者未從公有角色取得任何不需要的許可。

## 查詢編輯器
<a name="postgresql-query-editor"></a>

 您可以在圖形或 Singlestat 面板編輯模式中的指標索引標籤中找到 PostgreSQL 查詢編輯器。您可以選擇面板標題，然後編輯，以進入編輯模式。

 查詢編輯器具有**產生的 SQL** 連結，會在查詢執行後，在面板編輯模式中顯示。選擇它，它會展開並顯示已執行的原始插補 SQL 字串。

### 選取資料表、時間欄和指標欄 (FROM)
<a name="postgresql-select-table-time-column-and-metric-column-from"></a>

 當您第一次進入編輯模式或新增查詢時，Grafana 會嘗試使用具有時間戳記欄和數值欄的第一個資料表預先填入查詢建置器。

 在 FROM 欄位中，Grafana 會建議資料庫使用者 `search_path` 中的資料表。若要選取不在 中的資料表或檢視，`search_path`您可以手動輸入完整名稱 (schema.table)，例如 `public.metrics`。

 時間欄欄位是指保留時間值的資料欄名稱。選取指標資料欄欄位的值是選用的。如果選取值，則會使用指標欄欄位做為序列名稱。

 指標欄建議只會包含具有文字資料類型 (char、varchar、text) 的資料欄。若要使用具有不同資料類型的資料欄做為指標資料欄，您可以輸入具有轉換的資料欄名稱：`ip::text`。您也可以在評估為文字資料類型的指標資料欄欄位中輸入任意 SQL 表達式，例如 `hostname || ' ' || container_name`。

### 資料欄、視窗和彙總函數 (SELECT)
<a name="columns-window-and-aggregation-functions-select"></a>

 在 `SELECT`列中，您可以指定要使用的資料欄和函數。在資料欄欄位中，您可以撰寫任意表達式，而不是資料欄名稱，例如 `column1 * column2 / column3`。

 查詢編輯器中可用的函數取決於您在設定資料來源時選取的 PostgreSQL 版本。如果您使用彙總函數，則必須將結果集分組。如果您新增彙總函數，編輯器會自動新增 `GROUP BY time`。

編輯器會嘗試簡化和統一查詢的這個部分。

您可以選擇加號按鈕，然後從功能表中選取資料欄，以新增其他值資料**欄**。圖形面板中的多個值資料欄將繪製為個別序列。

### 篩選資料 (WHERE)
<a name="postgresql-filter-data-where"></a>

 若要新增篩選條件，請選擇`WHERE`條件右側的加號圖示。您可以選擇篩選條件並選取移除，以**移除**篩選條件。目前所選時間範圍的篩選條件會自動新增至新查詢。

### 分組依據
<a name="postgresql-group-by"></a>

 若要依時間或任何其他資料欄分組，請選擇 GROUP BY 資料列結尾的加號圖示。建議下拉式清單只會顯示目前所選資料表的文字資料欄，但您可以手動輸入任何資料欄。您可以選擇項目，然後選取移除，以**移除**群組。

 如果您新增任何分組，則所有選取的資料欄都必須套用彙總函數。當您新增分組時，查詢建置器會自動將彙總函數新增至所有資料欄，而不需要彙總函數。

#### 間隙填充
<a name="postgresql-gap-filling"></a>

 當您依時間分組時，Amazon Managed Grafana 可以填入缺少的值。時間函數接受兩個引數。第一個引數是您要分組的時間範圍，第二個引數是您希望 Grafana 填入缺少項目的值。

### 文字編輯器模式 (RAW)
<a name="postgresql-text-editor-mode-raw"></a>

 您可以選擇漢堡圖示並選取**切換編輯器模式，或選擇查詢下方的編輯 SQL，即可切換到原始查詢編輯器模式**。 ****

**注意**  
 如果您使用原始查詢編輯器，請確定您的查詢至少具有 ，`ORDER BY time`並在傳回的時間範圍上有一個篩選條件。

## 巨集
<a name="postgresql-macros"></a>

 巨集可在查詢中使用，以簡化語法並允許動態組件。


|  巨集範例  |  Description  | 
| --- | --- | 
|  \$1\$1\$1time(dateColumn)  |  將由表達式取代，以轉換為 UNIX 時間戳記，並將資料欄重新命名為 time\$1sec。例如，UNIX\$1TIMESTAMP(dateColumn) 作為 time\$1sec。 | 
|  \$1\$1\$1timeEpoch(dateColumn)  |  將由表達式取代，以轉換為 UNIX 時間戳記，並將資料欄重新命名為 time\$1sec。例如，UNIX\$1TIMESTAMP(dateColumn) 作為 time\$1sec。 | 
|  \$1\$1\$1timeFilter(dateColumn)  |  將由使用指定資料欄名稱的時間範圍篩選條件取代。例如，dateColumn BETWEEN FROM\$1UNIXTIME(1494410783) 和 FROM\$1UNIXTIME(1494410983)。 | 
|  \$1\$1\$1timeFrom()  |  將由目前作用中時間選擇的開始取代。例如 FROM\$1UNIXTIME(1494410783)。 | 
|  \$1\$1\$1timeTo()  |  將取代為目前作用中時間選擇的結尾。例如 FROM\$1UNIXTIME(1494410983)。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m')  |  將由 GROUP BY 子句中可用的表達式取代。例如，Cast(cast(UNIX\$1TIMESTAMP(dateColumn)/(300) 已簽章），300 已簽章），\$1  | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', 0)  |  與慣用的資料列相同，但使用填充參數，因此 grafana 會新增該系列中的遺失點，並使用 0 做為值。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', NULL)  |  與上述相同，但 NULL 將用作遺失點的值。 | 
|  \$1\$1\$1timeGroup(dateColumn,'5m', previous)  |  與上述相同，但如果尚未看到 NULL，則會使用該序列中的上一個值作為填充值 （僅適用於 Grafana 5.3\$1)。 | 
|  \$1\$1\$1timeGroupAlias(dateColumn,'5m')  |  將取代為與 \$1\$1\$1timeGroup 相同，但使用新增的資料欄別名  | 
|  \$1\$1\$1unixEpochFilter(dateColumn) |  將使用指定的資料欄名稱取代為時間範圍篩選條件，時間表示為 Unix 時間戳記。例如，\$1dateColumn > 1494410783 AND dateColumn < 1494497183\$1  | 
| \$1\$1\$1unixEpochFrom()`  | \$1 將由目前作用中時間選擇的開頭取代為 Unix 時間戳記。例如，\$11494410783\$1 | 
| \$1\$1\$1unixEpochTo() | 將被目前作用中時間選擇的結尾取代為 Unix 時間戳記。例如，\$11494497183\$1 | 
| \$1\$1\$1unixEpochNanoFilter(dateColumn) | 將使用指定的資料欄名稱取代為時間範圍篩選條件，時間表示為奈秒時間戳記。例如，\$1dateColumn > 1494410783152415214 AND dateColumn < 1494497183142514872\$1 | 
| \$1\$1\$1unixEpochNanoFrom() | 將由目前作用中時間選擇的開頭取代為奈秒時間戳記。例如，\$11494410783152415214\$1 | 
| \$1\$1\$1unixEpochNanoTo() | 將被目前作用中時間選擇的結尾取代為奈秒時間戳記。例如，\$11494497183142514872\$1 | 
| \$1\$1\$1unixEpochGroup(dateColumn,"5m", [fillmode]) | 與 \$1\$1\$1timeGroup 相同，但時間儲存為 Unix 時間戳記。 | 

## 資料表查詢
<a name="postgresql-table-queries"></a>

 如果查詢選項設定為**格式化為資料表**，基本上您可以執行任何類型的 SQL 查詢。資料表面板會自動顯示查詢傳回的任何資料欄和資料列的結果。

 您可以使用一般 `as` SQL 資料欄選取語法來控制資料表面板資料欄的名稱。

## 時間序列查詢
<a name="postgresql-time-series-queries"></a>

 如果您將**格式設定為** `Time series`，例如用於圖形面板，查詢必須傳回名為 的資料欄`time`，該資料欄會傳回 SQL 日期時間或任何代表 Unix epoch 的數值資料類型。除了 `time`和 以外的任何資料欄`metric`都會視為值資料欄。您可以傳回名為 的資料欄`metric`，做為值資料欄的指標名稱。如果您傳回多個值資料欄和名為 的資料欄`metric`，則會使用此資料欄做為序列名稱的字首。

 時間序列查詢的結果集必須依時間排序。

 下列範例程式碼顯示 `metric`欄。

```
SELECT
  $__timeGroup("time_date_time",'5m'),
  min("value_double"),
  'min' as metric
FROM test_data
WHERE $__timeFilter("time_date_time")
GROUP BY time
ORDER BY time
```

 以下程式碼範例顯示使用 \$1\$1\$1timeGroup 巨集中的填充參數，將 null 值改為零。

```
SELECT
  $__timeGroup("createdAt",'5m',0),
  sum(value) as value,
  measurement
FROM test_data
WHERE
  $__timeFilter("createdAt")
GROUP BY time, measurement
ORDER BY time
```

 下列範例程式碼顯示多個資料欄。

```
SELECT
  $__timeGroup("time_date_time",'5m'),
  min("value_double") as "min_value",
  max("value_double") as "max_value"
FROM test_data
WHERE $__timeFilter("time_date_time")
GROUP BY time
ORDER BY time
```

## 範本化
<a name="postgresql-templating"></a>

 您可以在指標查詢中使用變數，而不是硬式編碼，例如伺服器、應用程式和感應器名稱。變數會顯示為儀表板頂端的下拉式清單選取方塊。您可以使用這些下拉式方塊來變更儀表板中顯示的資料。

 如需範本和範本變數的詳細資訊，請參閱 [範本](templates-and-variables.md#templates)。

### 查詢變數
<a name="postgresql-query-variable"></a>

 如果您新增類型 的範本變數`Query`，您可以撰寫 PostgreSQL 查詢，以傳回顯示為下拉式清單選取方塊的測量名稱、索引鍵名稱或索引鍵值等物件。

 例如，如果您在範本變數查詢**設定中指定這類查詢，您可以有一個變數，其中包含資料表中資料`hostname`欄的所有值。

```
SELECT hostname FROM host
```

 查詢可以傳回多個資料欄，Grafana 會自動從中建立清單。例如，下列查詢將傳回來自 `hostname`和 的值清單`hostname2`。

```
SELECT host.hostname, other_host.hostname2 FROM host JOIN other_host ON host.city = other_host.city
```

 若要在查詢`$__timeFilter(column)`中使用時間範圍相依巨集，例如 ，範本變數的重新整理模式必須設定為*時間範圍變更*。

```
SELECT event_name FROM event_log WHERE $__timeFilter(time_column)
```

 另一個選項是可建立索引鍵/值變數的查詢。查詢應傳回兩個名為 `__text`和 的資料欄`__value`。`__text` 資料欄值應該是唯一的 （如果不是唯一的，則會使用第一個值）。下拉式清單中的選項會有文字和值，可讓您將易記的名稱做為文字，並將 ID 做為值。使用 `hostname`做為文字和 `id`做為值的範例查詢：

```
SELECT hostname AS __text, id AS __value FROM host
```

 您也可以建立巢狀變數。使用名為 的變數`region`，您可以讓主機變數僅顯示目前所選區域的主機。下列程式碼範例顯示這樣的查詢 （如果 `region` 是多值變數，請使用`IN`比較運算子`=`，而不是比對多個值）。

```
SELECT hostname FROM host  WHERE region IN($region)
```

#### 使用 `__searchFilter` 在查詢變數中篩選結果
<a name="postgresql-using-__searchfilter-to-filter-results-in-query-variable"></a>

 `__searchFilter` 在查詢欄位中使用 會根據下拉式清單選取方塊中的使用者類型來篩選查詢結果。當使用者未輸入任何內容時， 的預設值`__searchFilter`為 `%`。

**注意**  
 請務必使用引號括住`__searchFilter`表達式，因為 Grafana 不會為您執行此操作。

 下列範例示範如何使用 `__searchFilter`做為查詢欄位的一部分，以在下拉式清單選取方塊中的使用者類型`hostname`時啟用搜尋。

```
SELECT hostname FROM my_host  WHERE hostname LIKE '$__searchFilter'
```

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

 只有在範本變數是 時，才會引用範本變數值`multi-value`。

 如果變數是多值變數，請使用`IN`比較運算子`=`，而不是比對多個值。

 有兩種語法：

 `$<varname>` 範本變數名為 的範例`hostname`：

```
SELECT
  atimestamp as time,
  aint as value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in($hostname)
ORDER BY atimestamp ASC
```

 `[[varname]]` 範本變數名為 的範例`hostname`：

```
SELECT
  atimestamp as time,
  aint as value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in([[hostname]])
ORDER BY atimestamp ASC
```

#### 關閉多值變數的引號
<a name="postgresql-disabling-quoting-for-multi-value-variables"></a>

 Amazon Managed Grafana 會自動為多值變數建立以逗號分隔的引號字串。例如：如果選取 `server02` `server01`和 ，則會格式化為：`'server01', 'server02'`。若要關閉引號，請使用變數的 csv 格式選項。

 `${servers:csv}` 

 如需變數格式化選項的詳細資訊，請參閱 [範本和變數](templates-and-variables.md)。

## 註釋
<a name="postgresql-annotations"></a>

 使用註釋在圖形上方覆蓋豐富的事件資訊。您可以透過儀表板功能表/註釋檢視新增註釋查詢。如需詳細資訊，請參閱[註釋](dashboard-annotations.md)。

 下列範例程式碼使用具有 epoch 值的時間欄來顯示查詢。

```
SELECT
  epoch_time as time,
  metric1 as text,
  concat_ws(', ', metric1::text, metric2::text) as tags
FROM
  public.test_data
WHERE
  $__unixEpochFilter(epoch_time)
```

 下列範例程式碼顯示使用具有 epoch 值的時間和結束時間資料欄的區域查詢。

**注意**  
 這僅適用於 Grafana v6.6\$1。

```
SELECT
  epoch_time as time,
  epoch_time_end as timeend,
  metric1 as text,
  concat_ws(', ', metric1::text, metric2::text) as tags
FROM
  public.test_data
WHERE
  $__unixEpochFilter(epoch_time)
```

 下列範例程式碼顯示使用原生 SQL 日期/時間資料類型的時間欄的查詢。

```
SELECT
  native_date_time as time,
  metric1 as text,
  concat_ws(', ', metric1::text, metric2::text) as tags
FROM
  public.test_data
WHERE
  $__timeFilter(native_date_time)
```


|  名稱  |  描述  | 
| --- | --- | 
|  time  |  日期/時間欄位的名稱。可以是具有原生 SQL 日期/時間資料類型或 epoch 值的資料欄。 | 
|  timeend  |  結束日期/時間欄位的選用名稱。可以是具有原生 SQL 日期/時間資料類型或 epoch 值 (Grafana v6.6\$1) 的資料欄。 | 
|  text  |  事件描述欄位。 | 
|  tags  |  用於事件標籤的選用欄位名稱，做為逗號分隔字串。 | 

## 提醒
<a name="postgresql-alerting"></a>

 時間序列查詢應在提醒條件下運作。警示規則條件中尚不支援資料表格式的查詢。

# 連線至 Tempo 資料來源
<a name="tempo-data-source"></a>

 Tempo 是來自 Grafana Labs 的大量最小相依性追蹤儲存 OSS 追蹤解決方案。

## 新增資料來源
<a name="tempo-adding-the-data-source"></a>

 若要存取 Tempo 設定，請選擇**組態** （齒輪） 圖示，然後選擇**資料來源**，然後選擇 **Tempo**。


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  您將用來在面板、查詢和探索中參考資料來源的名稱。 | 
|  Default  |  預設資料來源表示新面板會預先選取該資料來源。 | 
|  URL  |  Tempo 執行個體的 URL；例如 http://tempo。 | 
|  Basic Auth  |  啟用對 Tempo 資料來源的基本身分驗證。 | 
|  User  |  基本身分驗證的使用者名稱。 | 
|  Password  |  基本身分驗證的密碼。 | 

## 追蹤至日誌
<a name="tempo-trace-to-logs"></a>

 這是追蹤至日誌功能的組態。目標資料來源目前必須是 Loki。如需詳細資訊，請參閱[追蹤整合](explore.md#tracing-integration)。
+ **資料來源** – 目標資料來源。
+ **標籤** – 將用於 Loki 查詢的標籤。預設為 `'cluster', 'hostname', 'namespace', pod'`。
+ **跨度開始時間轉移** – 根據跨度開始時間來轉移 Loki 查詢的開始時間。若要延伸到過去，您需要使用負值。您可以在這裡使用時間單位，例如 5s、1m、3h。預設值為 0。
+ **跨度結束時間轉移** – 根據跨度結束時間，在 Loki 查詢的結束時間轉移。您可以在這裡使用時間單位，例如 5s、1m、3h。預設值為 0。

## 查詢追蹤
<a name="tempo-query-traces"></a>

 您可以透過探索從 Tempo 查詢和顯示追蹤。如果您在資料來源組態頁面中將追蹤設定為日誌設定，您可以搜尋追蹤。若要尋找要視覺化的追蹤，請使用 Loki 查詢編輯器。若要取得搜尋結果，您必須設定衍生欄位，以指向此資料來源。

若要查詢特定追蹤，請選取 TraceID 查詢類型，然後將 ID 放入追蹤 ID 欄位。

## 從日誌連結到追蹤 ID
<a name="tempo-linking-trace-id-from-logs"></a>

 您可以透過設定內部連結，從 Loki 或 Elastic 中的日誌連結到 Tempo 追蹤。如需詳細資訊，請參閱[衍生欄位](using-loki-in-AMG.md#loki-derived-fields)。

# 設定 TestData 資料來源進行測試
<a name="testdata-data-source"></a>

Grafana 隨附 TestData 資料來源，可為任何面板建立模擬的時間序列資料。您可以使用它來建置自己的仿造和隨機時間序列資料，並將其轉譯在任何面板中，這可協助您驗證儀表板功能，並安全輕鬆地共用資料。

**設定資料來源**

**存取 TestData 的資料來源組態**

1. 選擇**組態** （齒輪） 圖示。

1. 選擇**資料來源**。

1. 選擇 **TestData**。

除了所有資料來源常用的最基本選項之外，資料來源不提供任何設定：


|  名稱  |  描述  | 
| --- | --- | 
|  `Name`  |  面板、查詢和探索中資料來源的名稱。  | 
|  `Default`  |  是否針對新面板預先選取此資料來源。  | 

**建立模擬資料**

新增 TestData 資料來源，您的 Grafana 執行個體使用者可以在任何指標面板中將其用作資料來源，並根據您選擇的 TestData 案例提供您可以使用的模擬資料。

**選擇案例**

TestData 資料來源不會提供查詢編輯器，而是協助您選取為面板產生模擬資料的**案例**。

您可以為每個案例指派**別名**，而且許多 都有自己的選項會在選取時顯示。

**可用的案例：**
+ **註釋**
+ **條件式錯誤**
+ **CSV 內容**
+ **CSV 檔案**
+ **CSV 指標值**
+ **超出範圍的資料點**
+ **指數熱度圖儲存貯體資料**
+ **Grafana API**
+ **Grafana Live**
+ **線性熱度圖儲存貯體資料**
+ **載入 Apache Arrow 資料**
+ **日誌**
+ **無資料點**
+ **節點圖形**
+ **可預測的 CSV Wave**
+ **可預測脈衝**
+ **隨機行走**
+ **Random Walk （發生錯誤）**
+ **隨機行走資料表**
+ **原始影格**
+ **模擬**
+ **慢查詢**
+ **串流用戶端**
+ **資料表靜態**
+ **美國產生的資料**

**匯入預先設定的儀表板**

TestData 也提供範例儀表板。

**匯入範例儀表板**

1. 導覽至資料來源的組態頁面。

1. 選取**儀表板**索引標籤。

1. 針對**簡易串流範例**儀表板選取**匯入**。

**若要自訂匯入的儀表板：**

若要自訂匯入的儀表板，建議您將其儲存為不同的名稱。如果沒有，升級 Grafana 可以使用新版本覆寫自訂儀表板。

**使用測試資料來報告問題**

如果您向 GitHub 上的 GrafanaLabs 報告涉及使用或轉譯時間序列資料的問題，強烈建議您使用此資料來源來複寫問題。這可讓開發人員更輕鬆地複寫和解決您的問題。

# 連線至 Zipkin 資料來源
<a name="zipkin-data-source"></a>

 Zipkin 是一種開放原始碼的分散式追蹤系統。新增 Zipkin 資料來源，以便在 Amazon Managed Grafana 中的探索中查詢追蹤 

## 新增資料來源
<a name="zipkin-adding-the-data-source"></a>

 若要存取 Zipkin 設定，請選擇**組態** （齒輪） 圖示，然後選擇**資料來源**，然後選擇 **Zipkin**。


|  名稱  |  描述  | 
| --- | --- | 
|  Name  |  資料來源名稱。這是您在面板、查詢和探索中看到資料來源的方式。 | 
|  Default  |  預設資料來源表示將針對新面板預先選取。 | 
|  URL  |  Zipkin 執行個體的 URL，例如 http://localhost:9411。 | 
|  Access  |  伺服器 （預設） = 需要從 Grafana 後端/伺服器存取 URL。 | 
|  Basic Auth  |  啟用 Zipkin 資料來源的基本身分驗證。 | 
|  User  |  基本身分驗證的使用者名稱。 | 
|  Password  |  基本身分驗證的密碼。 | 

## 查詢追蹤
<a name="zipkin-query-traces"></a>

 您可以透過探索來查詢和顯示來自 Zipkin 的追蹤。

 Zipkin 查詢編輯器可讓您透過追蹤 ID 直接查詢，或從追蹤選取器中選取追蹤。若要依追蹤 ID 查詢，請將 ID 插入文字輸入。

 使用追蹤選取器從您在探索中選取的時間範圍中記錄的所有追蹤中選取特定追蹤。追蹤選取器有三種巢狀層級：1。您感興趣的服務。1. 特定操作是所選服務 1 的一部分。所選取操作發生的特定追蹤，以根操作名稱和追蹤持續時間表示。

## 追蹤 UI 中的資料映射
<a name="zipkin-data-mapping-in-the-trace-ui"></a>

 Zipkin 註釋在追蹤檢視中顯示為日誌，註釋值顯示在註釋索引鍵下。

## 從日誌連結到追蹤 ID
<a name="zipkin-linking-trace-id-from-logs"></a>

 您可以透過使用內部連結設定衍生欄位，從 Loki 中的日誌連結到 Zipkin 追蹤。如需詳細資訊，請參閱[衍生欄位](using-loki-in-AMG.md#loki-derived-fields)。