SAMではアプリケーションに合わせて監視項目を追加することも可能です。
まず、%SYS.Monitor.SAM.Abstractクラスを継承したクラスを作成し、PRODUCTパラメータにアプリ名、GetSensors()メソッドにてSetSensor()メソッドを使用し、メトリックを登録し、クラスをコンパイルします。試しに先日作成した温湿度計のデータを取得するようにしました。
Class REST.Monitor Extends %SYS.Monitor.SAM.Abstract{ Parameter PRODUCT = "temperature"; Method GetSensors() As %Status { set lastdate=$order(^Temp(""),-1) quit:lastdate="" $$$OK set lasttime=$order(^Temp(lastdate,""),-1,data) quit:lasttime="" $$$OK
set temp=$lg(data),hum=$lg(data,2) set now=$horolog do ..SetSensor("temperature",temp) do ..SetSensor("humidity",hum) do ..SetSensor("latency",$piece(now,",")-lastdate*86400+$piece(now,",",2)-lasttime) quit $$$OK }}ターミナルを起動し%SYSネームスペースに移動、以下のメソッドを実行します。
(第2パラメータのUSERはREST.Monitorが存在するネームスペース)
%SYS>set status = ##class(SYS.Monitor.SAM.Config).AddApplicationClass("REST.Monitor", "USER")戻り値の変数statusが1でしたら、正常に登録できています。
登録が終わりましたら、以下のURLにアクセスし、先ほどクラスを作成したホストを選択します。
http://localhost:8080/api/sam/app/index.csp
画面右手中央の「View Grafana」をクリックします。
画面上部に以下のようなアイコンが表示されますので、「Add Panel」(赤枠部分)をクリックします。.png)
以下のようにパネルが作成されますので、「Add query」をクリックします。.png)
Queryのメトリックスを指定し、Legend欄にデータのコメントを入力します。.png)
グラフが追加されましたら、画面上方の「Save Dashboard」(赤枠部分)をクリックします。.png)
SAM (http://localhost:8080/api/sam/app/index.csp) にアクセスしますと、新たにパネルが追加されています。
以上です。
- コメントを投稿するにはログインしてください
.png)
.png)