project-config/grafana/nodepool-osuosl.yaml
Ian Wienand b803305b41 grafana: fix openstack API stats for providers
I think I generally messed these up on the original import as every
stat seems to refer to the same thing.  Over time, the layout of
openstacksdk stats has changed meaning this doesn't work at all now.

Use stats that are actually in graphite which should show the overall
health of API requests.

Change-Id: I6bd82b38d80db2b56a399f80132a723564f9bc40
2021-09-22 08:23:24 +10:00

253 lines
7.8 KiB
YAML

#
# NOTE: EDIT THE TEMPLATE FILE AND RUN create-nodepool.sh
#
dashboard:
title: 'Nodepool: OSUOSL'
templating:
- name: region
includeAll: true
multi: true
query: stats.gauges.nodepool.provider.osuosl-*
refresh: 1
type: query
rows:
- title: Description
height: 150px
panels:
- title: Description
content: |
OSUOSL Nodepool Status
==========================
This dashboard monitors the status of the nodepool environment for OSUOSL.
**This dashboard is managed by [Grafyaml](https://docs.openstack.org/infra/system-config/grafyaml.html).**
If you would like to make changes to this dashboard, please see the template in the `grafana` directory in
[project-config](https://opendev.org/openstack/project-config/src/branch/master/grafana/nodepool.template).
type: text
- title: Nodes
showTitle: true
height: 150px
panels:
- title: Building
span: 3
sparkline:
full: true
show: true
targets:
- target: sumSeries(stats.gauges.nodepool.provider.$region.nodes.building)
type: singlestat
valueName: current
- title: Ready
span: 3
sparkline:
full: true
show: true
targets:
- target: sumSeries(stats.gauges.nodepool.provider.$region.nodes.ready)
type: singlestat
valueName: current
- title: In Use
span: 3
sparkline:
full: true
show: true
targets:
- target: sumSeries(stats.gauges.nodepool.provider.$region.nodes.in-use)
type: singlestat
valueName: current
- title: Deleting
span: 3
sparkline:
full: true
show: true
targets:
- target: sumSeries(stats.gauges.nodepool.provider.$region.nodes.deleting)
type: singlestat
valueName: current
- title: Test Nodes
height: 400px
panels:
- title: Test Node History - $region
type: graph
span: 12
stack: true
repeat: region
minSpan: 4
tooltip:
value_type: individual
yaxes:
- label: "nodes"
- show: false
targets:
- target: alias(sumSeries(stats.gauges.nodepool.provider.$region.nodes.building), 'Building')
- target: alias(sumSeries(stats.gauges.nodepool.provider.$region.nodes.ready), 'Available')
- target: alias(sumSeries(stats.gauges.nodepool.provider.$region.nodes.in-use), 'In Use')
- target: alias(sumSeries(stats.gauges.nodepool.provider.$region.nodes.used), 'Used')
- target: alias(sumSeries(stats.gauges.nodepool.provider.$region.nodes.deleting), 'Deleting')
- target: alias(sumSeries(stats.gauges.nodepool.provider.$region.max_servers), 'Max')
seriesOverrides:
- alias: Max
stack: False
- title: Node Launches
showTitle: true
height: 250px
panels:
- title: Ready Node Launch Attempts
type: graph
span: 4
lines: false
bars: true
nullPointMode: null as zero
yaxes:
- label: "events / min"
- show: false
targets:
- target: aliasSub(summarize(stats_counts.nodepool.launch.provider.$region.ready, '1m'), '.*stats_counts.nodepool.launch.provider.(.*).ready.*', '\1')
- title: Time to Ready
type: graph
span: 4
lines: false
bars: true
nullPointMode: null as zero
yaxes:
- label: "time"
format: ms
- show: false
targets:
- target: aliasByNode(stats.timers.nodepool.launch.provider.$region.ready.mean, 5)
- title: Error Node Launch Attempts
type: graph
span: 4
lines: false
bars: true
nullPointMode: null as zero
yaxes:
- label: "events / min"
- show: false
targets:
- target: alias(smartSummarize(sumSeries(stats_counts.nodepool.launch.provider.$region.error.*), '1m'), "All Errors")
- title: API Operations
showTitle: true
height: 250px
panels:
- title: POST Server
type: graph
lines: true
nullPointMode: connected
span: 4
yaxes:
- format: ms
label: Time
- show: false
targets:
- target: aliasByNode(stats.timers.nodepool.task.$region.compute.POST.servers.mean, 4)
- title: GET Server
type: graph
span: 4
lines: true
nullPointMode: connected
span: 4
yaxes:
- format: ms
label: Time
- show: false
targets:
- target: aliasByNode(stats.timers.nodepool.task.$region.compute.GET.servers.mean, 4)
- title: DELETE Server
type: graph
span: 4
lines: true
nullPointMode: connected
span: 4
yaxes:
- format: ms
label: Time
- show: false
targets:
- target: aliasByNode(stats.timers.nodepool.task.$region.compute.DELETE.servers.mean, 4)
- title: GET Servers Details
type: graph
lines: true
nullPointMode: connected
span: 4
yaxes:
- format: ms
label: Time
- show: false
targets:
- target: aliasByNode(stats.timers.nodepool.task.$region.compute.GET.servers.detail.mean, 4)
- title: GET Limits
type: graph
lines: true
nullPointMode: connected
span: 4
yaxes:
- format: ms
label: Time
- show: false
targets:
- target: aliasByNode(stats.timers.nodepool.task.$region.compute.GET.limits.mean, 4)
- title: GET Flavors
type: graph
lines: true
nullPointMode: connected
span: 4
yaxes:
- format: ms
label: Time
- show: false
targets:
- target: aliasByNode(stats.timers.nodepool.task.$region.compute.GET.flavors.mean, 4)
- title: GET network floatingips
type: graph
lines: true
nullPointMode: connected
span: 4
yaxes:
- format: ms
label: Time
- show: false
targets:
- target: aliasByNode(stats.timers.nodepool.task.$region.network.GET.floatingips.mean, 4)
- title: GET networks
type: graph
lines: true
nullPointMode: connected
span: 4
yaxes:
- format: ms
label: Time
- show: false
targets:
- target: aliasByNode(stats.timers.nodepool.task.$region.network.GET.networks.mean, 4)
- title: GET network ports
type: graph
lines: true
nullPointMode: connected
span: 4
yaxes:
- format: ms
label: Time
- show: false
targets:
- target: aliasByNode(stats.timers.nodepool.task.$region.network.GET.ports.mean, 4)
- title: GET network subnets
type: graph
lines: true
nullPointMode: connected
span: 4
yaxes:
- format: ms
label: Time
- show: false
targets:
- target: aliasByNode(stats.timers.nodepool.task.$region.network.GET.subnets.mean, 4)