第二十九章 使用系统监视器 - 应用程序监视器指标
第二十九章 使用系统监视器 - 应用程序监视器指标
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
代码。因此,查看指标的最简单方法是使用网络浏览器;例如,基于生成指标中的示例并假设超级服务器端口为 52773
,CSP URL
为 http://<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.View
的 Display(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