本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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)
|
$__parseTime 將 varchar 轉換為具有給定格式的時間戳。 |
$__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
};
時間/圖形視覺效果
對於時間序列和圖形視覺效果,您必須:
-
選取具有
date
或datetime
類型的欄。該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
下表顯示可用來轉譯註釋之欄的說明:
名稱 | 描述 |
---|---|
|
日期/時間欄位的名稱。可能是具有原生 SQL 日期/時間資料類型或紀元值的資料行。 |
|
結束日期/時間欄位的選擇性名稱。可能是具有原生 SQL 日期/時間資料類型或紀元值的資料行。(Grafana 6.6+) |
|
事件描述欄位。 |
|
用於事件標籤 (以逗號分隔字串形式) 的選用欄位名稱。 |
非同步查詢資料支援
Amazon 受管 Grafana 中的 Athena 查詢會以非同步方式處理,以避免逾時。異步查詢使用單獨的請求來啟動查詢,然後檢查其進度,最後獲取結果。這可避免長時間執行的查詢逾時。
查詢結果重用
您可以重複使用先前查詢的結果來改善查詢效能。若要啟用查詢重複使用,請在查詢編輯器的 [查詢結果重複使用] 區段中啟用。這必須為您要重複使用查詢的每個查詢完成。
注意
此功能要求您的 Athena 執行個體使用引擎版本 3。如需詳細資訊,請參閱 Amazon Athena 使用者指南中的變更 Athena 引擎版本。