Skip to main content


class %SYS.Monitor.SAM.Abstract extends %SYS.Monitor.AbstractSensor

Abstract class to provide Sensor metrics for the SAM (System Alerting and Monitoring) application and Prometheus API. All classes which define SAM metrics should inherit from this class. Users may inherit from this class to create application metrics. The application classes may then be registered using SYS.Monitor.SAM.Config.AddApplicationClass(), and they will be added to the system metrics.

Note that this will be called directly by the SAM REST service, and not by the System Monitor. The main SAM polling API will call GetSensors(), which should create the array of:

SAMValues(key)=value or SAMValues(key,item)=value.

Users may call SetSensor(Sensor, Value, Item) or directly set ..SAMValues for each metric.
All 'values' MUST BE NUMERIC values to be used for SAM and/or Prometheus.

Since this will be called directly by the SAM REST service, users should be careful to not introduce any hangs, pauses, or any coding excesses here, as this may be called at intervals of only a few seconds.

Method Inventory


parameter PRODUCT = unknown;
Fill in the Product name here, which will be appended to all metric names. This should be a short, lower-case prefix to indicate the company or application. InterSystems IRIS will use "iris" for system metrics.


final method SetSensor(Sensor As %String, Value As %String, Item As %String = "") as %Integer
Override Dashboard sensors which are persistent, and System sensors which get passed to Subscribers. Just store all Sensors in the local SAMValues array.

Inherited Members

Inherited Properties

Inherited Methods

FeedbackOpens in a new tab