導航:首頁 > 數據處理 > grafana為什麼要配置數據源

grafana為什麼要配置數據源

發布時間:2023-02-11 14:46:10

A. Grafana的介紹與使用

Grafana是一款用Go語言開發的開源數據可視化工具,可以做數據監控和數據統計,帶有告警功能。目前使用grafana的公司有很多,如paypal、ebay、intel等。

①可視化:快速和靈活的客戶端圖形具有多種選項。面板插件為許多不同的方式可視化指標和日誌。
②報警:可視化地為最重要的指標定義警報規則。Grafana將持續評估它們,並發送通知。
③通知:警報更改狀態時,它會發出通知。接收電子郵件通知。
④動態儀表盤:使用模板變數創建動態和可重用的儀錶板,這些模板變數作為下拉菜單出現在儀錶板頂部。
⑤混合數據源:在同一個圖中混合不同的數據源!可以根據每個查詢指定數據源。這甚至適用於自定義數據源。
⑥注釋:注釋來自不同數據源圖表。將滑鼠懸停在事件上可以顯示完整的事件元數據和標記。
⑦過濾器:過濾器允許您動態創建新的鍵/值過濾器,這些過濾器將自動應用於使用該數據源的所有查詢。

Dashboard的建立都是基於某一個數據源的,所以要先加一個數據源。

可視化方式有很多種,不過Graph、Table、Pie chart 這三種基本就已經滿足數據展現要求了。

把這個Graph折線圖Copy一份,改一下展現方式即可。

注意:默認添加完table後,如果有數字,會以K為單位,比如將300000展示位30k。
數字展示方式修改,Add column style:

當表格中出現數據後,需要通過篩選條件進行篩選,grafana提供了模板變數用於自定義篩選欄位。
Type:定義變數類型
Query:這個變數類型允許您編寫一個數據源查詢,該查詢通常返回一個 metric names, tag values or keys。例如,返回erver names, sensor ids or data centers列表的查詢。
interval:interval值。這個變數可以代表時間跨度。不要按時間或日期直方圖間隔硬編碼一個組,使用這種類型的變數。

Datasource:此類型允許您快速更改整個儀錶板的數據源。如果在不同環境中有多個數據源實例,則非常有用。
Custom:使用逗號分隔列表手動定義變數選項。
Constant:定義一個隱藏常數。有用的metric路徑前綴的dashboards,你想分享。在dashboard export,期間,常量變數將作為一個重要的選項。
Ad hoc filters:非常特殊類型的變數,只對某些數據源,InfluxDB及Elasticsearch目前。它允許您添加將自動添加到使用指定數據源的所有metric查詢的key/value 過濾器。

上面的Table和Graph分別使用了interval和query來定義變數進行篩選,不再重復。

grafana只有graph支持告警通知。
grafana的告警通知渠道有很多種,像Email、Teams、釘釘等都有支持。
在grafana.ini中開啟告警:

要能發送郵件通知,首先需要在配置文件grafana.ini中配置郵件伺服器等信息:

Grafana是個功能強大、展現層很漂亮的數據可視化監控工具,本篇主要介紹了Grafana基於MySQL數據源的安裝及常用姿勢,也支持其他數據源如ElasticSearch、InfluxDB等。更多內容可看 官網

B. 資料庫編程 為什麼要設置數據源

在VC中動態載入ODBC的方法

