第六十九章 使用 REST API 监控 IRIS

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
日志服务 SLS,月写入数据量 50GB 1个月
简介: 第六十九章 使用 REST API 监控 IRIS

第六十九章 使用 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 - 每秒对本地数据库上的全局变量进行更新(SETKILL 命令)的次数
  • iris_glo_update_rem_per_sec - 每秒对位于远程数据库上的全局变量的更新(SETKILL 命令)数
  • iris_jrn_block_per_sec - 每秒写入磁盘的日志块
  • iris_jrn_free_space {id="JournalType",dir="path"} - 每个日志目录的存储卷上可用的可用空间,以兆字节为单位。 JournalType 可以是 WIJprimarysecondary
  • 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"} - 等待一个组连接并为其工作的空闲工人作业的平均数量

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
相关文章
|
12天前
|
Prometheus 监控 Java
深入探索:自制Agent监控API接口耗时实践
在微服务架构中,监控API接口的调用耗时对于性能优化至关重要。通过监控接口耗时,我们可以识别性能瓶颈,优化服务响应速度。本文将分享如何自己动手实现一个Agent来统计API接口的调用耗时,提供一种实用的技术解决方案。
23 3
|
12天前
|
监控 数据可视化 Java
深入探索:自制Agent监控API接口耗时
在微服务架构中,监控API接口的调用耗时对于性能优化至关重要。通过监控这些指标,我们可以识别瓶颈,优化系统性能。本文将分享如何自己动手实现一个Agent来统计API接口的调用耗时,提供一种有效的监控解决方案。
26 2
|
20天前
|
缓存 API 网络架构
掌握现代API开发:GraphQL vs REST
【10月更文挑战第24天】本文深入探讨了现代API开发中两种主流技术——GraphQL和REST的设计理念、技术特点及实际开发中的对比分析。GraphQL通过声明式数据请求和强类型系统提供更高的灵活性和性能,而REST则以其无状态特性和成熟的生态系统见长。文章还讨论了两者在客户端-服务器交互、安全性和工具支持方面的优劣,帮助开发者根据项目需求做出明智选择。
|
2月前
|
JSON 中间件 API
开发REST API3-11
开发REST API3-11
|
2月前
|
JSON JavaScript API
编写REST API
编写REST API
60 2
|
1月前
|
Java API Maven
使用 Smart-doc 记录 Spring REST API
使用 Smart-doc 记录 Spring REST API
46 0
|
3月前
|
XML 安全 API
REST 和 SOAP API 有什么区别?
【8月更文挑战第31天】
185 0
|
3月前
|
JSON API 数据安全/隐私保护
哇塞!Django REST framework 太逆天啦!构建 API 服务从未如此轻松,你还不来试试?
【8月更文挑战第31天】Django REST framework(DRF)是基于Django框架的高效Web API开发工具,提供序列化、视图集、路由等功能,简化API构建流程。使用DRF可轻松实现数据的序列化与反序列化,并支持权限管理和认证机制以保障API安全。安装DRF只需通过`pip install djangorestframework`命令。要创建基本项目,先安装Django并创建新应用,定义模型、序列化器及视图集,最后配置路由。测试API时,可通过Postman发送HTTP请求验证功能。无论项目大小,DRF均能提供强大支持。
41 0
|
7天前
|
JSON API 数据格式
淘宝 / 天猫官方商品 / 订单订单 API 接口丨商品上传接口对接步骤
要对接淘宝/天猫官方商品或订单API,需先注册淘宝开放平台账号,创建应用获取App Key和App Secret。之后,详细阅读API文档,了解接口功能及权限要求,编写认证、构建请求、发送请求和处理响应的代码。最后,在沙箱环境中测试与调试,确保API调用的正确性和稳定性。
|
19天前
|
供应链 数据挖掘 API
电商API接口介绍——sku接口概述
商品SKU(Stock Keeping Unit)接口是电商API接口中的一种,专门用于获取商品的SKU信息。SKU是库存量单位,用于区分同一商品的不同规格、颜色、尺寸等属性。通过商品SKU接口,开发者可以获取商品的SKU列表、SKU属性、库存数量等详细信息。