akrzos c34543f909 Transition to GrafYaml for Dashboard Storage
Reasons to move from json, json.j2 to yaml/yaml.j2 + GrafYaml:
* Yaml is less lines
* Yaml allows comments
* Yaml means less curly braces and quotes
* GrafYaml manages panel ids and target refIds
* GrafYaml defaults reduce number of lines stored
* GrafYaml allows more easily cut/paste management of Dashboards

Identified Downsides:
* GrafYaml will be behind the Grafana Dashboard Model (Until code is updated)
* Json will always allow full feature set
* Installing Dashboards now requires GrafYaml

New Dashboards/Features:
* Templated Dashboards (Reduce line count in "static" dashboards)
* Cloud Specific networks - all dashboard
* Three Node Performance Food groups Enhanced
* Networker Node added for Cloud Specific Dashboards and Total Memory

Change-Id: I55ce9f9f6c28497c8b4ed7a19d42657a8eb14170
2018-02-27 10:20:18 -05:00

169 lines
5.1 KiB
Django/Jinja

#jinja2:lstrip_blocks: True
---
dashboard:
title: {{dashboard_cloud_name}} - Disk
links:
- type: dashboards
asDropdown: true
icon: external link
includeVars: true
keepTime: true
tags:
- {{dashboard_cloud_name}}
targetBlank: true
title: "{{dashboard_cloud_name}} Dashboards"
tags:
- {{dashboard_cloud_name}}
templating:
- name: undercloud_disk
query: "{{dashboard_cloud_name}}.*undercloud*.disk-*"
refresh: true
type: query
- name: controller_disk
query: "{{dashboard_cloud_name}}.*controller*.disk-*"
refresh: true
type: query
- name: compute_disk
query: "{{dashboard_cloud_name}}.*compute*.disk-*"
refresh: true
type: query
- name: cephstorage_disk
query: "{{dashboard_cloud_name}}.*cephstorage*.disk-*"
refresh: true
type: query
- name: objectstorage_disk
query: "{{dashboard_cloud_name}}.*objectstorage*.disk-*"
refresh: true
type: query
- name: blockstorage_disk
query: "{{dashboard_cloud_name}}.*blockstorage*.disk-*"
refresh: true
type: query
time:
from: now-1h
to: now
rows:
- title: description row
height: 50px
panels:
- title: Browbeat provided Dashboard
content: "**This dashboard is provided by Browbeat and managed via Grafyaml**"
type: text
{% for group in dashboard_groups %}
{% if group in groups %}
{% for batched_hosts in groups[group]|hosts_to_dictionary|dictsort|batch(dashboards_batch) %}
{% if 'undercloud' in group %}
- title: {{group}} IO Time
{% else %}
- title: {{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) IO Time
{% endif %}
collapse: true
height: 250px
showTitle: true
panels:
{% for index, host in batched_hosts %}
- title: {{host}} - ${{group}}_disk IO Time
type: graph
legend:
alignAsTable: true
avg: true
current: true
max: true
min: true
rightSide: true
show: true
total: false
values: true
nullPointMode: 'null'
seriesOverrides:
- alias: Weighted Time
yaxis: 2
targets:
- target: alias(scale({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_io_time.io_time, 0.1), 'Time')
- target: alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_io_time.weighted_io_time, 'Weighted Time')
yaxes:
- format: percent
- format: ms
{% endfor %}
{% endfor %}
{% endif %}
{% endfor %}
{% for group in dashboard_groups %}
{% if group in groups %}
{% for batched_hosts in groups[group]|hosts_to_dictionary|dictsort|batch(dashboards_batch) %}
{% if 'undercloud' in group %}
- title: {{group}} Disk iops
{% else %}
- title: {{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Disk iops
{% endif %}
collapse: true
height: 250px
showTitle: true
panels:
{% for index, host in batched_hosts %}
- title: {{host}} - ${{group}}_disk iops
type: graph
legend:
alignAsTable: true
avg: true
current: true
max: true
min: true
rightSide: true
show: true
total: false
values: true
nullPointMode: 'null'
seriesOverrides:
- alias: Write
transform: negative-Y
targets:
- target: alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_ops.read, 'Read')
- target: alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_ops.write, 'Write')
yaxes:
- format: iops
- format: short
{% endfor %}
{% endfor %}
{% endif %}
{% endfor %}
{% for group in dashboard_groups %}
{% if group in groups %}
{% for batched_hosts in groups[group]|hosts_to_dictionary|dictsort|batch(dashboards_batch) %}
{% if 'undercloud' in group %}
- title: {{group}} Disk Throughput
{% else %}
- title: {{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Disk Throughput
{% endif %}
collapse: true
height: 250px
showTitle: true
panels:
{% for index, host in batched_hosts %}
- title: {{host}} - ${{group}}_disk Throughput
type: graph
legend:
alignAsTable: true
avg: true
current: true
max: true
min: true
rightSide: true
show: true
total: false
values: true
nullPointMode: 'null'
seriesOverrides:
- alias: Write
transform: negative-Y
targets:
- target: alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_octets.read, 'Read')
- target: alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_octets.write, 'Write')
yaxes:
- format: Bps
- format: short
{% endfor %}
{% endfor %}
{% endif %}
{% endfor %}