使用 Athena 資料來源 - Amazon Managed Grafana

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

使用 Athena 資料來源

IAM 政策

Grafana 需要透過 IAM 授予許可,才能讀取 Athena 指標。您可以將這些許可附加到 IAM 角色,並利用 Grafana 內建的假設角色支援。請注意,在將資料來源新增至 Grafana 之前,您需要為角色設定必要的原則。您需要管理員或編輯者角色才能新增資料來源。內建的 Amazon Grafana Athena 存取政策在本節中定AWS 受管理的策略: AmazonGrafanaAthenaAccess 義。

查詢 Athena 資料

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

巨集

巨集 描述 範例 輸出範例
$__dateFilter(column) $__dateFilter創建一個條件過濾器,該過濾器根據面板的日期範圍選擇數據(使用column)。 $__date(my_date) my_date BETWEEN date '2017-07-18' AND date '2017-07-18'
$__parseTime(column,format) $__parseTimevarchar 轉換為具有給定格式的時間戳 $__parseTime(eventtime, 'yyyy-MM-dd''T''HH:mm:ss''Z') parse_datetime(time,'yyyy-MM-dd''T''HH:mm:ss''Z')
$__timeFilter(column,format) $__timeFilter創建一個條件,根據面板的時間範圍過濾數據(使用column)。第二個參數用於選擇性地將列從 varchar 解析為具有特定格式的時間戳。 $__timeFilter(time, 'yyyy-MM-dd HH:mm:ss') TIMESTAMP time BETWEEN TIMESTAMP '2017-07-18T11:15:52Z' AND TIMESTAMP '2017-07-18T11:15:52Z'
$__timeFrom() $__timeFrom輸出帶引號的面板範圍的當前開始時間。 $__timeFrom() TIMESTAMP '2017-07-18 11:15:52'
$__timeTo() $__timeTo 輸出帶引號的面板範圍的當前結束時間。 $__timeTo() TIMESTAMP '2017-07-18 11:15:52'
$__timeGroup(column, '1m', format) $__timeGroup 將時間戳記分組,以便圖表上的每個週期只有 1 個點。第三個參數用於選擇性地將列從 varchar 解析為具有特定格式的時間戳。 $__timeGroup(time,'5m','yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z') FROM_UNIXTIME(FLOOR(TO_UNIXTIME(parse_datetime(time,'yyyy-MM-dd''T''HH:mm:ss.SSSSSS''Z'))/300)*300)
$__table $__table返回在表選擇器中選擇的 $__table my_table
$__column $__column返回在列選擇器中選擇的(它需要一個表)。 $__column col1

可视化

Athena 中的大多數查詢最能以表格視覺效果表示。查詢會在資料表中顯示傳回資料。如果它可以被查詢,那麼它可以被顯示為一個表。

此範例會傳回表格視覺效果的結果:

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

時間/圖形視覺效果

對於時間序列和圖形視覺效果,您必須:

  • 選取具有datedatetime類型的欄。該date列必須按升序排列(使用ORDER BY column ASC)。

  • 還可以選擇一個數字列。

檢查查詢

Amazon 受管的 Grafana 支援 Athena 不支援的巨集,這表示將查詢直接複製並貼到 Athena 時可能無法運作。若要檢視直接在 Athena 中運作的完整內插查詢,請按一下 「查詢檢查器」 按鈕。完整查詢會顯示在「查詢」頁籤下。

模板和變量

如需新增 Athena 查詢變數的詳細資訊,請參閱新增查詢變數。使用您的 Athena 資料來源做為可用查詢的資料來源。

從 Athena 資料表查詢的任何值都可以當做變數使用。避免選取過多的值,因為這可能會造成效能問題。

建立變數之後,您可以在 Athena 查詢中使用變數語法。如需變數的更多資訊,請參閱模板和變量

註釋

註釋允許您在圖形頂部覆蓋豐富的事件信息。您可以選取面板或使用「圖標板」功能「註釋」檢視來新增註釋查詢來新增註釋

用於自動添加註釋的示例查詢:

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

下表顯示可用來轉譯註釋之欄的說明:

名稱 描述
Time 日期/時間欄位的名稱。可能是具有原生 SQL 日期/時間資料類型或紀元值的資料行。
Timeend 結束日期/時間欄位的選擇性名稱。可能是具有原生 SQL 日期/時間資料類型或紀元值的資料行。(Grafana 6.6+)
Text 事件描述欄位。
Tags 用於事件標籤 (以逗號分隔字串形式) 的選用欄位名稱。

非同步查詢資料支援

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

查詢結果重用

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

注意

此功能要求您的 Athena 執行個體使用引擎版本 3。如需詳細資訊,請參閱 Amazon Athena 使用者指南中的變更 Athena 引擎版本