diff --git a/grafana/nodepool-rax-experimental.yaml b/grafana/nodepool-rax-experimental.yaml new file mode 100644 index 0000000000..30a14e7283 --- /dev/null +++ b/grafana/nodepool-rax-experimental.yaml @@ -0,0 +1,187 @@ +dashboard: + title: 'Nodepool: Rackspace Experimental' + templating: + - name: provider + includeAll: true + multi: true + query: stats.gauges.nodepool.provider.rax-* + 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-rax-experimental.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.CreateServerTask.mean, '0.001'), 4), 'rax-', '') + - title: Delete Server + type: graph + span: 4 + leftYAxisLabel: "time" + y_formats: + - s + - none + targets: + - target: aliasSub(aliasByNode(scale(stats.timers.nodepool.task.$provider.DeleteServerTask.mean, '0.001'), 4), 'rax-', '') + - title: List Servers + type: graph + span: 4 + leftYAxisLabel: "time" + y_formats: + - s + - none + targets: + - target: aliasSub(aliasByNode(scale(stats.timers.nodepool.task.$provider.ListServersTask.mean, '0.001'), 4), 'rax-', '') + - 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(smartSummarize(stats_counts.nodepool.launch.provider.$provider.ready, '1m'), 4), 'rax-', '') + - 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), 'rax-', '') + - 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), 'rax-', '') + - title: Test Nodes (DFW) + type: graph + span: 4 + stack: true + tooltip: + value_type: individual + leftYAxisLabel: "nodes" + targets: + - target: alias(stats.gauges.nodepool.provider.rax-dfw.nodes.building, 'Building') + - target: alias(stats.gauges.nodepool.provider.rax-dfw.nodes.ready, 'Available') + - target: alias(stats.gauges.nodepool.provider.rax-dfw.nodes.used, 'In Use') + - target: alias(stats.gauges.nodepool.provider.rax-dfw.nodes.delete, 'Deleting') + - target: alias(stats.gauges.nodepool.provider.rax-dfw.max_servers, 'Max') + seriesOverrides: + - alias: Max + stack: False + - title: Test Nodes (IAD) + type: graph + span: 4 + stack: true + tooltip: + value_type: individual + leftYAxisLabel: "nodes" + targets: + - target: alias(stats.gauges.nodepool.provider.rax-iad.nodes.building, 'Building') + - target: alias(stats.gauges.nodepool.provider.rax-iad.nodes.ready, 'Available') + - target: alias(stats.gauges.nodepool.provider.rax-iad.nodes.used, 'In Use') + - target: alias(stats.gauges.nodepool.provider.rax-iad.nodes.delete, 'Deleting') + - target: alias(stats.gauges.nodepool.provider.rax-iad.max_servers, 'Max') + seriesOverrides: + - alias: Max + stack: False + - title: Test Nodes (ORD) + type: graph + span: 4 + stack: true + tooltip: + value_type: individual + leftYAxisLabel: "nodes" + targets: + - target: alias(stats.gauges.nodepool.provider.rax-ord.nodes.building, 'Building') + - target: alias(stats.gauges.nodepool.provider.rax-ord.nodes.ready, 'Available') + - target: alias(stats.gauges.nodepool.provider.rax-ord.nodes.used, 'In Use') + - target: alias(stats.gauges.nodepool.provider.rax-ord.nodes.delete, 'Deleting') + - target: alias(stats.gauges.nodepool.provider.rax-ord.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: aliasSub(aliasByNode(scale(stats.timers.nodepool.job.gate-tempest-dsvm-full.master.devstack-trusty.$provider.runtime.mean, '0.001'), 7), 'rax-', '') + - title: gate-tempest-dsvm-neutron-full + type: graph + span: 6 + leftYAxisLabel: "time" + y_formats: + - s + - none + targets: + - target: aliasSub(aliasByNode(scale(stats.timers.nodepool.job.gate-tempest-dsvm-neutron-full.master.devstack-trusty.$provider.runtime.mean, '0.001'), 7), 'rax-', '')