在使用 VC、 VB、 Delphi等高級語言編寫資料庫應用程序時,往往需要用戶自己在控制面板中配置 ODBC數據源。對於一般用戶而言,配置 ODBC數據源可能是一件比較困難的工作。而且,在實際應用中,用戶往往要求在同一個應用程序中訪問不同的數據源,因此採用一般的載入方法就有了無法克服的缺陷。為能在程序中完成這一工作,方便應用程序的使用,本文以 VC為開發環境介紹兩種在應用程序中動態載入 ODBC系統數據源的方法。
方法一:修改注冊表
設計思路
一般情況下,當用戶在控制面板中配置好 ODBC數據源後, Windows系統便在注冊表中加入了一些子鍵來存儲用戶的配置結果。當應用程序需要用到數據源時, Windows便會通知底層介面查閱注冊表中該數據源的配置。如果用戶刪除了某個 ODBC數據源,那麼也會在注冊表中有所反應。如果配置的數據源是用戶數據源, Windows系統便會修改注冊表的 HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI子鍵;如果配置的數據源是系統數據源, Windows系統便會修改注冊表的 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI主鍵。因此,我們可以在應用程序中使用 Windows API中的注冊表編輯函數來完成 Windows所做的工作,這樣就可以達到動態載入數據源的目的。
具體實現
對於不同類型的數據源,注冊表的修改也各有不同,但基本上都要修改兩個地方。一個是在 ODBC.INI子鍵下建立一個與數據源描述名同名的子鍵,並在該子鍵下建立與數據源配置相關的項;另一個是在 \ODBC.INI\ODBC Data Sources子鍵下建立一個新項以便告訴驅動程序管理器 ODBC數據源的類型。下面以配置一個 Microsoft Access數據源為例給出實現此功能的函數的代碼。
/* strSourceName是要創建的數據源名, strSourceDb是資料庫存放路徑, strDescription是數據源的描述字元串。* /
BOOL CLoadOdbcDlg:: LoadDbSource(CString strSourceName,CString strSourceDb, CString strDescription)
{
//存放打開的注冊表鍵
HKEY hKey;
DWORD dw;
//存放注冊表 API函數執行的返回值
LONG lReturn;
//存放要打開的子鍵
CString strSubKey;
//檢測是否安裝了 MS Access ODBC driver:odbcjt32.dll
//獲得 Windows系統目錄
char sysDir[MAX_PATH];
char drvName[]=" \\odbcjt32.dll" ;
::GetSystemDirectory (sysDir,MAX_PATH);
strcat(sysDir,drvName);
CFileFind findFile;
if(!findFile.FindFile (sysDir))
{
AfxMessageBox("您的計算機系統中沒有安裝 MS Access的 ODBC驅動程序 odbcjt32.dll,您將無法載入該類數據源。 " ,MB_OK|MB_ICONSTOP);
return false;
}
strSubKey=" SOFTWARE\\ODBC\\ODBC.INI\\"+ strSourceName;
//創建 ODBC數據源在注冊表中的子鍵
lReturn=::RegCreateKeyEx(HKEY_LOCAL_
MACHINE,(LPCTSTR)strSubKey,0,NULL,REG_OPTION
_NON_VOLATILE,KEY_WRITE,NULL,& hKey,& dw);
if(lReturn != ERROR_SUCCESS)
return false;
//設置數據源的各項參數
CString strDbq=strSourceDb;
CString strDriver=sysDir;
DWORD dwDriverId=25;
CString strFil=" MS Access" ;
CString strPwd=strSourceName;
DWORD dwSafeTransactions=0;
CString strUid=strSourceName;
::RegSetValueEx (hKey," DBQ" ,0L,REG_SZ,
(CONST BYTE* )((LPCTSTR) strDbq),strDbq .GetLength ()) ; ::RegSetValueEx (hKey," Description" ,0L,REG_SZ,(CONST BYTE* )((LPCTSTR)strDescription),strDescription.GetLength());
::RegSetValueEx (hKey," Driver" ,0L,REG_SZ,(CONST BYTE* )((LPCTSTR)strDriver),strDriver .GetLength ());
::RegSetValueEx (hKey," DriverId" ,0L,REG_DWORD,(CONST BYTE* )(& dwDriverId),sizeof(dw));
::RegSetValueEx (hKey," FIL" ,0L,REG_SZ,
(CONST BYTE* )((LPCTSTR) strFil),strFil .GetLength ());
::RegSetValueEx (hKey," PWD" ,0L,REG_SZ,
(CONST BYTE* )((LPCTSTR)strPwd),strPwd.GetLength ()) ; ::RegSetValueEx (hKey," SafeTransactions" ,0L,
REG_DWORD,(CONST BYTE* )(& dwSafeTransactions),sizeof(dw));
::RegSetValueEx (hKey," UID" ,0L,REG_SZ,
(CONST BYTE* )((LPCTSTR)strUid),strUid .GetLength ()); ::RegCloseKey(hKey);
//創建 ODBC數據源的 Jet子鍵
strSubKey+ =" \\Engines\\Jet" ;
lReturn=::RegCreateKeyEx (HKEY_LOCAL_MACHINE ,(LPCTSTR)strSubKey,0,NULL,REG_OPTION_NON_
VOLATILE,KEY_WRITE,NULL,& hKey,& dw);
if(lReturn != ERROR_SUCCESS)
return false;
//設置該子鍵下的各項參數
CString strImplict=" " ;
CString strUserCommit=" Yes" ;
DWORD dwPageTimeout=5;
DWORD dwThreads=3;
DWORD dwMaxBufferSize=2048;
::RegSetValueEx (hKey," ImplictCommitSync" ,0L,REG_SZ,(CONST BYTE* )((LPCTSTR)strImplict),strImplict.GetLength ()+ 1);
::RegSetValueEx (hKey," MaxBufferSize" ,0L,REG_DWORD,(CONST BYTE* )(& dwMaxBufferSize),sizeof(dw));
::RegSetValueEx (hKey," PageTimeout" ,0L,REG_DWORD,(CONST BYTE* )(& dwPageTimeout),sizeof(dw));
::RegSetValueEx (hKey," Threads" ,0L,REG_DWORD,(CONST BYTE* )(& dwThreads),sizeof(dw));
::RegSetValueEx (hKey," UserCommitSync" ,0L,REG_SZ,(CONST BYTE* )((LPCTSTR)strUserCommit),strUserCommit.GetLength ());
::RegCloseKey (hKey);
//設置 ODBC資料庫引擎名稱
lReturn=::RegOpenKeyEx (HKEY_LOCAL_MACHINE, " SOFTWARE\\ODBC\\ODBC.INI\\ODBC Data Sources" ,0L,KEY_WRITE,& hKey);
if(lReturn !=ERROR_SUCCESS)
return false;
CString strDbType=" Microsoft Access Driver (* .mdb)" ; ::RegSetValueEx (hKey,strSourceName,0L,REG_SZ,(CONST BYTE* )((LCTSTR)strDbType),strDbType.GetLength ());
return true;
}
由於在動態載入中,一般只會改變資料庫文件、數據源說明以及數據源描述,故上述函數可以實現應用中的大部分要求。如果應用中還需要作更多的改變,那麼也可以通過改變函數參數的方式加以實現。對於需要動態載入多種類型數據源的情況,可以用具有不同參數的重載函數去實現。
方法二:利用 DLL
設計思路
Windows系統子目錄中的動態鏈接庫 Odbcinst.dll提供了一個可以動態地增加、修改和刪除數據源的函數 SQLConfigDataSource()。該函數的原型如下:
BOOL SQLConfigDataSource(HWND hwndParent,WORD fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes);
hwndParent參數是父窗口句柄。如果該值為 NULL,將不會顯示與父窗口有關的對話框。
fRequest參數可以設置為下面的數值之一:
� ODBC_ADD_DSN:增加一個新的用戶數據源;
� ODBC_CONFIG_DSN:修改(配置)一個已經存在的用戶數據源;
� ODBC_REMOVE_DSN:刪除一個已經存在的用戶數據源;
� ODBC_ADD_SYS_DSN:增加一個新的系統數據源;
� ODBC_CONFIG_SYS_DSN:修改 (配置 )一個已經存在的系統數據源;
� ODBC_REMOVE_SYS_DSN:刪除一個已經存在的系統數據源。
lpszDriver參數用於傳遞資料庫引擎的名字,等同於方法一中 strDbType變數。
lpszAttirbutes參數是關鍵字的值,即一連串的 " keyname=value"字元串,每兩個字元串之間用 " \"隔開,如 DSN=Personnel Data\0UID=Smith\0DATABASE=Personnel。關於該參數的詳細設置請參閱 MSDN中 SQLConfigDataSource()函數的幫助文檔和各種 ODBC驅動程序文檔。
具體實現
由於 VC的預設庫文件中不包含 SQLConfigDataSource()函數,因此使用該函數之前需要將 odbcinst.h文件包含在工程的頭文件中,在工程的 Settings屬性對話框 Link屬性頁的 Object/library moles編輯框中增加 odbc32.lib,同時保證系統目錄 system32下有文件 odbccp32.dll。
仍以 Microsoft Access為例,設置數據源名為 demo,數據源描述為 "示例數據源 ",那麼在需要動態載入數據源的地方加入下列代碼即可:
::SQLConfigDataSource (NULL,ODBC_ADD_SYS_DSN," Microsoft Access Driver (* .mdb)"," DSN=demo\0Descirption=示例資料庫 " );
小結
上述兩種方法都可以實現動態載入各種類型的 ODBC數據源,並且在 Windows95/98/NT/2000環境下調試通過。方法一在實現時需要較多的代碼,方法二所需代碼雖少,但需要額外文件的支持,而且隨著數據源配置的靈活性的增加,為了形成 lpszAttributes字元串,其代碼長度也會相應增加。由於從控制面板配置數據源使得程序員可以獲得更加直觀的理解,所以對於注冊表中各項值以及相應項名稱的獲得除了可以查閱相關驅動程序的文檔外,程序員也可以在編程前先通過控制面板配置 ODBC數據源,然後根據注冊表中相應部分的內容進行編程。

======================================

Create Access data source name dynamically

This article was contributed by Madhava V.
This sample in this article was created using VC 5.0. The necessary .h and .lib files are present in the zip.
To create a DSN at run time you could use the SQLConfigDataSource API. Internally this information is stored in the registry. The syntax is attached below
SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0","DSN=TestDB\0DBQ=D:\\Database\\Friends.mdb\0DEFAULTDIR=D:\\DATABASE\0\0");
The problem is that if you want to accept the values from the user or set these values at run time by passing CString or char* will not work. This is because, when sprintf encounters a /0 it assumes it is the end of the string and ignores the rest of the data.
As a workaround you have to use the below mentioned code.
The following code places : where a /0 is expected and there is a loop which replaces a ":" with "/0". You will not be in a position to use sprintf because, when it encounters a /0 it assumes it is the end of the string and ignores the rest of the data.

char* szDesc;
int mlen;
szDesc=new char[256];
sprintf(szDesc,"DSN=%s: DESCRIPTION=TOC support source: DBQ=%s: FIL=MicrosoftAccess: DEFAULTDIR=D:\\Database:: ","TestDB","D:\\Friends.mdb");
mlen = strlen(szDesc);
for (int i=0; i <mlen; i++)
{
if (szDesc[i] == ':')
szDesc[i] = '\0';
}

if (FALSE == SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)szDesc))
MessageBox(hwnd,"Failed","INFORMATION",MB_OK);
else
MessageBox(hwnd,"Sucess","INFORMATION",MB_OK);

C. 4. Grafana使用mysql作為數據源,呈現圖表

近期在使用python寫一套模擬API請求的監控項目,考慮數據可視化這方面就採用grafana來呈現,下面來看看怎麼弄。

首先安裝好mysql,將監控的日誌數據寫入到mysql之中。如下圖:

好了,這里就已經准備好了相關的測試模擬數據。那麼下面就使用Grafana來配置圖表看看。

如果有不清楚Grafana怎麼安裝的朋友,可以點擊 這里 查看如何安裝部署。

按照腳本我已經設置好了 admin 的密碼為 newpwd 了。
輸入用戶名 admin 和 密碼 newpwd ,點擊 Log In 登錄系統。

在登陸系統後的首頁,就可以進行數據源的添加了。

訪問不了 localhost:3306 的原因是因為Grafana是使用docker容器啟動的,而容器當然沒有部署mysql。

所以,修改mysql訪問配置如下:

好了,數據源mysql已經配置好了。下一步就是配置圖表的呈現了。

下面來編寫一個SQL查詢來看看。

從上圖看出,從mysql中查詢的結果直接就可以從Grafana表格呈現了。

好了,基本上table表格已經呈現,但是單純這樣的一個表格滿足不了我的胃口。

那麼下面就來再整一個曲線圖來看看。

我不是想單獨增加一個新的面板,而是想在剛剛創建的table上面創建一個曲線圖,那麼該怎麼做呢?

從上這個圖表的配置我一開始也沒太理解清楚,配置過後,看著圖表呈現就更加好的理解了。

根據圖表的內容,我查詢的分析如上圖。

當然還可以呈現更加多的圖表,這里就基本介紹到這里啦。

D. grafana 配置數據源

1、添加數據源

目前支持的數據源有這些,不在這裡面的可以自己找插件安裝,比如比較常用的zabbix數據源,就可以通過安裝zabbix相關的插件來配置。

E. grafana 基本概念

數據源Data Source:grafana確切的說是一個前端展示工具,它自己不提供數據,所以必須給它配置數據源。目前支持的數據源有:Graphite, InfluxDB, OpenTSDB, Prometheus, Elasticsearch, CloudWatch,Zabbix等。
DashBoard:儀表盤,就像汽車儀表盤一樣可以展示很多信息,包括車速,水箱溫度等。Grafana的DashBoard就是以各種圖形的方式來展示從Datasource拿到的數據。
Row:DashBoard的基本組成單元,一個DashBoard可以包含很多個row。一個row可以展示一種信息或者多種信息的組合,比如系統內存使用率,CPU五分鍾及十分鍾平均負載等。所以在一個DashBoard上可以集中展示很多內容。
Panel:面板,實際上就是row展示信息的方式,支持表格(table),列表(alert list),熱圖(Heatmap)等多種方式,具體可以去官網上查閱。
Query Editor:Query Editor 顧名思義,就是查詢語句管理,類似與sql語句,每個面板都提供一個Query Editor,我們可以通過編寫語句來控制面板展示不同的圖表。
組織Organization:類似於用戶組,每個用戶可以擁有多個org,grafana有一個默認的main org。用戶登錄後可以在不同的org之間切換,前提是該用戶擁有多個org。不同的org之間完全不一樣,包括datasource,dashboard等都不一樣。創建一個org就相當於開了一個全新的視圖,所有的datasource,dashboard等都要再重新開始創建。
User:這個概念應該很簡單,不用多說。Grafana裡面用戶有三種角色admin,editor,viewer。admin許可權最高,可以執行任何操作,包括創建用戶,新增Datasource,創建DashBoard。editor角色不可以創建用戶,不可以新增Datasource,可以創建DashBoard。viewer角色僅可以查看DashBoard。

閱讀全文

與grafana為什麼要配置數據源相關的資料

熱點內容
作為產品經理如何寫app的邏輯 瀏覽:123
小米換機怎麼選擇第三方應用程序 瀏覽:248
酒店代理怎麼推廣 瀏覽:855
如何跟蹤小程序交互代碼 瀏覽:240
我想買個小程序在哪裡找 瀏覽:612
日照運營商大數據多少錢一條 瀏覽:80
電子表格如何設置數據下拉排序 瀏覽:610
春雪食品有什麼產品 瀏覽:229
車險怎麼代理保險 瀏覽:623
怎麼看狗幣交易了多少 瀏覽:246
微信上小程序怎麼綁定手機號 瀏覽:193
為什麼數據網路延遲一直100 瀏覽:989
喜雲怎麼添加自己的產品 瀏覽:368
車易升obd怎麼看數據 瀏覽:483
WEB應用程序設計專業學什麼 瀏覽:177
旅遊卡代理費用多少 瀏覽:191
網上怎麼代理五穀磨房 瀏覽:534
杭州職業技術學院附近哪裡住宿好 瀏覽:648
地平線3怎麼終結連續技術 瀏覽:705
如何免費試用電子產品 瀏覽:996