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
This commit is contained in:
parent
61924a83ea
commit
c34543f909
@ -2,21 +2,26 @@
|
||||
#
|
||||
# Builds and Uploads Dashboards for Browbeat analysis of System Performance Metrics
|
||||
#
|
||||
# Three types of Grafana Dashboards:
|
||||
# * Static Dashboards (Ex. cloud_system_performance_comparsion.json)
|
||||
# * Generated General Dashboards (Ex. OpenStack General System Performance)
|
||||
# * Generated Cloud Specific Dashboards ("Cloud01" CPU Graphs (for a specific cloud))
|
||||
# Four types of Grafana Dashboards:
|
||||
# * Static Dashboards (Ex. cloud_system_performance_comparsion.yaml)
|
||||
# * Templated Dashboards (Ex. Gnocchi Performance Dashboard)
|
||||
# * Templated General Dashboards (Ex. OpenStack General System Performance)
|
||||
# * Templated Cloud Specific Dashboards ("Cloud01" CPU Graphs (for a specific cloud))
|
||||
#
|
||||
# The Cloud Specific Dashboards are the only ones that require a cloud's inventory be defined.
|
||||
#
|
||||
# If you have a cloud inventory defined, you can upload all dashboards via:
|
||||
# ansible-playbook -i hosts install/grafana-dashboards.yml
|
||||
# or
|
||||
# ansible-playbook -i hosts install/grafana-dashboards.yml -e 'upload_cloud_specific=true upload_general=true upload_static=true upload_templated=true'
|
||||
#
|
||||
# If you just want to upload Static and Generated General Dashboards:
|
||||
# Toggle the desired dashboards with the above extra vars ^^
|
||||
#
|
||||
# If you just want to upload all dashboards that do not require a cloud inventory:
|
||||
# ansible-playbook -i hosts install/grafana-dashboards.yml -e 'upload_cloud_specific=false'
|
||||
#
|
||||
# If you just want to upload your Cloud Specific Dashboards:
|
||||
# ansible-playbook -i hosts install/grafana-dashboards.yml -e 'upload_general=false upload_static=false'
|
||||
# If you just want to upload only your Cloud Specific Dashboards:
|
||||
# ansible-playbook -i hosts install/grafana-dashboards.yml -e 'upload_general=false upload_static=false upload_templated=false'
|
||||
#
|
||||
|
||||
- hosts: localhost
|
||||
@ -26,13 +31,14 @@
|
||||
upload_cloud_specific: true
|
||||
upload_general: true
|
||||
upload_static: true
|
||||
overwrite_existing: true
|
||||
upload_templated: true
|
||||
cloud_specific_dashboards:
|
||||
- cpu
|
||||
- memory
|
||||
- disk
|
||||
- disks_all
|
||||
- network
|
||||
- networks_all
|
||||
- log
|
||||
general_dashboards:
|
||||
- template_name: openstack
|
||||
@ -56,7 +62,7 @@
|
||||
- template_name: openstack
|
||||
template_node_type: "*"
|
||||
process_list_name: OpenStack
|
||||
# Non-OpenStack specific dashboards that are included:
|
||||
# # Non-OpenStack specific dashboards that are included:
|
||||
- template_name: baremetal
|
||||
process_list_name: Baremetal
|
||||
- template_name: guest
|
||||
@ -65,17 +71,19 @@
|
||||
process_list_name: Graphite
|
||||
static_dashboards:
|
||||
- apache_request_latency
|
||||
- cloud_ceph_monitoring
|
||||
- cloud_gnocchi_status
|
||||
- cloud_instance_count
|
||||
- cloud_keystone_token_count
|
||||
- cloud_rabbitmq_monitoring
|
||||
- cloud_system_performance_comparsion
|
||||
- cloud_total_memory_usage
|
||||
- openstack_ironic_metrics
|
||||
templated_dashboards:
|
||||
- cloud_ceph_monitoring
|
||||
- cloud_gnocchi_status
|
||||
- cloud_rabbitmq_monitoring
|
||||
- gnocchi_performance
|
||||
- iostat
|
||||
- three_node_performance_food_groups
|
||||
- openstack_ironic_metrics
|
||||
- three_node_performance_food_groups_basic
|
||||
- three_node_performance_food_groups_enhanced
|
||||
roles:
|
||||
- grafana-dashboards
|
||||
environment: "{{proxy_env}}"
|
||||
|
@ -346,6 +346,7 @@ grafana_host:
|
||||
grafana_port: 3000
|
||||
grafana_username: admin
|
||||
grafana_password: admin
|
||||
grafana_apikey:
|
||||
# Batch number of hosts per row for all-{cpu, memory, disk, network} openstack dashboards
|
||||
dashboards_batch: 20
|
||||
# For use with all-{cpu, memory, disk, network} openstack dashboards, uses the graphite prefix to create dashboards for specific openstack cloud
|
||||
|
@ -1,989 +0,0 @@
|
||||
{
|
||||
"dashboard": {
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"editable": true,
|
||||
"gnetId": null,
|
||||
"hideControls": false,
|
||||
"id": null,
|
||||
"links": [],
|
||||
"rows": [
|
||||
{
|
||||
"collapse": false,
|
||||
"height": 200,
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 0,
|
||||
"id": 1,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"sortDesc": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": false,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 1,
|
||||
"points": true,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "/.*Count.*/",
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"points": false,
|
||||
"yaxis": 2
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-patch-max, 0.000001), 'Patch Max Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-patch-99, 0.000001), 'Patch 99th Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-patch-avg, 0.000001), 'Patch Avg Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-patch-min, 0.000001), 'Patch Min Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(sumSeries(scale($Cloud.$Node.tail-gnocchi-api.counter-patch, 10)), 'Patch Count')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Gnocchi API Patch Latency",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "s",
|
||||
"label": "Latency",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Count",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 0,
|
||||
"id": 2,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"sortDesc": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": false,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 1,
|
||||
"points": true,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "/.*Count.*/",
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"points": false,
|
||||
"yaxis": 2
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-post-max, 0.000001), 'Post Max Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-post-99, 0.000001), 'Post 99th Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-post-avg, 0.000001), 'Post Avg Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-post-min, 0.000001), 'Post Min Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(sumSeries(scale($Cloud.$Node.tail-gnocchi-api.counter-post, 10)), 'Post Count')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Gnocchi API Post Latency",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "s",
|
||||
"label": "Latency",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Count",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 0,
|
||||
"id": 3,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": false,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 1,
|
||||
"points": true,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "/.*Count.*/",
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"points": false,
|
||||
"yaxis": 2
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-get-max, 0.000001), 'Get Max Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-get-99, 0.000001), 'Get 99th Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-get-avg, 0.000001), 'Get Avg Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(scale($Cloud.$Node.tail-gnocchi-api.latency-get-min, 0.000001), 'Get Min Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(sumSeries(scale($Cloud.$Node.tail-gnocchi-api.counter-get, 10)), 'Get Count')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Gnocchi API Get Latency",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "s",
|
||||
"label": "Latency",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Count",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": true,
|
||||
"title": "Gnocchi API Latency",
|
||||
"titleSize": "h6"
|
||||
},
|
||||
{
|
||||
"collapse": false,
|
||||
"height": 200,
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 0,
|
||||
"id": 4,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": false,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 1,
|
||||
"points": true,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "/.*Count.*/",
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"points": false,
|
||||
"yaxis": 2
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-get-max, 0.000001), 'Get Max Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-get-99, 0.000001), 'Get 99th Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-get-avg, 0.000001), 'Get Avg Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-get-min, 0.000001), 'Get Min Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(scale(sumSeries($Cloud.$Node.tail-keystone-admin-api.counter-get), 10), 'Get Count')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Keystone Admin API Get Latency",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "s",
|
||||
"label": "Latency",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Count",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 0,
|
||||
"id": 5,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": false,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 1,
|
||||
"points": true,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "/.*Count.*/",
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"points": false,
|
||||
"yaxis": 2
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-post-max, 0.000001), 'Post Max Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-post-99, 0.000001), 'Post 99th Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-post-avg, 0.000001), 'Post Avg Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-post-min, 0.000001), 'Post Min Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(scale(sumSeries($Cloud.$Node.tail-keystone-admin-api.counter-post), 10), 'Post Count')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Keystone Admin API Post Latency",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "s",
|
||||
"label": "Latency",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Count",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 0,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": false,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 1,
|
||||
"points": true,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "/.*Count.*/",
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"points": false,
|
||||
"yaxis": 2
|
||||
}
|
||||
],
|
||||
"span":12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-get-max, 0.000001), 'Get Max Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-get-99, 0.000001), 'Get 99th Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-get-avg, 0.000001), 'Get Avg Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-get-min, 0.000001), 'Get Min Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(scale(sumSeries($Cloud.$Node.tail-keystone-main-api.counter-get), 10), 'Get Count')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Keystone Main API Get Latency",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "s",
|
||||
"label": "Latency",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Count",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 0,
|
||||
"id": 7,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": false,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 1,
|
||||
"points": true,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "/.*Count.*/",
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"points": false,
|
||||
"yaxis": 2
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-post-max, 0.000001), 'Post Max Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-post-99, 0.000001), 'Post 99th Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-post-avg, 0.000001), 'Post Avg Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(scale($Cloud.$Node.tail-keystone-main-api.latency-post-min, 0.000001), 'Post Min Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(scale(sumSeries($Cloud.$Node.tail-keystone-main-api.counter-post), 10), 'Post Count')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Keystone Main API Post Latency",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "s",
|
||||
"label": "Latency",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Count",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": true,
|
||||
"title": "Keystone API Request Latency",
|
||||
"titleSize": "h6"
|
||||
},
|
||||
{
|
||||
"collapse": false,
|
||||
"height": 200,
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 0,
|
||||
"id": 8,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": false,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 1,
|
||||
"points": true,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "/.*Count.*/",
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"points": false,
|
||||
"yaxis": 2
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-put-max, 0.000001), 'Put Max Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-put-99, 0.000001), 'Put 99th Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-put-avg, 0.000001), 'Put Avg Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-put-min, 0.000001), 'Put Min Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(scale(sumSeries($Cloud.$Node.tail-nova-placement-api.counter-put), 10), 'Put Count')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Nova Placement API Put Latency",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "s",
|
||||
"label": "Latency",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Count",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"fill": 0,
|
||||
"id": 9,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"sortDesc": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": false,
|
||||
"linewidth": 1,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 1,
|
||||
"points": true,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "/.*Count.*/",
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"points": false,
|
||||
"yaxis": 2
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-get-max, 0.000001), 'Get Max Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-get-99, 0.000001), 'Get 99th Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-get-avg, 0.000001), 'Get Avg Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(scale($Cloud.$Node.tail-nova-placement-api.latency-get-min, 0.000001), 'Get Min Latency')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(scale(sumSeries($Cloud.$Node.tail-nova-placement-api.counter-get), 10), 'Get Count')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Nova Placement API Get Latency",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "s",
|
||||
"label": "Latency",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Count",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": true,
|
||||
"title": "Nova Placement API Request Latency",
|
||||
"titleSize": "h6"
|
||||
}
|
||||
],
|
||||
"schemaVersion": 14,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"allValue": null,
|
||||
"current": {
|
||||
"text": "",
|
||||
"value": ""
|
||||
},
|
||||
"datasource": null,
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"label": null,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "Cloud",
|
||||
"options": [],
|
||||
"query": "*",
|
||||
"refresh": 2,
|
||||
"regex": "/^(?!stats[d]*[_counts]*$).*$/",
|
||||
"sort": 0,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [],
|
||||
"tagsQuery": "",
|
||||
"type": "query",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"allValue": null,
|
||||
"current": {
|
||||
"tags": [],
|
||||
"text": "overcloud-controller-0",
|
||||
"value": "overcloud-controller-0"
|
||||
},
|
||||
"datasource": null,
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"label": null,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "Node",
|
||||
"options": [],
|
||||
"query": "$Cloud.*",
|
||||
"refresh": 2,
|
||||
"sort": 0,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [],
|
||||
"tagsQuery": "",
|
||||
"type": "query",
|
||||
"useTags": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"now": true,
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"timezone": "utc",
|
||||
"title": "Apache Request Latency",
|
||||
"version": 1
|
||||
}
|
||||
}
|
@ -0,0 +1,331 @@
|
||||
---
|
||||
dashboard:
|
||||
title: Apache Request Latency
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node
|
||||
query: "$Cloud.*"
|
||||
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
|
||||
- title: Gnocchi API Latency
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Gnocchi API Patch Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 1
|
||||
points: true
|
||||
seriesOverrides:
|
||||
- alias: "/.*Count.*/"
|
||||
lines: true
|
||||
points: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: alias(scale($Cloud.$Node.tail-gnocchi-api.latency-patch-max, 0.000001), 'Patch Max Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-gnocchi-api.latency-patch-99_00, 0.000001), 'Patch 99th Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-gnocchi-api.latency-patch-avg, 0.000001), 'Patch Avg Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-gnocchi-api.latency-patch-min, 0.000001), 'Patch Min Latency')
|
||||
- target: alias(sumSeries(scale($Cloud.$Node.tail-gnocchi-api.counter-patch, 10)), 'Patch Count')
|
||||
yaxes:
|
||||
- format: s
|
||||
label: Latency
|
||||
- format: short
|
||||
label: Count
|
||||
- title: Gnocchi API Post Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 1
|
||||
points: true
|
||||
seriesOverrides:
|
||||
- alias: "/.*Count.*/"
|
||||
lines: true
|
||||
points: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: alias(scale($Cloud.$Node.tail-gnocchi-api.latency-post-max, 0.000001), 'Post Max Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-gnocchi-api.latency-post-99_00, 0.000001), 'Post 99th Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-gnocchi-api.latency-post-avg, 0.000001), 'Post Avg Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-gnocchi-api.latency-post-min, 0.000001), 'Post Min Latency')
|
||||
- target: alias(sumSeries(scale($Cloud.$Node.tail-gnocchi-api.counter-post, 10)), 'Post Count')
|
||||
yaxes:
|
||||
- format: s
|
||||
label: Latency
|
||||
- format: short
|
||||
label: Count
|
||||
- title: Gnocchi API Get Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 1
|
||||
points: true
|
||||
seriesOverrides:
|
||||
- alias: "/.*Count.*/"
|
||||
lines: true
|
||||
points: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: alias(scale($Cloud.$Node.tail-gnocchi-api.latency-get-max, 0.000001), 'Get Max Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-gnocchi-api.latency-get-99_00, 0.000001), 'Get 99th Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-gnocchi-api.latency-get-avg, 0.000001), 'Get Avg Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-gnocchi-api.latency-get-min, 0.000001), 'Get Min Latency')
|
||||
- target: alias(sumSeries(scale($Cloud.$Node.tail-gnocchi-api.counter-get, 10)), 'Get Count')
|
||||
yaxes:
|
||||
- format: s
|
||||
label: Latency
|
||||
- format: short
|
||||
label: Count
|
||||
- title: Keystone API Request Latency
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Keystone Admin API Get Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 1
|
||||
points: true
|
||||
seriesOverrides:
|
||||
- alias: "/.*Count.*/"
|
||||
lines: true
|
||||
points: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-get-max, 0.000001), 'Get Max Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-get-99_00, 0.000001), 'Get 99th Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-get-avg, 0.000001), 'Get Avg Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-get-min, 0.000001), 'Get Min Latency')
|
||||
- target: alias(scale(sumSeries($Cloud.$Node.tail-keystone-admin-api.counter-get), 10), 'Get Count')
|
||||
yaxes:
|
||||
- format: s
|
||||
label: Latency
|
||||
- format: short
|
||||
label: Count
|
||||
- title: Keystone Admin API Post Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 1
|
||||
points: true
|
||||
seriesOverrides:
|
||||
- alias: "/.*Count.*/"
|
||||
lines: true
|
||||
points: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-post-max, 0.000001), 'Post Max Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-post-99_00, 0.000001), 'Post 99th Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-post-avg, 0.000001), 'Post Avg Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-admin-api.latency-post-min, 0.000001), 'Post Min Latency')
|
||||
- target: alias(scale(sumSeries($Cloud.$Node.tail-keystone-admin-api.counter-post), 10), 'Post Count')
|
||||
yaxes:
|
||||
- format: s
|
||||
label: Latency
|
||||
- format: short
|
||||
label: Count
|
||||
- title: Keystone Main API Get Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 1
|
||||
points: true
|
||||
seriesOverrides:
|
||||
- alias: "/.*Count.*/"
|
||||
lines: true
|
||||
points: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-main-api.latency-get-max, 0.000001), 'Get Max Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-main-api.latency-get-99_00, 0.000001), 'Get 99th Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-main-api.latency-get-avg, 0.000001), 'Get Avg Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-main-api.latency-get-min, 0.000001), 'Get Min Latency')
|
||||
- target: alias(scale(sumSeries($Cloud.$Node.tail-keystone-main-api.counter-get), 10), 'Get Count')
|
||||
yaxes:
|
||||
- format: s
|
||||
label: Latency
|
||||
- format: short
|
||||
label: Count
|
||||
- title: Keystone Main API Post Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 1
|
||||
points: true
|
||||
seriesOverrides:
|
||||
- alias: "/.*Count.*/"
|
||||
lines: true
|
||||
points: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-main-api.latency-post-max, 0.000001), 'Post Max Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-main-api.latency-post-99_00, 0.000001), 'Post 99th Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-main-api.latency-post-avg, 0.000001), 'Post Avg Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-keystone-main-api.latency-post-min, 0.000001), 'Post Min Latency')
|
||||
- target: alias(scale(sumSeries($Cloud.$Node.tail-keystone-main-api.counter-post), 10), 'Post Count')
|
||||
yaxes:
|
||||
- format: s
|
||||
label: Latency
|
||||
- format: short
|
||||
label: Count
|
||||
- title: Nova Placement API Request Latency
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Nova Placement API Put Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 1
|
||||
points: true
|
||||
seriesOverrides:
|
||||
- alias: "/.*Count.*/"
|
||||
lines: true
|
||||
points: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: alias(scale($Cloud.$Node.tail-nova-placement-api.latency-put-max, 0.000001), 'Put Max Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-nova-placement-api.latency-put-99_00, 0.000001), 'Put 99th Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-nova-placement-api.latency-put-avg, 0.000001), 'Put Avg Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-nova-placement-api.latency-put-min, 0.000001), 'Put Min Latency')
|
||||
- target: alias(scale(sumSeries($Cloud.$Node.tail-nova-placement-api.counter-put), 10), 'Put Count')
|
||||
yaxes:
|
||||
- format: s
|
||||
label: Latency
|
||||
- format: short
|
||||
label: Count
|
||||
- title: Nova Placement API Get Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 1
|
||||
points: true
|
||||
seriesOverrides:
|
||||
- alias: "/.*Count.*/"
|
||||
lines: true
|
||||
points: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: alias(scale($Cloud.$Node.tail-nova-placement-api.latency-get-max, 0.000001), 'Get Max Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-nova-placement-api.latency-get-99_00, 0.000001), 'Get 99th Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-nova-placement-api.latency-get-avg, 0.000001), 'Get Avg Latency')
|
||||
- target: alias(scale($Cloud.$Node.tail-nova-placement-api.latency-get-min, 0.000001), 'Get Min Latency')
|
||||
- target: alias(scale(sumSeries($Cloud.$Node.tail-nova-placement-api.counter-get), 10), 'Get Count')
|
||||
yaxes:
|
||||
- format: s
|
||||
label: Latency
|
||||
- format: short
|
||||
label: Count
|
File diff suppressed because it is too large
Load Diff
@ -1,186 +0,0 @@
|
||||
{
|
||||
"dashboard": {
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"editable": true,
|
||||
"gnetId": null,
|
||||
"hideControls": false,
|
||||
"id": null,
|
||||
"links": [],
|
||||
"rows": [
|
||||
{
|
||||
"collapse": false,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 0,
|
||||
"grid": {
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
"id": 1,
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "connected",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": true,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "aliasByMetric(aliasSub($Cloud.$Node.gnocchi_status.*, 'gauge-', ''))",
|
||||
"textEditor": false
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "$Node Metrics/Measures Backlog",
|
||||
"tooltip": {
|
||||
"msResolution": false,
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"show": true
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": true,
|
||||
"title": "Gnocchi Backlog"
|
||||
}
|
||||
],
|
||||
"schemaVersion": 12,
|
||||
"sharedCrosshair": false,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "",
|
||||
"value": ""
|
||||
},
|
||||
"datasource": null,
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "Cloud",
|
||||
"options": [],
|
||||
"query": "*",
|
||||
"refresh": 2,
|
||||
"regex": "/^(?!stats[d]*[_counts]*$).*$/",
|
||||
"type": "query"
|
||||
},
|
||||
{
|
||||
"current": {
|
||||
"tags": [],
|
||||
"text": "overcloud-controller-0",
|
||||
"value": "overcloud-controller-0"
|
||||
},
|
||||
"datasource": null,
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"name": "Node",
|
||||
"options": [
|
||||
{
|
||||
"selected": true,
|
||||
"text": "overcloud-controller-0",
|
||||
"value": "overcloud-controller-0"
|
||||
},
|
||||
{
|
||||
"selected": false,
|
||||
"text": "undercloud",
|
||||
"value": "undercloud"
|
||||
}
|
||||
],
|
||||
"query": "$Cloud.*",
|
||||
"refresh": 2,
|
||||
"type": "query"
|
||||
}
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"now": true,
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"timezone": "utc",
|
||||
"title": "Cloud Gnocchi Status",
|
||||
"version": 2
|
||||
}
|
||||
}
|
@ -1,236 +0,0 @@
|
||||
{
|
||||
"dashboard": {
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"editable": true,
|
||||
"gnetId": null,
|
||||
"graphTooltip": 0,
|
||||
"hideControls": false,
|
||||
"id": null,
|
||||
"links": [],
|
||||
"rows": [
|
||||
{
|
||||
"collapse": false,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 0,
|
||||
"grid": {},
|
||||
"id": 1,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(sumSeries(keepLastValue($Cloud.*.processes-qemu-kvm.ps_count.processes, 100)), 'Sum qemu-kvm processes')",
|
||||
"textEditor": false
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Total Instances Hosted on Computes for $Cloud",
|
||||
"tooltip": {
|
||||
"msResolution": false,
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 0,
|
||||
"grid": {},
|
||||
"id": 2,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "aliasByNode(keepLastValue($Cloud.*.processes-qemu-kvm.ps_count.processes, 100), 1)",
|
||||
"textEditor": false
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Instances Hosted on Each Compute for $Cloud",
|
||||
"tooltip": {
|
||||
"msResolution": false,
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": true,
|
||||
"title": "Instance Count",
|
||||
"titleSize": "h6"
|
||||
}
|
||||
],
|
||||
"schemaVersion": 12,
|
||||
"sharedCrosshair": false,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "",
|
||||
"value": ""
|
||||
},
|
||||
"datasource": null,
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "Cloud",
|
||||
"options": [],
|
||||
"query": "*",
|
||||
"refresh": 2,
|
||||
"regex": "/^(?!stats[d]*[_counts]*$).*$/",
|
||||
"type": "query"
|
||||
}
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"now": true,
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"timezone": "utc",
|
||||
"title": "Cloud Instance Count",
|
||||
"version": 7
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
---
|
||||
dashboard:
|
||||
title: Cloud Instance Count
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
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
|
||||
- title: Instance Count
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Total Instances Hosted on Computes for $Cloud
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias(sumSeries(keepLastValue($Cloud.*.processes-qemu-kvm.ps_count.processes, 100)), 'Sum qemu-kvm processes')
|
||||
- title: Instances Hosted on Each Compute for $Cloud
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(keepLastValue($Cloud.*.processes-qemu-kvm.ps_count.processes, 100), 1)
|
@ -1,186 +0,0 @@
|
||||
{
|
||||
"dashboard": {
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"editable": true,
|
||||
"gnetId": null,
|
||||
"hideControls": false,
|
||||
"id": null,
|
||||
"links": [],
|
||||
"rows": [
|
||||
{
|
||||
"collapse": false,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 0,
|
||||
"grid": {
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
"id": 1,
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias($Cloud.$Node.dbi-keystone.gauge-token, 'Tokens')",
|
||||
"textEditor": false
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "$Node Keystone Token Count",
|
||||
"tooltip": {
|
||||
"msResolution": false,
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"show": true
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"showTitle": true,
|
||||
"title": "Token Count"
|
||||
}
|
||||
],
|
||||
"schemaVersion": 12,
|
||||
"sharedCrosshair": false,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "",
|
||||
"value": ""
|
||||
},
|
||||
"datasource": null,
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "Cloud",
|
||||
"options": [],
|
||||
"query": "*",
|
||||
"refresh": 2,
|
||||
"regex": "/^(?!stats[d]*[_counts]*$).*$/",
|
||||
"type": "query"
|
||||
},
|
||||
{
|
||||
"current": {
|
||||
"tags": [],
|
||||
"text": "undercloud",
|
||||
"value": "undercloud"
|
||||
},
|
||||
"datasource": null,
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"name": "Node",
|
||||
"options": [
|
||||
{
|
||||
"selected": false,
|
||||
"text": "overcloud-controller-0",
|
||||
"value": "overcloud-controller-0"
|
||||
},
|
||||
{
|
||||
"selected": true,
|
||||
"text": "undercloud",
|
||||
"value": "undercloud"
|
||||
}
|
||||
],
|
||||
"query": "$Cloud.*",
|
||||
"refresh": 2,
|
||||
"type": "query"
|
||||
}
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"now": true,
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"timezone": "utc",
|
||||
"title": "Cloud Keystone Token Count",
|
||||
"version": 2
|
||||
}
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
---
|
||||
dashboard:
|
||||
title: Cloud Keystone Token Count
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node
|
||||
query: "$Cloud.*"
|
||||
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
|
||||
- title: Token Count
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Node Keystone Token Count
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
steppedLine: true
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.dbi-keystone.gauge-token, 'Tokens')
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,730 @@
|
||||
---
|
||||
dashboard:
|
||||
title: Cloud System Performance Comparsion
|
||||
templating:
|
||||
- name: Cloud1
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Cloud2
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node1
|
||||
query: "$Cloud1.*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node2
|
||||
query: "$Cloud2.*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node1_Disk
|
||||
query: "$Cloud1.$Node1.disk-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node2_Disk
|
||||
query: "$Cloud2.$Node2.disk-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node1_Interface
|
||||
query: "$Cloud1.$Node1.interface-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node2_Interface
|
||||
query: "$Cloud2.$Node2.interface-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node1_Process
|
||||
query: "$Cloud1.$Node1.processes-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node2_Process
|
||||
query: "$Cloud2.$Node2.processes-*"
|
||||
refresh: true
|
||||
type: query
|
||||
|
||||
# - name: Node1_Timeshift
|
||||
# current:
|
||||
# text: "0m"
|
||||
# options:
|
||||
# - 0m
|
||||
# - 1m
|
||||
# - 10m
|
||||
# - 30m
|
||||
# - 1h
|
||||
# - 2h
|
||||
# - 3h
|
||||
# - 4h
|
||||
# - 6h
|
||||
# - 12h
|
||||
# - 1d
|
||||
# - 2d
|
||||
# - 3d
|
||||
# - 4d
|
||||
# - 5d
|
||||
# - 6d
|
||||
# - 7d
|
||||
# - 14d
|
||||
# - 30d
|
||||
# type: custom
|
||||
# - name: Node2_Timeshift
|
||||
# current:
|
||||
# text: "0m"
|
||||
# options:
|
||||
# - 0m
|
||||
# - 1m
|
||||
# - 10m
|
||||
# - 30m
|
||||
# - 1h
|
||||
# - 2h
|
||||
# - 3h
|
||||
# - 4h
|
||||
# - 6h
|
||||
# - 12h
|
||||
# - 1d
|
||||
# - 2d
|
||||
# - 3d
|
||||
# - 4d
|
||||
# - 5d
|
||||
# - 6d
|
||||
# - 7d
|
||||
# - 14d
|
||||
# - 30d
|
||||
# type: custom
|
||||
|
||||
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
|
||||
- title: CPU Comparsion
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: CPU Average
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: "/Node1/i"
|
||||
stack: A
|
||||
- alias: "/Node2/i"
|
||||
stack: B
|
||||
targets:
|
||||
- target: alias(averageSeries($Cloud1.$Node1.cpu-*.cpu-system), 'Node1 - System')
|
||||
- target: alias(averageSeries($Cloud1.$Node1.cpu-*.cpu-user), 'Node1 - User')
|
||||
- target: alias(averageSeries($Cloud1.$Node1.cpu-*.cpu-nice), 'Node1 - Nice')
|
||||
- target: alias(averageSeries($Cloud1.$Node1.cpu-*.cpu-steal), 'Node1 - Steal')
|
||||
- target: alias(averageSeries($Cloud1.$Node1.cpu-*.cpu-softirq), 'Node1 - SoftIRQ')
|
||||
- target: alias(averageSeries($Cloud1.$Node1.cpu-*.cpu-interrupt), 'Node1 - Interrupt')
|
||||
- target: alias(averageSeries($Cloud1.$Node1.cpu-*.cpu-wait), 'Node1 - Wait')
|
||||
- target: alias(averageSeries($Cloud1.$Node1.cpu-*.cpu-idle), 'Node1 - Idle')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.cpu-*.cpu-system), 'Node2 - System')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.cpu-*.cpu-user), 'Node2 - User')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.cpu-*.cpu-nice), 'Node2 - Nice')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.cpu-*.cpu-steal), 'Node2 - Steal')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.cpu-*.cpu-softirq), 'Node2 - SoftIRQ')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.cpu-*.cpu-interrupt), 'Node2 - Interrupt')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.cpu-*.cpu-wait), 'Node2 - Wait')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.cpu-*.cpu-idle), 'Node2 - Idle')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.cpu-*.cpu-system), '$Node1_Timeshift'), 'Node1 - System')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.cpu-*.cpu-user), '$Node1_Timeshift'), 'Node1 - User')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.cpu-*.cpu-nice), '$Node1_Timeshift'), 'Node1 - Nice')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.cpu-*.cpu-steal), '$Node1_Timeshift'), 'Node1 - Steal')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.cpu-*.cpu-softirq), '$Node1_Timeshift'), 'Node1 - SoftIRQ')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.cpu-*.cpu-interrupt), '$Node1_Timeshift'), 'Node1 - Interrupt')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.cpu-*.cpu-wait), '$Node1_Timeshift'), 'Node1 - Wait')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.cpu-*.cpu-idle), '$Node1_Timeshift'), 'Node1 - Idle')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.cpu-*.cpu-system), '$Node2_Timeshift'), 'Node2 - System')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.cpu-*.cpu-user), '$Node2_Timeshift'), 'Node2 - User')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.cpu-*.cpu-nice), '$Node2_Timeshift'), 'Node2 - Nice')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.cpu-*.cpu-steal), '$Node2_Timeshift'), 'Node2 - Steal')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.cpu-*.cpu-softirq), '$Node2_Timeshift'), 'Node2 - SoftIRQ')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.cpu-*.cpu-interrupt), '$Node2_Timeshift'), 'Node2 - Interrupt')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.cpu-*.cpu-wait), '$Node2_Timeshift'), 'Node2 - Wait')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.cpu-*.cpu-idle), '$Node2_Timeshift'), 'Node2 - Idle')
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: CPU Sum
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: "/Node1/i"
|
||||
stack: A
|
||||
- alias: "/Node2/i"
|
||||
stack: B
|
||||
targets:
|
||||
- target: alias(sumSeries($Cloud1.$Node1.cpu-*.cpu-system), 'Node1 - System')
|
||||
- target: alias(sumSeries($Cloud1.$Node1.cpu-*.cpu-user), 'Node1 - User')
|
||||
- target: alias(sumSeries($Cloud1.$Node1.cpu-*.cpu-nice), 'Node1 - Nice')
|
||||
- target: alias(sumSeries($Cloud1.$Node1.cpu-*.cpu-steal), 'Node1 - Steal')
|
||||
- target: alias(sumSeries($Cloud1.$Node1.cpu-*.cpu-softirq), 'Node1 - SoftIRQ')
|
||||
- target: alias(sumSeries($Cloud1.$Node1.cpu-*.cpu-interrupt), 'Node1 - Interrupt')
|
||||
- target: alias(sumSeries($Cloud1.$Node1.cpu-*.cpu-wait), 'Node1 - Wait')
|
||||
- target: alias(sumSeries($Cloud1.$Node1.cpu-*.cpu-idle), 'Node1 - Idle')
|
||||
- target: alias(sumSeries($Cloud2.$Node2.cpu-*.cpu-system), 'Node2 - System')
|
||||
- target: alias(sumSeries($Cloud2.$Node2.cpu-*.cpu-user), 'Node2 - User')
|
||||
- target: alias(sumSeries($Cloud2.$Node2.cpu-*.cpu-nice), 'Node2 - Nice')
|
||||
- target: alias(sumSeries($Cloud2.$Node2.cpu-*.cpu-steal), 'Node2 - Steal')
|
||||
- target: alias(sumSeries($Cloud2.$Node2.cpu-*.cpu-softirq), 'Node2 - SoftIRQ')
|
||||
- target: alias(sumSeries($Cloud2.$Node2.cpu-*.cpu-interrupt), 'Node2 - Interrupt')
|
||||
- target: alias(sumSeries($Cloud2.$Node2.cpu-*.cpu-wait), 'Node2 - Wait')
|
||||
- target: alias(sumSeries($Cloud2.$Node2.cpu-*.cpu-idle), 'Node2 - Idle')
|
||||
# - target: alias(timeShift(sumSeries($Cloud1.$Node1.cpu-*.cpu-system), '$Node1_Timeshift'), 'Node1 - System')
|
||||
# - target: alias(timeShift(sumSeries($Cloud1.$Node1.cpu-*.cpu-user), '$Node1_Timeshift'), 'Node1 - User')
|
||||
# - target: alias(timeShift(sumSeries($Cloud1.$Node1.cpu-*.cpu-nice), '$Node1_Timeshift'), 'Node1 - Nice')
|
||||
# - target: alias(timeShift(sumSeries($Cloud1.$Node1.cpu-*.cpu-steal), '$Node1_Timeshift'), 'Node1 - Steal')
|
||||
# - target: alias(timeShift(sumSeries($Cloud1.$Node1.cpu-*.cpu-softirq), '$Node1_Timeshift'), 'Node1 - SoftIRQ')
|
||||
# - target: alias(timeShift(sumSeries($Cloud1.$Node1.cpu-*.cpu-interrupt), '$Node1_Timeshift'), 'Node1 - Interrupt')
|
||||
# - target: alias(timeShift(sumSeries($Cloud1.$Node1.cpu-*.cpu-wait), '$Node1_Timeshift'), 'Node1 - Wait')
|
||||
# - target: alias(timeShift(sumSeries($Cloud1.$Node1.cpu-*.cpu-idle), '$Node1_Timeshift'), 'Node1 - Idle')
|
||||
# - target: alias(timeShift(sumSeries($Cloud2.$Node2.cpu-*.cpu-system), '$Node2_Timeshift'), 'Node2 - System')
|
||||
# - target: alias(timeShift(sumSeries($Cloud2.$Node2.cpu-*.cpu-user), '$Node2_Timeshift'), 'Node2 - User')
|
||||
# - target: alias(timeShift(sumSeries($Cloud2.$Node2.cpu-*.cpu-nice), '$Node2_Timeshift'), 'Node2 - Nice')
|
||||
# - target: alias(timeShift(sumSeries($Cloud2.$Node2.cpu-*.cpu-steal), '$Node2_Timeshift'), 'Node2 - Steal')
|
||||
# - target: alias(timeShift(sumSeries($Cloud2.$Node2.cpu-*.cpu-softirq), '$Node2_Timeshift'), 'Node2 - SoftIRQ')
|
||||
# - target: alias(timeShift(sumSeries($Cloud2.$Node2.cpu-*.cpu-interrupt), '$Node2_Timeshift'), 'Node2 - Interrupt')
|
||||
# - target: alias(timeShift(sumSeries($Cloud2.$Node2.cpu-*.cpu-wait), '$Node2_Timeshift'), 'Node2 - Wait')
|
||||
# - target: alias(timeShift(sumSeries($Cloud2.$Node2.cpu-*.cpu-idle), '$Node2_Timeshift'), 'Node2 - Idle')
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: Memory Comparsion
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Memory in Bytes
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: "/Node1/i"
|
||||
stack: A
|
||||
- alias: "/Node2/i"
|
||||
stack: B
|
||||
targets:
|
||||
- target: alias(averageSeries($Cloud1.$Node1.memory.memory-slab_unrecl), 'Node1 - Slab Unrecl')
|
||||
- target: alias(averageSeries($Cloud1.$Node1.memory.memory-used), 'Node1 - Used')
|
||||
- target: alias(averageSeries($Cloud1.$Node1.memory.memory-buffered), 'Node1 - Buffered')
|
||||
- target: alias(averageSeries($Cloud1.$Node1.memory.memory-slab_recl), 'Node1 - Slab Recl')
|
||||
- target: alias(averageSeries($Cloud1.$Node1.memory.memory-cached), 'Node1 - Cached')
|
||||
- target: alias(averageSeries($Cloud1.$Node1.memory.memory-free), 'Node1 - Free')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.memory.memory-slab_unrecl), 'Node2 - Slab Unrecl')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.memory.memory-used), 'Node2 - Used')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.memory.memory-buffered), 'Node2 - Buffered')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.memory.memory-slab_recl), 'Node2 - Slab Recl')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.memory.memory-cached), 'Node2 - Cached')
|
||||
- target: alias(averageSeries($Cloud2.$Node2.memory.memory-free), 'Node2 - Free')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.memory.memory-slab_unrecl), '$Node1_Timeshift'), 'Node1 - Slab Unrecl')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.memory.memory-used), '$Node1_Timeshift'), 'Node1 - Used')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.memory.memory-buffered), '$Node1_Timeshift'), 'Node1 - Buffered')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.memory.memory-slab_recl), '$Node1_Timeshift'), 'Node1 - Slab Recl')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.memory.memory-cached), '$Node1_Timeshift'), 'Node1 - Cached')
|
||||
# - target: alias(timeShift(averageSeries($Cloud1.$Node1.memory.memory-free), '$Node1_Timeshift'), 'Node1 - Free')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.memory.memory-slab_unrecl), '$Node2_Timeshift'), 'Node2 - Slab Unrecl')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.memory.memory-used), '$Node2_Timeshift'), 'Node2 - Used')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.memory.memory-buffered), '$Node2_Timeshift'), 'Node2 - Buffered')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.memory.memory-slab_recl), '$Node2_Timeshift'), 'Node2 - Slab Recl')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.memory.memory-cached), '$Node2_Timeshift'), 'Node2 - Cached')
|
||||
# - target: alias(timeShift(averageSeries($Cloud2.$Node2.memory.memory-free), '$Node2_Timeshift'), 'Node2 - Free')
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: Memory in Percentage
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: "/Node1/i"
|
||||
stack: A
|
||||
- alias: "/Node2/i"
|
||||
stack: B
|
||||
targets:
|
||||
- hide: true
|
||||
target: $Cloud1.$Node1.memory.memory-slab_unrecl
|
||||
- hide: true
|
||||
target: $Cloud1.$Node1.memory.memory-used
|
||||
- hide: true
|
||||
target: $Cloud1.$Node1.memory.memory-buffered
|
||||
- hide: true
|
||||
target: $Cloud1.$Node1.memory.memory-slab_recl
|
||||
- hide: true
|
||||
target: $Cloud1.$Node1.memory.memory-cached
|
||||
- hide: true
|
||||
target: $Cloud1.$Node1.memory.memory-free
|
||||
- hide: true
|
||||
target: sumSeries($Cloud1.$Node1.memory.*)
|
||||
# - hide: true
|
||||
# target: timeShift($Cloud1.$Node1.memory.memory-slab_unrecl, '$Node1_Timeshift')
|
||||
# - hide: true
|
||||
# target: timeShift($Cloud1.$Node1.memory.memory-used, '$Node1_Timeshift')
|
||||
# - hide: true
|
||||
# target: timeShift($Cloud1.$Node1.memory.memory-buffered, '$Node1_Timeshift')
|
||||
# - hide: true
|
||||
# target: timeShift($Cloud1.$Node1.memory.memory-slab_recl, '$Node1_Timeshift')
|
||||
# - hide: true
|
||||
# target: timeShift($Cloud1.$Node1.memory.memory-cached, '$Node1_Timeshift')
|
||||
# - hide: true
|
||||
# target: timeShift($Cloud1.$Node1.memory.memory-free, '$Node1_Timeshift')
|
||||
# - hide: true
|
||||
# target: timeShift(sumSeries($Cloud1.$Node1.memory.*), '$Node1_Timeshift')
|
||||
- target: 'alias(asPercent(#A, #G), ''Node1 - Slab Unrecl'')'
|
||||
- target: 'alias(asPercent(#B, #G), ''Node1 - Used'')'
|
||||
- target: 'alias(asPercent(#C, #G), ''Node1 - Buffered'')'
|
||||
- target: 'alias(asPercent(#D, #G), ''Node1 - Slab Recl'')'
|
||||
- target: 'alias(asPercent(#E, #G), ''Node1 - Cached'')'
|
||||
- target: 'alias(asPercent(#F, #G), ''Node1 - Free'')'
|
||||
- hide: true
|
||||
target: $Cloud2.$Node2.memory.memory-slab_unrecl
|
||||
- hide: true
|
||||
target: $Cloud2.$Node2.memory.memory-used
|
||||
- hide: true
|
||||
target: $Cloud2.$Node2.memory.memory-buffered
|
||||
- hide: true
|
||||
target: $Cloud2.$Node2.memory.memory-slab_recl
|
||||
- hide: true
|
||||
target: $Cloud2.$Node2.memory.memory-cached
|
||||
- hide: true
|
||||
target: $Cloud2.$Node2.memory.memory-free
|
||||
- hide: true
|
||||
target: sumSeries($Cloud2.$Node2.memory.*)
|
||||
# - hide: true
|
||||
# target: timeShift($Cloud2.$Node2.memory.memory-slab_unrecl, '$Node2_Timeshift')
|
||||
# - hide: true
|
||||
# target: timeShift($Cloud2.$Node2.memory.memory-buffered, '$Node2_Timeshift')
|
||||
# - hide: true
|
||||
# target: timeShift($Cloud2.$Node2.memory.memory-slab_recl, '$Node2_Timeshift')
|
||||
# - hide: true
|
||||
# target: timeShift($Cloud2.$Node2.memory.memory-cached, '$Node2_Timeshift')
|
||||
# - hide: true
|
||||
# target: timeShift($Cloud2.$Node2.memory.memory-free, '$Node2_Timeshift')
|
||||
# - hide: true
|
||||
# target: timeShift(sumSeries($Cloud2.$Node2.memory.*), '$Node2_Timeshift')
|
||||
- target: 'alias(asPercent(#N, #T), ''Node2 - Slab Unrecl'')'
|
||||
- target: 'alias(asPercent(#O, #T), ''Node2 - Used'')'
|
||||
- target: 'alias(asPercent(#P, #T), ''Node2 - Buffered'')'
|
||||
- target: 'alias(asPercent(#Q, #T), ''Node2 - Slab Recl'')'
|
||||
- target: 'alias(asPercent(#R, #T), ''Node2 - Cached'')'
|
||||
- target: 'alias(asPercent(#S, #T), ''Node2 - Free'')'
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: Disk Comparsion
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: 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: Node1 - Write
|
||||
transform: negative-Y
|
||||
- alias: Node2 - Write
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- target: alias($Cloud1.$Node1.$Node1_Disk.disk_ops.read, 'Node1 - Read')
|
||||
- target: alias($Cloud1.$Node1.$Node1_Disk.disk_ops.write, 'Node1 - Write')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Disk.disk_ops.read, 'Node2 - Read')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Disk.disk_ops.write, 'Node2 - Write')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Disk.disk_ops.read, '$Node1_Timeshift'), 'Node1 - Read')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Disk.disk_ops.write, '$Node1_Timeshift'), 'Node1 - Write')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Disk.disk_ops.read, '$Node2_Timeshift'), 'Node2 - Read')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Disk.disk_ops.write, '$Node2_Timeshift'), 'Node2 - Write')
|
||||
yaxes:
|
||||
- format: iops
|
||||
- format: short
|
||||
- title: 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: Node1 - Write
|
||||
transform: negative-Y
|
||||
- alias: Node2 - Write
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- target: alias($Cloud1.$Node1.$Node1_Disk.disk_octets.read, 'Node1 - Read')
|
||||
- target: alias($Cloud1.$Node1.$Node1_Disk.disk_octets.write, 'Node1 - Write')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Disk.disk_octets.read, 'Node2 - Read')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Disk.disk_octets.write, 'Node2 - Write')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Disk.disk_octets.read, '$Node1_Timeshift'), 'Node1 - Read')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Disk.disk_octets.write, '$Node1_Timeshift'), 'Node1 - Write')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Disk.disk_octets.read, '$Node2_Timeshift'), 'Node2 - Read')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Disk.disk_octets.write, '$Node2_Timeshift'), 'Node2 - Write')
|
||||
yaxes:
|
||||
- format: Bps
|
||||
- format: short
|
||||
- title: '% Time'
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias(scale($Cloud1.$Node1.$Node1_Disk.disk_io_time.io_time, 0.1), 'Node1 - Time')
|
||||
- target: alias(scale($Cloud2.$Node2.$Node2_Disk.disk_io_time.io_time, 0.1), 'Node2 - Time')
|
||||
# - target: alias(timeShift(scale($Cloud1.$Node1.$Node1_Disk.disk_io_time.io_time, 0.1), '$Node1_Timeshift'), 'Node1 - Time')
|
||||
# - target: alias(timeShift(scale($Cloud2.$Node2.$Node2_Disk.disk_io_time.io_time, 0.1), '$Node2_Timeshift'), 'Node2 - Time')
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: Network Comparsion
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: pps
|
||||
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: Node1 - RX
|
||||
transform: negative-Y
|
||||
- alias: Node2 - RX
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- target: alias($Cloud1.$Node1.$Node1_Interface.if_packets.tx, 'Node1 - TX')
|
||||
- target: alias($Cloud1.$Node1.$Node1_Interface.if_packets.rx, 'Node1 - RX')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Interface.if_packets.tx, 'Node2 - TX')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Interface.if_packets.rx, 'Node2 - RX')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Interface.if_packets.tx, '$Node1_Timeshift'), 'Node1 - TX')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Interface.if_packets.rx, '$Node1_Timeshift'), 'Node1 - RX')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Interface.if_packets.tx, '$Node2_Timeshift'), 'Node2 - TX')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Interface.if_packets.rx, '$Node2_Timeshift'), 'Node2 - RX')
|
||||
yaxes:
|
||||
- format: pps
|
||||
- format: short
|
||||
- title: 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: Node1 - RX
|
||||
transform: negative-Y
|
||||
- alias: Node2 - RX
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- target: alias(scale($Cloud1.$Node1.$Node1_Interface.if_octets.tx, 8), 'Node1 - TX')
|
||||
- target: alias(scale($Cloud1.$Node1.$Node1_Interface.if_octets.rx, 8), 'Node1 - RX')
|
||||
- target: alias(scale($Cloud2.$Node2.$Node2_Interface.if_octets.tx, 8), 'Node2 - TX')
|
||||
- target: alias(scale($Cloud2.$Node2.$Node2_Interface.if_octets.rx, 8), 'Node2 - RX')
|
||||
# - target: alias(timeShift(scale($Cloud1.$Node1.$Node1_Interface.if_octets.tx, 8), '$Node1_Timeshift'), 'Node1 - TX')
|
||||
# - target: alias(timeShift(scale($Cloud1.$Node1.$Node1_Interface.if_octets.rx, 8), '$Node1_Timeshift'), 'Node1 - RX')
|
||||
# - target: alias(timeShift(scale($Cloud2.$Node2.$Node2_Interface.if_octets.tx, 8), '$Node2_Timeshift'), 'Node2 - TX')
|
||||
# - target: alias(timeShift(scale($Cloud2.$Node2.$Node2_Interface.if_octets.rx, 8), '$Node2_Timeshift'), 'Node2 - RX')
|
||||
yaxes:
|
||||
- format: bps
|
||||
- format: short
|
||||
- title: Node Process Comparsion
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Processes State
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: "/Node1/i"
|
||||
stack: A
|
||||
- alias: "/Node2/i"
|
||||
stack: B
|
||||
targets:
|
||||
- target: alias($Cloud1.$Node1.processes.ps_state-running, 'Node1 - Running')
|
||||
- target: alias($Cloud1.$Node1.processes.ps_state-stopped, 'Node1 - Stopped')
|
||||
- target: alias($Cloud1.$Node1.processes.ps_state-sleeping, 'Node1 - Sleeping')
|
||||
- target: alias($Cloud1.$Node1.processes.ps_state-blocked, 'Node1 - Blocked')
|
||||
- target: alias($Cloud1.$Node1.processes.ps_state-paging, 'Node1 - Paging')
|
||||
- target: alias($Cloud1.$Node1.processes.ps_state-zombies, 'Node1 - Zombies')
|
||||
- target: alias($Cloud2.$Node2.processes.ps_state-running, 'Node2 - Running')
|
||||
- target: alias($Cloud2.$Node2.processes.ps_state-stopped, 'Node2 - Stopped')
|
||||
- target: alias($Cloud2.$Node2.processes.ps_state-sleeping, 'Node2 - Sleeping')
|
||||
- target: alias($Cloud2.$Node2.processes.ps_state-blocked, 'Node2 - Blocked')
|
||||
- target: alias($Cloud2.$Node2.processes.ps_state-paging, 'Node2 - Paging')
|
||||
- target: alias($Cloud2.$Node2.processes.ps_state-zombies, 'Node2 - Zombies')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.processes.ps_state-running, '$Node1_Timeshift'), 'Node1 - Running')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.processes.ps_state-stopped, '$Node1_Timeshift'), 'Node1 - Stopped')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.processes.ps_state-sleeping, '$Node1_Timeshift'), 'Node1 - Sleeping')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.processes.ps_state-blocked, '$Node1_Timeshift'), 'Node1 - Blocked')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.processes.ps_state-paging, '$Node1_Timeshift'), 'Node1 - Paging')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.processes.ps_state-zombies, '$Node1_Timeshift'), 'Node1 - Zombies')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.processes.ps_state-running, '$Node2_Timeshift'), 'Node2 - Running')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.processes.ps_state-stopped, '$Node2_Timeshift'), 'Node2 - Stopped')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.processes.ps_state-sleeping, '$Node2_Timeshift'), 'Node2 - Sleeping')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.processes.ps_state-blocked, '$Node2_Timeshift'), 'Node2 - Blocked')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.processes.ps_state-paging, '$Node2_Timeshift'), 'Node2 - Paging')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.processes.ps_state-zombies, '$Node2_Timeshift'), 'Node2 - Zombies')
|
||||
- title: Per Process Comparsion
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Process Counts
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias($Cloud1.$Node1.$Node1_Process.ps_count.processes, 'Node1 - $Node1_Process - Processes')
|
||||
- target: alias($Cloud1.$Node1.$Node1_Process.ps_count.threads, 'Node1 - $Node1_Process - Threads')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Process.ps_count.processes, 'Node2 - $Node2_Process - Processes')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Process.ps_count.threads, 'Node2 - $Node2_Process - Threads')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Process.ps_count.processes, '$Node1_Timeshift'), 'Node1 - $Node1_Process - Processes')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Process.ps_count.threads, '$Node1_Timeshift'), 'Node1 - $Node1_Process - Threads')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Process.ps_count.processes, '$Node2_Timeshift'), 'Node2 - $Node2_Process - Processes')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Process.ps_count.threads, '$Node2_Timeshift'), 'Node2 - $Node2_Process - Threads')
|
||||
- title: Process CPU
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias(scale($Cloud1.$Node1.$Node1_Process.ps_cputime.syst, 0.0001), 'Node1 - $Node1_Process - System')
|
||||
- target: alias(scale($Cloud1.$Node1.$Node1_Process.ps_cputime.user, 0.0001), 'Node1 - $Node1_Process - User')
|
||||
- target: alias(scale($Cloud2.$Node2.$Node2_Process.ps_cputime.syst, 0.0001), 'Node2 - $Node2_Process - System')
|
||||
- target: alias(scale($Cloud2.$Node2.$Node2_Process.ps_cputime.user, 0.0001), 'Node2 - $Node2_Process - User')
|
||||
# - target: alias(timeShift(scale($Cloud1.$Node1.$Node1_Process.ps_cputime.syst, 0.0001), '$Node1_Timeshift'), 'Node1 - $Node1_Process - System')
|
||||
# - target: alias(timeShift(scale($Cloud1.$Node1.$Node1_Process.ps_cputime.user, 0.0001), '$Node1_Timeshift'), 'Node1 - $Node1_Process - User')
|
||||
# - target: alias(timeShift(scale($Cloud2.$Node2.$Node2_Process.ps_cputime.syst, 0.0001), '$Node2_Timeshift'), 'Node2 - $Node2_Process - System')
|
||||
# - target: alias(timeShift(scale($Cloud2.$Node2.$Node2_Process.ps_cputime.user, 0.0001), '$Node2_Timeshift'), 'Node2 - $Node2_Process - User')
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: Process Memory
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias($Cloud1.$Node1.$Node1_Process.ps_rss, 'Node1 - $Node1_Process - RSS')
|
||||
- target: alias($Cloud1.$Node1.$Node1_Process.ps_vm, 'Node1 - $Node1_Process - Virtual')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Process.ps_rss, 'Node2 - $Node2_Process - RSS')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Process.ps_vm, 'Node2 - $Node2_Process - Virtual')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Process.ps_rss, '$Node1_Timeshift'), 'Node1 - $Node1_Process - RSS')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Process.ps_vm, '$Node1_Timeshift'), 'Node1 - $Node1_Process - Virtual')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Process.ps_rss, '$Node2_Timeshift'), 'Node2 - $Node2_Process - RSS')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Process.ps_vm, '$Node2_Timeshift'), 'Node2 - $Node2_Process - Virtual')
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
||||
- title: Page Faults
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias($Cloud1.$Node1.$Node1_Process.ps_pagefaults.majflt, 'Node1 - $Node1_Process - Majflt')
|
||||
- target: alias($Cloud1.$Node1.$Node1_Process.ps_pagefaults.minflt, 'Node1 - $Node1_Process - Minflt')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Process.ps_pagefaults.majflt, 'Node2 - $Node2_Process - Majflt')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Process.ps_pagefaults.minflt, 'Node2 - $Node2_Process - Minflt')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Process.ps_pagefaults.majflt, '$Node1_Timeshift'), 'Node1 - $Node1_Process - Majflt')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Process.ps_pagefaults.minflt, '$Node1_Timeshift'), 'Node1 - $Node1_Process - Minflt')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Process.ps_pagefaults.majflt, '$Node2_Timeshift'), 'Node2 - $Node2_Process - Majflt')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Process.ps_pagefaults.minflt, '$Node2_Timeshift'), 'Node2 - $Node2_Process - Minflt')
|
||||
- title: iops
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias($Cloud1.$Node1.$Node1_Process.io_ops.read, 'Node1 - $Node1_Process - Read')
|
||||
- target: alias($Cloud1.$Node1.$Node1_Process.io_ops.write, 'Node1 - $Node1_Process - Write')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Process.io_ops.read, 'Node2 - $Node2_Process - Read')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Process.io_ops.write, 'Node2 - $Node2_Process - Write')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Process.io_ops.read, '$Node1_Timeshift'), 'Node1 - $Node1_Process - Read')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Process.io_ops.write, '$Node1_Timeshift'), 'Node1 - $Node1_Process - Write')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Process.io_ops.read, '$Node2_Timeshift'), 'Node2 - $Node2_Process - Read')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Process.io_ops.write, '$Node2_Timeshift'), 'Node2 - $Node2_Process - Write')
|
||||
yaxes:
|
||||
- format: iops
|
||||
- format: short
|
||||
- title: IO Throughput
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias($Cloud1.$Node1.$Node1_Process.io_octets.rx, 'Node1 - $Node1_Process - Rx')
|
||||
- target: alias($Cloud1.$Node1.$Node1_Process.io_octets.tx, 'Node1 - $Node1_Process - Tx')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Process.io_octets.rx, 'Node2 - $Node2_Process - Rx')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Process.io_octets.tx, 'Node2 - $Node2_Process - Tx')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Process.io_octets.rx, '$Node1_Timeshift'), 'Node1 - $Node1_Process - Rx')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Process.io_octets.tx, '$Node1_Timeshift'), 'Node1 - $Node1_Process - Tx')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Process.io_octets.rx, '$Node2_Timeshift'), 'Node2 - $Node2_Process - Rx')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Process.io_octets.tx, '$Node2_Timeshift'), 'Node2 - $Node2_Process - Tx')
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: Disk IO Throughput
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias($Cloud1.$Node1.$Node1_Process.disk_octets.read, 'Node1 - $Node1_Process - Disk Read')
|
||||
- target: alias($Cloud1.$Node1.$Node1_Process.disk_octets.write, 'Node1 - $Node1_Process - Disk Write')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Process.disk_octets.read, 'Node2 - $Node2_Process - Disk Read')
|
||||
- target: alias($Cloud2.$Node2.$Node2_Process.disk_octets.write, 'Node2 - $Node2_Process - Disk Write')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Process.disk_octets.read, '$Node1_Timeshift'), 'Node1 - $Node1_Process - Disk Read')
|
||||
# - target: alias(timeShift($Cloud1.$Node1.$Node1_Process.disk_octets.write, '$Node1_Timeshift'), 'Node1 - $Node1_Process - Disk Write')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Process.disk_octets.read, '$Node2_Timeshift'), 'Node2 - $Node2_Process - Disk Read')
|
||||
# - target: alias(timeShift($Cloud2.$Node2.$Node2_Process.disk_octets.write, '$Node2_Timeshift'), 'Node2 - $Node2_Process - Disk Write')
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
@ -1,590 +0,0 @@
|
||||
{
|
||||
"dashboard": {
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"editable": true,
|
||||
"gnetId": null,
|
||||
"graphTooltip": 0,
|
||||
"hideControls": false,
|
||||
"id": null,
|
||||
"links": [],
|
||||
"refresh": false,
|
||||
"rows": [
|
||||
{
|
||||
"collapse": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {},
|
||||
"id": 1,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias($Cloud.undercloud.memory.memory-slab_unrecl, 'Slab Unrecl')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias($Cloud.undercloud.memory.memory-used, 'Used')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias($Cloud.undercloud.memory.memory-buffered, 'Buffered')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias($Cloud.undercloud.memory.memory-slab_recl, 'Slab Recl')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias($Cloud.undercloud.memory.memory-cached, 'Cached')"
|
||||
},
|
||||
{
|
||||
"refId": "F",
|
||||
"target": "alias($Cloud.undercloud.memory.memory-free, 'Free')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "undercloud Memory Usage",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bits",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": true,
|
||||
"title": "undercloud Memory Usage",
|
||||
"titleSize": "h6"
|
||||
},
|
||||
{
|
||||
"collapse": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {},
|
||||
"id": 2,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-controller-*.memory.memory-slab_unrecl), 'Slab Unrecl')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-controller-*.memory.memory-used), 'Used')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-controller-*.memory.memory-buffered), 'Buffered')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-controller-*.memory.memory-slab_recl), 'Slab Recl')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-controller-*.memory.memory-cached), 'Cached')"
|
||||
},
|
||||
{
|
||||
"refId": "F",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-controller-*.memory.memory-free), 'Free')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Total Controller Memory Usage",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bits",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": true,
|
||||
"title": "Controller Total Memory Usage",
|
||||
"titleSize": "h6"
|
||||
},
|
||||
{
|
||||
"collapse": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {},
|
||||
"id": 3,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-cephstorage-*.memory.memory-slab_unrecl), 'Slab Unrecl')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-cephstorage-*.memory.memory-used), 'Used')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-cephstorage-*.memory.memory-buffered), 'Buffered')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-cephstorage-*.memory.memory-slab_recl), 'Slab Recl')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-cephstorage-*.memory.memory-cached), 'Cached')"
|
||||
},
|
||||
{
|
||||
"refId": "F",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-cephstorage-*.memory.memory-free), 'Free')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Total CephStorage Memory Usage",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bits",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": true,
|
||||
"title": "CephStorage Total Memory Usage",
|
||||
"titleSize": "h6"
|
||||
},
|
||||
{
|
||||
"collapse": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {},
|
||||
"id": 4,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-objectstorage-*.memory.memory-slab_unrecl), 'Slab Unrecl')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-objectstorage-*.memory.memory-used), 'Used')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-objectstorage-*.memory.memory-buffered), 'Buffered')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-objectstorage-*.memory.memory-slab_recl), 'Slab Recl')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-objectstorage-*.memory.memory-cached), 'Cached')"
|
||||
},
|
||||
{
|
||||
"refId": "F",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-objectstorage-*.memory.memory-free), 'Free')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Total ObjectStorage Memory Usage",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bits",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": true,
|
||||
"title": "ObjectStorage Total Memory Usage",
|
||||
"titleSize": "h6"
|
||||
},
|
||||
{
|
||||
"collapse": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {},
|
||||
"id": 5,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-*compute-*.memory.memory-slab_unrecl), 'Slab Unrecl')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-*compute-*.memory.memory-used), 'Used')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-*compute-*.memory.memory-buffered), 'Buffered')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-*compute-*.memory.memory-slab_recl), 'Slab Recl')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-*compute-*.memory.memory-cached), 'Cached')"
|
||||
},
|
||||
{
|
||||
"refId": "F",
|
||||
"target": "alias(sumSeries($Cloud.overcloud-*compute-*.memory.memory-free), 'Free')"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Total Compute Memory Usage",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bits",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": true,
|
||||
"title": "Compute Total Memory Usage",
|
||||
"titleSize": "h6"
|
||||
}
|
||||
],
|
||||
"schemaVersion": 12,
|
||||
"sharedCrosshair": false,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "",
|
||||
"value": ""
|
||||
},
|
||||
"datasource": null,
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "Cloud",
|
||||
"options": [],
|
||||
"query": "*",
|
||||
"refresh": 2,
|
||||
"regex": "/^(?!stats[d]*[_counts]*$).*$/",
|
||||
"type": "query"
|
||||
}
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"now": true,
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"timezone": "utc",
|
||||
"title": "Cloud Total Memory Usage",
|
||||
"version": 7
|
||||
}
|
||||
}
|
@ -0,0 +1,186 @@
|
||||
---
|
||||
dashboard:
|
||||
title: Cloud Total Memory Usage
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
time:
|
||||
from: now-1h
|
||||
to: now
|
||||
rows:
|
||||
- title: description row
|
||||
height: 75px
|
||||
panels:
|
||||
- title: Browbeat provided Dashboard
|
||||
content: "**This dashboard is provided by Browbeat and managed via Grafyaml**"
|
||||
type: text
|
||||
- title: Undercloud Memory Usage
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Undercloud Memory Usage
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias($Cloud.undercloud.memory.memory-slab_unrecl, 'Slab Unrecl')
|
||||
- target: alias($Cloud.undercloud.memory.memory-used, 'Used')
|
||||
- target: alias($Cloud.undercloud.memory.memory-buffered, 'Buffered')
|
||||
- target: alias($Cloud.undercloud.memory.memory-slab_recl, 'Slab Recl')
|
||||
- target: alias($Cloud.undercloud.memory.memory-cached, 'Cached')
|
||||
- target: alias($Cloud.undercloud.memory.memory-free, 'Free')
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
||||
- title: Controller Total Memory Usage
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Total Controller Memory Usage
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias(sumSeries($Cloud.overcloud-controller-*.memory.memory-slab_unrecl), 'Slab Unrecl')
|
||||
- target: alias(sumSeries($Cloud.overcloud-controller-*.memory.memory-used), 'Used')
|
||||
- target: alias(sumSeries($Cloud.overcloud-controller-*.memory.memory-buffered), 'Buffered')
|
||||
- target: alias(sumSeries($Cloud.overcloud-controller-*.memory.memory-slab_recl), 'Slab Recl')
|
||||
- target: alias(sumSeries($Cloud.overcloud-controller-*.memory.memory-cached), 'Cached')
|
||||
- target: alias(sumSeries($Cloud.overcloud-controller-*.memory.memory-free), 'Free')
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
||||
- title: Networker Total Memory Usage
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Total Networker Memory Usage
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias(sumSeries($Cloud.overcloud-networker-*.memory.memory-slab_unrecl), 'Slab Unrecl')
|
||||
- target: alias(sumSeries($Cloud.overcloud-networker-*.memory.memory-used), 'Used')
|
||||
- target: alias(sumSeries($Cloud.overcloud-networker-*.memory.memory-buffered), 'Buffered')
|
||||
- target: alias(sumSeries($Cloud.overcloud-networker-*.memory.memory-slab_recl), 'Slab Recl')
|
||||
- target: alias(sumSeries($Cloud.overcloud-networker-*.memory.memory-cached), 'Cached')
|
||||
- target: alias(sumSeries($Cloud.overcloud-networker-*.memory.memory-free), 'Free')
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
||||
- title: CephStorage Total Memory Usage
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Total CephStorage Memory Usage
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias(sumSeries($Cloud.overcloud-cephstorage-*.memory.memory-slab_unrecl), 'Slab Unrecl')
|
||||
- target: alias(sumSeries($Cloud.overcloud-cephstorage-*.memory.memory-used), 'Used')
|
||||
- target: alias(sumSeries($Cloud.overcloud-cephstorage-*.memory.memory-buffered), 'Buffered')
|
||||
- target: alias(sumSeries($Cloud.overcloud-cephstorage-*.memory.memory-slab_recl), 'Slab Recl')
|
||||
- target: alias(sumSeries($Cloud.overcloud-cephstorage-*.memory.memory-cached), 'Cached')
|
||||
- target: alias(sumSeries($Cloud.overcloud-cephstorage-*.memory.memory-free), 'Free')
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
||||
- title: ObjectStorage Total Memory Usage
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Total ObjectStorage Memory Usage
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias(sumSeries($Cloud.overcloud-objectstorage-*.memory.memory-slab_unrecl), 'Slab Unrecl')
|
||||
- target: alias(sumSeries($Cloud.overcloud-objectstorage-*.memory.memory-used), 'Used')
|
||||
- target: alias(sumSeries($Cloud.overcloud-objectstorage-*.memory.memory-buffered), 'Buffered')
|
||||
- target: alias(sumSeries($Cloud.overcloud-objectstorage-*.memory.memory-slab_recl), 'Slab Recl')
|
||||
- target: alias(sumSeries($Cloud.overcloud-objectstorage-*.memory.memory-cached), 'Cached')
|
||||
- target: alias(sumSeries($Cloud.overcloud-objectstorage-*.memory.memory-free), 'Free')
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
||||
- title: Compute Total Memory Usage
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Total Compute Memory Usage
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias(sumSeries($Cloud.overcloud-compute-*.memory.memory-slab_unrecl), 'Slab Unrecl')
|
||||
- target: alias(sumSeries($Cloud.overcloud-compute-*.memory.memory-used), 'Used')
|
||||
- target: alias(sumSeries($Cloud.overcloud-compute-*.memory.memory-buffered), 'Buffered')
|
||||
- target: alias(sumSeries($Cloud.overcloud-compute-*.memory.memory-slab_recl), 'Slab Recl')
|
||||
- target: alias(sumSeries($Cloud.overcloud-compute-*.memory.memory-cached), 'Cached')
|
||||
- target: alias(sumSeries($Cloud.overcloud-compute-*.memory.memory-free), 'Free')
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,698 +0,0 @@
|
||||
{
|
||||
"dashboard": {
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"description": "Ironic StatsD data, only populated when StatsD is enabled",
|
||||
"editable": true,
|
||||
"gnetId": null,
|
||||
"hideControls": false,
|
||||
"id": null,
|
||||
"links": [],
|
||||
"refresh": false,
|
||||
"rows": [
|
||||
{
|
||||
"collapse": false,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
"id": 1,
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "connected",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "stats.timers.$Cloud.ironic.conductor.manager.do_sync_power_state.mean_90"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Power State Sync: 90th Percentile Mean",
|
||||
"tooltip": {
|
||||
"msResolution": false,
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"show": true
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Milliseconds",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
"id": 2,
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "connected",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "stats.timers.$Cloud.ironic.conductor.manager.ConductorManager.change_node_power_state.mean_90"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Change Node Power State: 90th percentile mean",
|
||||
"tooltip": {
|
||||
"msResolution": false,
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"show": true
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Milliseconds",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"title": "Row"
|
||||
},
|
||||
{
|
||||
"collapse": false,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
"id": 3,
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "connected",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "stats.timers.$Cloud.ironic.conductor.manager.ConductorManager.set_boot_device.mean_90"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Set boot device: 90th percentile mean",
|
||||
"tooltip": {
|
||||
"msResolution": false,
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"show": true
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Milliseconds",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
"id": 4,
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "connected",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "stats.timers.$Cloud.ironic.conductor.manager.ConductorManager.do_node_deploy.mean_90"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Do Node Deployment: 90th percentile mean",
|
||||
"tooltip": {
|
||||
"msResolution": false,
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"show": true
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Milliseconds",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"title": "New row"
|
||||
},
|
||||
{
|
||||
"collapse": false,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
"id": 5,
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "connected",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "stats.timers.$Cloud.ironic.api.controllers.v1.node.NodesController.detail.mean_90"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Get Node Details API response time: 90th percentile mean",
|
||||
"tooltip": {
|
||||
"msResolution": false,
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"show": true
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Milliseconds",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
"id": 6,
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "connected",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "stats.timers.$Cloud.ironic.api.controllers.v1.node.NodesController.get_all.mean_90"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Get Node List API response time: 90th Percentile mean",
|
||||
"tooltip": {
|
||||
"msResolution": false,
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"show": true
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Milliseconds",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"title": "New row"
|
||||
},
|
||||
{
|
||||
"collapse": false,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
"id": 7,
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "connected",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "stats.timers.$Cloud.ironic.api.controllers.v1.node.NodeStatesController.power.mean_90"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Node Power State API response time: 90th Percentile Mean",
|
||||
"tooltip": {
|
||||
"msResolution": false,
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"show": true
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Milliseconds",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
"id": 8,
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "connected",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 6,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "stats.timers.$Cloud.ironic.api.controllers.v1.node.NodeStatesController.provision.mean_90"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Ironic Node Provision State API response time: 90th percentile mean",
|
||||
"tooltip": {
|
||||
"msResolution": false,
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"show": true
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": "Millisecond",
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"title": "New row"
|
||||
}
|
||||
],
|
||||
"schemaVersion": 12,
|
||||
"sharedCrosshair": false,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "",
|
||||
"value": ""
|
||||
},
|
||||
"datasource": null,
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "Cloud",
|
||||
"options": [],
|
||||
"query": "*",
|
||||
"refresh": 2,
|
||||
"regex": "/^(?!stats[d]*[_counts]*$).*$/",
|
||||
"type": "query"
|
||||
}
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"timezone": "browser",
|
||||
"title": "OpenStack Ironic Metrics",
|
||||
"version": 2
|
||||
}
|
||||
}
|
@ -0,0 +1,126 @@
|
||||
---
|
||||
dashboard:
|
||||
title: OpenStack Ironic Metrics
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
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
|
||||
- title: Row 1
|
||||
height: 250px
|
||||
panels:
|
||||
- title: "Power State Sync: 90th Percentile Mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'connected'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.conductor.manager.do_sync_power_state.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: "Change Node Power State: 90th percentile mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'connected'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.conductor.manager.ConductorManager.change_node_power_state.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: Row 2
|
||||
height: 250px
|
||||
panels:
|
||||
- title: "Set boot device: 90th percentile mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'connected'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.conductor.manager.ConductorManager.set_boot_device.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: "Do Node Deployment: 90th percentile mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'connected'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.conductor.manager.ConductorManager.do_node_deploy.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: Row 3
|
||||
height: 250px
|
||||
panels:
|
||||
- title: "Get Node Details API response time: 90th percentile mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'connected'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.api.controllers.v1.node.NodesController.detail.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: "Get Node List API response time: 90th Percentile mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'connected'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.api.controllers.v1.node.NodesController.get_all.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: Row 4
|
||||
height: 250px
|
||||
panels:
|
||||
- title: "Node Power State API response time: 90th Percentile Mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'connected'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.api.controllers.v1.node.NodeStatesController.power.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: "Ironic Node Provision State API response time: 90th percentile mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'connected'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.api.controllers.v1.node.NodeStatesController.provision.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
File diff suppressed because it is too large
Load Diff
@ -1,59 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
import argparse
|
||||
import json
|
||||
|
||||
|
||||
# Each Query in a Grafana Panel has a Reference ID, and this helps correct any drift or cut & paste
|
||||
# errors in the each Query's ID.
|
||||
refIds = [
|
||||
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
|
||||
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB",
|
||||
"AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN",
|
||||
"AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ"
|
||||
]
|
||||
|
||||
def main():
|
||||
"""Script used to fix panel ids in static dashboards. Typically adding a new panel or row into
|
||||
a static dashboard will involve re-ordering all subsequent panels. This script automates that.
|
||||
"""
|
||||
parser = argparse.ArgumentParser(description="Fix panel ids in grafana json dashboard.")
|
||||
parser.add_argument('inputfile', help='Input json file')
|
||||
parser.add_argument('outputfile', help='Output json file')
|
||||
args = parser.parse_args()
|
||||
|
||||
with open(args.inputfile) as data_file:
|
||||
data = json.load(data_file)
|
||||
|
||||
index = 0
|
||||
for row in data['dashboard']['rows']:
|
||||
for panel in row['panels']:
|
||||
index += 1
|
||||
if index != panel['id']:
|
||||
print "Found error in panel({}): {}".format(index, panel['title'])
|
||||
panel['id'] = index
|
||||
|
||||
# Check over Query RefIds while after fixing Panel ID
|
||||
refid_index = 0
|
||||
for target in panel['targets']:
|
||||
if target["refId"] != refIds[refid_index]:
|
||||
print "Panel: {}, Incorrect Target ID: {} Should be: {}".format(
|
||||
panel['title'], target["refId"], refIds[refid_index])
|
||||
target['refId'] = refIds[refid_index]
|
||||
refid_index += 1
|
||||
|
||||
with open(args.outputfile, 'w') as outputfile:
|
||||
json.dump(data, outputfile, sort_keys=True, indent=2, separators=(',', ': '))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -9,65 +9,76 @@
|
||||
when: item == dashboard_cloud_name
|
||||
with_items: "{{forbidden_cloud_names}}"
|
||||
|
||||
# Cloud Specific Dashboards (Generated off Ansible inventory)
|
||||
- name: Generate Cloud Specific CPU/Memory/Disk/Network/Log Dashboards
|
||||
vars:
|
||||
ansible_python_interpreter: "/usr/bin/python"
|
||||
# Templated Cloud Specific Dashboards
|
||||
- name: Generate Cloud Specific CPU/Memory/Disk/Network/Log Dashboards from GrafYaml Templates
|
||||
template:
|
||||
src: "cloud_specific_{{item}}.json.j2"
|
||||
dest: "{{role_path}}/files/cloud_specific_{{item}}.json"
|
||||
src: "cloud_specific_{{item}}.yaml.j2"
|
||||
dest: "{{role_path}}/files/cloud_specific_{{item}}.yaml"
|
||||
when: upload_cloud_specific|bool
|
||||
with_items: "{{cloud_specific_dashboards}}"
|
||||
|
||||
- name: Remove Existing Cloud Specific CPU/Memory/Disk/Network/Log Dashboards
|
||||
command: "curl -X DELETE -H 'Content-Type: application/json' http://{{grafana_username}}:{{grafana_password}}@{{grafana_host}}:{{grafana_port}}/api/dashboards/db/{{dashboard_cloud_name}}-{{item|replace('_', '-')}}"
|
||||
when: overwrite_existing|bool and upload_cloud_specific|bool
|
||||
with_items: "{{cloud_specific_dashboards}}"
|
||||
|
||||
- name: Upload Cloud Specific CPU/Memory/Disk/Network/Log Dashboards
|
||||
command: "curl -X POST -H 'Content-Type: application/json' -d @{{role_path}}/files/cloud_specific_{{item}}.json http://{{grafana_username}}:{{grafana_password}}@{{grafana_host}}:{{grafana_port}}/api/dashboards/db"
|
||||
- name: Upload Cloud Specific CPU/Memory/Disk/Network/Log Dashboards via GrafYaml
|
||||
shell: |
|
||||
. {{browbeat_venv}}/bin/activate
|
||||
grafana-dashboard --grafana-url http://{{grafana_host}}:{{grafana_port}} --grafana-apikey {{grafana_apikey}} update {{role_path}}/files/cloud_specific_{{item}}.yaml
|
||||
when: upload_cloud_specific|bool
|
||||
with_items: "{{cloud_specific_dashboards}}"
|
||||
|
||||
- name: Remove leftover json file(s) from Cloud Specific CPU/Memory/Disk/Network/Log Dashboards
|
||||
- name: Remove leftover yaml file(s) from Cloud Specific CPU/Memory/Disk/Network/Log Dashboards
|
||||
file:
|
||||
path: "{{role_path}}/files/cloud_specific_{{item}}.json"
|
||||
path: "{{role_path}}/files/cloud_specific_{{item}}.yaml"
|
||||
state: absent
|
||||
when: upload_cloud_specific|bool
|
||||
with_items: "{{cloud_specific_dashboards}}"
|
||||
|
||||
# General Performance Dashboards (Templated from Ansible vars)
|
||||
- name: Generate General Dashboards
|
||||
# Templated General Performance Dashboards
|
||||
- name: Generate General Performance Dashboards
|
||||
template:
|
||||
src: "{{role_path}}/templates/{{item.template_name}}_general_system_performance.json.j2"
|
||||
dest: "{{role_path}}/files/{{item.process_list_name}}_general_system_performance.json"
|
||||
src: "{{role_path}}/templates/{{item.template_name}}_general_system_performance.yaml.j2"
|
||||
dest: "{{role_path}}/files/{{item.process_list_name}}_general_system_performance.yaml"
|
||||
when: upload_general|bool
|
||||
with_items: "{{general_dashboards}}"
|
||||
|
||||
- name: Remove Existing General Dashboards
|
||||
command: "curl -X DELETE -H 'Content-Type: application/json' http://{{grafana_username}}:{{grafana_password}}@{{grafana_host}}:{{grafana_port}}/api/dashboards/db/{{item.process_list_name|lower}}-general-system-performance"
|
||||
when: overwrite_existing|bool and upload_general|bool
|
||||
with_items: "{{general_dashboards}}"
|
||||
|
||||
- name: Upload General Dashboards to Grafana
|
||||
command: "curl -X POST -H 'Content-Type: application/json' -d @{{role_path}}/files/{{item.process_list_name}}_general_system_performance.json http://{{grafana_username}}:{{grafana_password}}@{{grafana_host}}:{{grafana_port}}/api/dashboards/db"
|
||||
- name: Upload General Performance Dashboards to Grafana
|
||||
shell: |
|
||||
. {{browbeat_venv}}/bin/activate
|
||||
grafana-dashboard --grafana-url http://{{grafana_host}}:{{grafana_port}} --grafana-apikey {{grafana_apikey}} update {{role_path}}/files/{{item.process_list_name}}_general_system_performance.yaml
|
||||
when: upload_general|bool
|
||||
with_items: "{{general_dashboards}}"
|
||||
|
||||
- name: Remove leftover json file(s) from Generated General Dashboards
|
||||
- name: Remove leftover yaml file(s) from General Performance Dashboards
|
||||
file:
|
||||
path: "{{role_path}}/files/{{item.process_list_name}}_general_system_performance.json"
|
||||
path: "{{role_path}}/files/{{item.process_list_name}}_general_system_performance.yaml"
|
||||
state: absent
|
||||
when: upload_general|bool
|
||||
with_items: "{{general_dashboards}}"
|
||||
|
||||
# Static Dashboards:
|
||||
- name: Remove Existing Static Dashboard(s)
|
||||
command: "curl -X DELETE -H 'Content-Type: application/json' http://{{grafana_username}}:{{grafana_password}}@{{grafana_host}}:{{grafana_port}}/api/dashboards/db/{{item|replace('_', '-')}}"
|
||||
when: overwrite_existing|bool and upload_static|bool
|
||||
with_items: "{{static_dashboards}}"
|
||||
|
||||
- name: Upload Static Dashboards to Grafana
|
||||
command: "curl -X POST -H 'Content-Type: application/json' -d @{{role_path}}/files/{{item}}.json http://{{grafana_username}}:{{grafana_password}}@{{grafana_host}}:{{grafana_port}}/api/dashboards/db"
|
||||
- name: Upload Static Dashboards to Grafana via GrafYaml
|
||||
shell: |
|
||||
. {{browbeat_venv}}/bin/activate
|
||||
grafana-dashboard --grafana-url http://{{grafana_host}}:{{grafana_port}} --grafana-apikey {{grafana_apikey}} update {{role_path}}/files/{{item}}.yaml
|
||||
when: upload_static|bool
|
||||
with_items: "{{static_dashboards}}"
|
||||
|
||||
# Templated Dashboards
|
||||
- name: Generate Templated Dashboards
|
||||
template:
|
||||
src: "{{item}}.yaml.j2"
|
||||
dest: "{{role_path}}/files/{{item}}.yaml"
|
||||
when: upload_templated|bool
|
||||
with_items: "{{templated_dashboards}}"
|
||||
|
||||
- name: Upload Generated Templated Dashboards via GrafYaml
|
||||
shell: |
|
||||
. {{browbeat_venv}}/bin/activate
|
||||
grafana-dashboard --grafana-url http://{{grafana_host}}:{{grafana_port}} --grafana-apikey {{grafana_apikey}} update {{role_path}}/files/{{item}}.yaml
|
||||
when: upload_templated|bool
|
||||
with_items: "{{templated_dashboards}}"
|
||||
|
||||
- name: Remove leftover yaml file(s) from Generated Templated Dashboards
|
||||
file:
|
||||
path: "{{role_path}}/files/{{item}}.yaml"
|
||||
state: absent
|
||||
when: upload_templated|bool
|
||||
with_items: "{{templated_dashboards}}"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,67 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
---
|
||||
dashboard:
|
||||
title: {{item.process_list_name}} General System Performance
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node
|
||||
query: $Cloud.*
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Disk
|
||||
query: $Cloud.$Node.disk-*
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Interface
|
||||
query: $Cloud.$Node.interface-*
|
||||
refresh: true
|
||||
type: query
|
||||
- name: cpus0
|
||||
hide: 1
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: $Cloud.$Node.cpu-[0-9]
|
||||
refresh: true
|
||||
type: query
|
||||
- name: cpus00
|
||||
hide: 1
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: $Cloud.$Node.cpu-[1-9][0-9]
|
||||
refresh: true
|
||||
type: query
|
||||
time:
|
||||
from: now-1h
|
||||
to: now
|
||||
rows:
|
||||
{% include 'partials/description.yaml' %}
|
||||
|
||||
{% include 'partials/cpu_all.yaml' %}
|
||||
|
||||
{% include 'partials/cpu_cores.yaml' %}
|
||||
|
||||
{% include 'partials/memory.yaml' %}
|
||||
|
||||
{% include 'partials/disk.yaml' %}
|
||||
|
||||
{% include 'partials/df.yaml' %}
|
||||
|
||||
{% include 'partials/network.yaml' %}
|
||||
|
||||
{% include 'partials/turbostat.yaml' %}
|
||||
|
||||
{% include 'partials/numa.yaml' %}
|
||||
|
||||
{% include 'partials/irq.yaml' %}
|
||||
|
||||
{% include 'partials/load.yaml' %}
|
||||
|
||||
{% include 'partials/processes.yaml' %}
|
||||
|
||||
{% set per_process_row_title_prefix = 'Baremetal' %}
|
||||
{% include 'partials/per_process_rows.yaml.j2' %}
|
||||
|
||||
{% include 'partials/tail.yaml' %}
|
@ -0,0 +1,42 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
---
|
||||
dashboard:
|
||||
title: Cloud Ceph Monitoring
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node
|
||||
query: "$Cloud.*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: OSD
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "$Cloud.$Node.collectd-ceph-storage-osd-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Pool
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "$Cloud.$Node.collectd-ceph-storage-pool-*"
|
||||
refresh: true
|
||||
type: query
|
||||
time:
|
||||
from: now-1h
|
||||
to: now
|
||||
rows:
|
||||
{% include 'partials/description.yaml' %}
|
||||
|
||||
{% set partial_panel = {
|
||||
'title': 'Ceph Process Metrics',
|
||||
'processes': ['ceph-mon', 'ceph-osd',],
|
||||
}
|
||||
%}
|
||||
{% include 'partials/per_process_single_row.yaml.j2' %}
|
||||
|
||||
{% set partial_panel = {'node': '$Node'} %}
|
||||
{% include 'partials/cephstorage_python_plugin_metrics.yaml.j2' %}
|
||||
|
||||
{% include 'partials/ceph_mon.yaml' %}
|
@ -0,0 +1,21 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
---
|
||||
dashboard:
|
||||
title: Cloud Gnocchi Status
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node
|
||||
query: "$Cloud.*"
|
||||
refresh: true
|
||||
type: query
|
||||
time:
|
||||
from: now-1h
|
||||
to: now
|
||||
rows:
|
||||
{% include 'partials/description.yaml' %}
|
||||
|
||||
{% set partial_panel = {'collapse': 'false'} %}
|
||||
{% include 'partials/gnocchi_backlog.yaml.j2' %}
|
@ -0,0 +1,52 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
---
|
||||
dashboard:
|
||||
title: Cloud Rabbitmq Monitoring
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node
|
||||
query: "$Cloud.*"
|
||||
refresh: true
|
||||
type: query
|
||||
time:
|
||||
from: now-1h
|
||||
to: now
|
||||
rows:
|
||||
{% include 'partials/description.yaml' %}
|
||||
|
||||
{% set partial_panel = {
|
||||
'title': 'Rabbitmq Process Metrics',
|
||||
'processes': ['rabbitmq',],
|
||||
}
|
||||
%}
|
||||
{% include 'partials/per_process_single_row.yaml.j2' %}
|
||||
|
||||
{% set partial_panel = {'node': '$Node'} %}
|
||||
{% include 'partials/rabbitmq_metrics.yaml.j2' %}
|
||||
|
||||
- title: Rabbitmq Log Messages
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Tail
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias(scale($Cloud.$Node.tail-rabbitmq.counter-error, 10), 'Error')
|
||||
- target: alias(scale($Cloud.$Node.tail-rabbitmq.counter-warn, 10), 'Warn')
|
||||
- target: alias(scale($Cloud.$Node.tail-rabbitmq.counter-info, 10), 'Info')
|
@ -1,193 +0,0 @@
|
||||
{% set vars = {'panel_idx': 0, 'initial': 0} %}
|
||||
{% set dashboard_groups = ['undercloud', 'controller', 'blockstorage', 'objectstorage', 'cephstorage', 'compute'] %}
|
||||
{
|
||||
"dashboard": {
|
||||
"id": null,
|
||||
"title": "{{dashboard_cloud_name}} - CPU",
|
||||
"tags": [
|
||||
"{{dashboard_cloud_name}}"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "utc",
|
||||
"editable": true,
|
||||
"hideControls": false,
|
||||
"sharedCrosshair": false,
|
||||
"rows": [
|
||||
{% for group in dashboard_groups %}
|
||||
{% if group in groups %}
|
||||
{% for batched_hosts in groups[group]|hosts_to_dictionary|dictsort|batch(dashboards_batch) %}
|
||||
{% if vars.initial == 0 %}
|
||||
{% if vars.update({'initial': (vars.initial + 1)}) %} {% endif %}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"collapse": true,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{% for index, host in batched_hosts %}
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"leftLogBase": 1,
|
||||
"leftMax": null,
|
||||
"leftMin": 0,
|
||||
"rightLogBase": 1,
|
||||
"rightMax": null,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
{% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
|
||||
"id": {{vars.panel_idx}},
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-system), 'System')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-user), 'User')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-nice), 'Nice')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-steal), 'Steal')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-softirq), 'SoftIRQ')"
|
||||
},
|
||||
{
|
||||
"refId": "F",
|
||||
"target": "alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-interrupt), 'Interrupt')"
|
||||
},
|
||||
{
|
||||
"refId": "G",
|
||||
"target": "alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-wait), 'Wait')"
|
||||
},
|
||||
{
|
||||
"refId": "H",
|
||||
"target": "alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-idle), 'Idle')"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "{{host}} CPU Usage",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"percent",
|
||||
"short"
|
||||
]
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
{% if 'undercloud' in group %}
|
||||
"title": "{{group}} CPU Usage",
|
||||
{% else %}
|
||||
"title": "{{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) CPU Usage",
|
||||
{% endif %}
|
||||
"showTitle": true
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 8,
|
||||
"version": 0,
|
||||
"links": [
|
||||
{
|
||||
"icon": "external link",
|
||||
"tags": [
|
||||
"{{dashboard_cloud_name}}"
|
||||
],
|
||||
"type": "dashboards",
|
||||
"asDropdown": true,
|
||||
"title": "{{dashboard_cloud_name}} Dashboards"
|
||||
}
|
||||
],
|
||||
"overwrite": true
|
||||
}
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
---
|
||||
dashboard:
|
||||
title: {{dashboard_cloud_name}} - CPU
|
||||
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}}
|
||||
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}} CPU Usage
|
||||
{% else %}
|
||||
- title: {{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) CPU Usage
|
||||
{% endif %}
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for index, host in batched_hosts %}
|
||||
- title: {{host}} CPU Usage
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-system), 'System')
|
||||
- target: alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-user), 'User')
|
||||
- target: alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-nice), 'Nice')
|
||||
- target: alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-steal), 'Steal')
|
||||
- target: alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-softirq), 'SoftIRQ')
|
||||
- target: alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-interrupt), 'Interrupt')
|
||||
- target: alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-wait), 'Wait')
|
||||
- target: alias(sumSeries({{dashboard_cloud_name}}.{{host}}.cpu-*.cpu-idle), 'Idle')
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
@ -1,488 +0,0 @@
|
||||
{% set vars = {'panel_idx': 0, 'initial1': 0, 'initial2': 0, 'initial3': 0} %}
|
||||
{% set dashboard_groups = ['undercloud', 'controller', 'blockstorage', 'objectstorage', 'cephstorage', 'compute'] %}
|
||||
{
|
||||
"dashboard": {
|
||||
"id": null,
|
||||
"title": "{{dashboard_cloud_name}} - Disk",
|
||||
"tags": [
|
||||
"{{dashboard_cloud_name}}"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "utc",
|
||||
"editable": true,
|
||||
"hideControls": false,
|
||||
"sharedCrosshair": false,
|
||||
"rows": [
|
||||
{% for group in dashboard_groups %}
|
||||
{% if group in groups %}
|
||||
{% for batched_hosts in groups[group]|hosts_to_dictionary|dictsort|batch(dashboards_batch) %}
|
||||
{% if vars.initial1 == 0 %}
|
||||
{% if vars.update({'initial1': (vars.initial1 + 1)}) %} {% endif %}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"collapse": true,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{% for index, host in batched_hosts %}
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"leftLogBase": 1,
|
||||
"leftMax": null,
|
||||
"leftMin": null,
|
||||
"rightLogBase": 1,
|
||||
"rightMax": null,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
{% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
|
||||
"id": {{vars.panel_idx}},
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "Weighted Time",
|
||||
"yaxis": 2
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias(scale({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_io_time.io_time, 0.1), 'Time')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_io_time.weighted_io_time, 'Weighted Time')"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "{{host}} - ${{group}}_disk IO Time",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"percent",
|
||||
"ms"
|
||||
]
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
{% if 'undercloud' in group %}
|
||||
"title": "{{group}} IO Time",
|
||||
{% else %}
|
||||
"title": "{{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) IO Time",
|
||||
{% endif %}
|
||||
"showTitle": true
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loop.last %}
|
||||
},
|
||||
{% 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 vars.initial2 == 0 %}
|
||||
{% if vars.update({'initial2': (vars.initial2 + 1)}) %} {% endif %}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"collapse": true,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{% for index, host in batched_hosts %}
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"leftLogBase": 1,
|
||||
"leftMax": null,
|
||||
"leftMin": null,
|
||||
"rightLogBase": 1,
|
||||
"rightMax": null,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
{% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
|
||||
"id": {{vars.panel_idx}},
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "Write",
|
||||
"transform": "negative-Y"
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_ops.read, 'Read')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_ops.write, 'Write')"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "{{host}} - ${{group}}_disk iops",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"iops",
|
||||
"short"
|
||||
]
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
{% if 'undercloud' in group %}
|
||||
"title": "{{group}} Disk iops",
|
||||
{% else %}
|
||||
"title": "{{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Disk iops",
|
||||
{% endif %}
|
||||
"showTitle": true
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loop.last %}
|
||||
},
|
||||
{% 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 vars.initial3 == 0 %}
|
||||
{% if vars.update({'initial3': (vars.initial3 + 1)}) %} {% endif %}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"collapse": true,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{% for index, host in batched_hosts %}
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"leftLogBase": 1,
|
||||
"leftMax": null,
|
||||
"leftMin": null,
|
||||
"rightLogBase": 1,
|
||||
"rightMax": null,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
{% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
|
||||
"id": {{vars.panel_idx}},
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "Write",
|
||||
"transform": "negative-Y"
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_octets.read, 'Read')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_octets.write, 'Write')"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "{{host}} - ${{group}}_disk Throughput",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"Bps",
|
||||
"short"
|
||||
]
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
{% if 'undercloud' in group %}
|
||||
"title": "{{group}} Disk Throughput",
|
||||
{% else %}
|
||||
"title": "{{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Disk Throughput",
|
||||
{% endif %}
|
||||
"showTitle": true
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "disk-vda",
|
||||
"value": "disk-vda"
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "undercloud_disk",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*undercloud*.disk-*",
|
||||
"refresh": true,
|
||||
"type": "query"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "disk-sda",
|
||||
"value": "disk-sda"
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "controller_disk",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*controller*.disk-*",
|
||||
"refresh": true,
|
||||
"type": "query"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "disk-sda",
|
||||
"value": "disk-sda"
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "compute_disk",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*compute*.disk-*",
|
||||
"refresh": true,
|
||||
"type": "query"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "None",
|
||||
"value": "",
|
||||
"isNone": true
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "cephstorage_disk",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*cephstorage*.disk-*",
|
||||
"refresh": true,
|
||||
"type": "query"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "None",
|
||||
"value": "",
|
||||
"isNone": true
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "objectstorage_disk",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*objectstorage*.disk-*",
|
||||
"refresh": true,
|
||||
"type": "query"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "None",
|
||||
"value": "",
|
||||
"isNone": true
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "blockstorage_disk",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*blockstorage*.disk-*",
|
||||
"refresh": true,
|
||||
"type": "query"
|
||||
}
|
||||
]
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 8,
|
||||
"version": 3,
|
||||
"links": [
|
||||
{
|
||||
"icon": "external link",
|
||||
"tags": [
|
||||
"{{dashboard_cloud_name}}"
|
||||
],
|
||||
"type": "dashboards",
|
||||
"asDropdown": true,
|
||||
"title": "{{dashboard_cloud_name}} Dashboards"
|
||||
}
|
||||
],
|
||||
"overwrite": true
|
||||
}
|
||||
}
|
@ -0,0 +1,168 @@
|
||||
#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 %}
|
@ -1,482 +0,0 @@
|
||||
{% set vars = {'panel_idx': 0, 'initial1': 0, 'initial2': 0, 'initial3': 0} %}
|
||||
{% set dashboard_groups = ['undercloud', 'controller', 'blockstorage', 'objectstorage', 'cephstorage', 'compute'] %}
|
||||
{
|
||||
"dashboard": {
|
||||
"id": null,
|
||||
"title": "{{dashboard_cloud_name}} - Disks - All",
|
||||
"tags": [
|
||||
"{{dashboard_cloud_name}}"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "utc",
|
||||
"editable": true,
|
||||
"hideControls": false,
|
||||
"sharedCrosshair": false,
|
||||
"rows": [
|
||||
{% for group in dashboard_groups %}
|
||||
{% if group in groups %}
|
||||
{% for batched_hosts in groups[group]|hosts_to_dictionary|dictsort|batch(dashboards_batch) %}
|
||||
{% if vars.initial1 == 0 %}
|
||||
{% if vars.update({'initial1': (vars.initial1 + 1)}) %} {% endif %}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"collapse": true,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{% for index, host in batched_hosts %}
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 0,
|
||||
"grid": {
|
||||
"leftLogBase": 1,
|
||||
"leftMax": null,
|
||||
"leftMin": null,
|
||||
"rightLogBase": 1,
|
||||
"rightMax": null,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
{% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
|
||||
"id": {{vars.panel_idx}},
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "aliasByNode(aliasSub(scale({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_io_time.io_time, 0.1), 'disk-', ''), 2)"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "{{host}} - ${{group}}_disk IO Time",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"percent",
|
||||
"ms"
|
||||
]
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
{% if 'undercloud' in group %}
|
||||
"title": "{{group}} IO Time",
|
||||
{% else %}
|
||||
"title": "{{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) IO Time",
|
||||
{% endif %}
|
||||
"showTitle": true
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loop.last %}
|
||||
},
|
||||
{% 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 vars.initial2 == 0 %}
|
||||
{% if vars.update({'initial2': (vars.initial2 + 1)}) %} {% endif %}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"collapse": true,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{% for index, host in batched_hosts %}
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 0,
|
||||
"grid": {
|
||||
"leftLogBase": 1,
|
||||
"leftMax": null,
|
||||
"leftMin": null,
|
||||
"rightLogBase": 1,
|
||||
"rightMax": null,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
{% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
|
||||
"id": {{vars.panel_idx}},
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "/.*write/",
|
||||
"transform": "negative-Y"
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "aliasByNode(aliasSub({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_ops.read, 'disk-', ''), 2, 4)"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "aliasByNode(aliasSub({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_ops.write, 'disk-', ''), 2, 4)"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "{{host}} - ${{group}}_disk iops",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"iops",
|
||||
"short"
|
||||
]
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
{% if 'undercloud' in group %}
|
||||
"title": "{{group}} Disk iops",
|
||||
{% else %}
|
||||
"title": "{{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Disk iops",
|
||||
{% endif %}
|
||||
"showTitle": true
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loop.last %}
|
||||
},
|
||||
{% 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 vars.initial3 == 0 %}
|
||||
{% if vars.update({'initial3': (vars.initial3 + 1)}) %} {% endif %}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"collapse": true,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{% for index, host in batched_hosts %}
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 0,
|
||||
"grid": {
|
||||
"leftLogBase": 1,
|
||||
"leftMax": null,
|
||||
"leftMin": null,
|
||||
"rightLogBase": 1,
|
||||
"rightMax": null,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
{% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
|
||||
"id": {{vars.panel_idx}},
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "/.*write/",
|
||||
"transform": "negative-Y"
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "aliasByNode(aliasSub({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_octets.read, 'disk-', ''), 2, 4)"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "aliasByNode(aliasSub({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_octets.write, 'disk-', ''), 2, 4)"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "{{host}} - ${{group}}_disk Throughput",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"Bps",
|
||||
"short"
|
||||
]
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
{% if 'undercloud' in group %}
|
||||
"title": "{{group}} Disk Throughput",
|
||||
{% else %}
|
||||
"title": "{{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Disk Throughput",
|
||||
{% endif %}
|
||||
"showTitle": true
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "all",
|
||||
"value": "all"
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": true,
|
||||
"multi": true,
|
||||
"multiFormat": "glob",
|
||||
"name": "undercloud_disk",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*undercloud*.disk-*",
|
||||
"refresh": true,
|
||||
"type": "query",
|
||||
"regex": "/disk-.*$/"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "all",
|
||||
"value": "all"
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": true,
|
||||
"multi": true,
|
||||
"multiFormat": "glob",
|
||||
"name": "controller_disk",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*controller*.disk-*",
|
||||
"refresh": true,
|
||||
"type": "query",
|
||||
"regex": "/disk-.*$/"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "all",
|
||||
"value": "all"
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": true,
|
||||
"multi": true,
|
||||
"multiFormat": "glob",
|
||||
"name": "compute_disk",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*compute*.disk-*",
|
||||
"refresh": true,
|
||||
"type": "query",
|
||||
"regex": "/disk-.*$/"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "all",
|
||||
"value": "all"
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": true,
|
||||
"multi": true,
|
||||
"multiFormat": "glob",
|
||||
"name": "cephstorage_disk",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*cephstorage*.disk-*",
|
||||
"refresh": true,
|
||||
"type": "query",
|
||||
"regex": "/disk-.*$/"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "all",
|
||||
"value": "all"
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": true,
|
||||
"multi": true,
|
||||
"multiFormat": "glob",
|
||||
"name": "objectstorage_disk",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*objectstorage*.disk-*",
|
||||
"refresh": true,
|
||||
"type": "query",
|
||||
"regex": "/disk-.*$/"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "all",
|
||||
"value": "all"
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": true,
|
||||
"multi": true,
|
||||
"multiFormat": "glob",
|
||||
"name": "blockstorage_disk",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*blockstorage*.disk-*",
|
||||
"refresh": true,
|
||||
"type": "query",
|
||||
"regex": "/disk-.*$/"
|
||||
}
|
||||
]
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 8,
|
||||
"version": 3,
|
||||
"links": [
|
||||
{
|
||||
"icon": "external link",
|
||||
"tags": [
|
||||
"{{dashboard_cloud_name}}"
|
||||
],
|
||||
"type": "dashboards",
|
||||
"asDropdown": true,
|
||||
"title": "{{dashboard_cloud_name}} Dashboards"
|
||||
}
|
||||
],
|
||||
"overwrite": true
|
||||
}
|
||||
}
|
@ -0,0 +1,179 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
---
|
||||
dashboard:
|
||||
title: {{dashboard_cloud_name}} - Disks - All
|
||||
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
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "{{dashboard_cloud_name}}.*undercloud*.disk-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: controller_disk
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "{{dashboard_cloud_name}}.*controller*.disk-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: compute_disk
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "{{dashboard_cloud_name}}.*compute*.disk-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: cephstorage_disk
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "{{dashboard_cloud_name}}.*cephstorage*.disk-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: objectstorage_disk
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "{{dashboard_cloud_name}}.*objectstorage*.disk-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: blockstorage_disk
|
||||
includeAll: true
|
||||
multi: true
|
||||
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
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(scale({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_io_time.io_time, 0.1), 'disk-', ''), 2)
|
||||
yaxes:
|
||||
- format: percent
|
||||
- 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 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
|
||||
fill: 0
|
||||
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: aliasByNode(aliasSub({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_ops.read, 'disk-', ''), 2, 4)
|
||||
- target: aliasByNode(aliasSub({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_ops.write, 'disk-', ''), 2, 4)
|
||||
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
|
||||
fill: 0
|
||||
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: aliasByNode(aliasSub({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_octets.read, 'disk-', ''), 2, 4)
|
||||
- target: aliasByNode(aliasSub({{dashboard_cloud_name}}.{{host}}.${{group}}_disk.disk_octets.write, 'disk-', ''), 2, 4)
|
||||
yaxes:
|
||||
- format: Bps
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
@ -1,355 +0,0 @@
|
||||
{% set vars = {'panel_idx': 0, 'initial': 0} %}
|
||||
{% set dashboard_groups = ['undercloud', 'controller', 'blockstorage', 'objectstorage', 'cephstorage', 'compute'] %}
|
||||
{
|
||||
"dashboard": {
|
||||
"id": null,
|
||||
"title": "{{dashboard_cloud_name}} - Log",
|
||||
"tags": [
|
||||
"{{dashboard_cloud_name}}"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "utc",
|
||||
"editable": true,
|
||||
"hideControls": false,
|
||||
"sharedCrosshair": false,
|
||||
"rows": [
|
||||
{% for group in dashboard_groups %}
|
||||
{% if group in groups %}
|
||||
{% for batched_hosts in groups[group]|hosts_to_dictionary|dictsort|batch(dashboards_batch) %}
|
||||
{% if vars.initial == 0 %}
|
||||
{% if vars.update({'initial': (vars.initial + 1)}) %} {% endif %}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"collapse": true,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{% for index, host in batched_hosts %}
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"leftLogBase": 1,
|
||||
"leftMax": null,
|
||||
"leftMin": 0,
|
||||
"rightLogBase": 1,
|
||||
"rightMax": null,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
{% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
|
||||
"id": {{vars.panel_idx}},
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "aliasByNode(consolidateBy(scale(aliasSub(aliasSub({{dashboard_cloud_name}}.{{host}}.tail-*.counter-*error, 'tail-', ''), 'counter-', ''), 10), 'max'), 2, 3)"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "{{host}} Tail",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"short",
|
||||
"short"
|
||||
]
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
{% if 'undercloud' in group %}
|
||||
"title": "{{group}} ERROR Rate in Logs",
|
||||
{% else %}
|
||||
"title": "{{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) ERROR Rate in Logs",
|
||||
{% endif %}
|
||||
"showTitle": true
|
||||
{% 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 vars.initial == 0 %}
|
||||
{% if vars.update({'initial': (vars.initial + 1)}) %} {% endif %}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"collapse": true,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{% for index, host in batched_hosts %}
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"leftLogBase": 1,
|
||||
"leftMax": null,
|
||||
"leftMin": 0,
|
||||
"rightLogBase": 1,
|
||||
"rightMax": null,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
{% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
|
||||
"id": {{vars.panel_idx}},
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "aliasByNode(consolidateBy(scale(aliasSub(aliasSub({{dashboard_cloud_name}}.{{host}}.tail-*.counter-*warn, 'tail-', ''), 'counter-', ''), 10), 'max'), 2, 3)"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "{{host}} Tail",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"short",
|
||||
"short"
|
||||
]
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
{% if 'undercloud' in group %}
|
||||
"title": "{{group}} WARN Rate in Logs",
|
||||
{% else %}
|
||||
"title": "{{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) WARN Rate in Logs",
|
||||
{% endif %}
|
||||
"showTitle": true
|
||||
{% 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 vars.initial == 0 %}
|
||||
{% if vars.update({'initial': (vars.initial + 1)}) %} {% endif %}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"collapse": true,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{% for index, host in batched_hosts %}
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"leftLogBase": 1,
|
||||
"leftMax": null,
|
||||
"leftMin": 0,
|
||||
"rightLogBase": 1,
|
||||
"rightMax": null,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
{% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
|
||||
"id": {{vars.panel_idx}},
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "aliasByNode(consolidateBy(scale(aliasSub(aliasSub({{dashboard_cloud_name}}.{{host}}.tail-*.counter-*info, 'tail-', ''), 'counter-', ''), 10), 'max'), 2, 3)"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "{{host}} Tail",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"short",
|
||||
"short"
|
||||
]
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
{% if 'undercloud' in group %}
|
||||
"title": "{{group}} INFO Rate in Logs",
|
||||
{% else %}
|
||||
"title": "{{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) INFO Rate in Logs",
|
||||
{% endif %}
|
||||
"showTitle": true
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 8,
|
||||
"version": 0,
|
||||
"links": [
|
||||
{
|
||||
"icon": "external link",
|
||||
"tags": [
|
||||
"{{dashboard_cloud_name}}"
|
||||
],
|
||||
"type": "dashboards",
|
||||
"asDropdown": true,
|
||||
"title": "{{dashboard_cloud_name}} Dashboards"
|
||||
}
|
||||
],
|
||||
"overwrite": true
|
||||
}
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
{% set log_types = ['error', 'warn', 'info'] %}
|
||||
---
|
||||
dashboard:
|
||||
title: {{dashboard_cloud_name}} - Log
|
||||
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}}
|
||||
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 log_type in log_types %}
|
||||
{% 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}} {{log_type}} Rate in Logs
|
||||
{% else %}
|
||||
- title: {{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) {{log_type}} Rate in Logs
|
||||
{% endif %}
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for index, host in batched_hosts %}
|
||||
- title: {{host}} Tail
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(consolidateBy(scale(aliasSub(aliasSub({{dashboard_cloud_name}}.{{host}}.tail-*.counter-*{{log_type}}, 'tail-', ''), 'counter-', ''), 10), 'max'), 2, 3)
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
@ -1,185 +0,0 @@
|
||||
{% set vars = {'panel_idx': 0, 'initial': 0} %}
|
||||
{% set dashboard_groups = ['undercloud', 'controller', 'blockstorage', 'objectstorage', 'cephstorage', 'compute'] %}
|
||||
{
|
||||
"dashboard": {
|
||||
"id": null,
|
||||
"title": "{{dashboard_cloud_name}} - Memory",
|
||||
"tags": [
|
||||
"{{dashboard_cloud_name}}"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "utc",
|
||||
"editable": true,
|
||||
"hideControls": false,
|
||||
"sharedCrosshair": false,
|
||||
"rows": [
|
||||
{% for group in dashboard_groups %}
|
||||
{% if group in groups %}
|
||||
{% for batched_hosts in groups[group]|hosts_to_dictionary|dictsort|batch(dashboards_batch) %}
|
||||
{% if vars.initial == 0 %}
|
||||
{% if vars.update({'initial': (vars.initial + 1)}) %} {% endif %}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"collapse": true,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{% for index, host in batched_hosts %}
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"leftLogBase": 1,
|
||||
"leftMax": null,
|
||||
"leftMin": 0,
|
||||
"rightLogBase": 1,
|
||||
"rightMax": null,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
{% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
|
||||
"id": {{vars.panel_idx}},
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"span": 12,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.memory.memory-slab_unrecl, 'Slab Unrecl')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.memory.memory-used, 'Used')"
|
||||
},
|
||||
{
|
||||
"refId": "C",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.memory.memory-buffered, 'Buffered')"
|
||||
},
|
||||
{
|
||||
"refId": "D",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.memory.memory-slab_recl, 'Slab Recl')"
|
||||
},
|
||||
{
|
||||
"refId": "E",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.memory.memory-cached, 'Cached')"
|
||||
},
|
||||
{
|
||||
"refId": "F",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.memory.memory-free, 'Free')"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "{{host}} Memory Usage",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"bits",
|
||||
"short"
|
||||
]
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
{% if 'undercloud' in group %}
|
||||
"title": "{{group}} Memory Usage",
|
||||
{% else %}
|
||||
"title": "{{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Memory Usage",
|
||||
{% endif %}
|
||||
"showTitle": true
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 8,
|
||||
"version": 0,
|
||||
"links": [
|
||||
{
|
||||
"icon": "external link",
|
||||
"tags": [
|
||||
"{{dashboard_cloud_name}}"
|
||||
],
|
||||
"type": "dashboards",
|
||||
"asDropdown": true,
|
||||
"title": "{{dashboard_cloud_name}} Dashboards"
|
||||
}
|
||||
],
|
||||
"overwrite": true
|
||||
}
|
||||
}
|
@ -0,0 +1,67 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
---
|
||||
dashboard:
|
||||
title: {{dashboard_cloud_name}} - Memory
|
||||
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}}
|
||||
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}} Memory Usage
|
||||
{% else %}
|
||||
- title: {{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Memory Usage
|
||||
{% endif %}
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for index, host in batched_hosts %}
|
||||
- title: {{host}} Memory Usage
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias({{dashboard_cloud_name}}.{{host}}.memory.memory-slab_unrecl, 'Slab Unrecl')
|
||||
- target: alias({{dashboard_cloud_name}}.{{host}}.memory.memory-used, 'Used')
|
||||
- target: alias({{dashboard_cloud_name}}.{{host}}.memory.memory-buffered, 'Buffered')
|
||||
- target: alias({{dashboard_cloud_name}}.{{host}}.memory.memory-slab_recl, 'Slab Recl')
|
||||
- target: alias({{dashboard_cloud_name}}.{{host}}.memory.memory-cached, 'Cached')
|
||||
- target: alias({{dashboard_cloud_name}}.{{host}}.memory.memory-free, 'Free')
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
@ -1,380 +0,0 @@
|
||||
{% set vars = {'panel_idx': 0, 'initial': 0, 'initial2': 0} %}
|
||||
{% set dashboard_groups = ['undercloud', 'controller', 'blockstorage', 'objectstorage', 'cephstorage', 'compute'] %}
|
||||
{
|
||||
"dashboard": {
|
||||
"id": null,
|
||||
"title": "{{dashboard_cloud_name}} - Network",
|
||||
"tags": [
|
||||
"{{dashboard_cloud_name}}"
|
||||
],
|
||||
"style": "dark",
|
||||
"timezone": "utc",
|
||||
"editable": true,
|
||||
"hideControls": false,
|
||||
"sharedCrosshair": false,
|
||||
"rows": [
|
||||
{% for group in dashboard_groups %}
|
||||
{% if group in groups %}
|
||||
{% for batched_hosts in groups[group]|hosts_to_dictionary|dictsort|batch(dashboards_batch) %}
|
||||
{% if vars.initial == 0 %}
|
||||
{% if vars.update({'initial': (vars.initial + 1)}) %} {% endif %}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"collapse": true,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{% for index, host in batched_hosts %}
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"leftLogBase": 1,
|
||||
"leftMax": null,
|
||||
"leftMin": null,
|
||||
"rightLogBase": 1,
|
||||
"rightMax": null,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
{% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
|
||||
"id": {{vars.panel_idx}},
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "RX",
|
||||
"transform": "negative-Y"
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_packets.tx, 'TX')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_packets.rx, 'RX')"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "{{host}} - ${{group}}_interface pps",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"pps",
|
||||
"short"
|
||||
]
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
{% if 'undercloud' in group %}
|
||||
"title": "{{group}} Network pps",
|
||||
{% else %}
|
||||
"title": "{{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Network pps",
|
||||
{% endif %}
|
||||
"showTitle": true
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loop.last %}
|
||||
},
|
||||
{% 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 vars.initial2 == 0 %}
|
||||
{% if vars.update({'initial2': (vars.initial2 + 1)}) %} {% endif %}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{
|
||||
"collapse": true,
|
||||
"editable": true,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{% for index, host in batched_hosts %}
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"datasource": null,
|
||||
"editable": true,
|
||||
"error": false,
|
||||
"fill": 1,
|
||||
"grid": {
|
||||
"leftLogBase": 1,
|
||||
"leftMax": null,
|
||||
"leftMin": null,
|
||||
"rightLogBase": 1,
|
||||
"rightMax": null,
|
||||
"rightMin": null,
|
||||
"threshold1": null,
|
||||
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
||||
"threshold2": null,
|
||||
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
||||
},
|
||||
{% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
|
||||
"id": {{vars.panel_idx}},
|
||||
"isNew": true,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 2,
|
||||
"links": [],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [
|
||||
{
|
||||
"alias": "RX",
|
||||
"transform": "negative-Y"
|
||||
}
|
||||
],
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"refId": "A",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_octets.tx, 'TX')"
|
||||
},
|
||||
{
|
||||
"refId": "B",
|
||||
"target": "alias({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_octets.rx, 'RX')"
|
||||
}
|
||||
],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "{{host}} - ${{group}}_interface Throughput",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"value_type": "cumulative"
|
||||
},
|
||||
"type": "graph",
|
||||
"x-axis": true,
|
||||
"y-axis": true,
|
||||
"y_formats": [
|
||||
"Bps",
|
||||
"short"
|
||||
]
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% else %}
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
{% if 'undercloud' in group %}
|
||||
"title": "{{group}} Network Throughput",
|
||||
{% else %}
|
||||
"title": "{{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Network Throughput",
|
||||
{% endif %}
|
||||
"showTitle": true
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if loop.last %}
|
||||
}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "interface-br-ctlplane",
|
||||
"value": "interface-br-ctlplane"
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "undercloud_interface",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*undercloud*.interface-*",
|
||||
"refresh": true,
|
||||
"type": "query"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "interface-br-ex",
|
||||
"value": "interface-br-ex"
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "controller_interface",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*controller*.interface-*",
|
||||
"refresh": true,
|
||||
"type": "query"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "interface-br-ex",
|
||||
"value": "interface-br-ex"
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "compute_interface",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*compute*.interface-*",
|
||||
"refresh": true,
|
||||
"type": "query"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "None",
|
||||
"value": "",
|
||||
"isNone": true
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "cephstorage_interface",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*cephstorage*.interface-*",
|
||||
"refresh": true,
|
||||
"type": "query"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "None",
|
||||
"value": "",
|
||||
"isNone": true
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "objectstorage_interface",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*objectstorage*.interface-*",
|
||||
"refresh": true,
|
||||
"type": "query"
|
||||
},
|
||||
{
|
||||
"allFormat": "glob",
|
||||
"current": {
|
||||
"text": "interface-br-ex",
|
||||
"value": "interface-br-ex"
|
||||
},
|
||||
"datasource": null,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"multiFormat": "glob",
|
||||
"name": "blockstorage_interface",
|
||||
"options": [],
|
||||
"query": "{{dashboard_cloud_name}}.*blockstorage*.interface-*",
|
||||
"refresh": true,
|
||||
"type": "query"
|
||||
}
|
||||
]
|
||||
},
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"schemaVersion": 8,
|
||||
"version": 5,
|
||||
"links": [
|
||||
{
|
||||
"icon": "external link",
|
||||
"tags": [
|
||||
"{{dashboard_cloud_name}}"
|
||||
],
|
||||
"type": "dashboards",
|
||||
"asDropdown": true,
|
||||
"title": "{{dashboard_cloud_name}} Dashboards"
|
||||
}
|
||||
],
|
||||
"overwrite": true
|
||||
}
|
||||
}
|
@ -0,0 +1,129 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
---
|
||||
dashboard:
|
||||
title: {{dashboard_cloud_name}} - Network
|
||||
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_interface
|
||||
query: "{{dashboard_cloud_name}}.*undercloud*.interface-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: controller_interface
|
||||
query: "{{dashboard_cloud_name}}.*controller*.interface-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: compute_interface
|
||||
query: "{{dashboard_cloud_name}}.*compute*.interface-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: cephstorage_interface
|
||||
query: "{{dashboard_cloud_name}}.*cephstorage*.interface-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: objectstorage_interface
|
||||
query: "{{dashboard_cloud_name}}.*objectstorage*.interface-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: blockstorage_interface
|
||||
query: "{{dashboard_cloud_name}}.*blockstorage*.interface-*"
|
||||
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}} Network pps
|
||||
{% else %}
|
||||
- title: {{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Network pps
|
||||
{% endif %}
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for index, host in batched_hosts %}
|
||||
- title: {{host}} - ${{group}}_interface pps
|
||||
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: RX
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- target: alias({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_packets.tx, 'TX')
|
||||
- target: alias({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_packets.rx, 'RX')
|
||||
yaxes:
|
||||
- format: pps
|
||||
- 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}} Network Throughput
|
||||
{% else %}
|
||||
- title: {{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Network Throughput
|
||||
{% endif %}
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for index, host in batched_hosts %}
|
||||
- title: {{host}} - ${{group}}_interface 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: RX
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- target: alias({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_octets.tx, 'TX')
|
||||
- target: alias({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_octets.rx, 'RX')
|
||||
yaxes:
|
||||
- format: Bps
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
@ -0,0 +1,143 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
---
|
||||
dashboard:
|
||||
title: {{dashboard_cloud_name}} - Networks - All
|
||||
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_interface
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "{{dashboard_cloud_name}}.*undercloud*.interface-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: controller_interface
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "{{dashboard_cloud_name}}.*controller*.interface-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: compute_interface
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "{{dashboard_cloud_name}}.*compute*.interface-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: cephstorage_interface
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "{{dashboard_cloud_name}}.*cephstorage*.interface-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: objectstorage_interface
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "{{dashboard_cloud_name}}.*objectstorage*.interface-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: blockstorage_interface
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "{{dashboard_cloud_name}}.*blockstorage*.interface-*"
|
||||
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}} Network pps
|
||||
{% else %}
|
||||
- title: {{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Network pps
|
||||
{% endif %}
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for index, host in batched_hosts %}
|
||||
- title: {{host}} - ${{group}}_interface pps
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: /.*rx/
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_packets.tx, 'interface-', ''), 2, 4)
|
||||
- target: aliasByNode(aliasSub({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_packets.rx, 'interface-', ''), 2, 4)
|
||||
yaxes:
|
||||
- format: pps
|
||||
- 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}} Network Throughput
|
||||
{% else %}
|
||||
- title: {{group}} ({{batched_hosts[0][0]}} - {{batched_hosts[-1][0]}}) Network Throughput
|
||||
{% endif %}
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for index, host in batched_hosts %}
|
||||
- title: {{host}} - ${{group}}_interface Throughput
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: /.*rx/
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_octets.tx, 'interface-', ''), 2, 4)
|
||||
- target: aliasByNode(aliasSub({{dashboard_cloud_name}}.{{host}}.${{group}}_interface.if_octets.rx, 'interface-', ''), 2, 4)
|
||||
yaxes:
|
||||
- format: Bps
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
@ -0,0 +1,279 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
---
|
||||
dashboard:
|
||||
title: Cloud Gnocchi Performance
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: OSD
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "$Cloud.overcloud-controller-0.collectd-ceph-storage-osd-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Pool
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "$Cloud.overcloud-controller-0.collectd-ceph-storage-pool-*"
|
||||
refresh: true
|
||||
type: query
|
||||
time:
|
||||
from: now-1h
|
||||
to: now
|
||||
rows:
|
||||
{% include 'partials/description.yaml' %}
|
||||
|
||||
{% include 'gnocchi_performance/backlog.yaml.j2' %}
|
||||
|
||||
{% include 'gnocchi_performance/api_latency.yaml.j2' %}
|
||||
|
||||
{% set pp_panel = {
|
||||
'title': 'Gnocchi',
|
||||
'node': 'overcloud-controller-*',
|
||||
'processes': [
|
||||
'gnocchi-metricd-master',
|
||||
'gnocchi-metricd-scheduler',
|
||||
'gnocchi-metricd-processing',
|
||||
'gnocchi-metricd-reporting',
|
||||
'gnocchi-metricd-janitor',
|
||||
'gnocchi-statsd',
|
||||
'gnocchi_wsgi',
|
||||
],
|
||||
}
|
||||
%}
|
||||
{% include 'gnocchi_performance/per_process_panel.yaml.j2' %}
|
||||
|
||||
{% set pp_panel = {
|
||||
'title': 'Ceilometer (Controllers)',
|
||||
'node': 'overcloud-controller-*',
|
||||
'processes': [
|
||||
'ceilometer-agent-notification',
|
||||
'ceilometer-collector',
|
||||
'ceilometer-polling',
|
||||
'ceilometer_wsgi',
|
||||
],
|
||||
}
|
||||
%}
|
||||
{% include 'gnocchi_performance/per_process_panel.yaml.j2' %}
|
||||
|
||||
{% set pp_panel = {
|
||||
'title': 'Ceilometer (Computes)',
|
||||
'node': 'overcloud-compute-*',
|
||||
'processes': ['ceilometer-polling',],
|
||||
}
|
||||
%}
|
||||
{% include 'gnocchi_performance/per_process_panel.yaml.j2' %}
|
||||
|
||||
{% set pp_panel = {
|
||||
'title': 'Controller',
|
||||
'node': 'overcloud-controller-*',
|
||||
'processes': ['httpd', 'mongod', 'mysqld', 'rabbitmq', 'redis-server',],
|
||||
}
|
||||
%}
|
||||
{% include 'gnocchi_performance/per_process_panel.yaml.j2' %}
|
||||
|
||||
{% set pp_panel = {
|
||||
'title': 'CephStorage',
|
||||
'node': 'overcloud-c[oe][np]*',
|
||||
'processes': ['ceph-mon', 'ceph-osd',],
|
||||
}
|
||||
%}
|
||||
{% include 'gnocchi_performance/per_process_panel.yaml.j2' %}
|
||||
|
||||
{% set pp_panel = {
|
||||
'title': 'Swift (Controller)',
|
||||
'node': 'overcloud-controller-*',
|
||||
'processes': [
|
||||
'swift-account-auditor',
|
||||
'swift-account-reaper',
|
||||
'swift-account-replicator',
|
||||
'swift-account-server',
|
||||
'swift-container-auditor',
|
||||
'swift-container-replicator',
|
||||
'swift-container-server',
|
||||
'swift-container-updater',
|
||||
'swift-object-auditor',
|
||||
'swift-object-expirer',
|
||||
'swift-object-replicator',
|
||||
'swift-object-server',
|
||||
'swift-object-updater',
|
||||
'swift-proxy-server',
|
||||
],
|
||||
}
|
||||
%}
|
||||
{% include 'gnocchi_performance/per_process_panel.yaml.j2' %}
|
||||
|
||||
{% set pp_panel = {
|
||||
'title': 'Swift (ObjectStorage)',
|
||||
'node': 'overcloud-objectstorage-*',
|
||||
'processes': [
|
||||
'swift-account-auditor',
|
||||
'swift-account-reaper',
|
||||
'swift-account-replicator',
|
||||
'swift-account-server',
|
||||
'swift-container-auditor',
|
||||
'swift-container-replicator',
|
||||
'swift-container-server',
|
||||
'swift-container-updater',
|
||||
'swift-object-auditor',
|
||||
'swift-object-expirer',
|
||||
'swift-object-replicator',
|
||||
'swift-object-server',
|
||||
'swift-object-updater',
|
||||
],
|
||||
}
|
||||
%}
|
||||
{% include 'gnocchi_performance/per_process_panel.yaml.j2' %}
|
||||
|
||||
{% set partial_panel = {'node': 'overcloud-controller-*'} %}
|
||||
{% include 'partials/apache_metrics.yaml.j2' %}
|
||||
|
||||
{% set partial_panel = {'node': 'overcloud-controller-0'} %}
|
||||
{% include 'partials/rabbitmq_metrics.yaml.j2' %}
|
||||
|
||||
{% set partial_panel = {'node': 'overcloud-controller-0'} %}
|
||||
{% include 'partials/cephstorage_python_plugin_metrics.yaml.j2' %}
|
||||
|
||||
{% set partial_panel = {'node': 'overcloud-controller-0'} %}
|
||||
{% include 'partials/swift_stat_metrics.yaml.j2' %}
|
||||
|
||||
{% set log_panel = {
|
||||
'title': 'Gnocchi',
|
||||
'node': 'overcloud-controller-*',
|
||||
'tail': ['gnocchi',],
|
||||
}
|
||||
%}
|
||||
{% include 'gnocchi_performance/logs.yaml.j2' %}
|
||||
|
||||
{% set log_panel = {
|
||||
'title': 'Ceilometer (Controller)',
|
||||
'node': 'overcloud-controller-*',
|
||||
'tail': ['ceilometer',],
|
||||
}
|
||||
%}
|
||||
{% include 'gnocchi_performance/logs.yaml.j2' %}
|
||||
|
||||
{% set log_panel = {
|
||||
'title': 'Ceilometer (Compute)',
|
||||
'node': 'overcloud-compute-*',
|
||||
'tail': ['ceilometer',],
|
||||
}
|
||||
%}
|
||||
{% include 'gnocchi_performance/logs.yaml.j2' %}
|
||||
|
||||
- title: Swift (Controller) Logs
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Swift Error Logs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(consolidateBy(scale(aliasSub(aliasSub(aliasSub($Cloud.overcloud-controller-*.tail-swift.counter-*error, 'overcloud-', ''), 'tail-', ''), 'counter-', ''), 10), 'max'), '-error', ''), 1, 3)
|
||||
- title: Swift Warn Logs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(consolidateBy(scale(aliasSub(aliasSub(aliasSub($Cloud.overcloud-controller-*.tail-swift.counter-*warn, 'overcloud-', ''), 'tail-', ''), 'counter-', ''), 10), 'max'), '-warn', ''), 1, 3)
|
||||
- title: Swift Info Logs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(consolidateBy(scale(aliasSub(aliasSub(aliasSub($Cloud.overcloud-controller-*.tail-swift.counter-*info, 'overcloud-', ''), 'tail-', ''), 'counter-', ''), 10), 'max'), '-info', ''), 1, 3)
|
||||
- title: Swift (ObjectStorage) Logs
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Swift Error Logs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(consolidateBy(scale(aliasSub(aliasSub(aliasSub($Cloud.overcloud-objectstorage-*.tail-swift.counter-*error, 'overcloud-', ''), 'tail-', ''), 'counter-', ''), 10), 'max'), '-error', ''), 1, 3)
|
||||
- title: Swift Warn Logs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(consolidateBy(scale(aliasSub(aliasSub(aliasSub($Cloud.overcloud-objectstorage-*.tail-swift.counter-*warn, 'overcloud-', ''), 'tail-', ''), 'counter-', ''), 10), 'max'), '-warn', ''), 1, 3)
|
||||
- title: Swift Info Logs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(consolidateBy(scale(aliasSub(aliasSub(aliasSub($Cloud.overcloud-objectstorage-*.tail-swift.counter-*info, 'overcloud-', ''), 'tail-', ''), 'counter-', ''), 10), 'max'), '-info', ''), 1, 3)
|
||||
|
||||
{% set log_panel = {
|
||||
'title': 'Controller',
|
||||
'node': 'overcloud-controller-*',
|
||||
'tail': ['ceph', 'mysqld', 'rabbitmq',],
|
||||
}
|
||||
%}
|
||||
{% include 'gnocchi_performance/logs.yaml.j2' %}
|
@ -0,0 +1,104 @@
|
||||
- title: Gnocchi API Latency
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Gnocchi API Patch Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 1
|
||||
points: true
|
||||
seriesOverrides:
|
||||
- alias: "/.*Count.*/"
|
||||
lines: true
|
||||
points: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.latency-patch-max, 0.000001), 'overcloud-', ''), 'latency-patch-', ''), 1, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.latency-patch-99_00, 0.000001), 'overcloud-', ''), 'latency-patch-', ''), 1, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.latency-patch-avg, 0.000001), 'overcloud-', ''), 'latency-patch-', ''), 1, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.latency-patch-min, 0.000001), 'overcloud-', ''), 'latency-patch-', ''), 1, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.counter-patch, 10), 'overcloud-', ''), 'counter-patch', 'Count'), 1, 3)
|
||||
yaxes:
|
||||
- format: s
|
||||
label: Latency
|
||||
- format: short
|
||||
label: Count
|
||||
- title: Gnocchi API Post Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 1
|
||||
points: true
|
||||
seriesOverrides:
|
||||
- alias: "/.*Count.*/"
|
||||
lines: true
|
||||
points: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.latency-post-max, 0.000001), 'overcloud-', ''), 'latency-post-', ''), 1, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.latency-post-99_00, 0.000001), 'overcloud-', ''), 'latency-post-', ''), 1, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.latency-post-avg, 0.000001), 'overcloud-', ''), 'latency-post-', ''), 1, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.latency-post-min, 0.000001), 'overcloud-', ''), 'latency-post-', ''), 1, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.counter-post, 10), 'overcloud-', ''), 'counter-post', 'Count'), 1, 3)
|
||||
yaxes:
|
||||
- format: s
|
||||
label: Latency
|
||||
- format: short
|
||||
label: Count
|
||||
- title: Gnocchi API Get Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 1
|
||||
points: true
|
||||
seriesOverrides:
|
||||
- alias: "/.*Count.*/"
|
||||
lines: true
|
||||
points: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.latency-get-max, 0.000001), 'overcloud-', ''), 'latency-get-', ''), 1, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.latency-get-99_00, 0.000001), 'overcloud-', ''), 'latency-get-', ''), 1, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.latency-get-avg, 0.000001), 'overcloud-', ''), 'latency-get-', ''), 1, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.latency-get-min, 0.000001), 'overcloud-', ''), 'latency-get-', ''), 1, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub(scale($Cloud.overcloud-controller-*.tail-gnocchi-api.counter-get, 10), 'overcloud-', ''), 'counter-get', 'Count'), 1, 3)
|
||||
yaxes:
|
||||
- format: s
|
||||
label: Latency
|
||||
- format: short
|
||||
label: Count
|
@ -0,0 +1,107 @@
|
||||
- title: Gnocchi Backlog
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Measures/Metrics Backlog
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'connected'
|
||||
span: 6
|
||||
steppedLine: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.overcloud-controller-0.gnocchi_status.gauge-*, 'gauge-', ''), 3)
|
||||
- title: Backlog vs Instance Count
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'connected'
|
||||
seriesOverrides:
|
||||
- alias: measures
|
||||
steppedLine: true
|
||||
yaxis: 2
|
||||
- alias: metrics
|
||||
steppedLine: true
|
||||
yaxis: 2
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.overcloud-controller-0.gnocchi_status.gauge-*, 'gauge-', ''), 3)
|
||||
- target: alias(sumSeries(keepLastValue($Cloud.overcloud-compute-*.processes-qemu-kvm.ps_count.processes, 100)), 'Instance Count')
|
||||
- title: Backlog vs Metricd CPU Usage
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'connected'
|
||||
seriesOverrides:
|
||||
- alias: measures
|
||||
steppedLine: true
|
||||
yaxis: 2
|
||||
- alias: metrics
|
||||
steppedLine: true
|
||||
yaxis: 2
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.overcloud-controller-0.gnocchi_status.gauge-*, 'gauge-', ''), 3)
|
||||
- target: alias(sumSeries(scale($Cloud.overcloud-controller-0.processes-gnocchi-metricd-processing.ps_cputime.*, 0.0001)), 'Con0 Metricd Processing CPU %')
|
||||
- target: alias(sumSeries(scale($Cloud.overcloud-controller-1.processes-gnocchi-metricd-processing.ps_cputime.*, 0.0001)), 'Con1 Metricd Processing CPU %')
|
||||
- target: alias(sumSeries(scale($Cloud.overcloud-controller-2.processes-gnocchi-metricd-processing.ps_cputime.*, 0.0001)), 'Con2 Metricd Processing CPU %')
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: Backlog vs Metricd RSS Memory
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'connected'
|
||||
seriesOverrides:
|
||||
- alias: measures
|
||||
steppedLine: true
|
||||
yaxis: 2
|
||||
- alias: metrics
|
||||
steppedLine: true
|
||||
yaxis: 2
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.overcloud-controller-0.gnocchi_status.gauge-*, 'gauge-', ''), 3)
|
||||
- target: alias(sumSeries($Cloud.overcloud-controller-0.processes-gnocchi-metricd-*.ps_rss), 'Con0 Metricd RSS')
|
||||
- target: alias(sumSeries($Cloud.overcloud-controller-1.processes-gnocchi-metricd-*.ps_rss), 'Con1 Metricd RSS')
|
||||
- target: alias(sumSeries($Cloud.overcloud-controller-2.processes-gnocchi-metricd-*.ps_rss), 'Con2 Metricd RSS')
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
@ -0,0 +1,59 @@
|
||||
- title: {{log_panel.title}} Logs
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: {{log_panel.title}} Error Logs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
{% for tail in log_panel.tail %}
|
||||
- target: aliasByNode(consolidateBy(scale(aliasSub(aliasSub(aliasSub($Cloud.{{log_panel.node}}.tail-{{tail}}*.counter-*error, 'overcloud-', ''), 'tail-', ''), 'counter-', ''), 10), 'max'), 1, 2)
|
||||
{% endfor %}
|
||||
- title: {{log_panel.title}} Warn Logs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
{% for tail in log_panel.tail %}
|
||||
- target: aliasByNode(consolidateBy(scale(aliasSub(aliasSub(aliasSub($Cloud.{{log_panel.node}}.tail-{{tail}}*.counter-*warn, 'overcloud-', ''), 'tail-', ''), 'counter-', ''), 10), 'max'), 1, 2)
|
||||
{% endfor %}
|
||||
- title: {{log_panel.title}} Info Logs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
{% for tail in log_panel.tail %}
|
||||
- target: aliasByNode(consolidateBy(scale(aliasSub(aliasSub(aliasSub($Cloud.{{log_panel.node}}.tail-{{tail}}*.counter-*info, 'overcloud-', ''), 'tail-', ''), 'counter-', ''), 10), 'max'), 1, 2)
|
||||
{% endfor %}
|
@ -0,0 +1,131 @@
|
||||
- title: {{pp_panel.title}} Process Metrics
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: {{pp_panel.title}} Process Counts (Sum Across Controllers)
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
{% for process in pp_panel.processes %}
|
||||
- target: alias(sumSeries(keepLastValue($Cloud.{{pp_panel.node}}.processes-{{process}}.ps_count.processes, 100)), '{{process}}')
|
||||
{% endfor %}
|
||||
- title: {{pp_panel.title}} Thread Counts (Sum Across Controllers)
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
{% for process in pp_panel.processes %}
|
||||
- target: alias(sumSeries(keepLastValue($Cloud.{{pp_panel.node}}.processes-{{process}}.ps_count.threads, 100)), '{{process}}')
|
||||
{% endfor %}
|
||||
- title: {{pp_panel.title}} System CPU Usage (Sum Across Controllers)
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
{% for process in pp_panel.processes %}
|
||||
- target: alias(sumSeries(scale($Cloud.{{pp_panel.node}}.processes-{{process}}.ps_cputime.syst, 0.0001)), '{{process}}')
|
||||
{% endfor %}
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: {{pp_panel.title}} User CPU Usage (Sum Across Controllers)
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
{% for process in pp_panel.processes %}
|
||||
- target: alias(sumSeries(scale($Cloud.{{pp_panel.node}}.processes-{{process}}.ps_cputime.user, 0.0001)), '{{process}}')
|
||||
{% endfor %}
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: {{pp_panel.title}} RSS Memory (Sum Across Controllers)
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
{% for process in pp_panel.processes %}
|
||||
- target: alias(sumSeries($Cloud.{{pp_panel.node}}.processes-{{process}}.ps_rss), '{{process}}')
|
||||
{% endfor %}
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
||||
- title: {{pp_panel.title}} Virtual Memory (Sum Across Controllers)
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
{% for process in pp_panel.processes %}
|
||||
- target: alias(sumSeries($Cloud.{{pp_panel.node}}.processes-{{process}}.ps_vm), '{{process}}')
|
||||
{% endfor %}
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,69 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
---
|
||||
dashboard:
|
||||
title: {{item.process_list_name}} General System Performance
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node
|
||||
query: $Cloud.*
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Disk
|
||||
query: $Cloud.$Node.disk-*
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Interface
|
||||
query: $Cloud.$Node.interface-*
|
||||
refresh: true
|
||||
type: query
|
||||
- name: cpus0
|
||||
hide: 1
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: $Cloud.$Node.cpu-[0-9]
|
||||
refresh: true
|
||||
type: query
|
||||
- name: cpus00
|
||||
hide: 1
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: $Cloud.$Node.cpu-[1-9][0-9]
|
||||
refresh: true
|
||||
type: query
|
||||
time:
|
||||
from: now-1h
|
||||
to: now
|
||||
rows:
|
||||
{% include 'partials/description.yaml' %}
|
||||
|
||||
{% include 'partials/cpu_all.yaml' %}
|
||||
|
||||
{% include 'partials/cpu_cores.yaml' %}
|
||||
|
||||
{% include 'partials/memory.yaml' %}
|
||||
|
||||
{% include 'partials/disk.yaml' %}
|
||||
|
||||
{% include 'partials/df.yaml' %}
|
||||
|
||||
{% include 'partials/network.yaml' %}
|
||||
|
||||
{% include 'partials/turbostat.yaml' %}
|
||||
|
||||
{% include 'partials/numa.yaml' %}
|
||||
|
||||
{% include 'partials/irq.yaml' %}
|
||||
|
||||
{% include 'partials/load.yaml' %}
|
||||
|
||||
{% include 'partials/processes.yaml' %}
|
||||
|
||||
{% set per_process_row_title_prefix = 'Graphite' %}
|
||||
{% include 'partials/per_process_rows.yaml.j2' %}
|
||||
|
||||
{% include 'partials/carbon.yaml' %}
|
||||
|
||||
{% include 'partials/tail.yaml' %}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,63 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
---
|
||||
dashboard:
|
||||
title: {{item.process_list_name}} General System Performance
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node
|
||||
query: $Cloud.*
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Disk
|
||||
query: $Cloud.$Node.disk-*
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Interface
|
||||
query: $Cloud.$Node.interface-*
|
||||
refresh: true
|
||||
type: query
|
||||
- name: cpus0
|
||||
hide: 1
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: $Cloud.$Node.cpu-[0-9]
|
||||
refresh: true
|
||||
type: query
|
||||
- name: cpus00
|
||||
hide: 1
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: $Cloud.$Node.cpu-[1-9][0-9]
|
||||
refresh: true
|
||||
type: query
|
||||
time:
|
||||
from: now-1h
|
||||
to: now
|
||||
rows:
|
||||
{% include 'partials/description.yaml' %}
|
||||
|
||||
{% include 'partials/cpu_all.yaml' %}
|
||||
|
||||
{% include 'partials/cpu_cores.yaml' %}
|
||||
|
||||
{% include 'partials/memory.yaml' %}
|
||||
|
||||
{% include 'partials/disk.yaml' %}
|
||||
|
||||
{% include 'partials/df.yaml' %}
|
||||
|
||||
{% include 'partials/network.yaml' %}
|
||||
|
||||
{% include 'partials/irq.yaml' %}
|
||||
|
||||
{% include 'partials/load.yaml' %}
|
||||
|
||||
{% include 'partials/processes.yaml' %}
|
||||
|
||||
{% set per_process_row_title_prefix = 'Guest' %}
|
||||
{% include 'partials/per_process_rows.yaml.j2' %}
|
||||
|
||||
{% include 'partials/tail.yaml' %}
|
@ -0,0 +1,31 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
---
|
||||
dashboard:
|
||||
title: IOStat
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
# - name: NodeType
|
||||
# options:
|
||||
# - undercloud
|
||||
# - controller
|
||||
# - compute
|
||||
# - cephstorage
|
||||
# - objectstorage
|
||||
# - blockstorage
|
||||
# - "*"
|
||||
# type: custom
|
||||
- name: Node
|
||||
query: "$Cloud.*"
|
||||
refresh: true
|
||||
type: query
|
||||
time:
|
||||
from: now-1h
|
||||
to: now
|
||||
rows:
|
||||
{% include 'partials/description.yaml' %}
|
||||
|
||||
{% set partial_panel = {'collapse': 'false'} %}
|
||||
{% include 'partials/iostat.yaml.j2' %}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,161 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
{% set apache_groups = ['undercloud', 'controller', '*'] %}
|
||||
{% set cephmon_groups = ['controller', '*'] %}
|
||||
{% set gnocchi_groups = ['controller', '*'] %}
|
||||
{% set ironic_groups = ['undercloud'] %}
|
||||
{% set mariadb_groups = ['undercloud', 'controller', '*'] %}
|
||||
{% set odl_groups = ['controller', '*'] %}
|
||||
{% set ovsagent_groups = ['controller', 'compute', '*'] %}
|
||||
{% set rabbitmq_groups = ['undercloud', 'controller', '*'] %}
|
||||
{% set swift_stat_groups = ['controller', '*'] %}
|
||||
---
|
||||
dashboard:
|
||||
title: {{item.process_list_name}} General System Performance
|
||||
links:
|
||||
- title: Openstack General Dashboards
|
||||
type: dashboards
|
||||
asDropdown: true
|
||||
includeVars: true
|
||||
keepTime: true
|
||||
icon: cloud
|
||||
tags:
|
||||
- OSP
|
||||
tags:
|
||||
- OSP
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
# - name: NodeType
|
||||
# current:
|
||||
# text: "{{item.template_node_type}}"
|
||||
# options:
|
||||
# - undercloud
|
||||
# - controller
|
||||
# - networker
|
||||
# - compute
|
||||
# - cephstorage
|
||||
# - objectstorage
|
||||
# - blockstorage
|
||||
# - "*"
|
||||
# type: custom
|
||||
- name: Node
|
||||
query: $Cloud.*
|
||||
# query: $Cloud.*$NodeType*
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Disk
|
||||
query: $Cloud.$Node.disk-*
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Interface
|
||||
query: $Cloud.$Node.interface-*
|
||||
refresh: true
|
||||
type: query
|
||||
- name: OSD
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "$Cloud.$Node.collectd-ceph-storage-osd-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Pool
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: "$Cloud.$Node.collectd-ceph-storage-pool-*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: cpus0
|
||||
hide: 1
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: $Cloud.$Node.cpu-[0-9]
|
||||
refresh: true
|
||||
type: query
|
||||
- name: cpus00
|
||||
hide: 1
|
||||
includeAll: true
|
||||
multi: true
|
||||
query: $Cloud.$Node.cpu-[1-9][0-9]
|
||||
refresh: true
|
||||
type: query
|
||||
time:
|
||||
from: now-1h
|
||||
to: now
|
||||
rows:
|
||||
{% include 'partials/description.yaml' %}
|
||||
|
||||
{% include 'partials/cpu_all.yaml' %}
|
||||
|
||||
{% include 'partials/cpu_cores.yaml' %}
|
||||
|
||||
{% include 'partials/memory.yaml' %}
|
||||
|
||||
{% include 'partials/disk.yaml' %}
|
||||
|
||||
{% include 'partials/df.yaml' %}
|
||||
|
||||
{% set partial_panel = {'collapse': 'true'} %}
|
||||
{% include 'partials/iostat.yaml.j2' %}
|
||||
|
||||
{% include 'partials/network.yaml' %}
|
||||
|
||||
{% include 'partials/turbostat.yaml' %}
|
||||
|
||||
{% include 'partials/numa.yaml' %}
|
||||
|
||||
{% include 'partials/irq.yaml' %}
|
||||
|
||||
{% include 'partials/load.yaml' %}
|
||||
|
||||
{% include 'partials/processes.yaml' %}
|
||||
|
||||
{% set per_process_row_title_prefix = 'OSP' %}
|
||||
{% include 'partials/per_process_rows.yaml.j2' %}
|
||||
|
||||
{% if item.template_node_type in apache_groups %}
|
||||
{% set partial_panel = {'node': '$Node'} %}
|
||||
{% include 'partials/apache_metrics.yaml.j2' %}
|
||||
{% endif %}
|
||||
|
||||
{% if item.template_node_type in cephmon_groups %}
|
||||
{% set partial_panel = {'node': '$Node'} %}
|
||||
{% include 'partials/cephstorage_python_plugin_metrics.yaml.j2' %}
|
||||
|
||||
{% include 'partials/ceph_mon.yaml' %}
|
||||
{% endif %}
|
||||
|
||||
{% if item.template_node_type in gnocchi_groups %}
|
||||
{% set partial_panel = {'collapse': 'true'} %}
|
||||
{% include 'partials/gnocchi_backlog.yaml.j2' %}
|
||||
{% endif %}
|
||||
|
||||
{% if item.template_node_type in mariadb_groups %}
|
||||
{% include 'partials/mariadb.yaml' %}
|
||||
|
||||
{% include 'partials/mysql_innodb.yaml' %}
|
||||
{% endif %}
|
||||
|
||||
{% if item.template_node_type in rabbitmq_groups %}
|
||||
{% set partial_panel = {'node': '$Node'} %}
|
||||
{% include 'partials/rabbitmq_metrics.yaml.j2' %}
|
||||
{% endif %}
|
||||
|
||||
{% if item.template_node_type in swift_stat_groups %}
|
||||
{#% if item.template_node_type in swift_stat_groups %#}
|
||||
{% include 'partials/swift_stat_metrics.yaml.j2' %}
|
||||
{% endif %}
|
||||
|
||||
{% if item.template_node_type in ironic_groups %}
|
||||
{% include 'partials/ironic_metrics.yaml' %}
|
||||
{% endif %}
|
||||
|
||||
{% if item.template_node_type in odl_groups %}
|
||||
{% include 'partials/opendaylight_metrics.yaml' %}
|
||||
{% endif %}
|
||||
|
||||
{% if item.template_node_type in ovsagent_groups %}
|
||||
{% include 'partials/neutron_resources.yaml' %}
|
||||
{% endif %}
|
||||
|
||||
{% include 'partials/tail.yaml' %}
|
@ -0,0 +1,91 @@
|
||||
- title: Apache Metrics
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Apache Bytes
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.apache-status.apache_bytes, 'apache_', ''), 'overcloud-', ''), 1, 3)
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: Apache Requests
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.apache-status.apache_requests, 'apache_', ''), 'overcloud-', ''), 1, 3)
|
||||
yaxes:
|
||||
- format: ops
|
||||
- format: short
|
||||
- title: Apache Connections/Workers
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.apache-status.apache_connections, 'apache_', ''), 'overcloud-', ''), 1, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.apache-status.apache_idle_workers, 'apache_', ''), 'overcloud-', ''), 1, 3)
|
||||
yaxes:
|
||||
- format: ops
|
||||
- format: short
|
||||
- title: Apache Scoreboard (All Controllers Summed)
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(sumSeries($Cloud.{{partial_panel.node}}.apache-status.apache_scoreboard-closing), 'apache_scoreboard-', ''), 3)
|
||||
- target: aliasByNode(aliasSub(sumSeries($Cloud.{{partial_panel.node}}.apache-status.apache_scoreboard-dnslookup), 'apache_scoreboard-', ''), 3)
|
||||
- target: aliasByNode(aliasSub(sumSeries($Cloud.{{partial_panel.node}}.apache-status.apache_scoreboard-finishing), 'apache_scoreboard-', ''), 3)
|
||||
- target: aliasByNode(aliasSub(sumSeries($Cloud.{{partial_panel.node}}.apache-status.apache_scoreboard-idle_cleanup), 'apache_scoreboard-', ''), 3)
|
||||
- target: aliasByNode(aliasSub(sumSeries($Cloud.{{partial_panel.node}}.apache-status.apache_scoreboard-keepalive), 'apache_scoreboard-', ''), 3)
|
||||
- target: aliasByNode(aliasSub(sumSeries($Cloud.{{partial_panel.node}}.apache-status.apache_scoreboard-logging), 'apache_scoreboard-', ''), 3)
|
||||
- target: aliasByNode(aliasSub(sumSeries($Cloud.{{partial_panel.node}}.apache-status.apache_scoreboard-open), 'apache_scoreboard-', ''), 3)
|
||||
- target: aliasByNode(aliasSub(sumSeries($Cloud.{{partial_panel.node}}.apache-status.apache_scoreboard-reading), 'apache_scoreboard-', ''), 3)
|
||||
- target: aliasByNode(aliasSub(sumSeries($Cloud.{{partial_panel.node}}.apache-status.apache_scoreboard-sending), 'apache_scoreboard-', ''), 3)
|
||||
- target: aliasByNode(aliasSub(sumSeries($Cloud.{{partial_panel.node}}.apache-status.apache_scoreboard-starting), 'apache_scoreboard-', ''), 3)
|
||||
- target: aliasByNode(aliasSub(sumSeries($Cloud.{{partial_panel.node}}.apache-status.apache_scoreboard-waiting), 'apache_scoreboard-', ''), 3)
|
@ -0,0 +1,105 @@
|
||||
- title: Carbon Cache Metrics
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Metrics, Committed Points, Update Operations
|
||||
type: graph
|
||||
decimals: 1
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(carbon.agents.*.metricsReceived, '[a-zA-Z0-9_]+-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(carbon.agents.*.committedPoints, '[a-zA-Z0-9_]+-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(carbon.agents.*.updateOperations, '[a-zA-Z0-9_]+-', ''), 2, 3)
|
||||
- title: Average Update Time
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(carbon.agents.*.avgUpdateTime, '[a-zA-Z0-9_]+-', ''), 2, 3)
|
||||
- title: Creates
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(carbon.agents.*.creates, '[a-zA-Z0-9_]+-', ''), 2, 3)
|
||||
- title: Cache
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(carbon.agents.*.cache.*, '[a-zA-Z0-9_]+-', ''), 2, 4)
|
||||
- title: Blacklist/Whitelist
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(carbon.agents.*.blacklistMatches, '[a-zA-Z0-9_]+-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(carbon.agents.*.whitelistRejects, '[a-zA-Z0-9_]+-', ''), 2, 3)
|
||||
- title: Errors
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(carbon.agents.*.errors, '[a-zA-Z0-9_]+-', ''), 2, 3)
|
@ -0,0 +1,390 @@
|
||||
- title: Ceph Mon
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Mon Count/Quorum/Elections
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numMon, 'Count')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numMonQuorum, 'Quorum')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_rate-Mon_numElections, 'Elections')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_rate-Mon_electionCall, 'Call')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_rate-Mon_electionLose, 'Lose')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_rate-Mon_electionWin, 'Win')
|
||||
- title: Mon Sessions
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Mon_numSessions, 'Open')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_rate-Mon_sessionAdd, 'Add')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_rate-Mon_sessionRm, 'RM')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_rate-Mon_sessionTrim, 'Trim')
|
||||
- title: OSDs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numOsd, 'Total OSDs')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numOsdUp, 'OSDs Up')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numOsdIn, 'OSDs In')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_osdEpoch, 'Epoch')
|
||||
- title: MDS
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numMdsUp, 'Up')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numMdsIn, 'In')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numMdsFailed, 'Failed')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_mdsEpoch, 'Epoch')
|
||||
- title: Objects
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numObject, 'Total Objects')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numObjectDegraded, 'Degraded Objects')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numObjectMisplaced, 'Misplaced Objects')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numObjectUnfound, 'Unfound Objects')
|
||||
- title: Placement Groups
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numPg, 'Total PGs')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numPgActive, 'PGs Active')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numPgActiveClean, 'PGs Active-Clean')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numPgPeering, 'PGs Peering')
|
||||
- title: Pools
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numPool, 'Pools')
|
||||
- title: OSD Bytes
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: Bytes Available
|
||||
stack: A
|
||||
- alias: Bytes Used
|
||||
stack: A
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_osdBytes, 'Total Bytes')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_osdBytesUsed, 'Bytes Used')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_osdBytesAvail, 'Bytes Available')
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: Size of All Objects
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Cluster_numBytes, 'Size of all objects')
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: LevelDB Queue/Operations
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: Compact Queue Length
|
||||
steppedLine: true
|
||||
yaxis: 2
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-Leveldb_leveldbCompactQueueLen, 'Compact Queue Length')
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.ceph-mon_*.ceph_rate-Leveldb_*, 'ceph_rate-Leveldb_leveldb', ''), 3)
|
||||
yaxes:
|
||||
- format: short
|
||||
- format: short
|
||||
label: Queue Length
|
||||
- title: LevelDB Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
pointradius: 2
|
||||
points: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.ceph-mon_*.ceph_latency-Leveldb_*, 'ceph_latency-Leveldb_leveldb', ''), 3)
|
||||
yaxes:
|
||||
- format: s
|
||||
- format: short
|
||||
- title: Finisher Monstore
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 2
|
||||
seriesOverrides:
|
||||
- alias: Queue Length
|
||||
lines: true
|
||||
yaxis: 2
|
||||
- alias: Complete Latency
|
||||
points: true
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_latency-FinisherMonstore_completeLatency, 'Complete Latency')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-FinisherMonstore_queueLen, 'Queue Length')
|
||||
yaxes:
|
||||
- format: s
|
||||
- format: short
|
||||
label: Queue Length
|
||||
- title: Paxos Rate
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.ceph-mon_*.ceph_rate-Paxos_*, 'ceph_rate-Paxos_', ''), 3)
|
||||
- title: Paxos Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 1
|
||||
points: true
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.ceph-mon_*.ceph_latency-Paxos_*, 'ceph_latency-Paxos_', ''), 3)
|
||||
yaxes:
|
||||
- format: µs
|
||||
- format: short
|
||||
- title: Throttle Mon Client
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: Bytes Max
|
||||
yaxis: 2
|
||||
- alias: Bytes Current
|
||||
yaxis: 2
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-ThrottleMonClientBytes_max, 'Bytes Max')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-ThrottleMonClientBytes_val, 'Bytes Current')
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.ceph-mon_*.ceph_rate-ThrottleMonClientBytes_*, 'ceph_rate-ThrottleMonClientBytes_', ''), 3)
|
||||
yaxes:
|
||||
- format: Bps
|
||||
- format: short
|
||||
- title: Throttle Mon Daemon
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: Bytes Max
|
||||
yaxis: 2
|
||||
- alias: Bytes Current
|
||||
yaxis: 2
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-ThrottleMonDaemonBytes_max, 'Bytes Max')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-ThrottleMonDaemonBytes_val, 'Bytes Current')
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.ceph-mon_*.ceph_rate-ThrottleMonDaemonBytes_*, 'ceph_rate-ThrottleMonDaemonBytes_', ''), 3)
|
||||
yaxes:
|
||||
- format: Bps
|
||||
- format: bytes
|
||||
- title: Throttle Msgr Dispatch Throttler Mon
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: Bytes Max
|
||||
yaxis: 2
|
||||
- alias: Bytes Current
|
||||
yaxis: 2
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-ThrottleMsgrDispatchThrottlerMon_max, 'Bytes Max')
|
||||
- target: alias($Cloud.$Node.ceph-mon_*.ceph_bytes-ThrottleMsgrDispatchThrottlerMon_val, 'Bytes Current')
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.ceph-mon_*.ceph_rate-ThrottleMsgrDispatchThrottlerMon_*, 'ceph_rate-ThrottleMsgrDispatchThrottlerMon_', ''), 3)
|
||||
yaxes:
|
||||
- format: ops
|
||||
- format: bytes
|
@ -0,0 +1,272 @@
|
||||
- title: Ceph Storage Python Plugins
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Mons & Pool Count
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: false
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 4
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.{{partial_panel.node}}.collectd-ceph-storage-mon.*, 'gauge-', ''), 3)
|
||||
- target: alias($Cloud.{{partial_panel.node}}.collectd-ceph-storage-pool.gauge-number, 'Pools')
|
||||
- title: OSDs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: false
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 4
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.{{partial_panel.node}}.collectd-ceph-storage-osd.*, 'gauge-', ''), 3)
|
||||
- title: PGs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: false
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 4
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.{{partial_panel.node}}.collectd-ceph-storage-pg.*, 'gauge-', ''), 3)
|
||||
- title: Cluster Space
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.{{partial_panel.node}}.collectd-ceph-storage-cluster.gauge-total_*, 'gauge-', ''), 3)
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
||||
- title: Cluster Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias($Cloud.{{partial_panel.node}}.collectd-ceph-storage-cluster.gauge-min_latency, 'Min')
|
||||
- target: alias($Cloud.{{partial_panel.node}}.collectd-ceph-storage-cluster.gauge-avg_latency, 'Avg')
|
||||
- target: alias($Cloud.{{partial_panel.node}}.collectd-ceph-storage-cluster.gauge-max_latency, 'Max')
|
||||
- target: alias($Cloud.{{partial_panel.node}}.collectd-ceph-storage-cluster.gauge-stddev_latency, 'stddev')
|
||||
yaxes:
|
||||
- format: ms
|
||||
- format: short
|
||||
- title: Pool Objects
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.{{partial_panel.node}}.$Pool.gauge-objects, 'collectd-ceph-storage-pool-', ''), 2)
|
||||
- title: Pool iops
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.$Pool.gauge-read_op_per_sec, 'collectd-ceph-storage-pool-', ''), 'gauge-', ''), 2, 3)
|
||||
- target: aliasByNode(scale(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.$Pool.gauge-write_op_per_sec, 'collectd-ceph-storage-pool-', ''), 'gauge-', ''), -1), 2, 3)
|
||||
yaxes:
|
||||
- format: iops
|
||||
- format: short
|
||||
- title: Pool Throughput
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.$Pool.gauge-read_bytes_sec, 'collectd-ceph-storage-pool-', ''), 'gauge-', ''), 2, 3)
|
||||
- target: aliasByNode(scale(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.$Pool.gauge-write_bytes_sec,'collectd-ceph-storage-pool-', ''), 'gauge-', ''), -1), 2, 3)
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: Pool PG/PGP Count
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.$Pool.gauge-pg_num, 'collectd-ceph-storage-pool-', ''), 'gauge-', ''), '_num', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.$Pool.gauge-pgp_num, 'collectd-ceph-storage-pool-', ''), 'gauge-', ''), '_num', ''), 2, 3)
|
||||
- title: Pool Size
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.{{partial_panel.node}}.$Pool.gauge-size, 'collectd-ceph-storage-pool-', ''), 2)
|
||||
- title: OSD Space
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.$OSD.gauge-kb_total, 'collectd-ceph-storage-osd-', ''), 'gauge-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.$OSD.gauge-kb_used, 'collectd-ceph-storage-osd-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: kbytes
|
||||
- format: short
|
||||
- title: OSD Latency
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
lines: false
|
||||
nullPointMode: 'null'
|
||||
pointradius: 2
|
||||
points: true
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.$OSD.gauge-apply_latency_ms, 'collectd-ceph-storage-osd-', ''), 'gauge-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.$OSD.gauge-commit_latency_ms, 'collectd-ceph-storage-osd-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: ms
|
||||
- format: short
|
||||
- title: OSD Snap Trim
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.$OSD.gauge-num_snap_trimming, 'collectd-ceph-storage-osd-', ''), 'gauge-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.$OSD.gauge-snap_trim_queue_len, 'collectd-ceph-storage-osd-', ''), 'gauge-', ''), 2, 3)
|
||||
- title: Pool Bytes Used
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.{{partial_panel.node}}.$Pool.gauge-bytes_used, 'collectd-ceph-storage-pool-', ''), 2)
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
@ -0,0 +1,57 @@
|
||||
- title: CPU All
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - All CPUs
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias(averageSeries($Cloud.$Node.cpu-*.cpu-system), 'System')
|
||||
- target: alias(averageSeries($Cloud.$Node.cpu-*.cpu-user), 'User')
|
||||
- target: alias(averageSeries($Cloud.$Node.cpu-*.cpu-nice), 'Nice')
|
||||
- target: alias(averageSeries($Cloud.$Node.cpu-*.cpu-steal), 'Steal')
|
||||
- target: alias(averageSeries($Cloud.$Node.cpu-*.cpu-softirq), 'SoftIRQ')
|
||||
- target: alias(averageSeries($Cloud.$Node.cpu-*.cpu-interrupt), 'Interrupt')
|
||||
- target: alias(averageSeries($Cloud.$Node.cpu-*.cpu-wait), 'Wait')
|
||||
- target: alias(averageSeries($Cloud.$Node.cpu-*.cpu-idle), 'Idle')
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: $Cloud - $Node - All CPUs Sum
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias(sumSeries($Cloud.$Node.cpu-*.cpu-system), 'System')
|
||||
- target: alias(sumSeries($Cloud.$Node.cpu-*.cpu-user), 'User')
|
||||
- target: alias(sumSeries($Cloud.$Node.cpu-*.cpu-nice), 'Nice')
|
||||
- target: alias(sumSeries($Cloud.$Node.cpu-*.cpu-steal), 'Steal')
|
||||
- target: alias(sumSeries($Cloud.$Node.cpu-*.cpu-softirq), 'SoftIRQ')
|
||||
- target: alias(sumSeries($Cloud.$Node.cpu-*.cpu-interrupt), 'Interrupt')
|
||||
- target: alias(sumSeries($Cloud.$Node.cpu-*.cpu-wait), 'Wait')
|
||||
- target: alias(sumSeries($Cloud.$Node.cpu-*.cpu-idle), 'Idle')
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
@ -0,0 +1,66 @@
|
||||
- title: Per CPU Logical CPU Core (0-9)
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - $cpus0
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
minSpan: 6
|
||||
nullPointMode: 'null'
|
||||
repeat: cpus0
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.$cpus0.cpu-system, 'System')
|
||||
- target: alias($Cloud.$Node.$cpus0.cpu-user, 'User')
|
||||
- target: alias($Cloud.$Node.$cpus0.cpu-nice, 'Nice')
|
||||
- target: alias($Cloud.$Node.$cpus0.cpu-steal, 'Steal')
|
||||
- target: alias($Cloud.$Node.$cpus0.cpu-softirq, 'SoftIRQ')
|
||||
- target: alias($Cloud.$Node.$cpus0.cpu-interrupt, 'Interrupt')
|
||||
- target: alias($Cloud.$Node.$cpus0.cpu-wait, 'Wait')
|
||||
- target: alias($Cloud.$Node.$cpus0.cpu-idle, 'Idle')
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: Per CPU Logical CPU Core (10-99)
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - $cpus00
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
minSpan: 6
|
||||
nullPointMode: 'null'
|
||||
repeat: cpus00
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.$cpus00.cpu-system, 'System')
|
||||
- target: alias($Cloud.$Node.$cpus00.cpu-user, 'User')
|
||||
- target: alias($Cloud.$Node.$cpus00.cpu-nice, 'Nice')
|
||||
- target: alias($Cloud.$Node.$cpus00.cpu-steal, 'Steal')
|
||||
- target: alias($Cloud.$Node.$cpus00.cpu-softirq, 'SoftIRQ')
|
||||
- target: alias($Cloud.$Node.$cpus00.cpu-interrupt, 'Interrupt')
|
||||
- target: alias($Cloud.$Node.$cpus00.cpu-wait, 'Wait')
|
||||
- target: alias($Cloud.$Node.$cpus00.cpu-idle, 'Idle')
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
@ -0,0 +1,6 @@
|
||||
- title: description row
|
||||
height: 50px
|
||||
panels:
|
||||
- title: Browbeat provided Dashboard
|
||||
content: "**This dashboard is provided by Browbeat and managed via Grafyaml**"
|
||||
type: text
|
@ -0,0 +1,45 @@
|
||||
- title: DF
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - Partition % Used
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.df-*.percent_bytes-used, 'df-', ''), 2)
|
||||
yaxes:
|
||||
- format: percent
|
||||
max: 100
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Inodes % Used
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.df-*.percent_inodes-used, 'df-', ''), 2)
|
||||
yaxes:
|
||||
- format: percent
|
||||
max: 100
|
||||
- format: short
|
@ -0,0 +1,133 @@
|
||||
- title: Disk
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - $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($Cloud.$Node.$Disk.disk_ops.read, 'Read')
|
||||
- target: alias($Cloud.$Node.$Disk.disk_ops.write, 'Write')
|
||||
yaxes:
|
||||
- format: iops
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $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($Cloud.$Node.$Disk.disk_octets.read, 'Read')
|
||||
- target: alias($Cloud.$Node.$Disk.disk_octets.write, 'Write')
|
||||
yaxes:
|
||||
- format: Bps
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $Disk Merged 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($Cloud.$Node.$Disk.disk_merged.read, 'Read')
|
||||
- target: alias($Cloud.$Node.$Disk.disk_merged.write, 'Write')
|
||||
yaxes:
|
||||
- format: iops
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $Disk Pending Operations
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.$Disk.pending_operations, 'Pending Ops')
|
||||
yaxes:
|
||||
- format: short
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $Disk Average Time (Estimated)
|
||||
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($Cloud.$Node.$Disk.disk_time.read, 'Read')
|
||||
- target: alias($Cloud.$Node.$Disk.disk_time.write, 'Write')
|
||||
yaxes:
|
||||
- format: ms
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $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($Cloud.$Node.$Disk.disk_io_time.io_time, 0.1), 'Time')
|
||||
- target: alias($Cloud.$Node.$Disk.disk_io_time.weighted_io_time, 'Weighted Time')
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: ms
|
@ -0,0 +1,22 @@
|
||||
- title: Gnocchi Backlog
|
||||
collapse: {{partial_panel.collapse}}
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Node Metrics/Measures Backlog
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'connected'
|
||||
steppedLine: true
|
||||
targets:
|
||||
- target: aliasByMetric(aliasSub($Cloud.$Node.gnocchi_status.*, 'gauge-', ''))
|
@ -0,0 +1,278 @@
|
||||
- title: IOStat
|
||||
collapse: {{partial_panel.collapse}}
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - rrqm/s & wrqm/s
|
||||
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: "/.*wrqm_s.*/"
|
||||
transform: negative-Y
|
||||
span: 6
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-rrqm_s, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-wrqm_s, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: ops
|
||||
- format: short
|
||||
- title: $Cloud - $Node - r/s & w/s
|
||||
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: "/.*w_s.*/"
|
||||
transform: negative-Y
|
||||
span: 6
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-r_s, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-w_s, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: ops
|
||||
- format: short
|
||||
- title: $Cloud - $Node - rkB/s & wkB/s
|
||||
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: "/.*wkB_s.*/"
|
||||
transform: negative-Y
|
||||
span: 6
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-rkB_s, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-wkB_s, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: deckbytes
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Average Request Size (avgrq-sz)
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-avgrq_sz, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: ops
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Average Queue Length of Requests (avgqu-sz)
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-avgqu_sz, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: ops
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Average Time for I/O requests (await)
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-await, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: ms
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Average Time Read/Write Requests (r_await/w_await)
|
||||
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: "/.*w_await.*/"
|
||||
transform: negative-Y
|
||||
span: 6
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-r_await, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-w_await, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: ms
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Average Service Time (svctm)
|
||||
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: "/.*w_await.*/"
|
||||
transform: negative-Y
|
||||
span: 6
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-svctm, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: ms
|
||||
- format: short
|
||||
- title: $Cloud - $Node - %util
|
||||
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: "/.*w_await.*/"
|
||||
transform: negative-Y
|
||||
span: 6
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-_util, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Transfers per Second (tps)
|
||||
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: "/.*w_await.*/"
|
||||
transform: negative-Y
|
||||
span: 6
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-tps, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: iops
|
||||
- format: short
|
||||
- title: $Cloud - $Node - kB_read/s & kB_wrtn/s
|
||||
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: "/.*kB_wrtn.*/"
|
||||
transform: negative-Y
|
||||
span: 6
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-kB_read_s, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-kB_wrtn_s, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: deckbytes
|
||||
- format: short
|
||||
- title: $Cloud - $Node - kB_read & kB_wrtn
|
||||
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: "/.*kB_wrtn.*/"
|
||||
transform: negative-Y
|
||||
span: 6
|
||||
stack: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-kB_read, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.collectd_iostat_python-*.gauge-kB_wrtn, 'collectd_iostat_python-', ''), 'gauge-', ''), 2, 3)
|
||||
yaxes:
|
||||
- format: deckbytes
|
||||
- format: short
|
@ -0,0 +1,116 @@
|
||||
- title: Ironic StatsD power state
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: "Power State Sync: 90th Percentile Mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.conductor.manager.do_sync_power_state.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: "Change Node Power State: 90th percentile mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.conductor.manager.ConductorManager.change_node_power_state.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: Ironic StatsD boot/deployment info
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: "Set boot device: 90th percentile mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.conductor.manager.ConductorManager.set_boot_device.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: "Do Node Deployment: 90th percentile mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.conductor.manager.ConductorManager.do_node_deploy.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: Ironic StatsD API node details/list response time
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: "Get Node Details API response time: 90th percentile mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.api.controllers.v1.node.NodesController.detail.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: "Get Node List API response time: 90th Percentile mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.api.controllers.v1.node.NodesController.get_all.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: Ironic StatsD API power/provision state
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: "Node Power State API response time: 90th Percentile Mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.api.controllers.v1.node.NodeStatesController.power.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
||||
- title: "Ironic Node Provision State API response time: 90th percentile mean"
|
||||
type: graph
|
||||
legend:
|
||||
show: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: stats.timers.$Cloud.ironic.api.controllers.v1.node.NodeStatesController.provision.mean_90
|
||||
yaxes:
|
||||
- format: short
|
||||
label: Milliseconds
|
||||
- format: short
|
@ -0,0 +1,37 @@
|
||||
- title: IRQ
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - IRQ
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.irq.irq-[A-Z]*, 'irq-', ''), 3)
|
||||
- title: $Cloud - $Node - Interrupts
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias(sumSeries($Cloud.$Node.irq.irq-[0-9]*), 'Interrupts')
|
@ -0,0 +1,31 @@
|
||||
- title: Load / Uptime
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - All CPUs
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: uptime
|
||||
lines: false
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.load.load.shortterm, '1m avg')
|
||||
- target: alias($Cloud.$Node.load.load.midterm, '5m avg')
|
||||
- target: alias($Cloud.$Node.load.load.longterm, '15m avg')
|
||||
- target: alias($Cloud.$Node.uptime.uptime, 'uptime')
|
||||
yaxes:
|
||||
- format: short
|
||||
- format: s
|
@ -0,0 +1,190 @@
|
||||
- title: MariaDB
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: MySQL Threads
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.threads-*, 'threads-', ''), 3)
|
||||
- title: MySQL Traffic
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode($Cloud.$Node.mysql-*.mysql_octets.*, 4)
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: MySQL Query Cache
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.cache_result-*, 'cache_result-qcache-', ''), 3)
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: MySQL Query Cache Size
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.cache_size-*, 'cache_size-', ''), 3)
|
||||
- title: MySQL Buffer Pool Data
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.mysql_bpool_bytes-*, 'mysql_bpool_bytes-', ''), 3)
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: MySQL Buffer Pool Counters
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.mysql_bpool_counters-*, 'mysql_bpool_counters-', ''), 3)
|
||||
- title: MySQL Commands
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.mysql_commands-*, 'mysql_commands-', ''), 3)
|
||||
- title: MySQL Handler
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.mysql_handler-*, 'mysql_handler-', ''), 3)
|
||||
- title: MySQL Locks
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.mysql_locks-*, 'mysql_locks-', ''), 3)
|
||||
- title: MySQL Select
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.mysql_select-*, 'mysql_select-', ''), 3)
|
||||
- title: MySQL Sort
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.mysql_sort-*, 'mysql_sort-', ''), 3)
|
@ -0,0 +1,107 @@
|
||||
- title: Memory & Swap
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - Memory in Bytes
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.memory.memory-slab_unrecl, 'Slab Unrecl')
|
||||
- target: alias($Cloud.$Node.memory.memory-used, 'Used')
|
||||
- target: alias($Cloud.$Node.memory.memory-buffered, 'Buffered')
|
||||
- target: alias($Cloud.$Node.memory.memory-slab_recl, 'Slab Recl')
|
||||
- target: alias($Cloud.$Node.memory.memory-cached, 'Cached')
|
||||
- target: alias($Cloud.$Node.memory.memory-free, 'Free')
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Memory in Percentage
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- hide: true
|
||||
target: "$Cloud.$Node.memory.memory-slab_unrecl"
|
||||
- hide: true
|
||||
target: "$Cloud.$Node.memory.memory-used"
|
||||
- hide: true
|
||||
target: "$Cloud.$Node.memory.memory-buffered"
|
||||
- hide: true
|
||||
target: "$Cloud.$Node.memory.memory-slab_recl"
|
||||
- hide: true
|
||||
target: "$Cloud.$Node.memory.memory-cached"
|
||||
- hide: true
|
||||
target: "$Cloud.$Node.memory.memory-free"
|
||||
- hide: true
|
||||
target: sumSeries($Cloud.$Node.memory.*)
|
||||
- target: 'alias(asPercent(#A, #G), ''Slab Unrecl'')'
|
||||
- target: 'alias(asPercent(#B, #G), ''Used'')'
|
||||
- target: 'alias(asPercent(#C, #G), ''Buffered'')'
|
||||
- target: 'alias(asPercent(#D, #G), ''Slab Recl'')'
|
||||
- target: 'alias(asPercent(#E, #G), ''Cached'')'
|
||||
- target: 'alias(asPercent(#F, #G), ''Free'')'
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Swap Usage
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.swap.swap-used, 'Used')
|
||||
- target: alias($Cloud.$Node.swap.swap-cached, 'Cached')
|
||||
- target: alias($Cloud.$Node.swap.swap-free, 'Free')
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
||||
- title: $Cloud - $Node - Swap IO
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.swap.swap_io-in, 'In')
|
||||
- target: alias($Cloud.$Node.swap.swap_io-out, 'Out')
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
@ -0,0 +1,101 @@
|
||||
- title: MYSQL INNODB
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: MySQL Innodb Data
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.mysql_innodb_data-*, 'mysql_innodb_data-', ''), 3)
|
||||
- title: MySQL Innodb Double Write
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.mysql_innodb_dblwr-*, 'mysql_innodb_dblwr-', ''), 3)
|
||||
- title: MySQL Innodb Log
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.mysql_innodb_log-*, 'mysql_innodb_log-', ''), 3)
|
||||
- title: MySQL Innodb Pages
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.mysql_innodb_pages-*, 'mysql_innodb_pages-', ''), 3)
|
||||
- title: MySQL Innodb Row Lock
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.mysql_innodb_row_lock-*, 'mysql_innodb_row_lock-', ''), 3)
|
||||
- title: MySQL Innodb Rows
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node.mysql-*.mysql_innodb_rows-*, 'mysql_innodb_rows-', ''), 3)
|
@ -0,0 +1,109 @@
|
||||
- title: Network
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - $Interface Network IO
|
||||
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: RX
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.$Interface.if_packets.tx, 'TX')
|
||||
- target: alias($Cloud.$Node.$Interface.if_packets.rx, 'RX')
|
||||
yaxes:
|
||||
- format: pps
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $Interface Network 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: RX
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- target: alias(scale($Cloud.$Node.$Interface.if_octets.tx, 8), 'TX')
|
||||
- target: alias(scale($Cloud.$Node.$Interface.if_octets.rx, 8), 'RX')
|
||||
yaxes:
|
||||
- format: bps
|
||||
- format: short
|
||||
- title: $Cloud - $Node - $Interface Errors
|
||||
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: RX
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.$Interface.if_errors.tx, 'TX')
|
||||
- target: alias($Cloud.$Node.$Interface.if_errors.rx, 'RX')
|
||||
yaxes:
|
||||
- format: short
|
||||
- format: short
|
||||
- title: $Cloud - $Node - ConnTrack
|
||||
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: "% Used"
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.conntrack.conntrack-max, 'Max')
|
||||
- target: alias($Cloud.$Node.conntrack.conntrack, 'Used')
|
||||
- target: alias($Cloud.$Node.conntrack.percent-used, '% Used')
|
||||
yaxes:
|
||||
- format: short
|
||||
- format: percent
|
||||
max: 100
|
||||
- title: Ping- Latency and Jitter
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode($Cloud.$Node.ping.*, 3)
|
@ -0,0 +1,20 @@
|
||||
- title: Neutron Resources
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - Neutron $Node Resources
|
||||
type: graph
|
||||
legend:
|
||||
avg: false
|
||||
current: false
|
||||
max: false
|
||||
min: false
|
||||
show: true
|
||||
total: false
|
||||
values: false
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: "$Cloud.$Node.ovsagent_monitoring.gauge-qdhcp_ns_total-count"
|
||||
- target: "$Cloud.$Node.ovsagent_monitoring.gauge-qrouter_ns_total-count"
|
||||
- target: "$Cloud.$Node.ovsagent_monitoring.gauge-tap_interface_total-count"
|
@ -0,0 +1,26 @@
|
||||
- title: Numa
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - Numastat
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.numa-*.vmpage_action-interleave_hit, 'numa-', ''), 'vmpage_action-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.numa-*.vmpage_action-local_node, 'numa-', ''), 'vmpage_action-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.numa-*.vmpage_action-numa_foreign, 'numa-', ''), 'vmpage_action-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.numa-*.vmpage_action-numa_hit, 'numa-', ''), 'vmpage_action-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.numa-*.vmpage_action-numa_miss, 'numa-', ''), 'vmpage_action-', ''), 2, 3)
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.$Node.numa-*.vmpage_action-other_node, 'numa-', ''), 'vmpage_action-', ''), 2, 3)
|
@ -0,0 +1,41 @@
|
||||
- title: OpenDaylight
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: ODL Java Heap Memory
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode($Cloud.$Node.GenericJMX-memory-heap.*, 3)
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
||||
- title: ODL Java Non-Heap Memory
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: true
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode($Cloud.$Node.GenericJMX-memory-nonheap.*, 3)
|
||||
yaxes:
|
||||
- format: bits
|
||||
- format: short
|
@ -0,0 +1,37 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
{% for metrics in per_process_metrics %}
|
||||
- title: {{per_process_row_title_prefix}} {{metrics.name}}
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for panel in per_process_panels[item.process_list_name] %}
|
||||
- title: {{panel.name}}
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: '{{metrics.nullPointMode}}'
|
||||
targets:
|
||||
{% for process in panel.processes %}
|
||||
{% for metric in metrics.metrics %}
|
||||
{% if metrics.name|match('Process CPU') %}
|
||||
- target: alias(scale($Cloud.$Node.processes-{{process|replace('.', '_')|replace(':', '_')}}{{metric.query}}, 0.0001), '{{process}} {{metric.name}}')
|
||||
{% else %}
|
||||
- target: alias($Cloud.$Node.processes-{{process|replace('.', '_')|replace(':', '_')}}{{metric.query}}, '{{process}} {{metric.name}}')
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
yaxes:
|
||||
- format: {{metrics.y1units}}
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% endfor %}
|
@ -0,0 +1,35 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
- title: {{partial_panel.title}}
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for metrics in per_process_metrics %}
|
||||
- title: {{metrics.name}}
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: '{{metrics.nullPointMode}}'
|
||||
targets:
|
||||
{% for process in partial_panel.processes %}
|
||||
{% for metric in metrics.metrics %}
|
||||
{% if metrics.name|match('Process CPU') %}
|
||||
- target: alias(scale($Cloud.$Node.processes-{{process|replace('.', '_')|replace(':', '_')}}{{metric.query}}, 0.0001), '{{process}} {{metric.name}}')
|
||||
{% else %}
|
||||
- target: alias($Cloud.$Node.processes-{{process|replace('.', '_')|replace(':', '_')}}{{metric.query}}, '{{process}} {{metric.name}}')
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
yaxes:
|
||||
- format: {{metrics.y1units}}
|
||||
- format: short
|
||||
{% endfor %}
|
@ -0,0 +1,41 @@
|
||||
- title: Processes
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - Processes State
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.processes.ps_state-running, 'Running')
|
||||
- target: alias($Cloud.$Node.processes.ps_state-stopped, 'Stopped')
|
||||
- target: alias($Cloud.$Node.processes.ps_state-sleeping, 'Sleeping')
|
||||
- target: alias($Cloud.$Node.processes.ps_state-blocked, 'Blocked')
|
||||
- target: alias($Cloud.$Node.processes.ps_state-paging, 'Paging')
|
||||
- target: alias($Cloud.$Node.processes.ps_state-zombies, 'Zombies')
|
||||
- title: $Cloud - $Node - Fork Rate
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: alias($Cloud.$Node.processes.fork_rate, 'Fork Rate')
|
@ -0,0 +1,114 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
- title: Rabbitmq Metrics
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Rabbitmq Object Counts
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: alias($Cloud.{{partial_panel.node}}.rabbitmq_monitoring.gauge-queues, 'Queues')
|
||||
- target: alias($Cloud.{{partial_panel.node}}.rabbitmq_monitoring.gauge-connections, 'Connections')
|
||||
- target: alias($Cloud.{{partial_panel.node}}.rabbitmq_monitoring.gauge-consumers, 'Consumers')
|
||||
- target: alias($Cloud.{{partial_panel.node}}.rabbitmq_monitoring.gauge-channels, 'Channels')
|
||||
- target: alias($Cloud.{{partial_panel.node}}.rabbitmq_monitoring.gauge-exchanges, 'Exchanges')
|
||||
- title: Queue Totals
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
steppedLine: true
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.rabbitmq_monitoring.gauge-queue_total-*-count, 'gauge-queue_total-', ''), '-count', ''), 3)
|
||||
- title: Queue Total Rates
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.rabbitmq_monitoring.gauge-queue_total-*-rate, 'gauge-queue_total-', ''), '-rate', ''), 3)
|
||||
- title: Message Stats Count
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.rabbitmq_monitoring.gauge-message_total-*-count, 'gauge-message_total-', ''), '-count', ''), 3)
|
||||
- title: Message Stats Rate
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.rabbitmq_monitoring.gauge-message_total-*-rate, 'gauge-message_total-', ''), '-rate', ''), 3)
|
||||
- title: Queue Message Counts
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
span: 6
|
||||
steppedLine: true
|
||||
targets:
|
||||
- target: aliasByMetric(aliasSub($Cloud.{{partial_panel.node}}.rabbitmq_monitoring.*-msg_count-*, 'gauge-msg_count-', ''))
|
@ -0,0 +1,58 @@
|
||||
- title: Swift Stat
|
||||
collapse: true
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: Byte Total
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'connected'
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.swift_stat.gauge-*-bytes, 'gauge-', ''), '-bytes', ''), 3)
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
- title: Container Count
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'connected'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.swift_stat.gauge-*-containers, 'gauge-', ''), '-containers', ''), 3)
|
||||
- title: Object Count
|
||||
type: graph
|
||||
fill: 0
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'connected'
|
||||
span: 6
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(aliasSub($Cloud.{{partial_panel.node}}.swift_stat.gauge-*-objects, 'gauge-', ''), '-objects', ''), 3)
|
@ -0,0 +1,50 @@
|
||||
- title: Tail
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - Tail Info
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(consolidateBy(scale(aliasSub(aliasSub($Cloud.$Node.tail-*.counter-*error, 'tail-', ''), 'counter-', ''), 10), 'max'), 2)
|
||||
- title: $Cloud - $Node - Tail Warn
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(consolidateBy(scale(aliasSub(aliasSub($Cloud.$Node.tail-*.counter-*warn, 'tail-', ''), 'counter-', ''), 10), 'max'), 2)
|
||||
- title: $Cloud - $Node - Tail Info
|
||||
type: graph
|
||||
legend:
|
||||
alignAsTable: true
|
||||
avg: false
|
||||
current: true
|
||||
max: true
|
||||
min: true
|
||||
rightSide: true
|
||||
show: true
|
||||
total: false
|
||||
values: true
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(consolidateBy(scale(aliasSub(aliasSub($Cloud.$Node.tail-*.counter-*info, 'tail-', ''), 'counter-', ''), 10), 'max'), 2)
|
@ -0,0 +1,58 @@
|
||||
- title: Turbostat
|
||||
collapse: true
|
||||
height: 200px
|
||||
showTitle: true
|
||||
panels:
|
||||
- title: $Cloud - $Node - Gauge TSC & SMI Count
|
||||
type: graph
|
||||
decimals: 2
|
||||
fill: 0
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: SMI Count
|
||||
yaxis: 2
|
||||
targets:
|
||||
- target: aliasByNode(scale(aliasSub($Cloud.$Node.turbostat-cpu*.gauge-TSC, 'turbostat-','tsc-'), 1000000), 2)
|
||||
- target: alias(sumSeries($Cloud.$Node.turbostat-cpu*.count), 'SMI Count')
|
||||
yaxes:
|
||||
- format: hertz
|
||||
- format: short
|
||||
- title: $Cloud - $Node - turbostat Freq Avg
|
||||
type: graph
|
||||
fill: 0
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(scale(aliasSub($Cloud.$Node.turbostat-cpu*.frequency-average, 'turbostat-', ''), 1000000), 2)
|
||||
yaxes:
|
||||
- format: hertz
|
||||
- format: short
|
||||
- title: $Cloud - $Node - turbostat Freq Busy
|
||||
type: graph
|
||||
decimals: 2
|
||||
fill: 0
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode(scale($Cloud.$Node.turbostat-cpu*.frequency-busy, 1000000), 2)
|
||||
yaxes:
|
||||
- format: hertz
|
||||
- format: short
|
||||
- title: $Cloud - $Node - turbostat c0%
|
||||
type: graph
|
||||
decimals: 2
|
||||
fill: 0
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode($Cloud.$Node.turbostat-cpu*.percent-c0, 2)
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
- title: $Cloud - $Node - turbostat c1%
|
||||
type: graph
|
||||
decimals: 2
|
||||
fill: 0
|
||||
nullPointMode: 'null'
|
||||
targets:
|
||||
- target: aliasByNode($Cloud.$Node.turbostat-cpu*.percent-c1, 2)
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
@ -0,0 +1,24 @@
|
||||
- title: CPU
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for node_index in range(1,4) %}
|
||||
- title: $Cloud - $Node{{node_index}} - All CPUs Sum
|
||||
type: graph
|
||||
legend: {}
|
||||
nullPointMode: 'null'
|
||||
span: 4
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias(sumSeries($Cloud.$Node{{node_index}}.cpu-*.cpu-system), 'System')
|
||||
- target: alias(sumSeries($Cloud.$Node{{node_index}}.cpu-*.cpu-user), 'User')
|
||||
- target: alias(sumSeries($Cloud.$Node{{node_index}}.cpu-*.cpu-nice), 'Nice')
|
||||
- target: alias(sumSeries($Cloud.$Node{{node_index}}.cpu-*.cpu-steal), 'Steal')
|
||||
- target: alias(sumSeries($Cloud.$Node{{node_index}}.cpu-*.cpu-softirq), 'SoftIRQ')
|
||||
- target: alias(sumSeries($Cloud.$Node{{node_index}}.cpu-*.cpu-interrupt), 'Interrupt')
|
||||
- target: alias(sumSeries($Cloud.$Node{{node_index}}.cpu-*.cpu-wait), 'Wait')
|
||||
- target: alias(sumSeries($Cloud.$Node{{node_index}}.cpu-*.cpu-idle), 'Idle')
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
{% endfor %}
|
@ -0,0 +1,67 @@
|
||||
- title: Disk
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for node_index in range(1,4) %}
|
||||
- title: $Cloud - $Node{{node_index}} - IO Util
|
||||
type: graph
|
||||
fill: 0
|
||||
legend: {}
|
||||
nullPointMode: 'null'
|
||||
span: 4
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub(scale($Cloud.$Node{{node_index}}.disk-*.disk_io_time.io_time, 0.1), 'disk-', ''), 2)
|
||||
yaxes:
|
||||
- format: percent
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% if enhanced %}
|
||||
{% for node_index in range(1,4) %}
|
||||
- title: $Cloud - $Node{{node_index}} - Throughput
|
||||
type: graph
|
||||
fill: 0
|
||||
legend: {}
|
||||
nullPointMode: 'null'
|
||||
span: 4
|
||||
seriesOverrides:
|
||||
- alias: "/.*\\.write/"
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node{{node_index}}.disk-*.disk_octets.read, 'disk-', ''), 2, 4)
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node{{node_index}}.disk-*.disk_octets.write, 'disk-', ''), 2, 4)
|
||||
yaxes:
|
||||
- format: Bps
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% for node_index in range(1,4) %}
|
||||
- title: $Cloud - $Node{{node_index}} - IOps
|
||||
type: graph
|
||||
fill: 0
|
||||
legend: {}
|
||||
nullPointMode: 'null'
|
||||
span: 4
|
||||
seriesOverrides:
|
||||
- alias: "/.*\\.write/"
|
||||
transform: negative-Y
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node{{node_index}}.disk-*.disk_ops.read, 'disk-', ''), 2, 4)
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node{{node_index}}.disk-*.disk_ops.write, 'disk-', ''), 2, 4)
|
||||
yaxes:
|
||||
- format: iops
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% for node_index in range(1,4) %}
|
||||
- title: $Cloud - $Node{{node_index}} - Partition % Used
|
||||
type: graph
|
||||
fill: 0
|
||||
legend: {}
|
||||
nullPointMode: 'null'
|
||||
span: 4
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node{{node_index}}.df-*.percent_bytes-used, 'df-', ''), 2)
|
||||
yaxes:
|
||||
- format: percent
|
||||
max: 100
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% endif %}
|
@ -0,0 +1,24 @@
|
||||
- title: Load / Uptime
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for node_index in range(1,4) %}
|
||||
- title: $Cloud - $Node{{node_index}} - Load / Uptime
|
||||
type: graph
|
||||
fill: 0
|
||||
legend: {}
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: uptime
|
||||
# lines: false
|
||||
yaxis: 2
|
||||
span: 4
|
||||
targets:
|
||||
- target: alias($Cloud.$Node{{node_index}}.load.load.shortterm, '1m avg')
|
||||
- target: alias($Cloud.$Node{{node_index}}.load.load.midterm, '5m avg')
|
||||
- target: alias($Cloud.$Node{{node_index}}.load.load.longterm, '15m avg')
|
||||
- target: alias($Cloud.$Node{{node_index}}.uptime.uptime, 'uptime')
|
||||
yaxes:
|
||||
- format: short
|
||||
- format: s
|
||||
{% endfor %}
|
@ -0,0 +1,40 @@
|
||||
- title: Memory
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for node_index in range(1,4) %}
|
||||
- title: $Cloud - $Node{{node_index}} - Memory in Bytes
|
||||
type: graph
|
||||
legend: {}
|
||||
nullPointMode: 'null'
|
||||
span: 4
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias($Cloud.$Node{{node_index}}.memory.memory-slab_unrecl, 'Slab Unrecl')
|
||||
- target: alias($Cloud.$Node{{node_index}}.memory.memory-used, 'Used')
|
||||
- target: alias($Cloud.$Node{{node_index}}.memory.memory-buffered, 'Buffered')
|
||||
- target: alias($Cloud.$Node{{node_index}}.memory.memory-slab_recl, 'Slab Recl')
|
||||
- target: alias($Cloud.$Node{{node_index}}.memory.memory-cached, 'Cached')
|
||||
- target: alias($Cloud.$Node{{node_index}}.memory.memory-free, 'Free')
|
||||
yaxes:
|
||||
- format: bytes
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% if enhanced %}
|
||||
{% for node_index in range(1,4) %}
|
||||
- title: $Cloud - $Node{{node_index}} - Swap
|
||||
type: graph
|
||||
legend: {}
|
||||
nullPointMode: 'null'
|
||||
span: 4
|
||||
stack: true
|
||||
targets:
|
||||
- target: alias($Cloud.$Node{{node_index}}.swap.swap-used, 'Used')
|
||||
- target: alias($Cloud.$Node{{node_index}}.swap.swap-cached, 'Cached')
|
||||
- target: alias($Cloud.$Node{{node_index}}.swap.swap-free, 'Free')
|
||||
yaxes:
|
||||
- format: bits
|
||||
min: 0
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% endif %}
|
@ -0,0 +1,40 @@
|
||||
- title: Network
|
||||
height: 250px
|
||||
showTitle: true
|
||||
panels:
|
||||
{% for node_index in range(1,4) %}
|
||||
- title: $Cloud - $Node{{node_index}} - Throughput
|
||||
type: graph
|
||||
fill: 0
|
||||
legend: {}
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: "/.*\\.rx/"
|
||||
transform: negative-Y
|
||||
span: 4
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node{{node_index}}.*.if_octets.tx, 'interface-', ''), 2, 4)
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node{{node_index}}.*.if_octets.rx, 'interface-', ''), 2, 4)
|
||||
yaxes:
|
||||
- format: Bps
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% if enhanced %}
|
||||
{% for node_index in range(1,4) %}
|
||||
- title: $Cloud - $Node{{node_index}} - PPS
|
||||
type: graph
|
||||
fill: 0
|
||||
legend: {}
|
||||
nullPointMode: 'null'
|
||||
seriesOverrides:
|
||||
- alias: "/.*\\.rx/"
|
||||
transform: negative-Y
|
||||
span: 4
|
||||
targets:
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node{{node_index}}.*.if_packets.tx, 'interface-', ''), 2, 4)
|
||||
- target: aliasByNode(aliasSub($Cloud.$Node{{node_index}}.*.if_packets.rx, 'interface-', ''), 2, 4)
|
||||
yaxes:
|
||||
- format: pps
|
||||
- format: short
|
||||
{% endfor %}
|
||||
{% endif %}
|
@ -0,0 +1,35 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
{% set enhanced = False %}
|
||||
---
|
||||
dashboard:
|
||||
title: Three Node Performance Food Groups
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node1
|
||||
query: "$Cloud.*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node2
|
||||
query: "$Cloud.*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node3
|
||||
query: "$Cloud.*"
|
||||
refresh: true
|
||||
type: query
|
||||
time:
|
||||
from: now-1h
|
||||
to: now
|
||||
rows:
|
||||
{% include 'partials/description.yaml' %}
|
||||
|
||||
{% include 'three_node_performance/cpu.yaml.j2' %}
|
||||
|
||||
{% include 'three_node_performance/memory.yaml.j2' %}
|
||||
|
||||
{% include 'three_node_performance/disk.yaml.j2' %}
|
||||
|
||||
{% include 'three_node_performance/network.yaml.j2' %}
|
@ -0,0 +1,37 @@
|
||||
#jinja2:lstrip_blocks: True
|
||||
{% set enhanced = True %}
|
||||
---
|
||||
dashboard:
|
||||
title: Three Node Performance Food Groups Enhanced
|
||||
templating:
|
||||
- name: Cloud
|
||||
query: "*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node1
|
||||
query: "$Cloud.*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node2
|
||||
query: "$Cloud.*"
|
||||
refresh: true
|
||||
type: query
|
||||
- name: Node3
|
||||
query: "$Cloud.*"
|
||||
refresh: true
|
||||
type: query
|
||||
time:
|
||||
from: now-1h
|
||||
to: now
|
||||
rows:
|
||||
{% include 'partials/description.yaml' %}
|
||||
|
||||
{% include 'three_node_performance/cpu.yaml.j2' %}
|
||||
|
||||
{% include 'three_node_performance/load.yaml.j2' %}
|
||||
|
||||
{% include 'three_node_performance/memory.yaml.j2' %}
|
||||
|
||||
{% include 'three_node_performance/disk.yaml.j2' %}
|
||||
|
||||
{% include 'three_node_performance/network.yaml.j2' %}
|
@ -1,8 +1,17 @@
|
||||
---
|
||||
#
|
||||
# Vars to generate Per-Process component of OpenStack Dashboards
|
||||
# Vars for Dashboard Generation
|
||||
#
|
||||
|
||||
dashboard_groups:
|
||||
- undercloud
|
||||
- controller
|
||||
- networker
|
||||
- blockstorage
|
||||
- objectstorage
|
||||
- cephstorage
|
||||
- compute
|
||||
|
||||
per_process_metrics:
|
||||
- name: "Process/Thread Counts"
|
||||
y1units: "short"
|
||||
|
@ -29,6 +29,7 @@ export VARS="elastic_enabled=true \
|
||||
--extra-vars grafana_host=$GRAPH_HOST \
|
||||
--extra-vars grafana_username=$GRAFANA_USER \
|
||||
--extra-vars grafana_password=$GRAFANA_PASS \
|
||||
--extra-vars grafana_apikey=$GRAFANA_APIKEY \
|
||||
--extra-vars browbeat_cloud_name=$CLOUD_NAME \
|
||||
--extra-vars browbeat_config_file=$BENCHMARK \
|
||||
--extra-vars graphite_prefix=$CLOUD_NAME \
|
||||
|
@ -1,5 +1,6 @@
|
||||
ansible==2.2.0.0
|
||||
elasticsearch
|
||||
grafyaml==0.0.7
|
||||
openstacksdk
|
||||
python-dateutil==2.4.2
|
||||
python-openstackclient==3.11.0
|
||||
|
Loading…
x
Reference in New Issue
Block a user