21 May 2025
09:47 PM
- last edited on
22 May 2025
08:33 AM
by
MaciejNeumann
Hi,
I'm new to Dynatrace and I'm currently working on setting up monitoring in non production environment that will eventually move to production. Currently, I'm trying to create a SLO for a span that we intentionally ran to have a failure rate of 100%. However, the SLO is not able to evaluate it.
DQL that I'm using:
fetch spans
| filter matchesValue(endpoint.name, "<endpoint_name>") AND matchesValue(entityAttr(dt.entity.process_group, "tags"), "*APISECCluster*")
| fields start_time, end_time, Tier, span.name, duration, span.status_code, endpoint.name
| makeTimeseries {
EPM = countIf(span.status_code == "error", default: 0),
CPM = count(default: 0)
}, by: { API=endpoint.name }
| fieldsAdd sli=(((CPM[]-EPM[])/CPM[])*(100))
| fieldsAdd API
Since its a 100% failure rate - sli=(((CPM[]-EPM[])/CPM[])*(100)) will be 0%, which is not being displayed correctly and not being reported in the 'Problems' app in DT. Is there a way to handle this scenario where 100% degradation (which resoluts in 0% sli) will be recognized by DT? Thanks in advance!