收藏

第二十九章 使用系统监视器 - 应用程序监视器指标

2022-12-30  本文已影响0人  Cache技术分享

第二十九章 使用系统监视器 - 应用程序监视器指标

Application Monitor自带的系统监控类调用各种示例类,如下表所示:

Sample Classes Application Monitor System Classes
Audit metrics %Monitor.System.Sample.AuditCount and %Monitor.System.Sample.AuditEvents
Client metrics %Monitor.System.Sample.Clients
Web Gateway metrics %Monitor.System.Sample.CSPGateway
Disk space metrics %Monitor.System.Sample.Diskspace
Free space metrics %Monitor.System.Sample.Freespace
Global metrics %Monitor.System.Sample.Global
History database metrics %Monitor.System.Sample.HistoryPerf , %Monitor.System.Sample.HistorySys, %Monitor.System.Sample.HistoryUser
Journal metrics %Monitor.System.Sample.Journals
License metrics %Monitor.System.Sample.License
Lock table metrics %Monitor.System.Sample.LockTable
Process metrics %Monitor.System.Sample.Processes
Routine metrics %Monitor.System.Sample.Routines
Server metrics %Monitor.System.Sample.Servers
System activity metrics %Monitor.System.Sample.SystemMetrics

控制 MONITOR 的类似功能可通过 %Monitor.System 包中的类获得,它还允许将数据保存为持久对象格式的命名集合。

生成指标

%Monitor.SampleAgent 类执行实际采样,调用指标类的 Initialize()GetSample() 方法。

%Monitor.SampleAgent.%New() 构造函数接受一个参数:要运行的指标类的名称。它创建该类的实例,并调用该类的 Startup() 方法。然后,每次调用 %Monitor.SampleAgent.Collect() 方法时,Sample Agent 都会调用该类的 Initialize() 方法,然后重复调用该类的 GetSample() 方法。每次调用 GetSample() 时,%Monitor.SampleAgent 都会为指标类创建一个样本类。这些操作的伪代码是:

set sampler = ##class(%Monitor.SampleAgent).%New("MyMetrics.Freespace")
/* at this point, the sampler has created an instance of MyMetrics.Freespace,
and invoked its Startup method */
for I=1:1:10 { do sampler.Collect() hang 10 }
/* at each iteration, sampler calls MyMetrics.Freespace.Initialize(), then loops
on GetSample().  Whenever GetSample() returns $$$OK, sampler creates a new
MyMetrics.Sample.Freespace instance, with the sample data. When GetSample()
returns an error value, no sample is created, and sampler.Collect() returns. */

查看指标数据

所有指标类都支持 CSP;生成示例类时会自动生成 CSP 代码。因此,查看指标的最简单方法是使用网络浏览器;例如,基于生成指标中的示例并假设超级服务器端口为 52773CSP URLhttp://<instance-host>:52773/csp/user/MyMetrics.Sample.Freespace.cls,它显示类似的输出至:

Monitor - Freespace c:\InterSystems\IRIS51\ 
            Name of dataset:  c:\InterSystems\IRIS51\
Current amount of Freespace:  8.2MB

Monitor - Freespace c:\InterSystems\IRIS51\mgr\ 
            Name of dataset:  c:\InterSystems\IRIS51\mgr\
Current amount of Freespace:  6.4MB

或者,可以类中使用 %Monitor.ViewDisplay(metric_class) 方法;例如:

%SYS>set mclass="Monitor.Test.Freespace"

%SYS>set col=##class(%Monitor.SampleAgent).%New(mclass)

%SYS>write col.Collect()
1
%SYS>write ##class(%Monitor.View).Display(mclass)

Monitor - Freespace    c:\InterSystems\IRIS51\
                Name of dataset:  c:\InterSystems\IRIS51\
    Current amount of Freespace:  8.2MB

Monitor - Freespace    c:\InterSystems\IRIS51\mgr\
                Name of dataset:  c:\InterSystems\IRIS51\mgr\
    Current amount of Freespace:  6.4MB

注: 名称中带有%(百分号)的类的URL必须使用%25。例如,对于%monitor or.System.Freesspace类,使用 Http://localhost:52773/csp/sys/%25Monitor.System.Freespace.cls CLS

上一篇下一篇

猜你喜欢

热点阅读