diff --git a/grafana/nodepool-citycloud b/grafana/nodepool-citycloud new file mode 100644 index 0000000000..947e8174b7 --- /dev/null +++ b/grafana/nodepool-citycloud @@ -0,0 +1,200 @@ +dashboard: + title: 'Nodepool: City Cloud' + templating: + - name: provider + includeAll: true + multi: true + query: stats.gauges.nodepool.provider.citycloud-* + refresh: true + type: query + rows: + - title: Description + height: 100px + panels: + - title: Description + content: | + **This dashboard is managed by [Grafyaml](http://docs.openstack.org/infra/system-config/grafyaml.html).** + + If you would like to make changes to this dashboard, please see the grafana directory in [project-config](https://git.openstack.org/cgit/openstack-infra/project-config/tree/grafana/nodepool-citycloud.yaml). + 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.$provider.nodes.building) + type: singlestat + valueName: current + - title: Ready + span: 3 + sparkline: + full: true + show: true + targets: + - target: sumSeries(stats.gauges.nodepool.provider.$provider.nodes.ready) + type: singlestat + valueName: current + - title: In Use + span: 3 + sparkline: + full: true + show: true + targets: + - target: sumSeries(stats.gauges.nodepool.provider.$provider.nodes.used) + type: singlestat + valueName: current + - title: Deleting + span: 3 + sparkline: + full: true + show: true + targets: + - target: sumSeries(stats.gauges.nodepool.provider.$provider.nodes.delete) + type: singlestat + valueName: current + - title: API Operations + showTitle: true + height: 250px + panels: + - title: Create Server + type: graph + span: 4 + leftYAxisLabel: "time" + y_formats: + - s + - none + targets: + - target: aliasSub(aliasByNode(scale(stats.timers.nodepool.task.$provider.ServerCreate.mean, '0.001'), 4), 'citycloud-', '') + - title: Get Server + type: graph + span: 4 + leftYAxisLabel: "time" + y_formats: + - s + - none + targets: + - target: aliasSub(aliasByNode(scale(stats.timers.nodepool.task.$provider.ServerGet.mean, '0.001'), 4), 'citycloud-', '') + - title: Delete Server + type: graph + span: 4 + leftYAxisLabel: "time" + y_formats: + - s + - none + targets: + - target: aliasSub(aliasByNode(scale(stats.timers.nodepool.task.$provider.ServerDelete.mean, '0.001'), 4), 'citycloud-', '') + - title: List Servers + type: graph + span: 4 + leftYAxisLabel: "time" + y_formats: + - s + - none + targets: + - target: aliasSub(aliasByNode(scale(stats.timers.nodepool.task.$provider.ServerList.mean, '0.001'), 4), 'citycloud-', '') + - title: Node Launches + showTitle: true + height: 250px + panels: + - title: Ready Node Launch Attempts + type: graph + span: 4 + nullPointMode: null as zero + leftYAxisLabel: "events / min" + targets: + - target: aliasSub(aliasByNode(summarize(stats_counts.nodepool.launch.provider.$provider.ready, '1m'), 4), 'citycloud-', '') + - title: Error Node Launch Attempts + type: graph + span: 4 + nullPointMode: null as zero + leftYAxisLabel: "events / min" + targets: + - target: aliasSub(aliasByNode(smartSummarize(sumSeries(stats_counts.nodepool.launch.provider.$provider.error.*), '1m'), 4), 'citycloud-', '') + - title: Time to Ready + type: graph + span: 4 + leftYAxisLabel: "time" + y_formats: + - s + - none + targets: + - target: aliasSub(aliasByNode(scale(stats.timers.nodepool.launch.provider.$provider.ready.mean, '0.001'), 5), 'citycloud-', '') + - title: Test Nodes (Fra1) + type: graph + span: 4 + stack: true + tooltip: + value_type: individual + leftYAxisLabel: "nodes" + targets: + - target: alias(stats.gauges.nodepool.provider.citycloud-fra1.nodes.building, 'Building') + - target: alias(stats.gauges.nodepool.provider.citycloud-fra1.nodes.ready, 'Available') + - target: alias(stats.gauges.nodepool.provider.citycloud-fra1.nodes.used, 'In Use') + - target: alias(stats.gauges.nodepool.provider.citycloud-fra1.nodes.delete, 'Deleting') + - target: alias(stats.gauges.nodepool.provider.citycloud-fra1.max_servers, 'Max') + seriesOverrides: + - alias: Max + stack: False + - title: Test Nodes (Kna1) + type: graph + span: 4 + stack: true + tooltip: + value_type: individual + leftYAxisLabel: "nodes" + targets: + - target: alias(stats.gauges.nodepool.provider.citycloud-kna1.nodes.building, 'Building') + - target: alias(stats.gauges.nodepool.provider.citycloud-kna1.nodes.ready, 'Available') + - target: alias(stats.gauges.nodepool.provider.citycloud-kna1.nodes.used, 'In Use') + - target: alias(stats.gauges.nodepool.provider.citycloud-kna1.nodes.delete, 'Deleting') + - target: alias(stats.gauges.nodepool.provider.citycloud-kna1.max_servers, 'Max') + seriesOverrides: + - alias: Max + stack: False + - title: Test Nodes (Lon1) + type: graph + span: 4 + stack: true + tooltip: + value_type: individual + leftYAxisLabel: "nodes" + targets: + - target: alias(stats.gauges.nodepool.provider.citycloud-lon1.nodes.building, 'Building') + - target: alias(stats.gauges.nodepool.provider.citycloud-lon1.nodes.ready, 'Available') + - target: alias(stats.gauges.nodepool.provider.citycloud-lon1.nodes.used, 'In Use') + - target: alias(stats.gauges.nodepool.provider.citycloud-lon1.nodes.delete, 'Deleting') + - target: alias(stats.gauges.nodepool.provider.citycloud-lon1.max_servers, 'Max') + seriesOverrides: + - alias: Max + stack: False + - title: Job Runtimes + showTitle: true + height: 250px + panels: + - title: gate-tempest-dsvm-full + type: graph + span: 6 + leftYAxisLabel: "time" + y_formats: + - s + - none + targets: + - target: alias(scale(stats.timers.nodepool.job.gate-tempest-dsvm-full-ubuntu-xenial.master.ubuntu-xenial.citycloud-fra1.runtime.mean, '0.001'), 'fra1') + - target: alias(scale(stats.timers.nodepool.job.gate-tempest-dsvm-full-ubuntu-xenial.master.ubuntu-xenial.citycloud-kna1.runtime.mean, '0.001'), 'kna1') + - target: alias(scale(stats.timers.nodepool.job.gate-tempest-dsvm-full-ubuntu-xenial.master.ubuntu-xenial.citycloud-lon1.runtime.mean, '0.001'), 'lon1') + - title: gate-tempest-dsvm-neutron-full + type: graph + span: 6 + leftYAxisLabel: "time" + y_formats: + - s + - none + targets: + - target: alias(scale(stats.timers.nodepool.job.gate-tempest-dsvm-neutron-full-ubuntu-xenial.master.ubuntu-xenial.citycloud-fra1.runtime.mean, '0.001'), 'fra1') + - target: alias(scale(stats.timers.nodepool.job.gate-tempest-dsvm-neutron-full-ubuntu-xenial.master.ubuntu-xenial.citycloud-kna1.runtime.mean, '0.001'), 'kna1') + - target: alias(scale(stats.timers.nodepool.job.gate-tempest-dsvm-neutron-full-ubuntu-xenial.master.ubuntu-xenial.citycloud-lon1.runtime.mean, '0.001'), 'lon1')