js css html

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

2023-02-09  本文已影响0人  Cache技术分享

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

活动量指标

HTTP 指标

创建应用程序指标

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

  1. 创建一个继承自 %SYS.Monitor.SAM.Abstract 的新类。
  2. PRODUCT 参数定义为应用程序的名称。这可以是除 iris 之外的任何值,它是为 IRIS 指标保留的。
  3. 实现 GetSensors() 方法来定义所需的自定义指标,如下所示:

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

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

重要提示:缓慢执行 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 指标是一个布尔值,指示是否已生成新警报。

上一篇下一篇

猜你喜欢

热点阅读