GraphQL Examples

Here are some of the query examples to get you started. You the use the GraphQL explorer here to run these queries.

Fetch deployments

Query

graphql
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

graphql
{ "appId": "YOUR-APP-ID", "limit": 25 }

Fetch incidents by deployments

Query

graphql
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

graphql
{ "appId": "YOUR-APP-ID", "markerId": "YOUR-DEPLOY-MARKER-ID", "limit": 200 }

Search incidents by tag

Query

graphql
uery Search( $organizationSlug: String! $query: String $namespace: String $sampleType: SampleTypeEnum ) { organization(slug: $organizationSlug) { search( query: $query namespace: $namespace sampleType: $sampleType ) { ... on ExceptionSample { id time action namespace overview { key value } exception { name message } incident { ... on ExceptionIncident { number } } app { name environment id } } ... on PerformanceSample { id appId time action namespace duration overview { key value } incident { ... on PerformanceIncident { number } } app { name environment id } } } } }

Query variables

graphql
{ "organizationSlug":"APPLICATION-SLUG" // taken from the URL of the application, "sampleType":"EXCEPTION", "query": "tag:value" // replace the word value with the values you are searching for }

Fetch error count

Query

graphql
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

graphql
{ "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": "transaction_exception_count", "tags": [{ "key": "namespace", "value": "*" }], "fields": [{ "field": "COUNTER", "aggregate": "SUM" }] } ] }

Fetch Mean (timeseries)

Query

graphql
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

graphql
{ "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": "transaction_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)

Query

graphql
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

graphql
{ "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": "transaction_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 incident with sample

Query

graphql
query IncidentQuery( $appId: String! $incidentNumber: Int! $sampleId: String $timestamp: String $timerange: [DateTime] ) { 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 sample(id: $sampleId, timestamp: $timestamp, timerange: $timerange) { ...ExceptionSample } } fragment ExceptionSample on ExceptionSample { id appId time revision action namespace queueDuration originallyRequested overview { key value } params sessionData customData environment { key value } exception { name message backtrace { original line column path method url type code { line source } error { class message } } } } fragment PerformanceIncident on PerformanceIncident { id number lastOccurredAt actionNames state notificationFrequency notificationThreshold namespace description severity sample(id: $sampleId, timestamp: $timestamp, timerange: $timerange) { ...PerformanceSample __typename } __typename } fragment PerformanceSample on PerformanceSample { id appId time revision action namespace originallyRequested hasNPlusOne timelineTruncatedEvents overview { key value __typename } params sessionData customData environment { key value __typename } duration queueDuration timeline { ...TimelineEvent __typename } version __typename } fragment TimelineEvent on TimelineEvent { action duration childDuration group name payload { name body __typename } time end digest count level allocationCount childAllocationCount __typename }

Query variables

graphql
{ "appId": "YOUR-APP-ID", "incidentNumber": ID-OF-INCIDENT, "sampleId": "SAMPLE-ID-STRING", // this is optional "timestamp": "SAMPLE-TIME-STAMP", // this is optional "timerange": "SAMPLE-TIME-RANGE", // this is optional }

Fetch uptime monitors and their alerts

Query

graphql
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

graphql
{ "appId": "YOUR-APP-ID" }

Fetch uptime monitors status

Query

graphql
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

graphql
{ "appId": "YOUR-APP-ID", "timeframe": "R1H", // Available option (R1H,R4H,R8H,R12H,,R24H,R48H, R7D,R30D) "query": [ { "name": "uptime_monitor_error_count", "tags": [ { "key": "name", "value": "NAME-OF-UPTIME-MONITOR" }, { "key": "region", "value": "*" // You can filter this to specific region as well. } ], "fields": [ { "field": "COUNTER" } ] } ] }