第七十一章 使用 REST API 监控 IRIS - 活动量指标

简介: 第七十一章 使用 REST API 监控 IRIS - 活动量指标

第七十一章 使用 REST API 监控 IRIS - 活动量指标

活动量指标

iris_interop_avg_processing_time{id="namespace",hosttype="HostType",host="host",production="production",messagetype="MessageType"} - 在生产和命名空间中处理指定 MessageType 的消息所需的平均时间长度(以秒为单位)。 HostType 可以是服务、操作或参与者(即进程)。 MessageType 是用户定义的;如果未指定 MessageType,则返回“-”。如果输出已配置为包括主机标签,则单独提供每个主机的消息处理时间。

iris_interop_avg_queueing_time{id="namespace",hostttype="HostType",host="host",production="production",messagetype="MessageType"} - 指定 MessageType消息在生产和命名空间中由 HostType 的主机处理时在队列中花费的平均持续时间(以秒为单位)。 HostType 可以是服务、操作或参与者(即进程)。

MessageType 是用户定义的;如果未指定 MessageType,则返回“-”。如果输出已配置为包括主机标签,则单独提供每个主机的排队时间。

iris_interop_sample_count {id="namespace",hosttype="HostType",host="host",production="production",messagetype="MessageType"} 在最近的采样间隔内,生产和命名空间中的主机类型主机处理的指定 MessageType 的消息数。 HostType 可以是服务、操作或参与者(即进程)。 MessageType 是用户定义的;如果未指定 MessageType,则返回“-”。如果输出已配置为包括主机标签,则单独提供每个主机处理的消息数。

iris_interop_sample_count_per_sec {id="namespace",hosttype="HostType",host="host",production="production",messagetype="MessageType"} - 生产和命名空间中的主机每秒处理的指定 MessageType 的消息数,在最近的采样间隔内取平均值。 HostType 可以是服务、操作或参与者(即进程)。

  • MessageType 是用户定义的;如果未指定 MessageType,则返回“-”。如果输出已配置为包括主机标签,则单独提供每个主机处理的消息数。
HTTP 指标

iris_interop_avg_http_received_chars {id="namespace",host="host",production="production"} - 在最近的采样间隔内,生产和命名空间中每个 HTTPSOAP 响应接收到的平均字符数。如果输出已配置为包括主机标签,则单独提供每个主机接收的平均字符数。

iris_interop_avg_http_sent_chars {id="namespace",host="host",production="production"} - 在最近的采样间隔内,生产和命名空间中每个 HTTPSOAP 请求发送的平均字符数。如果输出已配置为包括主机标签,则单独提供每个主机发送的平均字符数。

iris_interop_avg_http_ttfc {id="namespace",host="host",production="production"} - Time to First Character (TTFC):从 HTTP或 SOAP 请求开始到相应响应的第一个字符之间的平均时间长度,以秒为单位。如果输出已配置为包括主机标签,则单独提供每个主机的 TTFC

iris_interop_avg_http_ttlc {id="namespace",host="host",production="production"} - 最后一个字符的时间 (TTLC):从 HTTPSOAP 请求开始到相应响应的最后一个字符之间的平均时间长度。如果输出已配置为包括主机标签,则单独提供每个主机的 TTLC

iris_interop_http_sample_count {id="namespace",host="host",production="production"} - 在最近的采样间隔内在生产和名称空间内发送的

  • HTTPSOAP 传输数。如果输出已配置为包括主机标签,则单独提供每个主机发送的传输数。
  • iris_interop_http_sample_count_per_sec

{id="namespace",host="host",production="production"} - 生产和命名空间中每秒发送的 HTTPSOAP 传输数,在最近的采样间隔内取平均值。如果输出已配置为包括主机标签,则单独提供每台主机每秒发送的传输数。

创建应用程序指标

将自定义应用程序指标添加到 /metrics 端点返回的指标:

  1. 创建一个继承自 %SYS.Monitor.SAM.Abstract 的新类。
  2. PRODUCT 参数定义为应用程序的名称。这可以是除 iris 之外的任何值,它是为 IRIS 指标保留的。
  3. 实现 GetSensors() 方法来定义所需的自定义指标,如下所示:
  • 该方法必须包含一个或多个对 SetSensor() 方法的调用。此方法设置应用程序指标的名称和值。这些值应该是整数或浮点数,以确保与 PrometheusSAM 兼容。

可以选择为指标定义标签,但如果这样做,则必须始终为该特定指标定义标签。

