亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于JSON-RPC的Grafana數(shù)據(jù)可視化的另類方法設(shè)計(jì)*

        2021-11-19 02:48:22重慶市氣象信息與技術(shù)保障中心李文釗趙芳楊永毅趙思亮
        關(guān)鍵詞:數(shù)據(jù)源插件調(diào)用

        重慶市氣象信息與技術(shù)保障中心 李文釗 趙芳 楊永毅 趙思亮

        通過(guò)對(duì)JSON-RPC通信協(xié)議和Grafana的研究,提出一種脫離Zabbix主體(Zabbix Server+Zabbix Agent)與Grafana獨(dú)立交互數(shù)據(jù)的方法,并詳細(xì)介紹了數(shù)據(jù)交互的格式及其交互過(guò)程,實(shí)現(xiàn)對(duì)任意數(shù)據(jù)的Grafana可視化展示。

        0 引言

        Grafana是一款開(kāi)源數(shù)據(jù)可視化工具,它可以將枯燥的數(shù)據(jù)通過(guò)美觀、直接的圖形、圖表等形式展現(xiàn)出來(lái),同時(shí)還提供了對(duì)數(shù)據(jù)的監(jiān)控、統(tǒng)計(jì)和告警等功能,可以說(shuō)是目前最完美的數(shù)據(jù)可視化工具之一[1]。它是通過(guò)Go語(yǔ)言開(kāi)發(fā),用戶層面想開(kāi)發(fā)這樣的數(shù)據(jù)可視化工具非常困難,即使直接使用它,也需要對(duì)Go語(yǔ)言有極其深入的了解。Grafana可以為多種數(shù)據(jù)源提供豐富的插件,使得用戶不需要了解Go語(yǔ)言,只需知道插件對(duì)應(yīng)的設(shè)置規(guī)則,就可以方便的使用它。

        Zabbix是一個(gè)企業(yè)級(jí)分布式開(kāi)源監(jiān)控解決方案,也是當(dāng)前使用最普遍的監(jiān)控系統(tǒng)之一[2]。Grafana為Zabbix提供了數(shù)據(jù)源插件,Zabbix用戶可以非常方便的通過(guò)Grafana顯示數(shù)據(jù)。然而,對(duì)于Zabbix Agent不支持的數(shù)據(jù)(任意數(shù)據(jù)),要想完成數(shù)據(jù)在Grafana的顯示就特別麻煩,除了要依托龐大的Zabbix服務(wù)器系統(tǒng)外還需要通過(guò)Zabbix API編寫相應(yīng)的通信程序或者編寫相應(yīng)通信腳本才能實(shí)現(xiàn)。實(shí)際上,有些數(shù)據(jù)在監(jiān)控系統(tǒng)中并不參與控制,僅僅是為了顯示(可視化)而已。能否不通過(guò)Zabbix主體系統(tǒng)讓Grafana直接顯示想要可視化的數(shù)據(jù)成為我們研究的重點(diǎn)問(wèn)題,本文正是針對(duì)這一問(wèn)題,提出一種可以脫離Zabbix主體讓Grafana獨(dú)立顯示數(shù)據(jù)的方法。

        1 Zabbix數(shù)據(jù)源插件

        Zabbix數(shù)據(jù)源插件是Grafana公司開(kāi)發(fā)針對(duì)Zabbix的基于JSON-RPC規(guī)范的通信接口,是Grafana和Zabbix之間交互的橋梁。它把復(fù)雜的數(shù)據(jù)可視化過(guò)程簡(jiǎn)化為JSON-RPC的使用過(guò)程。

        2 JSON-RPC協(xié)議

        JSON-RPC是一個(gè)基于TCP的無(wú)狀態(tài)且輕量級(jí)的RPC(遠(yuǎn)程過(guò)程調(diào)用)交互協(xié)議[3],客戶端發(fā)起遠(yuǎn)程調(diào)用時(shí)向服務(wù)端發(fā)送請(qǐng)求報(bào)文,服務(wù)端響應(yīng)請(qǐng)求,將返回報(bào)文發(fā)送給客戶端。其請(qǐng)求報(bào)文和返回報(bào)文中的數(shù)據(jù)對(duì)象則是用JSON作為數(shù)據(jù)類型來(lái)表征的。

        RPC調(diào)用對(duì)象包含如下JSON成員:

        jsonrpc:JSON-RPC版本(JSON-RPC 2.0)method:調(diào)用的方法名

        params:方法傳入的參數(shù),若無(wú)參數(shù)則傳入[]id:調(diào)用標(biāo)識(shí)符。用于標(biāo)示一次遠(yuǎn)程調(diào)用過(guò)程響應(yīng)對(duì)象包含如下JSON成員:

        jsonrpc:JSON-RPC版本,固定為2.0.

        Result:方法返回值。若無(wú)返回值,則返回null。若調(diào)用錯(cuò)誤,返回null

        error:調(diào)用時(shí)錯(cuò)誤,無(wú)錯(cuò)誤返回null。id:調(diào)用標(biāo)識(shí)符,與調(diào)用方傳入的標(biāo)識(shí)符一致。以上就是JSON-RPC協(xié)議規(guī)范。

        3 Grafana和Zabbix數(shù)據(jù)交互過(guò)程分析

        Agent數(shù)據(jù)通過(guò)Zabbix主體和Grafana交互[4],非Agent數(shù)據(jù)則需要通過(guò)Zabbix API或腳本處理程序,再通過(guò)Zabbix主體和Grafana交互才能實(shí)現(xiàn)數(shù)據(jù)的可視化,如圖1所示。

        圖1 Grafana和Zabbix數(shù)據(jù)交互示意圖Fig.1 Schematic diagram of data interaction between Grafana and Zabbix

        Grafana通過(guò)Zabbix數(shù)據(jù)源插件向Zabbix發(fā)起RPC遠(yuǎn)程過(guò)程調(diào)用,調(diào)用方法和參數(shù)包含在Method和Params指定的對(duì)象中。Zabbix響應(yīng)RPC遠(yuǎn)程過(guò)程調(diào)用,將返回?cái)?shù)據(jù)封裝在Result指定的對(duì)象中傳給Grafana Zabbix端調(diào)用接口為:http://Zabbix server IP/api_jsonrpc.php。

        下面為主要的交互過(guò)程和具體數(shù)據(jù)格式(其中參數(shù)為實(shí)測(cè)參數(shù)):

        請(qǐng)求:{"id":2,"jsonrpc":"2.0","method":"apiinfo.version","params":{}}

        響應(yīng):{"jsonrpc":"2.0","result":"5.0.0","id":2}

        請(qǐng)求:

        {"id":2,"jsonrpc":"2.0","method":"user.login","params":{"password":"****","user":"Admin"}}

        響應(yīng):{"jsonrpc":"2.0","result":"b980098ddaf02d 0108b4dc8cb3f1e43c","id":2}

        請(qǐng)求:{"auth":" b980098ddaf02d0108b4dc8cb 3f1e43c ","id":2,"jsonrpc":"2.0","me

        thod":"history.get","params":{"history":"3","itemids":["32216"],"output":"extend","sortfield":"clock","sortorder":"ASC","time_from":1625469924,"time_till":1625491524}}

        響應(yīng):{"jsonrpc":"2.0","result":[{"itemid":"32216","clock":"1625473985","value":

        "165","ns":"602612574"},{"itemid":"32216","clock":"1625474036","value":"164",

        "ns":"147968452"},...],"id":2}

        其中apiinfo.version、user.login方法的請(qǐng)求為身份認(rèn)證;history.get方法的請(qǐng)求就是提交單個(gè)具體itemid可視化數(shù)據(jù)的請(qǐng)求,它的響應(yīng)中的result下的value即為可視化數(shù)據(jù)。

        4 脫離Zabbix主體的數(shù)據(jù)交互方法

        從前文分析可以知道,數(shù)據(jù)送達(dá)Grafana做可視化展示,最后環(huán)節(jié)是Grafana和Zabbix接口http://Zabbix server IP/api_jsonrpc.php通信這一步。如果我們模仿Zabbix接口,把要可視化的數(shù)據(jù),按照J(rèn)SON-RPC協(xié)議規(guī)范封裝在Result中直接傳給Grafana,就可以脫離Zabbix主體,同樣可以做到相同的效果,如圖2所示。

        圖2 脫離Zabbix主體數(shù)據(jù)交互示意圖Fig.2 Schematic diagram of data interaction separated from Zabbix main body

        4.1 請(qǐng)求數(shù)據(jù)解析

        4.2 響應(yīng)數(shù)據(jù)封裝

        數(shù)據(jù)按照:(i_till-i_from)/60個(gè)采樣點(diǎn)采樣

        以String型放置緩沖區(qū):buff[i](i為采樣點(diǎn))

        那么result的"clock"和"value"的封裝過(guò)程為:

        4.3 數(shù)據(jù)交互

        本方法采用應(yīng)用程序方式,在本機(jī)IP,80端口建立TCP監(jiān)聽(tīng),根據(jù)Grafana的請(qǐng)求,把裝好的響應(yīng)數(shù)據(jù)返回Grafana。程序結(jié)構(gòu)如圖3所示。

        圖3 程序結(jié)構(gòu)圖Fig.3 Program structure diagram

        實(shí)際當(dāng)中,為避免交互數(shù)據(jù)超過(guò)MTU,這部分程序應(yīng)在專門的線程中來(lái)處理。

        5 結(jié)語(yǔ)

        Grafana支持多種數(shù)據(jù)源,其設(shè)計(jì)遵循依賴倒置原則,就是都不為任何具體的數(shù)據(jù)源適配專門的解決方案,通過(guò)聲明接口,讓數(shù)據(jù)源自己去實(shí)現(xiàn)。那么,我們只要知道數(shù)據(jù)源的數(shù)據(jù)格式和交互規(guī)則,完全可以使用本文的方法,脫離數(shù)據(jù)源監(jiān)控軟件主體,從而更加直接方便地實(shí)現(xiàn)數(shù)據(jù)的Grafana可視化。

        引用

        [1] 常興華.指控系統(tǒng)運(yùn)行管理軟件的設(shè)計(jì)[J].自動(dòng)化技術(shù)與應(yīng)用,2021,40(5):44-47.

        [2] VLADISHEV A.Zabbix:an enterprise-class open source distributed monitoring solution[EB/OL].http://www.zabbix.com/[Accessed:21-Juli-2010],2010.

        [3] Kang P,Wei Y,Wei Z.Control system for granary ventilation based on embedded networking and Qt technology[C]// 2017 29th Chinese Control And Decision Conference(CCDC).IEEE,2017.

        [4] Zhao Zhe,Tan Hai-bo,Zhao He,et al.Network monitoring system based on Zabbix[J].Computer Technology and Development,2018,28(1):144-149.

        猜你喜歡
        數(shù)據(jù)源插件調(diào)用
        自編插件完善App Inventor與樂(lè)高機(jī)器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
        基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評(píng)價(jià)研究
        基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
        MapWindowGIS插件機(jī)制及應(yīng)用
        基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評(píng)價(jià)算法
        基于Revit MEP的插件制作探討
        分布式異構(gòu)數(shù)據(jù)源標(biāo)準(zhǔn)化查詢?cè)O(shè)計(jì)與實(shí)現(xiàn)
        国产看黄网站又黄又爽又色| 久久国产黄色片太色帅| 亚洲av无码无限在线观看| 成人片黄网站色大片免费观看cn| 8av国产精品爽爽ⅴa在线观看| 人妻少妇无乱码中文字幕| 虎白m粉嫩小在线播放| 亚洲热妇无码av在线播放| 精品免费在线| 国产一区二区三区免费主播| 国产91色综合久久免费| 国产亚洲2021成人乱码| 久久香蕉成人免费大片| 亚洲视频在线视频在线视频| 手机看片自拍偷拍福利| 亚洲国产一区二区a毛片| 啪啪视频一区二区三区入囗| 免费蜜桃视频在线观看| 久久人妻av一区二区软件| 欧美xxxx黑人又粗又长精品| 超碰性爱| 中文字幕人妻在线少妇| 风韵多水的老熟妇| 亚洲中文av一区二区三区| 日韩精品自拍一区二区| 精品日韩亚洲av无码| 国产成人综合久久精品免费 | 337人体做爰大胆视频| 日韩中文字幕精品免费一区| 国产精品高湖呻呤久久av| 国产欧美一区二区三区在线看| 狠干狠爱无码区| 精品亚洲视频免费观看网站| 日本三级片在线观看| 中文字幕熟妇人妻在线视频| 狠狠色噜噜狠狠狠狠97俺也去| 久久一区二区三区老熟女| 国产人妻丰满熟妇嗷嗷叫| 在线观看av手机网址| 中文字幕精品一区二区三区av| 国产精品多人p群无码|