We have some DMI reports based on synthetic monitoring data, and one of the reported metrics is Availability (total). The issue we're having is that sometimes there are intermittent errors, where the robot simply "stumbles" and reports an availability error, even though the target system was fine. When we have more than 1 agent monitoring the same target, we can see that the other robot was able to access the application without any errors, reporting availability as 100. Therefore, we'd like to create a reporting rule where availability for a specific time is "max(availability)", i.e. the highest value seen by the group of agents at the time.
So this is what I'm looking for:
Robot 1 availability = 100 %
Robot 2 availability = 0 %
Reported availability = 100 %
Robot 1 availability = 0 %
Robot 2 availability = 0 %
Reported availability = 0 %
Is this something that's possible to do with the DMI interface?
Solved! Go to Solution.
This can be done in BSM.
In fact we have a cusotmer that has a very similar approach to his SLA and he even has a request that 1 miss should be ignored and reported as 100% but 2 misses in sequence should alert and include the previous skipped miss.
You can use availability (binary) in the DMI report which will, for the time period, report 1 or 0. Caution though as only 1 transaction within that time preiod needs to succeed for it to be available.
Thanks for the replies!
April: Sounds good, but I couldn't find this metric "Availability (binary)" anywhere in the DMI, could you maybe point out where it's located?
Ulf: We haven't implemented BSM yet, but good to hear it's also possible to do from there.
So using the guide found here:
We created a custom metric file called dmi_dataview-transcustom.properties and this is the definition we used to create the availability (binary) metric:
CVENT.Trans.calculatedColumn.2.description=If the metric
'Availablility (total)' is 0, then report 0%. Otherwise, report 100%. This metric can be used to report on whether at least one robot, site, etc succeeded in running a transaction.
CVENT.Trans.calculatedColumn.2.expression=CASE [Avb] WHEN 0 THEN 0 ELSE 100 END
Let me know if this is useful to you or there are more details needed.
Thanks yet again for sharing this, April. One additional question though - does this also work for you when the aggregation level goes beyond raw data level? What I mean is, for me this calculates the metric correctly for raw data, but for example when I look at a daily value, it's always 100 % as long as one single measurement was successful at some point during the day (even though the real availability could be 0,001 %). So to me it looks like we need to manually calculate the aggregation averages 1/6/d/w/m for "Availability (binary)" based on the raw data, perhaps in an additional custom metric.
Coming back to this topic one more time, it seems I can't quite achieve what I would like with this custom metric. The "Availability (binary)" metric does work for raw data, so that for a single data point the value is either 0 % or 100 %. That's all good. But if I take a daily report out based on that data, it'll still always be either 0 % or 100 %. That is of course not what was intended, we would instead like to calculate the average daily availability based on those "raw data" points we defined earlier.
The response from Dynatrace development was that it's not possible to create a custom metric that is calculated based on another custom metric. So unfortunately that limitation renders this "Availability (binary)" metric pretty much unusable, unless I'm missing something? Would be happy to hear if anyone has any ideas or suggestions...