Mikhail Khomenko · Nov 1, 2021 go to post

Hello Vic,
Thank you for response!
Unfortunately, this also doesn't work for me (uppercase GBL & no wildcard in exclusion):

^^data_dir>set list("Ens*.GBL,'Ens.MessageBodyD.GBL")=""
^^data_dir>write $SYSTEM.OBJ.Export(.list, "/tmp/globals.xml")

Btw, I'm using IRIS 2020:

IRIS for UNIX (Ubuntu Server LTS for x86-64 Containers) 2020.1 (Build 215U)
Mikhail Khomenko · Nov 1, 2021 go to post

Thank you for response!
But it looks like documentation should be updated in that case as it provides such an example -)

You can also use ? or * wild cards and if you wish to exclude items pass ' before the item name which also supports wild card, e.g. "User.*.cls,'User.T*.cls".
Mikhail Khomenko · Oct 27, 2021 go to post

@David Foard IKO is just a pod, and it runs IRIS pods, so it could be running in an existing cluster. I also think, it worth to use some kind of Network Policies in that case. Regarding IKO usage experience - don't have a such in production, but going to try it for async mirroring soon.

Mikhail Khomenko · Feb 20, 2020 go to post

I'm not sure, but think that SAM-implementation is based on System Monitor (https://docs.intersystems.com/iris20194/csp/docbook/DocBook.UI.Page.cls?KEY=GCM_healthmon) in some fashion. Could you clarify your task? Do you want to know an exact name of Global where samples are stored?  For what?
Link you've shared describes how to expose your custom numeric metric that could be read by Prometheus, for instance, and then stored there.

Mikhail Khomenko · Feb 20, 2020 go to post

Hi David,
Thanks -) Regarding a meaning - it's taken from mgstat source-code (%SYS, routine mgstat.int).
Starting point was a line 159 in my local Cache 2017.1:

i maxeccon s estats=$p($system.ECP.GetProperty("ClientStats"),",",1,21),array($i(i))=+$system.ECP.NumClientConnections(),array($i(i))=$p(estats,",",2),array($i(i))=$p(estats,",",6),array($i(i))=$p(estats,",",7),array($i(i))=$p(estats,",",19),array($i(i))=$p(estats,",",20)


Then I guessed a meaning from a subroutine "heading" (line 289).

But the best option for you, I think, is to ask WRC. Support is very good.

Mikhail Khomenko · Feb 19, 2020 go to post

Metrics in this approach are stored in Prometheus. As Prometheus is time-series database, you can store any numeric metric there either counter or gauge.

Mikhail Khomenko · Feb 8, 2020 go to post

@Arto Alatalo At that time i've used Prometheus as a central monitoring system for hosts, services and Cache as well.
Also Simple JSON plugin should be improved to provide similar to Prometheus/Grafana functionality, at least at that moment  I've looked at it last time.

Mikhail Khomenko · Mar 22, 2018 go to post

Hi!
Unfortunately, I didn't have cases with Solaris, so I'll answer in style RTFM -)
An official InterSystems documentation says:

Many UNIX operating systems (HP-UX, IBM AIX®, and Oracle Solaris) do not support the AgentX protocol at this time. If your system does not support AgentX, you must install a separate SNMP agent which supports AgentX, such as Net-SNMP.
Note:
On Oracle Solaris, the System Management Agent (SMA), although a version of NET-SNMP, is not compatible with the Cache AgentX implementation. You will therefore need to disable the SMA agent (and possibly the older snmpdx agent as well) and install a standard version of NET-SNMP to support AgentX.

You can read more about SNMP support on Solaris here

Mikhail Khomenko · Jan 4, 2018 go to post

Hi, Murray! Thanks for an answer!

Yes, that article is brilliant. And I was inspired to monitor as much as we can about Cache memory usage from inside Cache, because it will give us the opportunity to have one "monitoring" class (with a lot of API calls) to gather many Cache-connected metrics. Of course, a lot of metrics we should gather from OS as well.
Ok, let HugePages usage to be an OS-metrics.

Best regards!

Mikhail Khomenko · Nov 3, 2017 go to post

Hi, Alexey! Thanks! What about your question: I think, in that case we should:

1) run mgstat continuously

2) parse file.

Although both of these steps are not difficult, a REST-interface enables us to merge them in one step when we run class in that time we want. Besides we can always extend our metrics set. For example, it's worth to add monitoring of databases sizes as well as Mirroring, Shadowing etc. 

Mikhail Khomenko · Jul 25, 2017 go to post

mgstat.int uses such approach (in this case, for class %SYSTEM.CPU):

if $D(^oddDEF("%SYSTEM.CPU")) {
        ...
    }

Mikhail Khomenko · Jul 7, 2017 go to post

Thanks, Rubens, for answer! I also thought to use Java compiler. If my attempt is successful, I'll report about it.

Mikhail Khomenko · Jun 13, 2017 go to post

Hi, Murray! Thanks for your comment! I'll try to describe templating soon.  I should add it to my plan. For now, an article about ^mgstat is almost ready (in head -)). So stay tuned for more.

Mikhail Khomenko · Jun 7, 2017 go to post

Good day!

In article a simple example is described. In reality you should use Zabbix Discovery. I'll try to show this process soon. Please, wait for a couple of days.

Mikhail Khomenko · Mar 15, 2017 go to post

Class signature is:

Class SYS.Monitor.SystemSensors Extends %SYS.Monitor.AbstractSensor [ Hidden, System = 3 ]

So it's absent either in Class Reference or Studio, but it can be shown in Studio using "Open" command and typing Systems.Sensors.cls in search field. Methods of this class are deployed so you cannot see their implementation.