c34543f909
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
169 lines
5.1 KiB
Django/Jinja
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 %}
|