溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

UAVStack的慢SQL數(shù)據(jù)庫監(jiān)控功能及其實現(xiàn)是怎樣的

發(fā)布時間:2021-12-18 16:26:23 來源:億速云 閱讀:168 作者:柒染 欄目:網絡管理

本篇文章給大家分享的是有關UAVStack的慢SQL數(shù)據(jù)庫監(jiān)控功能及其實現(xiàn)是怎樣的,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

UAVStack是一個全維監(jiān)控與應用運維平臺。UAV.Monitor具備監(jiān)控功能,包含基礎監(jiān)控、應用/服務性能監(jiān)控、日志監(jiān)控、業(yè)務監(jiān)控等。在應用監(jiān)控中,UAV可以根據(jù)應用實例畫像;其中應用實例組件可以對日志、服務、客戶端等進行畫像;基于客戶端的畫像又分為Http、Dubbo、MQ、Kafka、JDBC、Redis、MongoDB等等。

一、背景

作為一個工作多年的程序員或運維人員,相信你一定遇到過以下情況:

場景一:系統(tǒng)出現(xiàn)異常情況,運維人員沒能在第一時間發(fā)現(xiàn),反而是業(yè)務方在使用過程中反饋系統(tǒng)崩潰、頁面點不開。查看系統(tǒng)日志,發(fā)現(xiàn)一直在報連接數(shù)據(jù)庫異常;

場景二:新功能上線穩(wěn)定運行一段時間后,用戶反饋頁面響應越來越慢,打開一個頁面要等好久。排查問題,發(fā)現(xiàn)是一個慢SQL影響了整個功能的體驗。

為此,UAVStack開發(fā)了數(shù)據(jù)庫監(jiān)控功能。最初,數(shù)據(jù)庫監(jiān)控功能只是對數(shù)據(jù)源、數(shù)據(jù)庫連接池進行了指標采集,通過客戶端畫像可以查看實時的數(shù)據(jù)庫連接池信息以及操作計數(shù)。最近UAVStack又解鎖了一項新功能——慢SQL監(jiān)控,使數(shù)據(jù)庫監(jiān)控功能更加完善。

今天小編就向大家介紹一下數(shù)據(jù)庫監(jiān)控的具體實現(xiàn)。文章中出現(xiàn)的以下關鍵字全部用簡稱代替:

· 中間件增強框架:英文MonitorFramework,簡稱MOF · 健康管理服務:英文HealthManager,簡稱HM · 監(jiān)控代理程序:英文MonitorAgent,簡稱MA

二、關鍵技術&UAV自研框架

· MOF Agent注入機制:MOF Agent的注入機制以Java agent以及Javaassit技術作為基礎支撐。Java agent負責攔截和轉換字節(jié)碼流,轉換過程中使用Javaassist進行解析和修改,在應用服務器生命周期的關鍵位置注入切點,為MOF框架初始化、應用的畫像信息和實時監(jiān)控數(shù)據(jù)信息捕獲提供基礎。

· InterceptFramework框架:在應用啟動的特定生命周期內改寫字節(jié)碼,植入特定的邏輯處理代碼,即畫像數(shù)據(jù)采集,采集的數(shù)據(jù)包含服務畫像以及客戶端畫像;客戶端畫像包含Http、Dubbo、MQ、Kafka、JDBC、Redis、MongoDB等常見的開源組件,系統(tǒng)中調用的第三方服務都會被列為是客戶端的對象,比如系統(tǒng)中調用了第三方系統(tǒng)的接口都屬于客戶端的范疇。

· CaptureFramework框架:通過InterceptFramework框架在特定的生命周期改寫字節(jié)碼植入特定的邏輯代碼,在植入的邏輯代碼中可以通過CaptureFramework畫像的Monitor捕獲體系的能力采集數(shù)據(jù)以及數(shù)據(jù)存儲。具體實現(xiàn)為采用doCapture來實現(xiàn)在特定的捕獲點執(zhí)行抓取數(shù)據(jù)行為,采用doPreStore來實現(xiàn)在存儲數(shù)據(jù)結構之前的一些捕獲動作,對抓取的數(shù)據(jù)進行特殊數(shù)據(jù)的處理,獲取到處理完成后的數(shù)據(jù)再通過UAVServer調用具體的Supporter,最后實現(xiàn)數(shù)據(jù)落地。

三、組成部分

慢SQL監(jiān)控的實現(xiàn)分為四個組成部分:

· 慢SQL的動態(tài)啟停:慢SQL的監(jiān)控啟/停依賴于MOF的Global Filter機制。在應用初始化時,UAV對應用的Filter進行了改寫,提供了向MOF下發(fā)指令的接口。只要調用接口傳入規(guī)定的參數(shù)便可以實現(xiàn)對慢SQL監(jiān)控的動態(tài)啟停。UAV系統(tǒng)中并不存在其它服務直接調用MOF的操作,都是通過MA來完成的。大家可以把MA理解為服務請求方與MOF之間的媒介。

· 慢SQL數(shù)據(jù)采集:依賴InterceptFramework框架在特定的生命周期改寫字節(jié)碼植入特定邏輯,同時采用MOF的CaptureFramework框架進行數(shù)據(jù)抓取并生成抓取結果。MA會對生成結果的文件進行定時采集并封裝成固定的數(shù)據(jù)結構發(fā)送至MQ。

