第六十九章 使用 REST API 监控 IRIS
每个 IRIS®
数据平台实例都包含一个提供实例统计信息的 REST
接口。 REST API
提供了一种从多台运行 IRIS
的机器收集信息的方法,使能够详细监控构成您的应用程序的所有实例。
本附录描述了 /api/monitor
服务提供的指标。这些指标与开源监控和警报工具 Prometheus
兼容。配置 Prometheus
以抓取多个连接的 IRIS
实例提供了整个系统的内聚视图,从而更容易评估系统是否正常有效地运行。
注意:有关创建和使用 REST 接口的介绍,请参阅第一眼:使用 产品开发 Rest
接口。
/api/monitor Service
/api/monitor
服务提供有关运行它的 IRIS
实例的信息。默认情况下,/api/monitor Web
应用程序启用了“未经身份验证”的访问权限。有关为此服务设置身份验证的信息,请参阅创建 REST
服务中的保护 REST 服务一章。
此 API 具有以下两个端点:
/metrics Endpoint
,,它返回所有实例指标,并且可以配置为返回特定的应用程序指标。/alerts Endpoint
,它返回自上次抓取端点以来发布的所有系统警报。
注意: IRIS 将所有错误记录在位于 install-dir/mgr
目录中的 SystemMonitor.log
文件中。
/metrics Endpoint
/metrics
端点返回一个指标列表,这些指标在指标描述中进行了描述。还可以启用有关活动互操作性产品的其他指标的收集,如互操作性指标中所述。创建应用程序指标包含有关如何定义自定义指标的说明。
要配置 Prometheus
以抓取 IRIS
实例,请按照使用 Prometheus
的第一步(https://prometheus.io/docs/introduction/first_steps/
在新选项卡中打开)中的说明进行操作。
注意:此表包含此处记录的 IRIS
版本的指标。由于新版本中可能会添加指标,因此请确保该文档与 IRIS
版本相匹配。
iris_cpu_pct {id="ProcessType"}
- IRIS 进程类型的 CPU
使用百分比。 ProcessType
可以是以下任何一项:ECPWorker、ECPCliR、ECPCliW、ECPSrvR、ECPSrvW、LICENSESRV、WDAUX、WRTDMN、JRNDMN、GARCOL、CSPDMN、
CSPSRV、ODBCSRC、MirrorMaster、MirrorPri、MirrorBack、MirrorPre、MirrorSvrR、MirrorJrnR、MirrorSK、MirrorComm
。iris_cpu_usage
- 操作系统上所有程序的CPU
使用率百分比iris_csp_activity {id="IPaddress:port"}
-Web
网关服务器自启动以来处理的Web
请求数iris_csp_actual_connections {id="IPAddress:port"}
-Web
网关服务器与该服务器的当前连接数iris_csp_gateway_latency {id="IPaddress:port"}
- 获取iris_csp_
指标时从Web
网关服务器获得响应的时间,以毫秒为单位iris_csp_in_use_connections {id="IPaddress:port"}
- 正在处理Web
请求的Web
网关服务器与此服务器的当前连接数iris_csp_private_connections {id="IPaddress:port"}
- 为状态感知应用程序保留的Web
网关服务器与此服务器的当前连接数(保留模式1
)iris_csp_sessions
- 此服务器上当前活动的Web
会话ID
数iris_cache_efficiency
- 全局引用与物理读写的比率,以百分比表示iris_db_expansion_size_mb {id="database"}
-扩展数据库的数量,以兆字节为单位iris_db_free_space {id="database"}
- 数据库中可用的可用空间,以兆字节为单位(此指标每天仅更新一次,可能不会反映最近的更改。)iris_db_latency {id="database"}
- 完成从数据库随机读取的时间量,以毫秒为单位iris_db_max_size_mb {id="database"}
- 数据库可以增长到的最大大小,以兆字节为单位iris_db_size_mb {id="database",dir="path"}
- 数据库大小,以兆字节为单位iris_directory_space {id="database",dir="path"}
- 数据库目录存储卷上的可用空间,以兆字节为单位iris_disk_percent_full {id="database",dir="path"}
- 数据库目录存储卷上的空间百分比iris_ecp_conn
- 此ECP
应用程序服务器上的活动客户端连接总数iris_ecp_conn_max
- 来自此ECP
应用程序服务器的最大活动客户端连接数iris_ecp_connections
- 此ECP
应用程序服务器与其配置的ECP
数据服务器同步时同步的服务器数iris_ecp_latency
-ECP
应用服务器和ECP
数据服务器之间的延迟,以毫秒为单位iris_ecps_conn
- 每秒与此ECP
数据服务器的活动客户端连接总数iris_ecps_conn_max
- 与此ECP
数据服务器的最大活动客户端连接数iris_glo_a_seize_per_sec
- 每秒全局资源上的Aseizes
数iris_glo_n_seize_per_sec
- 每秒全局资源上的Nseizes
数iris_glo_ref_per_sec
- 每秒对位于本地数据库上的全局变量的引用数iris_glo_ref_rem_per_sec
- 每秒对位于远程数据库上的全局变量的引用数iris_glo_seize_per_sec
- 每秒占用全局资源的次数iris_glo_update_per_sec
- 每秒对本地数据库上的全局变量进行更新(SET
和KILL
命令)的次数iris_glo_update_rem_per_sec
- 每秒对位于远程数据库上的全局变量的更新(SET
和KILL
命令)数iris_jrn_block_per_sec
- 每秒写入磁盘的日志块iris_jrn_free_space {id="JournalType",dir="path"}
- 每个日志目录的存储卷上可用的可用空间,以兆字节为单位。JournalType
可以是WIJ
、primary
或secondary
iris_license_available
- 当前未使用的许可证数量iris_license_consumed
- 当前使用的许可证数量iris_license_percent_used
- 当前使用的许可证的百分比iris_log_reads_per_sec
- 每秒逻辑读取iris_obj_a_seize_per_sec
- 每秒对象资源上的Aseizes
数iris_obj_del_per_sec
- 每秒删除的对象数iris_obj_hit_per_sec
- 进程内存中每秒的对象引用数iris_obj_load_per_sec
- 每秒从磁盘加载的对象数,不在共享内存中iris_obj_miss_per_sec
- 每秒在内存中找不到的对象引用数iris_obj_new_per_sec
- 每秒初始化的对象数iris_obj_seize_per_sec
- 每秒占用对象资源的次数iris_page_space_percent_used
- 已用最大分配页面文件空间的百分比iris_phys_mem_percent_used
- 当前使用的物理内存 (RAM)
的百分比iris_phys_reads_per_sec
- 每秒从磁盘读取的物理数据库块iris_phys_writes_per_sec
- 每秒写入磁盘的物理数据库块iris_process_count
- 活跃的IRIS
进程总数iris_rtn_a_seize_per_sec
- 每秒例程资源上的Aseizes
数iris_rtn_call_local_per_sec
- 每秒对位于远程数据库上的全局变量的本地例程调用数iris_rtn_call_miss_per_sec
- 每秒在内存中找不到的例程调用数iris_rtn_call_remote_per_sec
- 每秒远程例程调用次数iris_rtn_load_per_sec
- 每秒从本地加载或保存到磁盘的例程数iris_rtn_load_rem_per_sec
- 每秒从磁盘远程加载或保存到磁盘的例程数iris_rtn_seize_per_sec
- 每秒占用例程资源的次数iris_sam_get_db_sensors_seconds
- 收集iris_db*
传感器所花费的时间,以秒为单位iris_sam_get_jrn_sensors_seconds
- 收集iris_jrn*
传感器所花费的时间,以秒为单位iris_sam_get_sql_sensors_seconds
- 收集iris_sql*
传感器所花费的时间,以秒为单位iris_sam_get_wqm_sensors_seconds
- 收集iris_wqm*
传感器所花费的时间,以秒为单位iris_smh_available {id="purpose"}
- 按目的可用的共享内存,以千字节为单位iris_smh_percent_full {id="purpose"}
- 按目的使用的已分配共享内存的百分比iris_smh_total
- 为当前实例分配的共享内存,以千字节为单位iris_smh_total_percent_full
- 当前实例使用的已分配共享内存的百分比iris_smh_used {id="purpose"}
- 按目的使用的共享内存,以千字节为单位iris_sql_active_queries {id="namespace"}
- 当前执行的SQL
语句数iris_sql_active_queries_95_percentile {id="namespace"}
- 对于当前的活动 SQL 语句集,自语句开始执行以来经过的第95
个百分位数的时间iris_sql_active_queries_99_percentile {id="namespace"}
- 对于当前活动的 SQL 语句集,自语句开始执行以来经过的第99
个百分位数的时间iris_sql_queries_avg_runtime {id="namespace"}
- 平均SQL
语句运行时间,以秒为单位iris_sql_queries_avg_runtime_std_dev {id="namespace"}
- 平均 SQL 语句运行时间的标准偏差iris_sql_queries_per_second {id="namespace"}
- 每秒平均SQL
语句数iris_system_alerts
- 自系统启动以来发布到消息日志的警报数iris_system_alerts_log
- 当前位于警报日志中的警报数iris_system_alerts_new
-/api/monitor/alerts
端点上是否有新警报,作为布尔值iris_system_state
- 表示系统监视器健康状态的数字iris_trans_open_count
- 当前实例上打开的事务数iris_trans_open_secs
- 当前实例上打开事务的平均持续时间,以秒为单位iris_trans_open_secs_max
- 当前实例上当前打开的最长事务的iris_wd_buffer_redirty
- 写入守护进程在最近一个周期中写入并且也在前一个周期中写入的数据库缓冲区数iris_wd_buffer_write
- 写入守护进程在其最近周期写入的数据库缓冲区数iris_wd_cycle_time
- 完成最近的写入守护进程周期所花费的时间量,以毫秒为单位iris_wd_proc_in_global
- 在最近的写入守护进程周期开始时主动持有全局缓冲区的进程数iris_wd_size_write
- 写入守护程序在其最近周期写入的数据库缓冲区的大小,以千字节为单位iris_wd_sleep
- 写入守护进程在其最近的周期开始之前处于非活动状态的时间量,以毫秒为单位iris_wd_temp_queue
- 写入守护进程在其最近周期开始时使用的内存缓冲区数iris_wd_temp_write
- 写入守护进程在其最近周期中写入的内存缓冲区数iris_wdwij_time
- 写入守护进程在其最近的周期内写入 WIJ 文件所花费的时间,以毫秒为单位iris_wd_write_time
- 写守护进程在其最近的周期内将缓冲区写入数据库所花费的时间,以毫秒为单位iris_wij_writes_per_sec
-WIJ
每秒物理块写入iris_wqm_active_worker_jobs {id="category"}
- 未被阻塞的运行逻辑的平均工作者作业数iris_wqm_commands_per_sec {id="category"}
- 平均每秒在此工作队列管理类别中执行的命令数iris_wqm_globals_per_sec {id="category"}
- 平均每秒在此工作队列管理类别中运行的全局引用数iris_wqm_max_active_worker_jobs {id="category"}
- 自上次记录日志条目以来的最大活动工作人员数iris_wqm_max_work_queue_depth {id="category"}
- 自上次记录以来此工作队列管理类别队列中的最大条目数iris_wqm_waiting_worker_jobs {id="category"}
- 等待一个组连接并为其工作的空闲工人作业的平均数量