Lists the problems (and their details) observed by Dynatrace during a relative period of time.
A problem is included in the response if either the start or end timestamp of the problem is within the defined timeframe.
You can narrow down the output by specifying filtering criteria—see the Parameters section.
The request produces an application/json
payload.
GET | SaaS | https://{your-environment-id}.live.dynatrace.com/api/v2/problems |
Environment ActiveGateCluster ActiveGate | https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/problems |
To execute this request, you need an access token with problems.read
scope.
To learn how to obtain and use it, see Tokens and authentication.
A list of additional problem properties you can add to the response.
The following properties are available (all other properties are always included and you can't remove them from the response):
evidenceDetails
: The details of the root cause.impactAnalysis
: The impact analysis of the problem on other entities/users.recentComments
: A list of the most recent comments to the problem.To add properties, specify them as a comma-separated list (for example, evidenceDetails,impactAnalysis
).
The field is valid only for the current page of results. You must set it for each page you're requesting.
The cursor for the next page of results. You can find it in the nextPageKey field of the previous response.
The first page is always returned if you don't specify the nextPageKey query parameter.
When the nextPageKey is set to obtain subsequent pages, you must omit all other query parameters except the optional fields parameter.
The amount of problems in a single response payload.
The maximal allowed page size is 500.
If not set, 50 is used.
The start of the requested timeframe.
You can use one of the following formats:
2021-01-25T05:57:01.123+01:00
. If no time zone is specified, UTC is used. You can use a space character instead of the T
. Seconds and fractions of a second are optional.now-NU/A
, where N
is the amount of time, U
is the unit of time, and A
is an alignment. The alignment rounds all the smaller values to the nearest zero in the past. For example, now-1y/w
is one year back, aligned by a week.
You can also specify relative timeframe without an alignment: now-NU
.
Supported time units for the relative timeframe are:
m
: minutesh
: hoursd
: daysw
: weeksM
: monthsy
: yearsIf not set, the relative timeframe of two hours is used (now-2h
).
The end of the requested timeframe.
You can use one of the following formats:
2021-01-25T05:57:01.123+01:00
. If no time zone is specified, UTC is used. You can use a space character instead of the T
. Seconds and fractions of a second are optional.now-NU/A
, where N
is the amount of time, U
is the unit of time, and A
is an alignment. The alignment rounds all the smaller values to the nearest zero in the past. For example, now-1y/w
is one year back, aligned by a week.
You can also specify relative timeframe without an alignment: now-NU
.
Supported time units for the relative timeframe are:
m
: minutesh
: hoursd
: daysw
: weeksM
: monthsy
: yearsIf not set, the current timestamp is used.
Defines the scope of the query. Only problems matching the specified criteria are included into response.
You can add one or several of the criteria listed below. For each criterion you can specify multiple comma-separated values, unless stated otherwise. If several values are specified, the OR logic applies. All values must be quoted.
status("open")
or status("closed")
. You can specify only one status.severityLevel("level-1","level-2")
. Find the possible values in the description of the severityLevel field of the response.impactLevel("level-11","level-2")
Find the possible values in the description of the impactLevel field of the response.rootCauseEntity("id-1", "id-2")
.managementZoneIds("mZId-1", "mzId-2")
.managementZones("value-1","value-2")
.impactedEntities("id-1", "id-2")
.affectedEntities("id-1", "id-2")
.affectedEntityTypes("value-1","value-2")
.problemId("id-1", "id-2")
.problemFilterIds("id-1", "id-2")
.problemFilterNames("value-1","value-2")
.problemFilterNames.equals("value-1","value-2")
.entityTags("[context]key:value","key:value")
. Tags in [context]key:value
, key:value
, and value
formats are detected and parsed automatically. If a value-only tag has a colon (:
) in it, you must escape the colon with a backslash(\
). Otherwise, the tag will be parsed as a key:value tag
. All tag values are case-sensitive.displayId("id-1", "id-2")
.underMaintenance(true|false)
. Shows (true) or hides (false) all problems created during maintenance mode.text("value")
. Text search on the following fields: problem title, event titles, displayId and the id of affected and impacted entities. The text search is case insensitive, partial matching and based on a relevance score. Therefore the relevance
sort option should be used to get the most relevant problems first. The special characters ~
and "
need to be escaped using a ~
(e.g. double quote search text("~"")
). The search value is limited to 30 characters.To set several criteria, separate them with a comma (,
). Only results matching all criteria are included in the response.
The entity scope of the query. You must set one of these criteria:
type("TYPE")
entityId("id")
. You can specify several IDs, separated by a comma (entityId("id-1","id-2")
). All requested entities must be of the same type.You can add one or more of the following criteria. Values are case-sensitive and the EQUALS
operator is used unless otherwise specified.
tag("value")
. Tags in [context]key:value
, key:value
, and value
formats are detected and parsed automatically. Any colons (:
) that are part of the key or value must be escaped with a backslash(\
). Otherwise, it will be interpreted as the separator between the key and the value. All tag values are case-sensitive.mzId(123)
mzName("value")
entityName.equals
: performs a non-casesensitive EQUALS
query.entityName.startsWith
: changes the operator to BEGINS WITH
.entityName.in
: enables you to provide multiple values. The EQUALS
operator applies.caseSensitive(entityName.equals("value"))
: takes any entity name criterion as an argument and makes the value case-sensitive.healthState("HEALTHY")
firstSeenTms.<operator>(now-3h)
. Use any timestamp format from the from/to parameters.
The following operators are available:
lte
: earlier than or at the specified timelt
: earlier than the specified timegte
: later than or at the specified timegt
: later than the specified time<attribute>("value1","value2")
and <attribute>.exists()
. To fetch the list of available attributes, execute the GET entity type request and check the properties field of the response.fromRelationships.<relationshipName>()
and toRelationships.<relationshipName>()
. This criterion takes an entity selector as an attribute. To fetch the list of available relationships, execute the GET entity type request and check the fromRelationships and toRelationships fields.not(<criterion>)
. Inverts any criterion except for type.For more information, see Entity selector in Dynatrace Documentation.
To set several criteria, separate them with a comma (,
). For example, type("HOST"),healthState("HEALTHY")
. Only results matching all criteria are included in the response.
The maximum string length is 2,000 characters.
The maximum number of entities that may be selected is limited to 10000.
Specifies a set of comma-separated (,
) fields for sorting in the problem list.
You can sort by the following properties with a sign prefix for the sorting order.
status
: problem status (+
open problems first or -
closed problems first)startTime
: problem start time (+
old problems first or -
new problems first)relevance
: problem relevance (+
least relevant problems first or -
most relevant problems first) - can be used only in combination with text searchIf no prefix is set, +
is used.
You can specify several levels of sorting. For example, +status,-startTime
sorts problems by status, open problems first. Within the status, problems are sorted by start time, oldest first.
Some JSON models vary depending on the type of the model. To find all the possible variations, refer to JSON models.
Problems
objectA list of problems.
The cursor for the next page of results. Has the value of null
on the last page.
Use it in the nextPageKey query parameter to obtain subsequent pages of the result.
The number of entries per page.
The total number of entries in the result.
A list of warnings
Problem
objectThe properties of a problem.
The display ID of the problem.
The end timestamp of the problem, in UTC milliseconds.
Has -1
value, if the problem is still open.
The impact level of the problem. It shows what is affected by the problem.
APPLICATION
ENVIRONMENT
INFRASTRUCTURE
SERVICES
The related Kubernetes cluster names.
The related Kubernetes cluster UIDs.
The related Kubernetes namespace names.
The ID of the problem.
The severity of the problem.
AVAILABILITY
CUSTOM_ALERT
ERROR
INFO
MONITORING_UNAVAILABLE
PERFORMANCE
RESOURCE_CONTENTION
The start timestamp of the problem, in UTC milliseconds.
The status of the problem.
CLOSED
OPEN
The name of the problem, displayed in the UI.
EntityStub
objectA short representation of a monitored entity.
The name of the entity.
Not included in the response in case no entity with the relevant ID was found.
EntityId
objectA short representation of a monitored entity.
The ID of the entity.
The type of the entity.
METag
objectThe tag of a monitored entity.
The origin of the tag, such as AWS or Cloud Foundry.
Custom tags use the CONTEXTLESS
value.
The key of the tag.
The string representation of the tag.
The value of the tag.
EvidenceDetails
objectThe evidence details of a problem.
The total number of evidence of a problem.
Evidence
objectAn evidence of a root cause.
The actual set of fields depends on the type of the evidence. Find the list of actual objects in the description of the evidenceType field or see Problems API v2 - JSON models.
The display name of the evidence.
Defines the actual set of fields depending on the value. See one of the following objects:
EVENT
-> EventEvidenceMETRIC
-> MetricEvidenceTRANSACTIONAL
-> TransactionalEvidenceMAINTENANCE_WINDOW
-> MaintenanceWindowEvidenceAVAILABILITY_EVIDENCE
-> AvailabilityEvidenceAVAILABILITY_EVIDENCE
EVENT
MAINTENANCE_WINDOW
METRIC
TRANSACTIONAL
The evidence is (true
) or is not (false
) a part of the root cause.
The start time of the evidence, in UTC milliseconds.
ImpactAnalysis
objectA list of all impacts of the problem.
Impact
objectThe impact analysis of the problem on other entities/users.
The actual set of fields depends on the type of the impact. Find the list of actual objects in the description of the impactType field or see Problems API v2 - JSON models.
The estimated number of affected users.
Defines the actual set of fields depending on the value. See one of the following objects:
SERVICE
-> ServiceImpactAPPLICATION
-> ApplicationImpactMOBILE
-> MobileImpactCUSTOM_APPLICATION
-> CustomApplicationImpactAPPLICATION
CUSTOM_APPLICATION
MOBILE
SERVICE
LinkedProblem
objectThe properties of the linked problem.
The display ID of the problem.
The ID of the problem.
ManagementZone
objectA short representation of a management zone.
The ID of the management zone.
The name of the management zone.
AlertingProfileStub
objectShort representation of the alerting profile.
The ID of the alerting profile.
The name of the alerting profile.
CommentsList
objectA list of comments.
The cursor for the next page of results. Has the value of null
on the last page.
Use it in the nextPageKey query parameter to obtain subsequent pages of the result.
The number of entries per page.
The total number of entries in the result.
Comment
objectThe comment to a problem.
The user who wrote the comment.
The text of the comment.
The context of the comment.
The timestamp of comment creation, in UTC milliseconds.
The ID of the comment.
{"nextPageKey": "AQAAABQBAAAABQ==","pageSize": 1,"problems": [{"affectedEntities": [{"entityId": {"id": "string","type": "string"},"name": "string"}],"displayId": "string","endTime": 1,"entityTags": [{"context": "string","key": "string","stringRepresentation": "string","value": "string"}],"evidenceDetails": {"details": [{"displayName": "string","entity": {},"evidenceType": "AVAILABILITY_EVIDENCE","groupingEntity": {},"rootCauseRelevant": true,"startTime": 1}],"totalCount": 1},"impactAnalysis": {"impacts": [{"estimatedAffectedUsers": 1,"impactType": "APPLICATION","impactedEntity": {}}]},"impactLevel": "APPLICATION","impactedEntities": [{}],"k8s.cluster.name": ["string"],"k8s.cluster.uid": ["string"],"k8s.namespace.name": ["string"],"linkedProblemInfo": {"displayId": "string","problemId": "string"},"managementZones": [{"id": "string","name": "string"}],"problemFilters": [{"id": "string","name": "string"}],"problemId": "string","recentComments": {"comments": [{"authorName": "string","content": "string","context": "string","createdAtTimestamp": 1,"id": "string"}],"nextPageKey": "AQAAABQBAAAABQ==","pageSize": 1,"totalCount": 1},"rootCauseEntity": {},"severityLevel": "AVAILABILITY","startTime": 1,"status": "CLOSED","title": "string"}],"totalCount": 1,"warnings": ["string"]}