granfna展示mysql數據源


一、介紹

官方文檔

二、添加mysql數據源

  1. 單擊頂部標題中的Grafana圖標,以打開側面菜單。
  2. 在該Dashboards鏈接下的側面菜單中,您將找到一個名為的鏈接Data Sources。
  3. 單擊+ Add data source頂部標題中的按鈕。
  4. 從類型下拉列表中選擇MySQL

1.數據源選項

名稱 描述
名稱 數據源名稱。這是您在面板和查詢中引用數據源的方式。
默認 默認數據源意味着將為新面板預先選擇它。
主辦 MySQL實例的IP地址/主機名和可選端口。
數據庫 MySQL數據庫的名稱。
用戶 數據庫用戶的登錄名/用戶名
密碼 數據庫用戶密碼
最大開度 默認情況下,與數據庫的最大打開連接數unlimited(Grafana v5.4 +)。
最大閑置 空閑連接池中的最大連接數,默認2(Grafana v5.4 +)。
最大壽命 可以重用連接的最長時間(以秒為單位),默認為14400/ 4小時。該值應始終低於MySQL(Grafana v5.4 +)中配置的wait_timeout

2.最小時間間隔

$ __ interval和$ __ interval_ms變量的下限。建議設置為寫入頻率,例如,1m如果每分鍾寫入一次數據。
也可以在儀表板面板中的數據源選項下覆蓋/配置此選項。重要的是要注意,此值需要格式化為數字,后跟有效的時間標識符,例如1m(1分鍾)或30s(30秒)。
支持以下時間標識符:Y M W d h m s ms

3.數據庫用戶權限

granfna對查詢語句不做檢查,也就是說類似drop和delete的操作也可以執行。所以要創建一個單獨的用戶,限制為查詢權限。

CREATE USER 'grafanaReader' IDENTIFIED BY 'password';
GRANT SELECT ON mydatabase.mytable TO 'grafanaReader';

三、新建模板

新建模板,在保存時才可以設置名稱。

四、time series查詢編輯器

示例:Time series查詢

time series在編輯查詢的時候有很多grafana默認的設置:

  1. 查詢必須返回一列time,該列返回SQL日期時間或表示Unix紀元的任何數字數據類型。也就是示例中的time column設置。
  2. 除time和metric以外的任何列均被視為值列。也就是示例中select。
  3. 返回一個名為metricvalue的列,該列用作度量標准名稱。也就是示例中的metric column設置。
  4. 如果返回多個值列和名為的列,metric則此列將用作系列名稱的前綴(僅在Grafana 5.3+中可用)。

1.Format as

format as 可選擇兩種:table和Time series。table比較簡單,sql的約束也少,基本上就是mysql的查詢結果,按表格展示出來。
time series有一些麻煩,本文也重點講time series

2.宏

宏示例 描述
$__time(dateColumn) 將被表達式替換以轉換為UNIX時間戳並將列重命名為time_sec。例如,UNIX_TIMESTAMP(dateColumn)為time_sec
$__timeEpoch(dateColumn) 將被表達式替換以轉換為UNIX時間戳並將列重命名為time_sec。例如,UNIX_TIMESTAMP(dateColumn)為time_sec
$__timeFilter(dateColumn) 將使用指定的列名替換為時間范圍過濾器。例如,dateColumn BETWEEN FROM_UNIXTIME(1494410783)和FROM_UNIXTIME(1494410983)
$__timeFrom() 將由當前活動時間選擇的開始代替。例如,FROM_UNIXTIME(1494410783)
$__timeTo() 將被當前活動時間選擇的結尾替換。例如,FROM_UNIXTIME(1494410983)
$__timeGroup(dateColumn,'5m') 將由GROUP BY子句中可用的表達式替換。例如,* cast(cast(cast(UNIX_TIMESTAMP(dateColumn)/(300)簽名)300簽名)),
$__timeGroup(dateColumn,'5m', 0) 與上述相同,但具有填充參數,因此該系列中的缺失點將由grafana添加,並將0用作值。
$__timeGroup(dateColumn,'5m', NULL) 與上述相同,但將NULL用作缺失點的值。
$__timeGroup(dateColumn,'5m', previous) 與上面相同,但是如果未看到任何值但將使用NULL,則該系列中的先前值將用作填充值(僅在Grafana 5.3+中可用)。
$__timeGroupAlias(dateColumn,'5m') 將替換為與$ __ timeGroup相同,但添加的列別名(僅在Grafana 5.3+中可用)。
$__unixEpochFilter(dateColumn) 將使用指定列名的時間范圍過濾器替換,時間以Unix時間戳表示。例如,dateColumn> 1494410783和dateColumn <1494497183
$__unixEpochFrom() 將被當前活動時間選擇的開始替換為Unix時間戳。例如1494410783
$__unixEpochTo() 當前活動時間選擇的結尾將被替換為Unix時間戳。例如1494497183
$__unixEpochNanoFilter(dateColumn) 將被使用指定列名的時間范圍過濾器替換,時間以納秒時間戳表示。例如,dateColumn> 1494410783152415214和dateColumn <1494497183142514872
$__unixEpochNanoFrom() 將被當前活動時間選擇的開始替換為納秒時間戳。例如1494410783152415214
$__unixEpochNanoTo() 當前活動時間選擇的結尾將被替換為納秒級時間戳。例如1494497183142514872
$__unixEpochGroup(dateColumn,'5m', [fillmode]) 與$ __ timeGroup相同,但時間存儲為Unix時間戳(僅在Grafana 5.3+中可用)。
$__unixEpochGroupAlias(dateColumn,'5m', [fillmode]) 與上述相同,但還添加了列別名(僅在Grafana 5.3+中可用)。

3.Generated Sql

SELECT
  UNIX_TIMESTAMP(data_statistic_time) DIV 600 * 600 AS "time",
  channel_spec AS metric,
  count(data_gather_count) AS "采集量"
FROM data_statistic
WHERE
  data_statistic_time BETWEEN FROM_UNIXTIME(1596791926) AND FROM_UNIXTIME(1597396726)
GROUP BY 1,2
ORDER BY UNIX_TIMESTAMP(data_statistic_time) DIV 600 * 600


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM