Prometheus是一套開源的系統(tǒng)監(jiān)控報警框架。它啟發(fā)于Google的borgmon 監(jiān)控系統(tǒng),由工作在 SoundCloud 的 google 前員工在 2012 年創(chuàng)建,作為社區(qū)開源項目進行開發(fā),并于2015年正式發(fā)布。2016年,Prometheus 正式加入 Cloud Native Computing Foundation,成為受歡迎度僅次于Kubernetes 的項目。 我們可以利用Prometheus強大的監(jiān)控功能來采集SAP ABAP Netweaver服務器上運行應用的各項日志。以SAP CRM Fiori應用My Opportunity為例,假設我開發(fā)了一個自定義日志功能,把所有用戶對Opportunity的讀操作明細, 包括請求者,請求日期和請求時間記錄在一個數據庫表里。 然后我希望借助Prometheus,定期地查詢Netweaver服務器,監(jiān)控它服務了讀請求的數量。下面是具體步驟。 (1) 在CRM My Opportunity后臺的OData服務實現的BAdI definition CRM_OPPORTUNITY_ODATA_BD里創(chuàng)建一個增強。 因為所有的讀請求,最后都要經過方法SORT_AND_FILTER_OPPT_TABLE的處理,所以我們把日記記錄實現在這個方法里: (2) 事務碼SICF創(chuàng)建一個新的服務節(jié)點: 用SELECT COUNT(*)把數據庫日志表的條目數讀取出來,通過HTTP的方式返回給消費者。 (3) 在Prometheus服務器的配置文件prometheus.yml里,添加一條定期抓取步驟二創(chuàng)建的Netweaver HTTP服務: 第26行metrics_path即為SICF事務碼里創(chuàng)建的服務路徑,28行意思是每2秒抓取一次。33行是Netweaver服務器的主機名。 啟動Prometheus服務器: 到Fiori UI上使用My Opportunity應用,觸發(fā)讀請求: 能看到日志表里填充了數據: localhost:9090訪問Prometheus的UI控制臺,能看到采集的讀請求個數: 切換到Graph面板,能看到指定時間間隔內的讀請求變化趨勢,比如下圖意思是過去五分鐘之內,讀請求數量呈線性增長趨勢 |
|