The GraphQL API does not return traces. It manages models such as apps, incidents, dashboards, and alerts. Read traces with the
REST API (V2), such as listing traces.Reading metrics and logs through the GraphQL API is deprecated. Use metrics and log search in the REST API (V2)
instead. The GraphQL API cannot search log lines. The metric examples on
this page remain for existing integrations.
Fetch deployments
Query
query MarkersIndexQuery(
$appId: String!
$limit: Int
$offset: Int
$start: DateTime
$end: DateTime
) {
app(id: $appId) {
id
deployMarkers(limit: $limit, offset: $offset, start: $start, end: $end) {
id
createdAt
shortRevision
revision
gitCompareUrl
user
liveForInWords
liveFor
exceptionCount
exceptionRate
__typename
}
__typename
}
}
Query variables
{
"appId": "YOUR-APP-ID",
"limit": 25
}
Fetch incidents for a deploy
Query
query ExceptionIncidentsQuery(
$appId: String!
$namespaces: [String]
$markerId: String
$limit: Int
$offset: Int
$state: IncidentStateEnum
$order: IncidentOrderEnum
) {
app(id: $appId) {
id
exceptionIncidents(
namespaces: $namespaces
marker: $markerId
limit: $limit
state: $state
offset: $offset
order: $order
) {
...ExceptionIncidentRow
__typename
}
__typename
}
}
fragment ExceptionIncidentRow on ExceptionIncident {
id
number
count
perMarkerCount(marker: $markerId)
lastOccurredAt
actionNames
exceptionName
state
namespace
firstBacktraceLine
errorGroupingStrategy
severity
}
Query variables
{
"appId": "YOUR-APP-ID",
"markerId": "YOUR-DEPLOY-MARKER-ID",
"limit": 200
}
Fetch error count
This example uses the deprecated GraphQL metrics API. For new integrations,
use the REST metrics list endpoint instead.
Query
query MetricsListQuery(
$appId: String!
$start: DateTime
$end: DateTime
$timeframe: TimeframeEnum
$query: [MetricAggregation!]!
) {
app(id: $appId) {
id
metrics {
list(start: $start, end: $end, query: $query, timeframe: $timeframe) {
start
end
rows {
name
tags {
key
value
}
fields {
key
value
}
}
}
}
}
}
Query variables
{
"appId": "YOUR-APP-ID",
"start": "2021-06-04T13:00:00.000Z", // change this to the date of your preference
"end": "2021-12-21T14:00:00.000Z", // change this to the date of your preference
"query": [
{
"name": "error_count",
"tags": [{ "key": "namespace", "value": "*" }],
"fields": [{ "field": "COUNTER", "aggregate": "SUM" }]
}
]
}
Fetch mean (timeseries)
This example uses the deprecated GraphQL metrics API. For new integrations,
use the REST metrics timeseries endpoint instead.
Query
query MetricTimeseriesQuery(
$appId: String!
$start: DateTime
$end: DateTime
$timeframe: TimeframeEnum
$query: [MetricTimeseries]
) {
app(id: $appId) {
id
metrics {
timeseries(
start: $start
end: $end
timeframe: $timeframe
query: $query
) {
start
end
resolution
keys {
name
fields
tags {
key
value
}
}
points {
timestamp
values {
value
}
}
}
}
}
}
Query variables
{
"appId": "YOUR-APP-ID",
"start": "2022-01-10T11:00:00Z", // Start data and time you want to fetch the Mean for
"end": "2022-01-10T11:05:00Z", // End data and time you want to fetch the Mean for
"query": [
{
"name": "trace_duration",
"tags": [ // You can add more namespaces here, this example just fetches the Mean for web namespace.
{
"key": "namespace",
"value": "web"
}
],
"fields": [
{
"field": "MEAN"
}
]
}
]
}
Fetch mean (aggregated)
This example uses the deprecated GraphQL metrics API. For new integrations,
use the REST metrics list endpoint instead.
Query
query MetricAggregationQuery(
$appId: String!
$start: DateTime
$end: DateTime
$timeframe: TimeframeEnum
$query: [MetricAggregation!]!
) {
app(id: $appId) {
id
metrics {
list(start: $start, end: $end, timeframe: $timeframe, query: $query) {
start
end
rows {
name
tags {
key
value
}
fields {
key
value
}
}
}
}
}
}
Query variables
{
"appId": "YOUR-APP-ID",
"start": "2022-01-10T11:00:00Z", // Start data and time you want to fetch the Mean for
"end": "2022-01-10T11:05:00Z", // End data and time you want to fetch the Mean for
"query": [
{
"name": "trace_duration",
"tags": [ // You can add more namespaces here, this example just fetches the Mean for web namespace.
{
"key": "namespace",
"value": "web"
}
],
"fields": [
{"field":"mean","aggregate":"AVG"}
]
}
]
}
Fetch an incident
Query
query IncidentQuery($appId: String!, $incidentNumber: Int!) {
app(id: $appId) {
id
incident(incidentNumber: $incidentNumber) {
... on ExceptionIncident {
...ExceptionIncident
}
... on PerformanceIncident {
...PerformanceIncident
}
}
}
}
fragment ExceptionIncident on ExceptionIncident {
id
number
lastOccurredAt
actionNames
exceptionName
notificationFrequency
state
namespace
firstBacktraceLine
errorGroupingStrategy
}
fragment PerformanceIncident on PerformanceIncident {
id
number
lastOccurredAt
actionNames
state
notificationFrequency
notificationThreshold
namespace
description
severity
__typename
}
Query variables
{
"appId": "YOUR-APP-ID",
"incidentNumber": 42
}
Fetch uptime monitors and their alerts
Query
query uptimeMonitorsQuery($appId: String!) {
app(id: $appId) {
id
uptimeMonitors {
...UptimeMonitor
}
}
}
fragment UptimeMonitor on UptimeMonitor {
id
name
url
description
notifierIds
warmupDuration
checkBodyContent
regions
headers {
key
value
}
alerts {
...Alert
}
statusPages {
...StatusPage
}
}
fragment Alert on Alert {
id
state
message
metricDigest
createdAt
openedAt
resolvedAt
closedAt
timeframeStartAt
timeframeEndAt
lastValue
peakValue
mean
tags {
key
value
}
}
fragment StatusPage on StatusPage {
id
title
subdomain
hostname
description
threshold
uptimeMonitorIds
}
Query variables
{
"appId": "YOUR-APP-ID"
}
Fetch uptime monitor status
This example uses the deprecated GraphQL metrics API. For new integrations,
use the REST metrics timeseries endpoint instead.
Query
query MetricTimeseriesQuery(
$appId: String!
$start: DateTime
$end: DateTime
$timeframe: TimeframeEnum
$query: [MetricTimeseries]
) {
app(id: $appId) {
id
metrics {
timeseries(
start: $start
end: $end
timeframe: $timeframe
query: $query
) {
start
end
resolution
keys {
digest
name
fields
tags {
key
value
}
}
points {
timestamp
values {
key
value
}
}
}
}
}
}
Query variables
{
"appId": "YOUR-APP-ID",
"timeframe": "R1H", // for example: R1H, R4H, R8H, R12H, R24H, R48H, R7D, or R30D
"query": [
{
"name": "uptime_monitor_error_count",
"tags": [
{
"key": "name",
"value": "NAME-OF-UPTIME-MONITOR"
},
{
"key": "region",
"value": "*" // You can filter this to a specific region.
}
],
"fields": [
{
"field": "COUNTER"
}
]
}
]
}