注意:有关选择指标和标签名称的最佳实践,请参阅 Prometheus 文档中的指标和标签命名(https://prometheus.io/docs/practices/naming/)。

  • 如果成功,该方法必须返回 $$$OK

重要提示:缓慢执行 GetSensors() 会对系统性能产生负面影响。请务必测试 GetSensors() 实现是否有效,并避免可能超时或挂起的实现。

  1. 编译类。一个例子如下所示:
/// Example of a custom class for the /metric API
Class MyMetrics.Example Extends %SYS.Monitor.SAM.Abstract
{

Parameter PRODUCT = "myapp";

/// Collect metrics from the specified sensors
Method GetSensors() As %Status
{
   do ..SetSensor("my_counter",$increment(^MyCounter),"my_label")
   do ..SetSensor("my_gauge",$random(100))
   return $$$OK
}

}
  1. 使用 SYS.Monitor.SAM.Config classAddApplicationClass()方法将自定义类添加到 /metrics 配置。将类的名称和它所在的名称空间作为参数传递。

例如,在终端中从 %SYS 命名空间输入以下内容:


%SYS>set status = ##class(SYS.Monitor.SAM.Config).AddApplicationClass("MyMetrics.Example", "USER")

%SYS>w status
status=1
  1. 确保 /api/monitor Web 应用程序具有访问自定义指标所需的应用程序角色。有关如何编辑应用程序角色的详细信息,请参阅编辑应用程序:应用程序角色选项卡。

此步骤授予 /api/monitor 对自定义指标所需数据的访问权限。例如,如果自定义指标类位于 USER 数据库中(受 %DB_USER 资源保护),则授予 /api/monitor %DB_USER 角色

  1. 通过将浏览器指向 http://<instance-host>:52773/api/monitor/metrics(其中 52773 是默认的 WebServer 端口)来查看 /metrics 端点的输出。您定义的指标应出现在 IRIS 指标之后,例如:
[...]
myapp_my_counter{id="my_label") 1
myapp_my_gauge 92

/metrics 端点现在返回定义的自定义指标。 IRIS 指标包含一个“iris_”前缀,而自定义指标使用 PRODUCT 的值作为前缀。

/alerts Endpoint

/alerts 端点从 alerts.log 文件中获取最新的警报并以 JSON 格式返回它们,例如:


{"time":"2019-08-15T10:36:38.313Z","severity":2,\
"message":"Failed to allocate 1150MB shared memory using large pages.  Switching to small pages."}

调用 /alerts 时,它会返回自上次调用 /alerts 以来生成的警报。 iris_system_alerts_new 指标是一个布尔值,指示是否已生成新警报。

相关文章
|
1月前
|
缓存 前端开发 API
构建可扩展的API:REST vs GraphQL
【5月更文挑战第14天】在API设计中,REST和GraphQL是两种主要的架构风格。REST基于HTTP协议,强调资源的无状态性和客户端-服务器模型,适合简单CRUD操作。而GraphQL提供更灵活的数据查询,允许客户端精确指定需求,减少HTTP请求和数据冗余,适合复杂场景和高性能需求。选择时要考虑项目需求、技术栈、性能和团队经验。
|
13天前
|
DataWorks 监控 API
DataWorks产品使用合集之在调用API创建质量监控规则中的校验器的ID可以在哪里找到
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1月前
|
监控 API 网络架构
第七十章 使用 REST API 监控 IRIS - 互操作性指标
第七十章 使用 REST API 监控 IRIS - 互操作性指标
22 0
|
1月前
|
SQL 监控 API
第六十九章 使用 REST API 监控 IRIS
第六十九章 使用 REST API 监控 IRIS
22 0
|
1月前
|
分布式计算 DataWorks 关系型数据库
DataWorks操作报错合集之在DataWorks同步数据时,遇到乱码问题,该怎么解决(rest api数据源)
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
34 0
|
1天前
|
自然语言处理 安全 API
触发邮件接口有哪些?邮件API文档
**触发邮件接口**如AokSend、Mailgun、Amazon SES、Postmark和Sendinblue是自动化企业通信的关键。这些接口在特定事件时自动发送邮件,提高效率和客户体验。例如,AokSend提供详细的API文档,支持事件触发、模板管理和多语言集成;Mailgun以灵活性著称;Amazon SES适合大规模发送;Postmark专注于事务邮件;Sendinblue则提供邮件、短信和营销自动化功能。每种服务都有示例代码展示如何使用API发送邮件。选择合适的接口能提升企业通信效率和客户满意度。
|
4天前
|
XML 安全 API
API攻防-接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测
API攻防-接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测
|
2天前
|
Java API
java调用个人微信API接口收发朋友圈,删除评论朋友圈
java调用个人微信API接口收发朋友圈,删除评论朋友圈
|
2天前
|
安全 API 网络安全
API接口安全加固:应对黑客攻击的实战指南
**API安全摘要:** API成为黑客目标,攻击类型包括未授权访问、CSRF、DDoS、数据泄露和注入攻击。防御策略包括使用OAuth 2.0和JWT进行认证授权,防止CSRF攻击,限制请求速率,避免数据泄露,以及实施注入攻击防护。开发者应定期更新安全措施,确保API安全性。示例代码展示了Node.js中JWT认证的实现。