Files
upstream-tldraw/internal/grafana/resources/dashboards.v1.dashboard.grafana.app/nivs2rl.yaml
upstream-mirror a774ac673a
Some checks failed
Deploy analytics worker / Deploy analytics worker to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
i18n upload strings / Upload latest strings (push) Failing after 1s
Deploy bemo / Deploy bemo to ${{ (github.ref == 'refs/heads/bemo-production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
Deploy grafana resources / ${{ github.event_name == 'push' && 'Deploy grafana resources' || 'Validate grafana resources (dry run)' }} (push) Failing after 0s
End to end tests (dotcom) / Check for relevant changes (push) Failing after 0s
End to end tests (examples) / Check for relevant changes (push) Failing after 0s
End to end tests (mermaid readability) / Check for relevant changes (push) Failing after 1s
End to end tests (perf) / Check for relevant changes (push) Failing after 0s
Publish editor extensions / Publish editor extensions (push) Failing after 1s
Publish SDK packages / Remove the publish-packages label (push) Has been skipped
Checks / Tests & checks (push) Has been cancelled
Checks / Build all projects (push) Has been cancelled
Deploy templates / Deploy templates (push) Has been cancelled
End to end tests (dotcom) / End to end tests (dotcom) (push) Has been cancelled
End to end tests (mermaid readability) / End to end tests (mermaid readability) (push) Has been cancelled
End to end tests (perf) / End to end tests (perf) (push) Has been cancelled
Deploy .com / Deploy dotcom to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Has been cancelled
End to end tests (examples) / End to end tests (examples) (push) Has been cancelled
Publish SDK packages / Publish SDK packages (push) Has been cancelled
Publish SDK packages / Tell user released version (push) Has been cancelled
Publish SDK packages / Publishes code templates to separate repositories (push) Has been cancelled
Publish SDK packages / Deploys the template demos with the new SDK version (push) Has been cancelled
snapshot of https://github.com/tldraw/tldraw.git (main, 2026-09-23; blobs > 131072B omitted)
2026-09-23 16:12:52 +05:00

2335 lines
69 KiB
YAML

apiVersion: dashboard.grafana.app/v1
kind: Dashboard
metadata:
annotations:
grafana.app/folder: ''
grafana.app/message: |
convert to v2
grafana.app/saved-from-ui: Grafana Cloud
labels: {}
name: nivs2rl
namespace: stacks-890472
spec:
annotations:
list:
- builtIn: 1
datasource:
type: grafana
uid: -- Grafana --
enable: true
hide: true
iconColor: rgba(0, 211, 255, 1)
name: Annotations & Alerts
type: dashboard
editable: true
fiscalYearStartMonth: 0
graphTooltip: 1
links: []
liveNow: false
panels:
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: Requests per worker script across the whole account — covers the
missing HTTP traffic metrics for every worker, including asset-upload and tldrawusercontent
which emit no app metrics.
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: line
fillOpacity: 12
gradientMode: opacity
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 1.5
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: none
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 12
x: 0
'y': 0
id: 2
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeFifteenMinutes
text: time
type: timestamp
- selector: dimensions.scriptName
text: worker
type: string
- selector: sum.requests
text: requests
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].workersInvocationsAdaptive
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
workersInvocationsAdaptive(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
sum { requests }
dimensions { datetimeFifteenMinutes scriptName }
}
}
}
}
body_type: graphql
method: POST
title: Worker requests
transformations:
- id: partitionByValues
options:
fields:
- worker
keepFields: false
naming:
asLabels: true
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: Uncaught-exception error counts per worker script — the free version
of the missing exception-rate metric (no per-event labels).
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: bars
fillOpacity: 80
gradientMode: none
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 0
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: normal
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 12
x: 12
'y': 0
id: 3
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeFifteenMinutes
text: time
type: timestamp
- selector: dimensions.scriptName
text: worker
type: string
- selector: sum.errors
text: errors
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].workersInvocationsAdaptive
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
workersInvocationsAdaptive(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
sum { errors }
dimensions { datetimeFifteenMinutes scriptName }
}
}
}
}
body_type: graphql
method: POST
title: Worker errors
transformations:
- id: partitionByValues
options:
fields:
- worker
keepFields: false
naming:
asLabels: true
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: 'Requests by invocation status: success, scriptThrewException, exceededResources,
clientDisconnected, internalError.'
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: bars
fillOpacity: 80
gradientMode: none
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 0
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: normal
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 8
x: 0
'y': 8
id: 4
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeFifteenMinutes
text: time
type: timestamp
- selector: dimensions.status
text: status
type: string
- selector: sum.requests
text: requests
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].workersInvocationsAdaptive
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
workersInvocationsAdaptive(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
sum { requests }
dimensions { datetimeFifteenMinutes status }
}
}
}
}
body_type: graphql
method: POST
title: Invocation outcomes
transformations:
- id: partitionByValues
options:
fields:
- status
keepFields: false
naming:
asLabels: true
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: CPU time percentiles per worker (microseconds) — the platform-side
saturation signal for compute.
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: line
fillOpacity: 12
gradientMode: opacity
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 1.5
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: none
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
unit: µs
overrides: []
gridPos:
h: 8
w: 8
x: 8
'y': 8
id: 5
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeFifteenMinutes
text: time
type: timestamp
- selector: dimensions.scriptName
text: worker
type: string
- selector: quantiles.cpuTimeP50
text: p50
type: number
- selector: quantiles.cpuTimeP99
text: p99
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].workersInvocationsAdaptive
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
workersInvocationsAdaptive(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
quantiles { cpuTimeP50 cpuTimeP99 }
dimensions { datetimeFifteenMinutes scriptName }
}
}
}
}
body_type: graphql
method: POST
title: Worker CPU time p50 / p99
transformations:
- id: partitionByValues
options:
fields:
- worker
keepFields: false
naming:
asLabels: true
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: Subrequests (fetch calls to R2, Postgres-over-HTTP, other services)
per worker — a proxy for downstream pressure.
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: line
fillOpacity: 12
gradientMode: opacity
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 1.5
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: none
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 8
x: 16
'y': 8
id: 6
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeFifteenMinutes
text: time
type: timestamp
- selector: dimensions.scriptName
text: worker
type: string
- selector: sum.subrequests
text: subrequests
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].workersInvocationsAdaptive
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
workersInvocationsAdaptive(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
sum { subrequests }
dimensions { datetimeFifteenMinutes scriptName }
}
}
}
}
body_type: graphql
method: POST
title: Worker subrequests
transformations:
- id: partitionByValues
options:
fields:
- worker
keepFields: false
naming:
asLabels: true
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: DO invocations per script. Each incoming WebSocket message bills
as a request, so for the sync-worker this approximates the missing receive_message
metric (aggregate only). The scriptName dimension is inferred from Cloudflare
dashboards — verify via the schema explorer if it errors.
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: line
fillOpacity: 12
gradientMode: opacity
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 1.5
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: none
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 12
x: 0
'y': 16
id: 7
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeFifteenMinutes
text: time
type: timestamp
- selector: dimensions.scriptName
text: script
type: string
- selector: sum.requests
text: requests
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].durableObjectsInvocationsAdaptiveGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
durableObjectsInvocationsAdaptiveGroups(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
sum { requests }
dimensions { datetimeFifteenMinutes scriptName }
}
}
}
}
body_type: graphql
method: POST
title: Durable Object requests
transformations:
- id: partitionByValues
options:
fields:
- script
keepFields: false
naming:
asLabels: true
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: DO requests by invocation status — surfaces DO-side exceptions and
resource limits. The status dimension is inferred from Cloudflare dashboards
— verify via the schema explorer if it errors.
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: bars
fillOpacity: 80
gradientMode: none
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 0
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: normal
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 12
x: 12
'y': 16
id: 8
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeFifteenMinutes
text: time
type: timestamp
- selector: dimensions.status
text: status
type: string
- selector: sum.requests
text: requests
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].durableObjectsInvocationsAdaptiveGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
durableObjectsInvocationsAdaptiveGroups(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
sum { requests }
dimensions { datetimeFifteenMinutes status }
}
}
}
}
body_type: graphql
method: POST
title: Durable Object invocation outcomes
transformations:
- id: partitionByValues
options:
fields:
- status
keepFields: false
naming:
asLabels: true
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: Total DO CPU time per interval across the account (rooms, bemo, MCP
sessions combined).
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: line
fillOpacity: 25
gradientMode: opacity
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 1.5
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: none
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
unit: µs
overrides: []
gridPos:
h: 8
w: 12
x: 0
'y': 24
id: 9
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeFifteenMinutes
text: time
type: timestamp
- selector: sum.cpuTime
text: cpu time
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: timeseries
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].durableObjectsPeriodicGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
durableObjectsPeriodicGroups(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
sum { cpuTime }
dimensions { datetimeFifteenMinutes }
}
}
}
}
body_type: graphql
method: POST
title: Durable Object CPU time
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: Total bytes stored in DO storage across the account — namespace-level
saturation for room SQLite/KV state.
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: line
fillOpacity: 25
gradientMode: opacity
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 1.5
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: none
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
unit: decbytes
overrides: []
gridPos:
h: 8
w: 12
x: 12
'y': 24
id: 10
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeHour
text: time
type: timestamp
- selector: max.storedBytes
text: stored bytes
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: timeseries
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].durableObjectsStorageGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
durableObjectsStorageGroups(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
max { storedBytes }
dimensions { datetimeHour }
}
}
}
}
body_type: graphql
method: POST
title: Durable Object stored bytes
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: Billed DO duration summed per namespace over the selected range —
where the cost actually sits. TLDR_DOC / TLFileDurableObject (file rooms) is
5864db4344ac4c55bfd94e81dd25a043 and normally carries ~98% of the total. Shown
as a ranked total rather than a time series because Infinity's backend parser
does not pivot a dimension column into separate series.
fieldConfig:
defaults:
color:
mode: continuous-GrYlRd
min: 0
thresholds:
mode: absolute
steps:
- color: green
value: 0
unit: short
overrides: []
gridPos:
h: 8
w: 12
x: 0
'y': 32
id: 19
options:
displayMode: gradient
legend:
calcs: []
displayMode: list
overflow: ellipsis
placement: bottom
showLegend: false
maxVizHeight: 300
minVizHeight: 16
minVizWidth: 8
namePlacement: auto
orientation: horizontal
reduceOptions:
calcs:
- lastNotNull
fields: ''
values: true
showUnfilled: true
sizing: auto
valueMode: color
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.namespaceId
text: namespace
type: string
- selector: sum.duration
text: duration
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].durableObjectsPeriodicGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
durableObjectsPeriodicGroups(limit: 30, orderBy: [sum_duration_DESC], filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
sum { duration }
dimensions { namespaceId }
}
}
}
}
body_type: graphql
method: POST
title: DO duration by namespace (GB·s, over range)
type: bargauge
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: "Billed duration for TLDR_DOC / TLFileDurableObject only (namespace
5864db4344ac4c55bfd94e81dd25a043, ids from idFromName('/r/' + slug)). This
is the line PR #9964 targets: parked background tabs reconnect-looping keep
file rooms resident instead of letting them hibernate. Client-side fix deployed
2026-08-12 09:24 UTC — it only takes effect as browsers pick up the new bundle,
so expect a gradual decline, clearest in the overnight trough."
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: GB·s
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: line
fillOpacity: 25
gradientMode: opacity
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 1.5
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: none
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
unit: short
overrides: []
gridPos:
h: 8
w: 12
x: 12
'y': 32
id: 20
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeFifteenMinutes
text: time
type: timestamp
- selector: sum.duration
text: duration
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: timeseries
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].durableObjectsPeriodicGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
durableObjectsPeriodicGroups(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}", namespaceId: "5864db4344ac4c55bfd94e81dd25a043"}) {
sum { duration activeTime }
dimensions { datetimeFifteenMinutes }
}
}
}
}
body_type: graphql
method: POST
title: File room DO duration (GB·s)
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: "Top 50 file room DO instances by active time over the selected range.
A room at ~1 hour per hour of range (e.g. ~24h over a 1-day range) is pinned
permanently awake rather than hibernating — the signature of the reconnect loop
PR #9964 fixes. Identified by Durable Object objectId, never the room slug:
idFromName('/r/' + slug) is one-way, so the slug is never sent to Grafana.
This matches the sync worker's own policy — every MEASURE event indexes on
the DO id for the same reason. Do not reintroduce the `name` dimension: a room
slug is the access credential for that board."
fieldConfig:
defaults:
color:
mode: palette-classic
thresholds:
mode: absolute
steps:
- color: green
value: 0
unit: µs
overrides: []
gridPos:
h: 10
w: 24
x: 0
'y': 40
id: 21
options:
cellHeight: sm
footer:
countRows: false
fields: ''
reducer:
- sum
show: false
showHeader: true
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.objectId
text: object id
type: string
- selector: sum.activeTime
text: active time
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].durableObjectsPeriodicGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
durableObjectsPeriodicGroups(limit: 50, orderBy: [sum_activeTime_DESC], filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}", namespaceId: "5864db4344ac4c55bfd94e81dd25a043"}) {
sum { activeTime }
dimensions { objectId }
}
}
}
}
body_type: graphql
method: POST
title: Longest-resident file rooms
type: table
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: 'scriptThrewException split out by namespace. The account total is
dominated by 164dab144e614bb9ac54367e0ffaf56c, which throws ~21k/day on its
own and is chronic, so anything else is invisible in the aggregate above —
including file rooms, at ~3k/day. TLDR_DOC / TLFileDurableObject (file rooms)
is 5864db4344ac4c55bfd94e81dd25a043; it went from ~67/day to 7.2k on
2026-08-13, the day #9978 stopped the Supabase client blocking hibernation
and so let the file DO evict for the first time. Cold-start paths that had
never run while every object stayed resident now do.'
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: bars
fillOpacity: 80
gradientMode: none
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 0
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: normal
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 24
x: 0
'y': 50
id: 22
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeFifteenMinutes
text: time
type: timestamp
- selector: dimensions.namespaceId
text: namespace
type: string
- selector: sum.requests
text: exceptions
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].durableObjectsInvocationsAdaptiveGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
durableObjectsInvocationsAdaptiveGroups(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}", status: "scriptThrewException"}) {
sum { requests }
dimensions { datetimeFifteenMinutes namespaceId }
}
}
}
}
body_type: graphql
method: POST
title: DO exceptions by namespace
transformations:
- id: partitionByValues
options:
fields:
- namespace
keepFields: false
naming:
asLabels: true
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: Requests per R2 bucket over time — covers the missing asset traffic
metrics (ROOMS snapshots, UPLOADS assets, etc.) at bucket granularity.
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: line
fillOpacity: 12
gradientMode: opacity
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 1.5
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: none
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 12
x: 0
'y': 58
id: 11
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetime
text: time
type: timestamp
- selector: dimensions.bucketName
text: bucket
type: string
- selector: sum.requests
text: requests
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].r2OperationsAdaptiveGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
r2OperationsAdaptiveGroups(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
sum { requests }
dimensions { datetime bucketName }
}
}
}
}
body_type: graphql
method: POST
title: R2 operations by bucket
transformations:
- id: partitionByValues
options:
fields:
- bucket
keepFields: false
naming:
asLabels: true
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: Operation counts by bucket and action type (GetObject, PutObject,
…) over the selected range.
fieldConfig:
defaults:
color:
mode: continuous-BlPu
min: 0
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 6
x: 12
'y': 58
id: 12
options:
displayMode: gradient
legend:
calcs: []
displayMode: list
overflow: ellipsis
placement: bottom
showLegend: false
maxVizHeight: 300
minVizHeight: 16
minVizWidth: 8
namePlacement: auto
orientation: horizontal
reduceOptions:
calcs:
- lastNotNull
fields: ''
values: true
showUnfilled: true
sizing: auto
valueMode: color
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.bucketName
text: bucket
type: string
- selector: dimensions.actionType
text: action
type: string
- selector: sum.requests
text: requests
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].r2OperationsAdaptiveGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
r2OperationsAdaptiveGroups(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
sum { requests }
dimensions { bucketName actionType }
}
}
}
}
body_type: graphql
method: POST
title: R2 operations by action
type: bargauge
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: Stored payload bytes per bucket (max over range) — trend this over
days to see room-snapshot and upload growth.
fieldConfig:
defaults:
color:
mode: continuous-GrYlRd
min: 0
thresholds:
mode: absolute
steps:
- color: green
value: 0
unit: decbytes
overrides: []
gridPos:
h: 8
w: 6
x: 18
'y': 58
id: 13
options:
displayMode: gradient
legend:
calcs: []
displayMode: list
overflow: ellipsis
placement: bottom
showLegend: false
maxVizHeight: 300
minVizHeight: 16
minVizWidth: 8
namePlacement: auto
orientation: horizontal
reduceOptions:
calcs:
- lastNotNull
fields: ''
values: true
showUnfilled: true
sizing: auto
valueMode: color
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.bucketName
text: bucket
type: string
- selector: max.payloadSize
text: bytes
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].r2StorageAdaptiveGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
r2StorageAdaptiveGroups(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
max { payloadSize }
dimensions { bucketName }
}
}
}
}
body_type: graphql
method: POST
title: R2 storage by bucket
type: bargauge
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: Average backlog depth (messages) per queue — the saturation signal
application code cannot produce. Covers the sync-worker asset-upload queue.
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: line
fillOpacity: 25
gradientMode: opacity
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 1.5
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: none
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 8
x: 0
'y': 66
id: 14
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeMinute
text: time
type: timestamp
- selector: dimensions.queueId
text: queue
type: string
- selector: avg.messages
text: messages
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].queueBacklogAdaptiveGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
queueBacklogAdaptiveGroups(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
avg { messages bytes }
dimensions { datetimeMinute queueId }
}
}
}
}
body_type: graphql
method: POST
title: Queue backlog
transformations:
- id: partitionByValues
options:
fields:
- queue
keepFields: false
naming:
asLabels: true
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: Average concurrent consumer invocations per queue.
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: line
fillOpacity: 12
gradientMode: opacity
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 1.5
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: none
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 8
x: 8
'y': 66
id: 15
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeMinute
text: time
type: timestamp
- selector: dimensions.queueId
text: queue
type: string
- selector: avg.concurrency
text: concurrency
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].queueConsumerMetricsAdaptiveGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
queueConsumerMetricsAdaptiveGroups(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
avg { concurrency }
dimensions { datetimeMinute queueId }
}
}
}
}
body_type: graphql
method: POST
title: Queue consumer concurrency
transformations:
- id: partitionByValues
options:
fields:
- queue
keepFields: false
naming:
asLabels: true
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: Billable message operations by action type and outcome — write/read/ack
throughput and failure outcomes per queue.
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: bars
fillOpacity: 80
gradientMode: none
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 0
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: normal
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 8
x: 16
'y': 66
id: 16
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeMinute
text: time
type: timestamp
- selector: dimensions.actionType
text: action
type: string
- selector: dimensions.outcome
text: outcome
type: string
- selector: sum.billableOperations
text: operations
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.accounts[0].queueMessageOperationsAdaptiveGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
accounts(filter: {accountTag: "${account_id}"}) {
queueMessageOperationsAdaptiveGroups(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
sum { billableOperations }
dimensions { datetimeMinute actionType outcome }
}
}
}
}
body_type: graphql
method: POST
title: Queue message operations
transformations:
- id: partitionByValues
options:
fields:
- action
- outcome
keepFields: false
naming:
asLabels: true
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: Edge response status codes for the tldraw.com zone — the free version
of the missing per-route error-rate metric (sampled, edge view).
fieldConfig:
defaults:
color:
mode: palette-classic
custom:
axisBorderShow: false
axisCenteredZero: false
axisColorMode: text
axisLabel: ''
axisPlacement: auto
barAlignment: 0
barWidthFactor: 0.6
drawStyle: bars
fillOpacity: 80
gradientMode: none
hideFrom:
legend: false
tooltip: false
viz: false
insertNulls: false
lineInterpolation: linear
lineWidth: 0
pointSize: 5
scaleDistribution:
type: linear
showPoints: never
showValues: false
spanNulls: false
stacking:
group: A
mode: normal
thresholdsStyle:
mode: 'off'
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 12
x: 0
'y': 74
id: 17
options:
annotations:
clustering: -1
multiLane: false
legend:
calcs: []
displayMode: list
enableFacetedFilter: false
overflow: ellipsis
placement: bottom
showLegend: true
tooltip:
hideZeros: false
mode: multi
sort: desc
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.datetimeFifteenMinutes
text: time
type: timestamp
- selector: dimensions.edgeResponseStatus
text: status
type: string
- selector: count
text: requests
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.zones[0].httpRequestsAdaptiveGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
zones(filter: {zoneTag: "${zone_id}"}) {
httpRequestsAdaptiveGroups(limit: 10000, filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}"}) {
count
dimensions { datetimeFifteenMinutes edgeResponseStatus }
}
}
}
}
body_type: graphql
method: POST
title: Zone responses by status code
transformations:
- id: partitionByValues
options:
fields:
- status
keepFields: false
naming:
asLabels: true
type: timeseries
- datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
description: "Server errors grouped by request host and edge status over the selected
range. Deliberately does NOT group by clientRequestPath: Cloudflare groups server-side,
so a path dimension would put full board slugs into the API response, and a
display-level mask cannot remove them. Route-level attribution lives in the
sync-worker's own events instead."
fieldConfig:
defaults:
color:
mode: thresholds
custom:
align: auto
cellOptions:
type: auto
footer:
reducers: []
inspect: false
thresholds:
mode: absolute
steps:
- color: green
value: 0
overrides: []
gridPos:
h: 8
w: 12
x: 12
'y': 74
id: 18
options:
cellHeight: sm
showHeader: true
sortBy:
- desc: true
displayName: errors
pluginVersion: 13.2.0-28926505616
targets:
- columns:
- selector: dimensions.clientRequestHTTPHost
text: host
type: string
- selector: dimensions.edgeResponseStatus
text: status
type: string
- selector: count
text: errors
type: number
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
filters: []
format: table
global_query_id: ''
parser: backend
refId: A
root_selector: data.viewer.zones[0].httpRequestsAdaptiveGroups
source: url
type: graphql
url: https://api.cloudflare.com/client/v4/graphql
url_options:
body_content_type: application/json
body_graphql_query: |-
query {
viewer {
zones(filter: {zoneTag: "${zone_id}"}) {
httpRequestsAdaptiveGroups(limit: 100, orderBy: [count_DESC], filter: {datetime_geq: "${__from:date:iso}", datetime_leq: "${__to:date:iso}", edgeResponseStatus_geq: 500}) {
count
dimensions { clientRequestHTTPHost edgeResponseStatus }
}
}
}
}
body_type: graphql
method: POST
title: 5xx responses by host and status
type: table
preload: false
refresh: 5m
schemaVersion: 42
tags:
- tldraw
- cloudflare
- platform
- provisioned
- repo:tldraw/tldraw
templating:
list:
- current:
selected: true
text: tldraw
value: c34edc4e76350954b63adebde86d5eb1
description: Aliased for legibility only — the ID is stored in this dashboard's
JSON and is not secret.
hide: 0
includeAll: false
label: Cloudflare account
multi: false
name: account_id
options:
- selected: true
text: tldraw
value: c34edc4e76350954b63adebde86d5eb1
query: 'tldraw : c34edc4e76350954b63adebde86d5eb1'
skipUrlSync: false
type: custom
- current:
selected: false
text: tldraw.com
value: e7567c58962361a2bb9d802f858f5da3
datasource:
type: yesoreyeram-infinity-datasource
uid: ffuyblsuemj28b
definition: Cloudflare zones visible to the datasource's API token
description: Listed from the Cloudflare API rather than hardcoded, so a zone
added to the account shows up without a dashboard edit. The token behind this
datasource currently sees one zone.
hide: 0
includeAll: false
label: Cloudflare zone
multi: false
name: zone_id
options: []
query:
infinityQuery:
columns:
- selector: name
text: __text
type: string
- selector: id
text: __value
type: string
filters: []
format: table
parser: backend
refId: variable
root_selector: result
source: url
type: json
url: https://api.cloudflare.com/client/v4/zones
url_options:
method: GET
queryType: infinity
refresh: 1
regex: ''
skipUrlSync: false
sort: 1
type: query
time:
from: now-6h
to: now
timepicker:
refresh_intervals:
- 1m
- 5m
- 15m
- 30m
- 1h
- 2h
- 1d
timezone: browser
title: Cloudflare platform metrics
weekStart: ''