· 數(shù)據(jù)存儲:在HM中創(chuàng)建獨立的feature進行數(shù)據(jù)處理,消費MA推送至MQ中的數(shù)據(jù),完成數(shù)據(jù)清洗再存儲至ES。由于數(shù)據(jù)采集的結果進行了特殊的約定,從MQ拿到的數(shù)據(jù)并不能直接轉換成相應的結果,需要進行相應的解析處理才能進行存儲(由于采集的數(shù)據(jù)中字段較多、可能含有特殊的字符會影響對數(shù)據(jù)的解析,在生成數(shù)據(jù)結果時有規(guī)則約束才能實現(xiàn)數(shù)據(jù)的正確解析)。數(shù)據(jù)庫監(jiān)控的feature還提供了查詢、統(tǒng)計慢SQL操作的相關接口。

· 頁面展示:操作頁面可自主啟停數(shù)據(jù)庫監(jiān)控,設置慢SQL的時間閾值。啟停以及時間閾值的設置依賴于MA向MOF發(fā)送指令。頁面展示的SQL統(tǒng)計、追蹤等信息則通過HM的接口獲取。

四、功能展示

數(shù)據(jù)庫監(jiān)控目前已實現(xiàn)的功能有SQL分類統(tǒng)計、數(shù)據(jù)庫連接池監(jiān)控、慢SQL耗時分布統(tǒng)計、慢SQL統(tǒng)計、慢SQL追蹤以及調用鏈/日志關聯(lián)功能。

SQL分類統(tǒng)計:

· 數(shù)據(jù)來源:OpenTSDB(通過畫像采集指標)

· 針對插入、刪除、更新、查詢、批量操作進行分類統(tǒng)計

· 根據(jù)時間分布展示數(shù)據(jù)庫的訪問情況,根據(jù)時間分布展示數(shù)據(jù)庫的訪問情況,展示所選時間段的總訪問計數(shù)(累計值)

· 可以自定義時間條件查詢歷史數(shù)據(jù)

UAVStack的慢SQL數(shù)據(jù)庫監(jiān)控功能及其實現(xiàn)是怎樣的

數(shù)據(jù)庫連接池監(jiān)控:

· 數(shù)據(jù)來源:OpenTSDB(通過畫像采集指標)

· 可以查看連接池總連接數(shù)、活動連接數(shù)、空閑連接數(shù)的變化曲線

UAVStack的慢SQL數(shù)據(jù)庫監(jiān)控功能及其實現(xiàn)是怎樣的

慢SQL耗時分布統(tǒng)計:

· 數(shù)據(jù)來源:ES

· 慢SQL統(tǒng)計可根據(jù)分類進行展示統(tǒng)計

· 針對慢SQL的耗時分布統(tǒng)計,最多查詢100條

· 根據(jù)時間分布展示數(shù)據(jù)庫慢SQL的訪問情況,展示當前時間點的慢SQL訪問時間、SQL、耗時

· 可以根據(jù)設置查詢歷史數(shù)據(jù)

UAVStack的慢SQL數(shù)據(jù)庫監(jiān)控功能及其實現(xiàn)是怎樣的

慢SQL統(tǒng)計:

· 數(shù)據(jù)來源:ES

· 針對所有類型的SQL

· 根據(jù)時間分布展示數(shù)據(jù)庫某時間段的慢SQL統(tǒng)計

· 可以根據(jù)設置查詢歷史數(shù)據(jù)

UAVStack的慢SQL數(shù)據(jù)庫監(jiān)控功能及其實現(xiàn)是怎樣的

慢SQL追蹤:

· 數(shù)據(jù)來源:ES

· 查詢條件為:關鍵字、是否慢SQL追蹤、時間范圍

· 根據(jù)搜索條件查詢SQL追蹤列表,列表展示內容為:SQL語句、總執(zhí)行次數(shù)、執(zhí)行總時間、平均執(zhí)行時間、操作-可查看詳情

UAVStack的慢SQL數(shù)據(jù)庫監(jiān)控功能及其實現(xiàn)是怎樣的

慢SQL追蹤-詳情查看:

· 數(shù)據(jù)來源:ES

· 慢SQL詳情:點擊某一條慢SQL統(tǒng)計可查看詳情:包含開始執(zhí)行時間、執(zhí)行時長、入參、執(zhí)行結果、影響條數(shù)

UAVStack的慢SQL數(shù)據(jù)庫監(jiān)控功能及其實現(xiàn)是怎樣的

慢SQL追蹤-調用鏈關聯(lián):

· 應用監(jiān)控中需開啟輕度調用鏈

· 點擊某一行詳細的執(zhí)行時間,可以跳轉至調用鏈頁面,查看調用鏈的詳細內容(相關的調用鏈高亮顯示)

UAVStack的慢SQL數(shù)據(jù)庫監(jiān)控功能及其實現(xiàn)是怎樣的

慢SQL追蹤-日志關聯(lián):

· 應用監(jiān)控中需開啟日志歸集

· 點擊某一行詳細的調用鏈內容的日志關聯(lián),可查看相應的日志信息,相關的日志行數(shù)高亮顯示

UAVStack的慢SQL數(shù)據(jù)庫監(jiān)控功能及其實現(xiàn)是怎樣的

五、總結

數(shù)據(jù)庫監(jiān)控是不容忽視的,好的數(shù)據(jù)庫監(jiān)控可以幫助優(yōu)化系統(tǒng)并進行實時預警。通過文中介紹的數(shù)據(jù)庫連接池監(jiān)控,運維人員可以隨時關注數(shù)據(jù)庫連接池的狀態(tài),有效防止系統(tǒng)出現(xiàn)連接池活動連接數(shù)占滿無法連接數(shù)據(jù)庫的情況;而慢SQL監(jiān)控功能可以動態(tài)展示一個系統(tǒng)的SQL情況,幫助優(yōu)化SQL語句,讓系統(tǒng)更穩(wěn)定。

以上就是UAVStack的慢SQL數(shù)據(jù)庫監(jiān)控功能及其實現(xiàn)是怎樣的,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI