关于监控服务器指标、CPU、内存、警报的一些解决方案
文章目錄
- 關(guān)于監(jiān)控服務(wù)器指標(biāo)、CPU、內(nèi)存、警報(bào)的一些解決方案
- `Prometheus` + `Grafana` 配置 `IRIS` / `Caché` 監(jiān)控服務(wù)器
- `Prometheus`
- 簡介
- 特點(diǎn)
- 架構(gòu)圖
- `Grafana`
- 簡介
- 特點(diǎn)
- 配置流程
- 自定義`Prometheus`接口定義
- 配置 `Exporter` 監(jiān)控服務(wù)器系統(tǒng)資源
- 簡介
- 配置流程
- 使用 `Alertmanager`報(bào)警
- 簡介
- 配置流程
- 基于`M`實(shí)現(xiàn)監(jiān)控服務(wù)器,并用郵件報(bào)警
- 解析`Prometheus`數(shù)據(jù)接口信息
- 使用嵌入式`Python`方式獲取系統(tǒng)`CPU`、內(nèi)存等
- `python`模塊之`psutil`詳解
- `CPU`相關(guān)
- `Memory`內(nèi)存相關(guān)
- `Disk`相關(guān)
- `Network`相關(guān)
- `Process`相關(guān)
- 通過嵌入式`Python`調(diào)用`psutil`庫
- 使用郵件發(fā)送報(bào)警信息
- 使用`M`發(fā)送郵件發(fā)送消息
- 通過配置文件`csv`文件,來獲取維護(hù)指標(biāo),進(jìn)行郵件報(bào)警。
- 總結(jié)
- 思考
- 附
關(guān)于監(jiān)控服務(wù)器指標(biāo)、CPU、內(nèi)存、警報(bào)的一些解決方案
本文章主要介紹以下幾個(gè)章節(jié)內(nèi)容:
- Prometheus + Grafana 配置 IRIS / Caché 監(jiān)控服務(wù)器
- 自定義Prometheus接口定義 - 配置 Caché 監(jiān)控服務(wù)
- 配置 Exporter 監(jiān)控服務(wù)器系統(tǒng)資源
- 使用 Alertmanager報(bào)警
- 基于M實(shí)現(xiàn)監(jiān)控服務(wù)器,并用郵件報(bào)警
- 解析Prometheus數(shù)據(jù)接口信息
- 使用嵌入式Python方式獲取系統(tǒng)CPU、內(nèi)存等
- 使用郵件發(fā)送報(bào)警信息
Prometheus + Grafana 配置 IRIS / Caché 監(jiān)控服務(wù)器
首先我們介紹一下如何用IRIS結(jié)合Prometheus + Grafana的使用,在介紹如何配置之前我們先了簡單了解一下工具。
Prometheus
簡介
Prometheus是一個(gè)最初在SoundCloud上構(gòu)建的開源系統(tǒng)監(jiān)視和警報(bào)工具包 。 自2012年成立以來,許多公司和組織都采用了Prometheus,該項(xiàng)目擁有一個(gè)非常活躍的開發(fā)人員和用戶社區(qū)。它現(xiàn)在是一個(gè)獨(dú)立的開源項(xiàng)目,可以獨(dú)立于任何公司進(jìn)行維護(hù)。為了強(qiáng)調(diào)這一點(diǎn),并澄清項(xiàng)目的治理結(jié)構(gòu),Prometheus 于2016年加入 云計(jì)算本地計(jì)算基金會(huì),作為繼Kubernetes之后的第二個(gè)托管項(xiàng)目。
特點(diǎn)
- 具有由度量名稱和鍵/值對標(biāo)識的時(shí)間序列數(shù)據(jù)的多維數(shù)據(jù)模型。
- 一個(gè)靈活的查詢語言 來利用這一維度。
- 不依賴分布式存儲(chǔ),單個(gè)服務(wù)器節(jié)點(diǎn)是自治的。
- 時(shí)間序列收集通過 HTTP 上的拉模型發(fā)生。
- 通過中間網(wǎng)關(guān)支持推送時(shí)間序列。
- 通過服務(wù)發(fā)現(xiàn)或靜態(tài)配置發(fā)現(xiàn)目標(biāo)。
- 多種圖形和儀表板支持模式。
架構(gòu)圖
Grafana
簡介
Grafana是一個(gè)跨平臺(tái)的開源的度量分析和可視化工具,可以通過將采集的數(shù)據(jù)查詢?nèi)缓罂梢暬恼故?#xff0c;并及時(shí)通知。
特點(diǎn)
- 展示方式:快速靈活的客戶端圖表,面板插件有許多不同方式的可視化指標(biāo)和日志,官方庫中具有豐富的儀表盤插件,比如熱圖、折線圖、圖表等多種展示方式。
- 支持多種數(shù)據(jù)源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等。
- 通知提醒:以可視方式定義最重要指標(biāo)的警報(bào)規(guī)則,Grafana將不斷計(jì)算并發(fā)送通知,在數(shù)據(jù)達(dá)到閾值時(shí)通過Slack、PagerDuty等獲得通知。
- 混合展示:在同一圖表中混合使用不同的數(shù)據(jù)源,可以基于每個(gè)查詢指定數(shù)據(jù)源,甚至自定義數(shù)據(jù)源。
- 注釋:使用來自不同數(shù)據(jù)源的豐富事件注釋圖表,將鼠標(biāo)懸停在事件上會(huì)顯示完整的事件元數(shù)據(jù)和標(biāo)記。
- 過濾器:Ad-hoc過濾器允許動(dòng)態(tài)創(chuàng)建新的鍵/值過濾器,這些過濾器會(huì)自動(dòng)應(yīng)用于使用該數(shù)據(jù)源的所有查詢。
配置流程
- 下載地址:https://prometheus.io/download/
- 地址 - http://localhost:9090/
- 這里以我的私有服務(wù)器地址為例:https://8.142.29.250:2443/api/monitor/metrics。
輸入以下代碼:
- job_name: "250-IRIS"metrics_path: /api/monitor/metricsscheme: httpstls_config:insecure_skip_verify: truestatic_configs:- targets: ['8.142.29.250:2443']其中:
- job_name - 服務(wù)器名稱。
- metrics_path - 監(jiān)控服務(wù)器地址路徑。
- scheme - 網(wǎng)絡(luò)協(xié)議。
- tls_config - insecure_skip_verify - 過濾完成驗(yàn)證。
- static_configs - targets - IP端口號。
- iris_cpu_usage - 代表CPU使用率。
說明:這里監(jiān)控指標(biāo)為服務(wù)器接口里的具體指標(biāo),輸入接口地址具體查看。
- 下載地址:https://grafana.com/grafana/download?
- garafana默認(rèn)端口為3030
- 訪問地址:http://localhost:3000/
- 默認(rèn)用戶名密碼admin/admin
- Name - Prometheus
- Url - http://localhost:9090
- 點(diǎn)擊Save&test顯示測試成功。
- Title - 修改儀表盤名稱。
- iris_csp_sessions - 會(huì)話使用數(shù)
- iris_cpu_usage - cpu使用率
- iris_system_alerts - 系統(tǒng)警報(bào)數(shù)
- iris_process_count - 進(jìn)程數(shù)量
- iris_glo_ref_per_sec - Global每秒引用數(shù)量
自定義Prometheus接口定義
那么我們是否可以自定義Prometheus接口呢?
答案肯定是可以的,整好 Caché 沒有自帶的監(jiān)控服務(wù),所以我們給Caché 自定義個(gè)一個(gè)監(jiān)控服務(wù)接口。
- 名稱 - /api/metrics
- 命名空間 - 選擇Rest接口類所在命名空間
- 分派類 - M.Metrics
- 基礎(chǔ)儀表盤接口
- 系統(tǒng)使用情況
- 系統(tǒng)監(jiān)視器統(tǒng)計(jì)
- ECP 數(shù)據(jù)統(tǒng)計(jì)
- 磁盤和緩沖區(qū)數(shù)據(jù)統(tǒng)計(jì)
- 許可數(shù)據(jù)統(tǒng)計(jì)
- 開放性事務(wù)數(shù)據(jù)統(tǒng)計(jì)
- 數(shù)據(jù)庫情況
- 把所有數(shù)據(jù)組裝到一起。
- 將數(shù)據(jù)解析成Prometheus數(shù)據(jù)格式。
prometheus將所有數(shù)據(jù)保存為timeseries data,用metric name和label區(qū)分,label是在metric name上的更細(xì)維度的劃分,其中的每一個(gè)實(shí)例是由一個(gè)float64和timestamp組成,只不過timestamp是隱式加上去的,#HELP代表指標(biāo)的注釋信息,#TYPE用于定義樣本的類型注釋信息。如下示例:
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. # TYPE go_gc_duration_seconds summary go_gc_duration_seconds{quantile="0"} 0- metrics name - 為go_gc_duration_seconds
- label - 為quantile="0"
- float64 - 為0
- 配置路由
- prometheus格式地址接口:http://localhost:57772/api/metrics/prometheus
- Json格式地址接口:http://localhost:57772/api/metrics/json
配置 Exporter 監(jiān)控服務(wù)器系統(tǒng)資源
- 通過服務(wù)器配置Exporter監(jiān)控服務(wù)器的系統(tǒng)信息,例如內(nèi)存使用情況,CPU使用情況。
簡介
為Prometheus提供監(jiān)控?cái)?shù)據(jù)源的應(yīng)用都可以被成為Exporter,比如Node Exporter則用來提供節(jié)點(diǎn)相關(guān)的資源使用狀況,而Prometheus從這些不同的Exporter中獲取監(jiān)控?cái)?shù)據(jù),然后可以在諸如Grafana這樣的可視化工具中進(jìn)行結(jié)果的顯示。
廣義上講所有可以向Prometheus提供監(jiān)控樣本數(shù)據(jù)的程序都可以被稱為一個(gè)Exporter。而Exporter的一個(gè)實(shí)例稱為target,如下所示,Prometheus通過輪詢的方式定期從這些target中獲取樣本數(shù)據(jù)。
配置流程
- 下載地址:https://github.com/prometheus-community/windows_exporter/releases
- 地址:http://localhost:9182/metrics
使用 Alertmanager報(bào)警
簡介
Alertmanager是一個(gè)獨(dú)立的告警模塊,接收Prometheus等客戶端發(fā)來的警報(bào),之后通過分組、刪除重復(fù)等處理,并將它們通過路由發(fā)送給正確的接收器。
Prometheus 的報(bào)警分為兩部分:
- Prometheus 服務(wù)器中的警報(bào)規(guī)則向警報(bào)管理器(Alertmanager)發(fā)送警報(bào)。
- 警報(bào)管理器負(fù)責(zé)管理這些警報(bào),包括告警信息進(jìn)行去重,降噪,分組等,并通過豐富的告警通知渠道,如電子郵件、微信、釘釘、Slack等常用溝通工具發(fā)出通知。
配置流程
- 下載地址:https://github.com/prometheus/alertmanager/releases
- 端口 - 9093
- 地址 - http://localhost:9093/#/alerts
- global - 全局配置,包括報(bào)警解決后的超時(shí)時(shí)間、SMTP 相關(guān)配置、各種渠道通知的 API 地址等等。
- route - 用來設(shè)置報(bào)警的分發(fā)策略,它是一個(gè)樹狀結(jié)構(gòu),按照深度優(yōu)先從左向右的順序進(jìn)行匹配。
- receivers - 配置告警消息接受者信息,例如常用的 email、wechat、slack、webhook 等消息通知方式。
- inhibit_rules - 抑制規(guī)則配置,當(dāng)存在與另一組匹配的警報(bào)時(shí),抑制規(guī)則將禁用與一組匹配的警報(bào)(目標(biāo))。
- name - 規(guī)則名稱,可自己定義。
- alert - 報(bào)警名稱,當(dāng)觸發(fā)報(bào)警時(shí),會(huì)作為郵件標(biāo)題顯示。
- expr - 報(bào)警規(guī)則,為 PromQL 表達(dá)式驗(yàn)證特定節(jié)點(diǎn),如上述配置中up{job="250-IRIS"}為驗(yàn)證job="250-IRIS"是否還活著,如果等于0則啟動(dòng)報(bào)警。
- for - 表示報(bào)警狀態(tài)為 Pending 后等待 15s 變成 Firing 狀態(tài),一旦變成 Firing 狀態(tài)則將報(bào)警發(fā)送到 AlertManager。
- summary - 報(bào)警信息描述。
- 地址:http://localhost:9090/alerts?search=
Prometheus Alert 告警狀態(tài)有三種:Inactive、Pending、Firing。
- Inactive - 非活動(dòng)狀態(tài),表示正在監(jiān)控,但是還未有任何警報(bào)觸發(fā)。
- Pending - 表示這個(gè)警報(bào)將被觸發(fā)。由于警報(bào)可以被分組、壓抑/抑制或靜默/靜音,所以等待驗(yàn)證,一旦所有的驗(yàn)證都通過,則將轉(zhuǎn)到 Firing 狀態(tài)。
- Firing - 將警報(bào)發(fā)送到AlertManager,將按照配置將警報(bào)的發(fā)送給所有接收者。一旦警報(bào)解除,則將狀態(tài)轉(zhuǎn)到 Inactive,如此循環(huán)。
首先發(fā)現(xiàn)警報(bào)變?yōu)镻ending狀態(tài)。
過了15秒后變?yōu)镕iring狀態(tài)
基于M實(shí)現(xiàn)監(jiān)控服務(wù)器,并用郵件報(bào)警
解析Prometheus數(shù)據(jù)接口信息
- 獲取接口信息
- 將接口信息轉(zhuǎn)為Json格式
- 調(diào)用方法。
- 調(diào)用自定義Caché接口
- 調(diào)用自定義IRIS接口
- 調(diào)用自定義Exporter接口
使用嵌入式Python方式獲取系統(tǒng)CPU、內(nèi)存等
python模塊之psutil詳解
在講嵌入式Python之前我們先了解一下psutil庫
psutil是一個(gè)開源切跨平臺(tái)的庫,其提供了便利的函數(shù)用來獲取才做系統(tǒng)的信息,比如CPU,內(nèi)存,磁盤,網(wǎng)絡(luò)等。此外,psutil還可以用來進(jìn)行進(jìn)程管理,包括判斷進(jìn)程是否存在、獲取進(jìn)程列表、獲取進(jìn)程詳細(xì)信息等。而且psutil還提供了許多命令行工具提供的功能,包括:ps,top,lsof,netstat,ifconfig, who,df,kill,free,nice,ionice,iostat,iotop,uptime,pidof,tty,taskset,pmap。
psutil是一個(gè)跨平臺(tái)的庫,在官方網(wǎng)站上查到其支持如下操作系統(tǒng)。
- Linux
- Windows
- OSX
- FreeBSD
- OpenBSD
- NetBSD
- Sun Solaris
- AIX
CPU相關(guān)
| psutil.cpu_count() | cpu_count(,[logical]):默認(rèn)返回邏輯CPU的個(gè)數(shù),當(dāng)設(shè)置logical的參數(shù)為False時(shí),返回物理CPU的個(gè)數(shù)。 |
| psutil.cpu_percent() | cpu_percent(,[percpu],[interval]):返回CPU的利用率,percpu為True時(shí)顯示所有物理核心的利用率,interval不為0時(shí),則阻塞時(shí)顯示interval執(zhí)行的時(shí)間內(nèi)的平均利用率。 |
| psutil.cpu_times() | cpu_times(,[percpu]):以命名元組(namedtuple)的形式返回cpu的時(shí)間花費(fèi),percpu=True表示獲取每個(gè)CPU的時(shí)間花費(fèi)。 |
| psutil.cpu_times_percent() | cpu_times_percent(,[percpu]):功能和cpu_times大致相同,看字面意思就能知道,該函數(shù)返回的是耗時(shí)比例。 |
| psutil.cpu_stats() | cpu_stats()以命名元組的形式返回CPU的統(tǒng)計(jì)信息,包括上下文切換,中斷,軟中斷和系統(tǒng)調(diào)用次數(shù)。 |
| psutil.cpu_freq() | cpu_freq([percpu]):返回cpu頻率。 |
Memory內(nèi)存相關(guān)
| virtual_memory() | 以命名元組的形式返回內(nèi)存使用情況,包括總內(nèi)存,可用內(nèi)存,內(nèi)存利用率,buffer和cache等。單位為字節(jié)。 |
| swap_memory() | 以命名元組的形式返回swap/memory使用情況,包含swap中頁的換入和換出。 |
Disk相關(guān)
| psutil.disk_io_counters() | disk_io_counters([perdisk]):以命名元組的形式返回磁盤io統(tǒng)計(jì)信息,包括讀、寫的次數(shù),讀、寫的字節(jié)數(shù)等。 當(dāng)perdisk的值為True,則分別列出單個(gè)磁盤的統(tǒng)計(jì)信息(字典:key為磁盤名稱,value為統(tǒng)計(jì)的namedtuple)。 |
| psutil.disk_partitions() | disk_partitions([all=False]):以命名元組的形式返回所有已掛載的磁盤,包含磁盤名稱,掛載點(diǎn),文件系統(tǒng)類型等信息。 當(dāng)all等于True時(shí),返回包含/proc等特殊文件系統(tǒng)的掛載信息。 |
| psutil.disk_usage() | disk_usage(path):以命名元組的形式返回path所在磁盤的使用情況,包括磁盤的容量、已經(jīng)使用的磁盤容量、磁盤的空間利用率等。 |
Network相關(guān)
| psutil.net_io_counter([pernic]) | 以命名元組的形式返回當(dāng)前系統(tǒng)中每塊網(wǎng)卡的網(wǎng)絡(luò)io統(tǒng)計(jì)信息,包括收發(fā)字節(jié)數(shù),收發(fā)包的數(shù)量、出錯(cuò)的情況和刪包情況。當(dāng)pernic為True時(shí),則列出所有網(wǎng)卡的統(tǒng)計(jì)信息。 |
| psutil.net_connections([kind]) | 以列表的形式返回每個(gè)網(wǎng)絡(luò)連接的詳細(xì)信息(namedtuple)。命名元組包含fd, family, type, laddr, raddr, status, pid等信息。kind表示過濾的連接類型,支持的值如下:(默認(rèn)為inet)。 |
| psutil.net_if_addrs() | 以字典的形式返回網(wǎng)卡的配置信息,包括IP地址和mac地址、子網(wǎng)掩碼和廣播地址。 |
| psutil.net_if_stats() | 返回網(wǎng)卡的詳細(xì)信息,包括是否啟動(dòng)、通信類型、傳輸速度與mtu。 |
| psutil.users() | 以命名元組的方式返回當(dāng)前登陸用戶的信息,包括用戶名,登陸時(shí)間,終端,與主機(jī)信息。 |
| psutil.boot_time() | 以時(shí)間戳的形式返回系統(tǒng)的啟動(dòng)時(shí)間。 |
Process相關(guān)
| psutil.pids() | 以列表的形式返回當(dāng)前正在運(yùn)行的進(jìn)程。 |
| psutil.pid_exists(1) | 判斷給點(diǎn)定的pid是否存在。 |
| psutil.process_iter() | 迭代當(dāng)前正在運(yùn)行的進(jìn)程,返回的是每個(gè)進(jìn)程的Process對象。 |
| psutil.Process() | 對進(jìn)程進(jìn)行封裝,可以使用該類的方法獲取進(jìn)行的詳細(xì)信息,或者給進(jìn)程發(fā)送信號。 |
通過嵌入式Python調(diào)用psutil庫
這里僅簡單介紹個(gè)主要方法、其他獲取系統(tǒng)資源方法由讀者自行實(shí)現(xiàn)。
- 在安裝路徑C:\InterSystems\IRISHealth\bin,輸入cmd,進(jìn)入命令行控制臺(tái)輸入命令。安裝 psutil庫。
- 獲取服務(wù)器CPU使用率
根據(jù)上圖可以觀察到獲取的內(nèi)容使用 1 - 是 IRIS監(jiān)控接口、2 - 是M方法實(shí)現(xiàn)、 3 - 是任務(wù)管理器,三者監(jiān)控的CPU使用率基本使用是一致的。(因?yàn)镃PU使用率是瞬態(tài)的,所以可以認(rèn)為是準(zhǔn)確的)
- 獲取服務(wù)系內(nèi)存使用狀態(tài)
根據(jù)上圖可以觀察到獲取的內(nèi)容使用 1 - 是 360監(jiān)控、2 - 是任務(wù)管理器、 3 - 是M方法實(shí)現(xiàn),三者監(jiān)控的內(nèi)存使用是一致的。
使用郵件發(fā)送報(bào)警信息
這里考慮使用郵件來發(fā)送警報(bào)信息是因?yàn)?#xff1a;
- 郵件相對其他方式來說比較方便,只管發(fā)送,不用管是否接收。
- IRIS自帶發(fā)送郵件接口,操作性大。
- 相比其他方式,例如微信,公眾號等,還需要做接口交互。使用郵件相對簡單。
那么下一個(gè)考慮的問題是通過什么方式來觸發(fā)監(jiān)控發(fā)郵件呢,筆者考慮以下兩點(diǎn)可以觸發(fā):
- 通過掛任務(wù)的方式定時(shí)輪詢。
- 通過SessionEvent事件來觸發(fā)。
這里僅提供代碼示例,具體使用哪種方式由讀者自行決定。
使用M發(fā)送郵件發(fā)送消息
- 這里以QQ郵箱例,配置信息與Alertmanager郵箱配置相同
- 發(fā)送郵件具體方法
- 測試郵件方法,發(fā)送成功目標(biāo)郵箱會(huì)接收到郵件。
通過配置文件csv文件,來獲取維護(hù)指標(biāo),進(jìn)行郵件報(bào)警。
- 使用csv文件通過手動(dòng)的方式來維護(hù)需要監(jiān)控的指標(biāo)
- key - 指標(biāo)名稱,這里要與IRIS接口信息的具體指標(biāo)保持一致。
- val - 報(bào)警的閾值。
- oper - 操作符。指具體報(bào)警時(shí)操作符。是大于val時(shí)報(bào)警,還是小于val時(shí)報(bào)警,或其他。
- desc - 指標(biāo)描述信息。
- 讀取csv文件將數(shù)據(jù)轉(zhuǎn)為Json。
- 對比維護(hù)指標(biāo)與接口指標(biāo),超過閾值發(fā)送郵件進(jìn)行警報(bào)。
注:這里雙循環(huán),時(shí)間復(fù)雜O2,數(shù)據(jù)量大,效率可能會(huì)比較低,需要注意下。
ClassMethod Main(url As %String, filename As %String) As %Status {#; 獲取接口指標(biāo)Jsons irismetrics = ##class(M.ParseMetrics).Main(url)#; 獲取Csv維護(hù)指標(biāo)Jsons config = ##class(M.Mail).Csv2Json(filename)#; 雙向?qū)Ρ?#xff0c;維護(hù)指標(biāo)超過閾值發(fā)送郵件警報(bào)for i = 1 : 1 : irismetrics.%Size() - 1{s metrics = irismetrics.%Get(i)for j = 1 : 1 : config.%Size() - 1{s obj = config.%Get(j)if (obj.key = metrics.key) {if @(metrics.val _ obj.oper _ obj.val) {s content = obj.desc _ "警報(bào),超過閾值:" _ obj.vald ..SendMailMessage("來自系統(tǒng)的警報(bào)",content)ret $$$NO} }}}#; 監(jiān)控內(nèi)存使用率,接口中沒有監(jiān)視內(nèi)存選項(xiàng)所以調(diào)用嵌入式接口s memory = ..GetSystemMemory()if (memory > 30) {d ..SendMailMessage("來自系統(tǒng)的警報(bào)","內(nèi)存使用率已經(jīng)大于" _ 30 _ "")}ret $$$YES } USER>w ##class(M.Mail).Main("https://localhost:2443/api/monitor/metrics", "E:\temp\metrics.csv") 0注:這里基本思路已經(jīng)實(shí)現(xiàn),可以通過掛任務(wù)或其他方式來定時(shí)輪詢。
總結(jié)
以上是個(gè)人關(guān)于監(jiān)控服務(wù)器指標(biāo)、CPU、內(nèi)存、警報(bào)的一些理解,由于個(gè)人能力有限,歡迎大家提出意見,共同交流。
思考
IRIS還提供了alert警報(bào)接口,該接口提供alert.log警報(bào)日志內(nèi)容,基于以上方案,思考如何通過M程序進(jìn)行監(jiān)控
- 接口地址:https://localhost:2443/api/monitor/alerts
- 該接口有警報(bào)時(shí)會(huì)提示報(bào)警信息,調(diào)用一次后清空。
- 如果有警報(bào),警報(bào)信息如下:
附
- /api/monitor/metrics指標(biāo)含義列表:
| iris_cpu_pct {id="ProcessType"} | IRIS 進(jìn)程類型的 CPU 使用百分比。 ProcessType 可以是以下任何一項(xiàng):ECPWorker、ECPCliR、ECPCliW、ECPSrvR、ECPSrvW、LICENSESRV、WDAUX、WRTDMN、JRNDMN、GARCOL、CSPDMN、CSPSRV、ODBCSRC、MirrorMaster、MirrorPri、MirrorBack、MirrorPre、MirrorSvrR、MirrorJrnR、MirrorSK、MirrorComm |
| iris_cpu_usage | 操作系統(tǒng)上所有程序的 CPU 使用率百分比 |
| iris_csp_activity {id="IPaddress:port"} | Web 網(wǎng)關(guān)服務(wù)器自啟動(dòng)以來處理的 Web 請求數(shù) |
| iris_csp_actual_connections {id="IPAddress:port"} | Web 網(wǎng)關(guān)服務(wù)器與該服務(wù)器的當(dāng)前連接數(shù) |
| iris_csp_gateway_latency {id="IPaddress:port"} | 獲取 iris_csp_ 指標(biāo)時(shí)從 Web 網(wǎng)關(guān)服務(wù)器獲得響應(yīng)的時(shí)間,以毫秒為單位 |
| iris_csp_in_use_connections {id="IPaddress:port"} | 正在處理 Web 請求的 Web 網(wǎng)關(guān)服務(wù)器與此服務(wù)器的當(dāng)前連接數(shù) |
| iris_csp_private_connections {id="IPaddress:port"} | 為狀態(tài)感知應(yīng)用程序保留的 Web 網(wǎng)關(guān)服務(wù)器與此服務(wù)器的當(dāng)前連接數(shù)(保留模式 1) |
| iris_csp_sessions | 此服務(wù)器上當(dāng)前活動(dòng)的 Web 會(huì)話 ID 數(shù) |
| iris_cache_efficiency | 全局引用與物理讀寫的比率,以百分比表示 |
| iris_db_expansion_size_mb {id="database"} | 擴(kuò)展數(shù)據(jù)庫的數(shù)量,以兆字節(jié)為單位 |
| iris_db_free_space {id="database"} | 數(shù)據(jù)庫中可用的可用空間,以兆字節(jié)為單位(此指標(biāo)每天僅更新一次,可能不會(huì)反映最近的更改。) |
| iris_db_latency {id="database"} | 完成從數(shù)據(jù)庫隨機(jī)讀取的時(shí)間量,以毫秒為單位 |
| iris_db_max_size_mb {id="database"} | `數(shù)據(jù)庫可以增長到的最大大小,以兆字節(jié)為單位 |
| iris_db_size_mb {id="database",dir="path"} | 數(shù)據(jù)庫大小,以兆字節(jié)為單位 |
| iris_directory_space {id="database",dir="path"} | 數(shù)據(jù)庫目錄存儲(chǔ)卷上的可用空間,以兆字節(jié)為單位 |
| iris_disk_percent_full {id="database",dir="path"} | 數(shù)據(jù)庫目錄存儲(chǔ)卷上的空間百分比 |
| iris_ecp_conn | 此 ECP 應(yīng)用程序服務(wù)器上的活動(dòng)客戶端連接總數(shù) |
| iris_ecp_conn_max | 來自此 ECP 應(yīng)用程序服務(wù)器的最大活動(dòng)客戶端連接數(shù) |
| iris_ecp_connections | 此 ECP 應(yīng)用程序服務(wù)器與其配置的 ECP 數(shù)據(jù)服務(wù)器同步時(shí)同步的服務(wù)器數(shù) |
| iris_ecp_latency | ECP 應(yīng)用服務(wù)器和 ECP 數(shù)據(jù)服務(wù)器之間的延遲,以毫秒為單位 |
| iris_ecps_conn | 每秒與此 ECP 數(shù)據(jù)服務(wù)器的活動(dòng)客戶端連接總數(shù) |
| iris_ecps_conn_max | 與此 ECP 數(shù)據(jù)服務(wù)器的最大活動(dòng)客戶端連接數(shù) |
| iris_glo_a_seize_per_sec | 每秒全局資源上的 Aseizes 數(shù) |
| iris_glo_n_seize_per_sec | 每秒全局資源上的 Nseizes 數(shù) |
| iris_glo_ref_per_sec | 每秒對位于本地?cái)?shù)據(jù)庫上的全局變量的引用數(shù) |
| iris_glo_ref_rem_per_sec | 每秒對位于遠(yuǎn)程數(shù)據(jù)庫上的全局變量的引用數(shù) |
| iris_glo_seize_per_sec | 每秒占用全局資源的次數(shù) |
| iris_glo_update_per_sec | 每秒對本地?cái)?shù)據(jù)庫上的全局變量進(jìn)行更新(SET 和 KILL 命令)的次數(shù) |
| iris_glo_update_rem_per_sec | 每秒對位于遠(yuǎn)程數(shù)據(jù)庫上的全局變量的更新(SET 和 KILL 命令)數(shù) |
| iris_jrn_block_per_sec | 每秒寫入磁盤的日志塊 |
| iris_jrn_free_space {id="JournalType",dir="path"} | 每個(gè)日志目錄的存儲(chǔ)卷上可用的可用空間,以兆字節(jié)為單位。 JournalType 可以是 WIJ、primary 或 secondary |
| iris_jrn_size {id="JournalType"} | 每個(gè)日志文件的當(dāng)前大小,以兆字節(jié)為單位。 JournalType 可以是 WIJ、primary 或 secondary |
| iris_license_available | 當(dāng)前未使用的許可證數(shù)量 |
| iris_license_consumed | 當(dāng)前使用的許可證數(shù)量 |
| iris_license_percent_used | 當(dāng)前使用的許可證的百分比 |
| iris_log_reads_per_sec | 每秒邏輯讀取 |
| iris_obj_a_seize_per_sec | 每秒對象資源上的 Aseizes 數(shù) |
| iris_obj_del_per_sec | 每秒刪除的對象數(shù) |
| iris_obj_hit_per_sec | 進(jìn)程內(nèi)存中每秒的對象引用數(shù) |
| iris_obj_load_per_sec | 每秒從磁盤加載的對象數(shù),不在共享內(nèi)存中 |
| iris_obj_miss_per_sec | 每秒在內(nèi)存中找不到的對象引用數(shù) |
| iris_obj_new_per_sec | 每秒初始化的對象數(shù) |
| iris_obj_seize_per_sec | 每秒占用對象資源的次數(shù) |
| iris_page_space_percent_used | 已用最大分配頁面文件空間的百分比 |
| iris_phys_mem_percent_used | 當(dāng)前使用的物理內(nèi)存 (RAM) 的百分比 |
| iris_phys_reads_per_sec | 每秒從磁盤讀取的物理數(shù)據(jù)庫塊 |
| iris_phys_writes_per_sec | 每秒寫入磁盤的物理數(shù)據(jù)庫塊 |
| iris_process_count | 活躍的 IRIS 進(jìn)程總數(shù) |
| iris_rtn_a_seize_per_sec | 每秒例程資源上的 Aseizes 數(shù) |
| iris_rtn_call_local_per_sec | 每秒對位于遠(yuǎn)程數(shù)據(jù)庫上的全局變量的本地例程調(diào)用數(shù) |
| iris_rtn_call_miss_per_sec | 每秒在內(nèi)存中找不到的例程調(diào)用數(shù) |
| iris_rtn_call_remote_per_sec | 每秒遠(yuǎn)程例程調(diào)用次數(shù) |
| iris_rtn_load_per_sec | 每秒從本地加載或保存到磁盤的例程數(shù) |
| iris_rtn_load_rem_per_sec | 每秒從磁盤遠(yuǎn)程加載或保存到磁盤的例程數(shù) |
| iris_rtn_seize_per_sec | 每秒占用例程資源的次數(shù) |
| iris_sam_get_db_sensors_seconds | 收集 iris_db* 傳感器所花費(fèi)的時(shí)間,以秒為單位 |
| iris_sam_get_jrn_sensors_seconds | 收集 iris_jrn* 傳感器所花費(fèi)的時(shí)間,以秒為單位 |
| iris_sam_get_sql_sensors_seconds | 收集 iris_sql* 傳感器所花費(fèi)的時(shí)間,以秒為單位 |
| iris_sam_get_wqm_sensors_seconds | 收集 iris_wqm* 傳感器所花費(fèi)的時(shí)間,以秒為單位 |
| iris_smh_available {id="purpose"} | 按目的可用的共享內(nèi)存,以千字節(jié)為單位 |
| iris_smh_percent_full {id="purpose"} | 按目的使用的已分配共享內(nèi)存的百分比 |
| iris_smh_total | 為當(dāng)前實(shí)例分配的共享內(nèi)存,以千字節(jié)為單位 |
| iris_smh_total_percent_full | 當(dāng)前實(shí)例使用的已分配共享內(nèi)存的百分比 |
| iris_smh_used {id="purpose"} | 按目的使用的共享內(nèi)存,以千字節(jié)為單位 |
| iris_sql_active_queries {id="namespace"} | 當(dāng)前執(zhí)行的 SQL語句數(shù) |
| iris_sql_active_queries_95_percentile {id="namespace"} | 對于當(dāng)前的活動(dòng) SQL 語句集,自語句開始執(zhí)行以來經(jīng)過的第 95 個(gè)百分位數(shù)的時(shí)間 |
| iris_sql_active_queries_99_percentile {id="namespace"} | 對于當(dāng)前活動(dòng)的 SQL 語句集,自語句開始執(zhí)行以來經(jīng)過的第 99 個(gè)百分位數(shù)的時(shí)間 |
| iris_sql_queries_avg_runtime {id="namespace"} | 平均 SQL 語句運(yùn)行時(shí)間,以秒為單位 |
| iris_sql_queries_avg_runtime_std_dev {id="namespace"} | 平均 SQL 語句運(yùn)行時(shí)間的標(biāo)準(zhǔn)偏差 |
| iris_sql_queries_per_second {id="namespace"} | 每秒平均 SQL 語句數(shù) |
| iris_system_alerts | 自系統(tǒng)啟動(dòng)以來發(fā)布到消息日志的警報(bào)數(shù) |
| iris_system_alerts_log | 當(dāng)前位于警報(bào)日志中的警報(bào)數(shù) |
| iris_system_alerts_new | /api/monitor/alerts 端點(diǎn)上是否有新警報(bào),作為布爾值 |
| iris_system_state | 表示系統(tǒng)監(jiān)視器健康狀態(tài)的數(shù)字 |
| iris_trans_open_count | 當(dāng)前實(shí)例上打開的事務(wù)數(shù) |
| iris_trans_open_secs | 當(dāng)前實(shí)例上打開事務(wù)的平均持續(xù)時(shí)間,以秒為單位 |
| iris_trans_open_secs_max | 當(dāng)前實(shí)例上當(dāng)前打開的最長事務(wù)的 |
| iris_wd_buffer_redirty | 寫入守護(hù)進(jìn)程在最近一個(gè)周期中寫入并且也在前一個(gè)周期中寫入的數(shù)據(jù)庫緩沖區(qū)數(shù) |
| iris_wd_buffer_write | 寫入守護(hù)進(jìn)程在其最近周期寫入的數(shù)據(jù)庫緩沖區(qū)數(shù) |
| iris_wd_cycle_time | 完成最近的寫入守護(hù)進(jìn)程周期所花費(fèi)的時(shí)間量,以毫秒為單位 |
| iris_wd_proc_in_global | 在最近的寫入守護(hù)進(jìn)程周期開始時(shí)主動(dòng)持有全局緩沖區(qū)的進(jìn)程數(shù) |
| iris_wd_size_write | 寫入守護(hù)程序在其最近周期寫入的數(shù)據(jù)庫緩沖區(qū)的大小,以千字節(jié)為單位 |
| iris_wd_sleep | 寫入守護(hù)進(jìn)程在其最近的周期開始之前處于非活動(dòng)狀態(tài)的時(shí)間量,以毫秒為單位 |
| iris_wd_temp_queue | 寫入守護(hù)進(jìn)程在其最近周期開始時(shí)使用的內(nèi)存緩沖區(qū)數(shù) |
| iris_wd_temp_write | 寫入守護(hù)進(jìn)程在其最近周期中寫入的內(nèi)存緩沖區(qū)數(shù) |
| iris_wdwij_time | 寫入守護(hù)進(jìn)程在其最近的周期內(nèi)寫入 WIJ 文件所花費(fèi)的時(shí)間,以毫秒為單位 |
| iris_wd_write_time | 寫守護(hù)進(jìn)程在其最近的周期內(nèi)將緩沖區(qū)寫入數(shù)據(jù)庫所花費(fèi)的時(shí)間,以毫秒為單位 |
| iris_wij_writes_per_sec | WIJ 每秒物理塊寫入 |
| iris_wqm_active_worker_jobs {id="category"} | 未被阻塞的運(yùn)行邏輯的平均工作者作業(yè)數(shù) |
| iris_wqm_commands_per_sec {id="category"} | 平均每秒在此工作隊(duì)列管理類別中執(zhí)行的命令數(shù) |
| iris_wqm_globals_per_sec {id="category"} | 平均每秒在此工作隊(duì)列管理類別中運(yùn)行的全局引用數(shù) |
| iris_wqm_max_active_worker_jobs {id="category"} | 自上次記錄日志條目以來的最大活動(dòng)工作人員數(shù) |
| iris_wqm_max_work_queue_depth {id="category"} | 自上次記錄以來此工作隊(duì)列管理類別隊(duì)列中的最大條目數(shù) |
| iris_wqm_waiting_worker_jobs {id="category"} | 等待一個(gè)組連接并為其工作的空閑工人作業(yè)的平均數(shù)量 |
總結(jié)
以上是生活随笔為你收集整理的关于监控服务器指标、CPU、内存、警报的一些解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Orz是什么意思……
- 下一篇: 【基于ECharts 数据可视化展示相关