Author: Jose Antonio Martinez (jamartinezv@minsait.com)
-->
-# Monitoring in Kubernetes based OSM
+# OSM Monitoring
## Introduction
-This implementation deploys a PM stack based on Prometheus Operator plus a series of exporters for monitoring the OSM nodes and third party software modules (Kafka, mongodb and mysql)
+This is an utility to monitor the OSM nodes and pods in the Kubernetes deployment. Metrics are stored in Prometheus and accessible in Grafana. Note that those "Prometheus" instance is not the same in the OSM core, but different one, aimed at the monitoring of the platform itself.
-In a high level, it consists of two scripts that deploy/undeploy the required objects in a previously existing Kubernetes based OSM installation.
-Those scripts use already existing and freely available software: Helm, Kubernetes Operator and a set of exporters and dashboards pretty much standard. Helm server part (tiller) and charts deployed depends on Kubernetes version 1.15.x. Charts versions are pre-configured in an installation script and can be easily changed.
+## Requirements
-As a result, there will be 3 folders in Grafana:
+OSM must be/have been deployed using the Kubernetes installer (that is, with the -c k8s option).
-- Summary: with a quick view of the platform global status.
-- OSM Third Party Modules: dashboards for MongoDB, MyslqDB and Kafka.
-- Kubernetes cluster: dashboards for pods, namespaces, nodes, etc.
+## Versions
-## Requirements
+For reference, the versions for the external components used are as follows:
-- Kubernetes 1.15.X
-- OSM Kubernetes version Release 7
+* PROMETHEUS_OPERATOR=6.18.0
+* PROMETHEUS_MONGODB_EXPORTER=2.3.0
+* PROMETHEUS_MYSQL_EXPORTER=0.5.1
+* HELM_CLIENT=2.15.2
-## Components
+## Functionality
-- Installs the helm client on the host where the script is run (if not already installed)
-- Creates a service account in the k8s cluster to be used by tiller, with sufficient permissions to be able to deploy kubernetes objects.
-- Installs the helm server part (tiller) and assigns to tiller the previously created service account (if not already installed)
-- Creates a namespace (monitoring) where all the components that are part of the OSM deployment monitoring `pack` will be installed.
-- Installs prometheus-operator using the `stable/prometheus-operator` chart which is located at the default helm repository (<https://kubernetes-charts.storage.googleapis.com/>). This installs a set of basic metrics for CPU, memory, etc. of hosts and pods. It also includes grafana and dashboards.
-- Installs an exporter for mongodb using the `stable/prometheus-mongodb-exporter` chart, which is located at the default helm repository (<https://kubernetes-charts.storage.googleapis.com/>).
-- Adds a dashboard for mongodb to grafana through a local yaml file.
-- Installs an exporter for mysql using the `stable/prometheus-mysql-exporter` chart which is located at the default helm repository (<https://kubernetes-charts.storage.googleapis.com/>).
-- Adds a dashboard for mysql to grafana through a local yaml file.
-- Installs an exporter for kafka using a custom-build helm chart with a deployment and its corresponding service and service monitor with local yaml files. We take the kafka exporter from <https://hub.docker.com/r/danielqsj/kafka-exporter>.
-- Add a dashboard for kafka to grafana through a local yaml file.
+Kubernetes cluster metrics (for nodes, pods, deployments, etc.) are stored in the dedicated Prometheus instance and accessible using Grafana.
-## Versions
+"Prometheus-operator" (<https://github.com/helm/charts/tree/master/stable/prometheus-operator>) provides the basic components and the monitoring of the basic Kubernetes resources. Additional "exporters" are used to gather metrics from Kafka, Mysql and Mongodb.
+It is important to note that Grafana is not installed with this chart because we are using Grafana installed with OSM core.
-We use the following versions:
+## Install procedure
-- PROMETHEUS_OPERATOR=6.18.0
-- PROMETHEUS_MONGODB_EXPORTER=2.3.0
-- PROMETHEUS_MYSQL_EXPORTER=0.5.1
-- HELM_CLIENT=2.15.2
+There are two ways to install the monitoring component based on the OSM global installer (<https://osm-download.etsi.org/ftp/osm-7.0-seven/install_osm.sh>)
-## Install
+* Using the --k8s_monitor switch in the OSM installation:
-Note: This implementation is dependent on the Kubernetes OSM deployment, and the installation script must be executed AFTER the Kubernetes deployment has been completed. Notice that it is not applicable to the basic docker deployment.
+```bash
+./install_osm.sh -c k8s --k8s_monitor
+```
+
+* As a separated component (K8s based OSM only):
```bash
+./install_osm.sh -o k8s_monitor
+```
+
+All the components will be installed in the "monitoring" namespace. In addition, for debugging purposes, there is a standalone script is available in `devops/installers/k8s/install_osm_k8s_monitoring.sh`. To see the available options, type --help.
+
+```sh
usage: ./install_osm_k8s_monitoring.sh [OPTIONS]
Install OSM Monitoring
OPTIONS
-h / --help : print this help
```
-## Uninstall
+## Access to Grafana
+
+The Grafana console can be accessed on the IP address of any node using port 3000, since a NodePort service is used: `http://<ip_your_osm_host>:3000`
+
+The initial credentials are:
+
+* Username: admin
+* Password: admin
+
+## Uninstall procedure
-To uninstall the utility you must use the installation script.
+Use the uninstall script
```sh
-./uninstall_osm_k8s_monitoring.sh
+./install_osm.sh -o k8s_monitor --uninstall
```
-It will uninstall all components of this utility. To see the options type --help.
+In addition, for debugging purposes, there is a standalone script is available in `devops/installers/k8s/uninstall_osm_k8s_monitoring.sh`. To see the available options type --help.
-```sh
+```bash
usage: ./uninstall_osm_k8s_monitoring.sh [OPTIONS]
Uninstall OSM Monitoring
OPTIONS
-h / --help : print this help
```
-## Access to Grafana Web Monitoring
+## Grafana Dashboards
-To view the WEB with the different dashboards it is necessary to connect to the service "grafana" installed with this utility
-and view the NodePort that uses. If the utility is installed with the default namespace "monitoring" you must type this:
+Dashboard are organized in two folders:
-```sh
-kubectl get all --namespace monitoring
-```
+* The folder "Kubernetes cluster" contains the dashboards available upstream as part of the standard prometheus operator helm installation:
-You must see the NodePort (greater than 30000) that uses the grafana service and type in your WEB browser:
+ * Kubernetes components (api server, kubelet, pods, etc)
+ * Nodes of the cluster.
+ * Prometheus operator components.
-```sh
- http://<ip_your_osm_host>:<nodeport>
+* The folder "Open Source MANO" contains additional dashboards customized for OSM:
+ * Summary with a quick view of the overall status.
+ * Host information
+ * Third party components: Kafka, MongoDB, MySQL.
+
+## Adding new dashboards
+
+New dashboards for OSM components should be included in "Open Source MANO" folder. Once we have the dashboard json file, please follow the instructions below to incorporate it into Grafana.
+
+```bash
+kubectl -n monitoring create configmap <configmap-name> --from-file=<dashboard-json-file>
+kubectl -n monitoring patch configmap <configmap-name> --patch '{"metadata": {"labels": {"grafana_dashboard": "1"},{"annotations": {k8s-sidecar-target-directory: "/tmp/dashboards/Open Source MANO"}}}}'
+```
+where <configmap-name> and <dashboard-json-file> needs to be replaced with desired values. A proposal is that <configmap-name> begins with "osm-monitoring-osm-"
+
+Once configmap is created and patched, we can download the manifest file for future use with next command:
```
-
-- Username: admin
-- Password: prom-operator
+kubectl -n monitoring get configmap <configmap-name> -o yaml > <confimap-file>
+```
+
+Grafana Sidecar will read the label `grafana_dashboard: "1"` in the configmap and upload the dashboard information to Grafana.
+
+The current dashboards can also be updated. It is only needed to modify/update the required yaml file available in `devops/installers/k8s` and apply them via kubectl. As an example `kubectl -n monitoring apply -f summary-dashboard.yaml` will update the changes made in the summary dashboard.
rm $i
done
+# Deleting Grafana dependence to avoid it installation
+sed -i -e '/.*- name: grafana.*/,+3d' $CHARTS_DIR/prometheus-operator/requirements.yaml
+sed -i -e '/.*- name: grafana.*/,+2d' $CHARTS_DIR/prometheus-operator/requirements.lock
+rm -rf $CHARTS_DIR/prometheus-operator/charts/grafana
+
exit 0
+++ /dev/null
-# Copyright 2019 Minsait - Indra S.A.
-#
-# 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.
-# Author: Jose Manuel Palacios (jmpalacios@minsait.com)
-# Author: Jose Antonio Martinez (jamartinezv@minsait.com)
-
-apiVersion: v1
-data:
- provider.yaml: |-
- apiVersion: 1
- providers:
- - name: 'Kubernetes Cluster'
- orgId: 1
- folder: 'Kubernetes Cluster'
- type: file
- disableDeletion: false
- options:
- path: /tmp/dashboards
- - name: 'OSM Third Party Modules'
- orgId: 1
- folder: 'OSM Third Party Modules'
- type: file
- disableDeletion: false
- options:
- path: '/tmp/dashboards/OSM Third Party Modules'
- - name: 'OSM Modules'
- orgId: 1
- folder: 'OSM Modules'
- type: file
- disableDeletion: false
- options:
- path: '/tmp/dashboards/OSM Modules'
- - name: 'Summary'
- orgId: 1
- folder: 'Summary'
- type: file
- disableDeletion: false
- options:
- path: /tmp/dashboards/Summary
-kind: ConfigMap
-metadata:
- labels:
- app: grafana
- chart: grafana-3.8.19
- heritage: Tiller
- release: osm-monitoring
- name: osm-monitoring-grafana-config-dashboards
\ No newline at end of file
HELM=""
DEBUG=""
DUMP_VARS=""
-SERVICE_TYPE=""
+SERVICE_TYPE=""
while getopts ":h-:n:s:" o; do
case "${o}" in
h)
if [ $? != 0 ] ; then
echo "Helm is not installed, installing ....."
curl https://get.helm.sh/helm-v2.15.2-linux-amd64.tar.gz --output helm-v2.15.2.tar.gz
- tar -zxvf helm-v2.15.2.tar.gz
- sudo mv linux-amd64/helm /usr/local/bin/helm
+ tar -zxvf helm-v2.15.2.tar.gz
+ sudo mv linux-amd64/helm /usr/local/bin/helm
rm -r linux-amd64
rm helm-v2.15.2.tar.gz
fi
while true
do
tiller_status=`kubectl -n kube-system get deployment.apps/tiller-deploy --no-headers | awk '{print $2'}`
- if [ ! -z "$tiller_status" ]
+ if [ ! -z "$tiller_status" ]
then
if [ $tiller_status == "1/1" ]
- then
+ then
echo "Go...."
break
fi
# Prometheus operator installation
$HERE/change-charts-prometheus-operator.sh
echo "Creating stable/prometheus-operator"
-helm install --namespace $NAMESPACE --version=$V_OPERATOR --name osm-monitoring --set kubelet.serviceMonitor.https=true,prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false $HERE/helm_charts/prometheus-operator
-
-# Change osm-monitoring-grafana-config-dashboards to have folders
-kubectl -n $NAMESPACE delete configmap osm-monitoring-grafana-config-dashboards
-kubectl -n $NAMESPACE apply -f $HERE/grafanaproviders.yaml
+helm install --namespace $NAMESPACE --version=$V_OPERATOR --name osm-monitoring --set kubelet.serviceMonitor.https=true,prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false,alertmanager.service.type=$SERVICE_TYPE,prometheus.service.type=$SERVICE_TYPE,grafana.serviceMonitor.selfMonitor=false $HERE/helm_charts/prometheus-operator
# Exporters installation
#dashboard:
kubectl -n $NAMESPACE apply -f $HERE/mongodb-exporter-dashboard.yaml
-# Mysql
+# Mysql
# exporter
echo "Creating stable/prometheus-mysql-exporter"
helm install --namespace $NAMESPACE --version=$V_MYSQL_EXPORTER --name osm-mysql-exporter --set serviceMonitor.enabled=true,mysql.user="root",mysql.pass=`kubectl -n osm get secret ro-db-secret -o yaml | grep MYSQL_ROOT_PASSWORD | awk '{print $2}' | base64 -d`,mysql.host="mysql.osm",mysql.port="3306" stable/prometheus-mysql-exporter
#dashboard:
kubectl -n $NAMESPACE apply -f $HERE/mysql-exporter-dashboard.yaml
-# Kafka
+# Kafka
# exporter
helm install --namespace $NAMESPACE --name osm-kafka-exporter $HERE/helm_charts/prometheus-kafka-exporter
# dashboard:
# Deploy summary dashboard
kubectl -n $NAMESPACE apply -f $HERE/summary-dashboard.yaml
-# Patch prometheus, alertmanager and grafana with service type
-# By default is created with ClusterIP type
-if [ $SERVICE_TYPE == "NodePort" ] ; then
- kubectl --namespace $NAMESPACE patch service osm-monitoring-grafana -p '{"spec":{"type":"NodePort"}}'
- kubectl --namespace $NAMESPACE patch service osm-monitoring-prometheus-alertmanager -p '{"spec":{"type":"NodePort"}}'
- kubectl --namespace $NAMESPACE patch service osm-monitoring-prometheus-prometheus -p '{"spec":{"type":"NodePort"}}'
-fi
-
-if [ $SERVICE_TYPE == "LoadBalancer" ] ; then
- kubectl --namespace $NAMESPACE patch service osm-monitoring-grafana -p '{"spec":{"type":"LoadBalancer"}}'
- kubectl --namespace $NAMESPACE patch service osm-monitoring-prometheus-alertmanager -p '{"spec":{"type":"LoadBalancer"}}'
- kubectl --namespace $NAMESPACE patch service osm-monitoring-prometheus-prometheus -p '{"spec":{"type":"LoadBalancer"}}'
-fi
-
-# Restart grafana to be sure patches are applied
-echo "Restarting grafana POD..."
-pod_grafana=`kubectl -n monitoring get pods | grep grafana | awk '{print $1}'`
-kubectl --namespace $NAMESPACE delete pod $pod_grafana
+# Deploy nodes dashboards
+kubectl -n $NAMESPACE apply -f $HERE/nodes-dashboard.yaml
heritage: Tiller
name: osm-monitoring-prometheus-kafka-exporter-grafana
annotations:
- k8s-sidecar-target-directory: "/tmp/dashboards/OSM Third Party Modules"
+ k8s-sidecar-target-directory: "/tmp/dashboards/Open Source MANO"
data:
kafka-exporter-dashboard.json: |-
{
"editable": true,
"gnetId": 7589,
"graphTooltip": 0,
- "id": 36,
- "iteration": 1569330292834,
+ "id": 10,
+ "iteration": 1578848023483,
"links": [],
"panels": [
{
"steppedLine": false,
"targets": [
{
- "expr": "sum(rate(kafka_topic_partition_current_offset{instance=\"$instance\", topic=~\"$topic\"}[1m])) by (topic)",
+ "expr": "sum(kafka_topic_partition_current_offset - kafka_topic_partition_oldest_offset{instance=\"$instance\", topic=~\"$topic\"}) by (topic)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "{{topic}}",
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Message in per second",
+ "title": "Messages stored per topic",
"tooltip": {
"shared": true,
"sort": 0,
"rightSide": false,
"show": true,
"sideWidth": 480,
+ "sort": "max",
"sortDesc": true,
"total": false,
"values": true
"instant": false,
"interval": "",
"intervalFactor": 1,
- "legendFormat": "{{consumergroup}} (topic: {{topic}})",
+ "legendFormat": " {{topic}} ({{consumergroup}})",
"refId": "A"
}
],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Message in per minute",
+ "title": "Messages produced per minute",
"tooltip": {
"shared": true,
"sort": 0,
"expr": "sum(delta(kafka_consumergroup_current_offset{instance=~'$instance',topic=~\"$topic\"}[5m])/5) by (consumergroup, topic)",
"format": "time_series",
"intervalFactor": 1,
- "legendFormat": "{{consumergroup}} (topic: {{topic}})",
+ "legendFormat": " {{topic}} ({{consumergroup}})",
"refId": "A"
}
],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Message consume per minute",
+ "title": "Messages consumed per minute",
"tooltip": {
"shared": true,
"sort": 0,
"refresh": "5s",
"schemaVersion": 19,
"style": "dark",
- "tags": [
- "Kafka"
- ],
+ "tags": [],
"templating": {
"list": [
{
"allValue": null,
"current": {
- "selected": true,
"text": "osm-kafka-exporter-service",
"value": "osm-kafka-exporter-service"
},
},
{
"allValue": null,
- "current": {
- "selected": false,
- "text": "10.244.0.87:9092",
- "value": "10.244.0.87:9092"
- },
"datasource": "Prometheus",
"definition": "",
"hide": 0,
{
"allValue": null,
"current": {
+ "tags": [],
"text": "All",
"value": [
"$__all"
]
},
"timezone": "browser",
- "title": "Kafka Exporter Overview",
+ "title": "Kafka",
"uid": "jwPKIsniz",
- "version": 1
+ "version": 2
}
heritage: Tiller
name: osm-monitoring-prometheus-mongodb-exporter-grafana
annotations:
- k8s-sidecar-target-directory: "/tmp/dashboards/OSM Third Party Modules"
+ k8s-sidecar-target-directory: "/tmp/dashboards/Open Source MANO"
data:
mongodb-exporter-dashboard.json: |-
{
}
]
},
- "description": "MongoDB Prometheus Exporter Dashboard. \r\nWorks well with https://github.com/dcu/mongodb_exporter\r\n\r\nIf you have the node_exporter running on the mongo instance, you will also get some useful alert panels related to disk io and cpu.",
+ "description": "MongoDB Prometheus Exporter Dashboard.",
"editable": true,
"gnetId": 2583,
"graphTooltip": 1,
- "id": 29,
- "iteration": 1569257185850,
+ "id": 9,
+ "iteration": 1577555358996,
"links": [],
"panels": [
{
"x": 0,
"y": 0
},
+ "id": 22,
+ "panels": [],
+ "repeat": "env",
+ "title": "Health",
+ "type": "row"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "Prometheus",
+ "decimals": null,
+ "format": "s",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 12,
+ "x": 0,
+ "y": 1
+ },
+ "id": 10,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "options": {},
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "mongodb_instance_uptime_seconds{instance=~\"$instance\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 1800
+ }
+ ],
+ "thresholds": "0,360",
+ "title": "Uptime",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "Prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 12,
+ "x": 12,
+ "y": 1
+ },
+ "id": 1,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "options": {},
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": true,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "mongodb_connections{instance=~\"$instance\",state=\"current\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "metric": "mongodb_connections",
+ "refId": "A",
+ "step": 1800
+ }
+ ],
+ "thresholds": "",
+ "title": "Open Connections",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 5
+ },
"id": 20,
"panels": [],
"repeat": "env",
- "title": "Query Metrics for $env",
+ "title": "Operations",
"type": "row"
},
{
"h": 6,
"w": 10,
"x": 0,
- "y": 1
+ "y": 6
},
"id": 7,
"legend": {
"steppedLine": false,
"targets": [
{
- "expr": "rate(mongodb_op_counters_total{instance=~\"$env\"}[$interval])",
+ "expr": "rate(mongodb_op_counters_total{instance=~\"$instance\"}[$interval])",
"format": "time_series",
"interval": "",
"intervalFactor": 2,
"h": 6,
"w": 8,
"x": 10,
- "y": 1
+ "y": 6
},
"id": 9,
"legend": {
"steppedLine": false,
"targets": [
{
- "expr": "rate(mongodb_mongod_metrics_document_total{instance=~\"$env\"}[$interval])",
+ "expr": "rate(mongodb_mongod_metrics_document_total{instance=~\"$instance\"}[$interval])",
"format": "time_series",
"interval": "",
"intervalFactor": 2,
"h": 6,
"w": 6,
"x": 18,
- "y": 1
+ "y": 6
},
"id": 8,
"legend": {
"steppedLine": false,
"targets": [
{
- "expr": "rate(mongodb_mongod_metrics_query_executor_total{instance=~\"$env\"}[$interval])",
+ "expr": "rate(mongodb_mongod_metrics_query_executor_total{instance=~\"$instance\"}[$interval])",
"format": "time_series",
"interval": "",
"intervalFactor": 2,
"alignLevel": null
}
},
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 7
- },
- "id": 22,
- "panels": [],
- "repeat": "env",
- "title": "Health metrics for $env",
- "type": "row"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "datasource": "Prometheus",
- "decimals": null,
- "format": "s",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 4,
- "w": 4,
- "x": 0,
- "y": 8
- },
- "id": 10,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "mongodb_instance_uptime_seconds{instance=~\"$env\"}",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "",
- "refId": "A",
- "step": 1800
- }
- ],
- "thresholds": "0,360",
- "title": "Uptime",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "datasource": "Prometheus",
- "decimals": null,
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 4,
- "w": 4,
- "x": 4,
- "y": 8
- },
- "id": 2,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": true,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "mongodb_connections{instance=~\"$env\",state=\"available\"}",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "",
- "metric": "mongodb_connections",
- "refId": "A",
- "step": 1800
- }
- ],
- "thresholds": "",
- "title": "Available Connections",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "avg"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "datasource": "Prometheus",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 4,
- "w": 16,
- "x": 8,
- "y": 8
- },
- "id": 1,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": true,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "mongodb_connections{instance=~\"$env\",state=\"current\"}",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "",
- "metric": "mongodb_connections",
- "refId": "A",
- "step": 1800
- }
- ],
- "thresholds": "",
- "title": "Open Connections",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "avg"
- },
{
"collapsed": false,
"gridPos": {
"id": 23,
"panels": [],
"repeat": null,
- "title": "Resource Metrics",
+ "title": "Resources",
"type": "row"
},
{
"steppedLine": false,
"targets": [
{
- "expr": "mongodb_memory{instance=~\"$env\",type=~\"resident|virtual\"}",
+ "expr": "mongodb_memory{instance=~\"$instance\",type=~\"resident|virtual\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 2,
"steppedLine": false,
"targets": [
{
- "expr": "rate(mongodb_network_bytes_total{instance=~\"$env\"}[$interval])",
+ "expr": "rate(mongodb_network_bytes_total{instance=~\"$instance\"}[$interval])",
"format": "time_series",
"interval": "",
"intervalFactor": 2,
"refresh": "5s",
"schemaVersion": 19,
"style": "dark",
- "tags": [
- "prometheus"
- ],
+ "tags": [],
"templating": {
"list": [
{
"definition": "",
"hide": 0,
"includeAll": true,
- "label": "env",
+ "label": "instance",
"multi": true,
- "name": "env",
+ "name": "instance",
"options": [],
"query": "label_values(mongodb_connections, instance)",
"refresh": 1,
"timezone": "browser",
"title": "MongoDB",
"uid": "HEK4NbtZk",
- "version": 1
+ "version": 2
}
heritage: Tiller
name: osm-monitoring-prometheus-mysql-exporter-grafana
annotations:
- k8s-sidecar-target-directory: "/tmp/dashboards/OSM Third Party Modules"
+ k8s-sidecar-target-directory: "/tmp/dashboards/Open Source MANO"
data:
mysql-exporter-dashboard.json: |-
{
}
]
},
- "description": "Basic Mysql dashboard for the prometheus exporter ",
+ "description": "Mysql dashboard",
"editable": true,
"gnetId": 6239,
"graphTooltip": 0,
"dashLength": 10,
"dashes": false,
"datasource": "Prometheus",
- "description": "The number of connections that were aborted because the client died without closing the connection properly. See Section B.5.2.10, “Communication Errors and Aborted Connections”.",
+ "description": "The number of connections that were aborted because the client died without closing the connection properly.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"dashLength": 10,
"dashes": false,
"datasource": "Prometheus",
- "description": "The number of failed attempts to connect to the MySQL server. See Section B.5.2.10, “Communication Errors and Aborted Connections”.\n\nFor additional connection-related information, check the Connection_errors_xxx status variables and the host_cache table.",
+ "description": "The number of failed attempts to connect to the MySQL server.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"schemaVersion": 19,
"style": "dark",
"tags": [
- "Databases",
- "backgroundservices"
],
"templating": {
"list": [
]
},
"timezone": "",
- "title": "Mysql - Prometheus",
+ "title": "Mysql",
"uid": "6-kPlS7ik",
"version": 1
}
--- /dev/null
+# Copyright 2019 Minsait - Indra S.A.
+#
+# 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.
+# Author: Jose Manuel Palacios (jmpalacios@minsait.com)
+# Author: Jose Antonio Martinez (jamartinezv@minsait.com)
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ labels:
+ grafana_dashboard: "1"
+ name: osm-monitoring-osm-nodes-grafana
+ annotations:
+ k8s-sidecar-target-directory: "/tmp/dashboards/Open Source MANO"
+data:
+ osm-nodes-dashboard.json: |-
+ {
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "description": "Physical nodes dashboard",
+ "editable": true,
+ "gnetId": 11074,
+ "graphTooltip": 0,
+ "id": 12,
+ "iteration": 1577553366915,
+ "links": [],
+ "panels": [
+ {
+ "collapsed": true,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 0
+ },
+ "id": 179,
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorPostfix": false,
+ "colorPrefix": false,
+ "colorValue": true,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "Prometheus",
+ "decimals": 1,
+ "description": "",
+ "format": "s",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 2,
+ "x": 0,
+ "y": 1
+ },
+ "hideTimeOverride": true,
+ "id": 15,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "null",
+ "nullText": null,
+ "options": {},
+ "pluginVersion": "6.4.2",
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(time() - node_boot_time_seconds{instance=~\"$node\"})",
+ "format": "time_series",
+ "hide": false,
+ "instant": true,
+ "intervalFactor": 1,
+ "refId": "A",
+ "step": 40
+ }
+ ],
+ "thresholds": "1,2",
+ "title": "System Uptime",
+ "type": "singlestat",
+ "valueFontSize": "70%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorPostfix": false,
+ "colorValue": true,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "Prometheus",
+ "description": "",
+ "format": "short",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 2,
+ "x": 2,
+ "y": 1
+ },
+ "id": 14,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "maxPerRow": 6,
+ "nullPointMode": "null",
+ "nullText": null,
+ "options": {},
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(count(node_cpu_seconds_total{instance=~\"$node\", mode='system'}) by (cpu))",
+ "format": "time_series",
+ "instant": true,
+ "intervalFactor": 1,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 20
+ }
+ ],
+ "thresholds": "1,2",
+ "title": "CPU Cores",
+ "type": "singlestat",
+ "valueFontSize": "70%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "datasource": "Prometheus",
+ "decimals": 2,
+ "description": "",
+ "format": "bytes",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 6,
+ "w": 2,
+ "x": 4,
+ "y": 1
+ },
+ "id": 75,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "maxPerRow": 6,
+ "nullPointMode": "null",
+ "nullText": null,
+ "options": {},
+ "postfix": "",
+ "postfixFontSize": "70%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(node_memory_MemTotal_bytes{instance=~\"$node\"})",
+ "format": "time_series",
+ "instant": true,
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}",
+ "refId": "A",
+ "step": 20
+ }
+ ],
+ "thresholds": "2,3",
+ "title": "Total RAM",
+ "type": "singlestat",
+ "valueFontSize": "70%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "datasource": "Prometheus",
+ "gridPos": {
+ "h": 6,
+ "w": 18,
+ "x": 6,
+ "y": 1
+ },
+ "id": 177,
+ "options": {
+ "displayMode": "lcd",
+ "fieldOptions": {
+ "calcs": [
+ "last"
+ ],
+ "defaults": {
+ "mappings": [
+ {
+ "from": "",
+ "id": 1,
+ "operator": "",
+ "text": "-",
+ "to": "",
+ "type": 1,
+ "value": "NaN"
+ }
+ ],
+ "max": 100,
+ "min": 0,
+ "thresholds": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "#EAB839",
+ "value": 60
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ],
+ "title": "",
+ "unit": "percent"
+ },
+ "override": {},
+ "values": false
+ },
+ "orientation": "horizontal"
+ },
+ "pluginVersion": "6.3.5",
+ "targets": [
+ {
+ "expr": "100 - (avg(irate(node_cpu_seconds_total{instance=~\"$node\",mode=\"idle\"}[30m])) * 100)",
+ "instant": true,
+ "legendFormat": "CPU Busy",
+ "refId": "A"
+ },
+ {
+ "expr": "avg(irate(node_cpu_seconds_total{instance=~\"$node\",mode=\"iowait\"}[30m])) * 100",
+ "hide": true,
+ "instant": true,
+ "legendFormat": "Busy Iowait",
+ "refId": "C"
+ },
+ {
+ "expr": "(1 - (node_memory_MemAvailable_bytes{instance=~\"$node\"} / (node_memory_MemTotal_bytes{instance=~\"$node\"})))* 100",
+ "instant": true,
+ "legendFormat": "Used RAM Memory",
+ "refId": "B"
+ },
+ {
+ "expr": "100 - ((node_filesystem_avail_bytes{instance=~\"$node\",mountpoint=\"$maxmount\",fstype=~\"ext4|xfs\"} * 100) / node_filesystem_size_bytes {instance=~\"$node\",mountpoint=\"$maxmount\",fstype=~\"ext4|xfs\"})",
+ "hide": false,
+ "instant": true,
+ "legendFormat": "Used Max Mount($maxmount)",
+ "refId": "D"
+ },
+ {
+ "expr": "(1 - (node_memory_SwapFree_bytes{instance=~\"$node\"} / node_memory_SwapTotal_bytes{instance=~\"$node\"})) * 100",
+ "instant": true,
+ "legendFormat": "Used SWAP",
+ "refId": "E"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "",
+ "type": "bargauge"
+ }
+ ],
+ "title": "Summary",
+ "type": "row"
+ },
+ {
+ "collapsed": true,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 1
+ },
+ "id": 181,
+ "panels": [
+ {
+ "aliasColors": {
+ "15分钟": "#6ED0E0",
+ "1分钟": "#BF1B00",
+ "5分钟": "#CCA300"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "fillGradient": 1,
+ "grid": {},
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 0,
+ "y": 8
+ },
+ "height": "300",
+ "id": 13,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": true,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "maxPerRow": 6,
+ "nullPointMode": "null as zero",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "node_load1{instance=~\"$node\"}",
+ "format": "time_series",
+ "instant": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_1m",
+ "metric": "",
+ "refId": "A",
+ "step": 20,
+ "target": ""
+ },
+ {
+ "expr": "node_load5{instance=~\"$node\"}",
+ "format": "time_series",
+ "instant": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_5m",
+ "refId": "B",
+ "step": 20
+ },
+ {
+ "expr": "node_load15{instance=~\"$node\"}",
+ "format": "time_series",
+ "instant": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_15m",
+ "refId": "C",
+ "step": 20
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "System Load",
+ "tooltip": {
+ "msResolution": false,
+ "shared": true,
+ "sort": 2,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "192.168.200.241:9100_Total": "dark-red",
+ "Idle - Waiting for something to happen": "#052B51",
+ "guest": "#9AC48A",
+ "idle": "#052B51",
+ "iowait": "#EAB839",
+ "irq": "#BF1B00",
+ "nice": "#C15C17",
+ "softirq": "#E24D42",
+ "steal": "#FCE2DE",
+ "system": "#508642",
+ "user": "#5195CE"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "decimals": 2,
+ "description": "",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 12,
+ "y": 8
+ },
+ "id": 7,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": true,
+ "hideZero": true,
+ "max": true,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "sideWidth": null,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "maxPerRow": 6,
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "repeat": null,
+ "seriesOverrides": [
+ {
+ "alias": "/.*_Total/",
+ "color": "#C4162A",
+ "fill": 0
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "avg(irate(node_cpu_seconds_total{instance=~\"$node\",mode=\"system\"}[30m])) by (instance)",
+ "format": "time_series",
+ "hide": false,
+ "instant": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_System",
+ "refId": "A",
+ "step": 20
+ },
+ {
+ "expr": "avg(irate(node_cpu_seconds_total{instance=~\"$node\",mode=\"user\"}[30m])) by (instance)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_User",
+ "refId": "B",
+ "step": 240
+ },
+ {
+ "expr": "avg(irate(node_cpu_seconds_total{instance=~\"$node\",mode=\"iowait\"}[30m])) by (instance)",
+ "format": "time_series",
+ "hide": false,
+ "instant": false,
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_Iowait",
+ "refId": "D",
+ "step": 240
+ },
+ {
+ "expr": "1 - avg(irate(node_cpu_seconds_total{instance=~\"$node\",mode=\"idle\"}[30m])) by (instance)",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_Total",
+ "refId": "F",
+ "step": 240
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "CPU",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "decimals": 2,
+ "format": "percentunit",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "title": "CPU",
+ "type": "row"
+ },
+ {
+ "collapsed": true,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 2
+ },
+ "id": 183,
+ "panels": [
+ {
+ "columns": [],
+ "datasource": "Prometheus",
+ "fontSize": "110%",
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 0,
+ "y": 3
+ },
+ "id": 164,
+ "links": [],
+ "options": {},
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort": {
+ "col": 11,
+ "desc": true
+ },
+ "styles": [
+ {
+ "alias": "Mounted on",
+ "colorMode": null,
+ "colors": [
+ "rgba(50, 172, 45, 0.97)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(245, 54, 54, 0.9)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "mappingType": 1,
+ "pattern": "mountpoint",
+ "thresholds": [
+ ""
+ ],
+ "type": "string",
+ "unit": "bytes"
+ },
+ {
+ "alias": "Avail",
+ "colorMode": "value",
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "mappingType": 1,
+ "pattern": "Value #A",
+ "thresholds": [
+ "10000000000",
+ "20000000000"
+ ],
+ "type": "number",
+ "unit": "bytes"
+ },
+ {
+ "alias": "Used",
+ "colorMode": "cell",
+ "colors": [
+ "rgba(50, 172, 45, 0.97)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(245, 54, 54, 0.9)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "mappingType": 1,
+ "pattern": "Value #B",
+ "thresholds": [
+ "0.6",
+ "0.8"
+ ],
+ "type": "number",
+ "unit": "percentunit"
+ },
+ {
+ "alias": "Size",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 1,
+ "link": false,
+ "mappingType": 1,
+ "pattern": "Value #C",
+ "thresholds": [],
+ "type": "number",
+ "unit": "bytes"
+ },
+ {
+ "alias": "Filesystem",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "link": false,
+ "mappingType": 1,
+ "pattern": "fstype",
+ "thresholds": [],
+ "type": "string",
+ "unit": "short"
+ },
+ {
+ "alias": "",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "preserveFormat": true,
+ "sanitize": false,
+ "thresholds": [],
+ "type": "hidden",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "expr": "node_filesystem_avail_bytes {instance=~'$node',fstype=~\"ext4|xfs\"}-0",
+ "format": "table",
+ "hide": false,
+ "instant": true,
+ "interval": "10s",
+ "intervalFactor": 1,
+ "legendFormat": "",
+ "refId": "A"
+ },
+ {
+ "expr": "1-(node_filesystem_free_bytes{instance=~'$node',fstype=~\"ext4|xfs\"} / node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext4|xfs\"})",
+ "format": "table",
+ "hide": false,
+ "instant": true,
+ "intervalFactor": 1,
+ "legendFormat": "",
+ "refId": "B"
+ },
+ {
+ "expr": "node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext4|xfs\"}-0",
+ "format": "table",
+ "hide": false,
+ "instant": true,
+ "intervalFactor": 1,
+ "legendFormat": "",
+ "refId": "C"
+ }
+ ],
+ "title": "Disk Space Used (EXT4/XFS)",
+ "transform": "table",
+ "type": "table"
+ },
+ {
+ "aliasColors": {
+ "vda_write": "#6ED0E0"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "description": "Per second read / write bytes ",
+ "fill": 1,
+ "fillGradient": 1,
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 8,
+ "y": 3
+ },
+ "height": "300",
+ "id": 168,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": true,
+ "hideZero": true,
+ "max": true,
+ "min": false,
+ "show": true,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "/.*_Read bytes$/",
+ "transform": "negative-Y"
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "irate(node_disk_read_bytes_total{instance=~\"$node\"}[30m])",
+ "format": "time_series",
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_{{device}}_Read bytes",
+ "refId": "A",
+ "step": 10
+ },
+ {
+ "expr": "irate(node_disk_written_bytes_total{instance=~\"$node\"}[30m])",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_{{device}}_Written bytes",
+ "refId": "B",
+ "step": 10
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Disk R/W Data",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "decimals": null,
+ "format": "Bps",
+ "label": "Bytes read (-) / write (+)",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "Idle - Waiting for something to happen": "#052B51",
+ "guest": "#9AC48A",
+ "idle": "#052B51",
+ "iowait": "#EAB839",
+ "irq": "#BF1B00",
+ "nice": "#C15C17",
+ "sdb_每秒I/O操作%": "#d683ce",
+ "softirq": "#E24D42",
+ "steal": "#FCE2DE",
+ "system": "#508642",
+ "user": "#5195CE",
+ "磁盘花费在I/O操作占比": "#ba43a9"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "decimals": null,
+ "description": "The time spent on I/O in the natural time of each second.(wall-clock time)",
+ "fill": 1,
+ "fillGradient": 5,
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 16,
+ "y": 3
+ },
+ "id": 175,
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": true,
+ "hideZero": true,
+ "max": true,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "sideWidth": null,
+ "sort": null,
+ "sortDesc": null,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "maxPerRow": 6,
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "irate(node_disk_io_time_seconds_total{instance=~\"$node\"}[30m])",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_{{device}}_ IO time",
+ "refId": "C"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Time Spent Doing I/Os",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "decimals": null,
+ "format": "s",
+ "label": "",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "title": "Disk",
+ "type": "row"
+ },
+ {
+ "collapsed": true,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 3
+ },
+ "id": 185,
+ "panels": [
+ {
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "decimals": 2,
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 24,
+ "x": 0,
+ "y": 28
+ },
+ "height": "300",
+ "id": 156,
+ "legend": {
+ "alignAsTable": true,
+ "avg": false,
+ "current": true,
+ "max": false,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "/.*_Total/",
+ "color": "#C4162A",
+ "fill": 0
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "node_memory_MemTotal_bytes{instance=~\"$node\"}",
+ "format": "time_series",
+ "hide": false,
+ "instant": false,
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_Total",
+ "refId": "A",
+ "step": 4
+ },
+ {
+ "expr": "node_memory_MemTotal_bytes{instance=~\"$node\"} - node_memory_MemAvailable_bytes{instance=~\"$node\"}",
+ "format": "time_series",
+ "hide": false,
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_Used",
+ "refId": "B",
+ "step": 4
+ },
+ {
+ "expr": "node_memory_MemAvailable_bytes{instance=~\"$node\"}",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_Avaliable",
+ "refId": "F",
+ "step": 4
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Memory",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "title": "Memory",
+ "type": "row"
+ },
+ {
+ "collapsed": true,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 4
+ },
+ "id": 187,
+ "panels": [
+ {
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "fill": 1,
+ "fillGradient": 3,
+ "gridPos": {
+ "h": 12,
+ "w": 12,
+ "x": 0,
+ "y": 29
+ },
+ "height": "300",
+ "id": 157,
+ "legend": {
+ "alignAsTable": true,
+ "avg": false,
+ "current": true,
+ "hideEmpty": true,
+ "hideZero": true,
+ "max": true,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "/.*_transmit$/",
+ "transform": "negative-Y"
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "irate(node_network_receive_bytes_total{instance=~'$node',device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[30m])*8",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_{{device}}_receive",
+ "refId": "A",
+ "step": 4
+ },
+ {
+ "expr": "irate(node_network_transmit_bytes_total{instance=~'$node',device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[30m])*8",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_{{device}}_transmit",
+ "refId": "B",
+ "step": 4
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Network Traffic",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "bps",
+ "label": "transmit(-)/receive(+)",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {
+ "TCP": "#6ED0E0"
+ },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "Prometheus",
+ "description": "TCP_alloc - Allocated sockets\n\nCurrEstab - TCP connections for which the current state is either ESTABLISHED or CLOSE- WAIT\n\nTCP_tw - Sockets wating close\n\nUDP_inuse - Udp sockets currently in use\n\nSockets_used - Sockets currently in use",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 12,
+ "w": 12,
+ "x": 12,
+ "y": 29
+ },
+ "height": "300",
+ "id": 158,
+ "interval": "",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": true,
+ "hideZero": true,
+ "max": true,
+ "min": false,
+ "rightSide": false,
+ "show": true,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [
+ {
+ "alias": "/.*_Sockets_used/",
+ "color": "#C4162A",
+ "fill": 0
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "node_netstat_Tcp_CurrEstab{instance=~'$node'}",
+ "format": "time_series",
+ "hide": false,
+ "instant": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_CurrEstab",
+ "refId": "A",
+ "step": 20
+ },
+ {
+ "expr": "node_sockstat_TCP_tw{instance=~'$node'}",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{instance}}_TCP_tw",
+ "refId": "D"
+ },
+ {
+ "expr": "node_sockstat_sockets_used{instance=~'$node'}",
+ "legendFormat": "{{instance}}_Sockets_used",
+ "refId": "B"
+ },
+ {
+ "expr": "node_sockstat_UDP_inuse{instance=~'$node'}",
+ "legendFormat": "{{instance}}_UDP_inuse",
+ "refId": "C"
+ },
+ {
+ "expr": "node_sockstat_TCP_alloc{instance=~'$node'}",
+ "legendFormat": "{{instance}}_TCP_alloc",
+ "refId": "E"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Network Sockstat",
+ "tooltip": {
+ "shared": true,
+ "sort": 2,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "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
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ }
+ ],
+ "title": "Network",
+ "type": "row"
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 19,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "allValue": null,
+ "current": {
+ "text": "node-exporter",
+ "value": "node-exporter"
+ },
+ "datasource": "Prometheus",
+ "definition": "label_values(node_uname_info, job)",
+ "hide": 0,
+ "includeAll": false,
+ "label": "JOB",
+ "multi": false,
+ "name": "job",
+ "options": [],
+ "query": "label_values(node_uname_info, job)",
+ "refresh": 1,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 1,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {
+ "text": "All",
+ "value": "$__all"
+ },
+ "datasource": "Prometheus",
+ "definition": "label_values(node_uname_info{job=~\"$job\"}, nodename)",
+ "hide": 0,
+ "includeAll": true,
+ "label": "Host",
+ "multi": true,
+ "name": "hostname",
+ "options": [],
+ "query": "label_values(node_uname_info{job=~\"$job\"}, nodename)",
+ "refresh": 1,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allFormat": "glob",
+ "allValue": null,
+ "current": {
+ "tags": [],
+ "text": "All",
+ "value": "$__all"
+ },
+ "datasource": "Prometheus",
+ "definition": "label_values(node_uname_info{nodename=~\"$hostname\"},instance)",
+ "hide": 0,
+ "includeAll": true,
+ "label": "IP",
+ "multi": false,
+ "multiFormat": "regex values",
+ "name": "node",
+ "options": [],
+ "query": "label_values(node_uname_info{nodename=~\"$hostname\"},instance)",
+ "refresh": 2,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 1,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {
+ "text": "/",
+ "value": "/"
+ },
+ "datasource": "Prometheus",
+ "definition": "",
+ "hide": 2,
+ "includeAll": false,
+ "label": "",
+ "multi": false,
+ "name": "maxmount",
+ "options": [],
+ "query": "query_result(topk(1,sort_desc (max(node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext4|xfs\"}) by (mountpoint))))",
+ "refresh": 2,
+ "regex": "/.*\\\"(.*)\\\".*/",
+ "skipUrlSync": false,
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allFormat": "glob",
+ "allValue": null,
+ "current": {
+ "isNone": true,
+ "text": "None",
+ "value": ""
+ },
+ "datasource": "Prometheus",
+ "definition": "",
+ "hide": 2,
+ "includeAll": false,
+ "multi": false,
+ "multiFormat": "regex values",
+ "name": "env",
+ "options": [],
+ "query": "label_values(node_exporter_build_info,env)",
+ "refresh": 2,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 1,
+ "tagValuesQuery": "",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allFormat": "glob",
+ "allValue": "",
+ "current": {
+ "isNone": true,
+ "text": "None",
+ "value": ""
+ },
+ "datasource": "Prometheus",
+ "definition": "label_values(node_exporter_build_info{env=~'$env'},name)",
+ "hide": 2,
+ "includeAll": false,
+ "label": "名称",
+ "multi": true,
+ "multiFormat": "regex values",
+ "name": "name",
+ "options": [],
+ "query": "label_values(node_exporter_build_info{env=~'$env'},name)",
+ "refresh": 2,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 1,
+ "tagValuesQuery": "/.*/",
+ "tags": [],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ }
+ ]
+ },
+ "time": {
+ "from": "now-2d",
+ "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": "browser",
+ "title": "Hosts",
+ "uid": "ha7fSE0Zz",
+ "version": 1
+ }
metadata:
labels:
grafana_dashboard: "1"
- name: osm-monitoring-prometheus-summary-grafana
+ name: osm-monitoring-osm-summary-grafana
annotations:
- k8s-sidecar-target-directory: "/tmp/dashboards/Summary"
+ k8s-sidecar-target-directory: "/tmp/dashboards/Open Source MANO"
data:
- summary-dashboard.json: |-
+ osm-summary-dashboard.json: |-
{
"annotations": {
"list": [
}
]
},
- "description": "Summary metrics about containers running on Kubernetes nodes and OSM Modules",
+ "description": "OSM status summary",
"editable": true,
"gnetId": 6417,
"graphTooltip": 1,
- "id": 28,
- "iteration": 1574687594565,
+ "id": 10,
+ "iteration": 1577638384562,
"links": [
{
"asDropdown": true,
"icon": "external link",
"includeVars": true,
"keepTime": false,
- "tags": [
- "osm-third-party-modules",
- "kubernetes-cluster"
- ],
+ "tags": [],
"title": "Dashboards",
"type": "dashboards"
}
{
"cacheTimeout": null,
"colorBackground": false,
+ "colorPrefix": false,
"colorValue": false,
"colors": [
"#299c46",
"#d44a3a"
],
"datasource": "Prometheus",
- "format": "percentunit",
+ "format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
- "show": true,
+ "show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
- "h": 4,
- "w": 6,
+ "h": 2,
+ "w": 12,
"x": 0,
"y": 1
},
- "id": 4,
+ "id": 26,
"interval": null,
"links": [],
"mappingType": 1,
"nullPointMode": "connected",
"nullText": null,
"options": {},
- "postfix": "",
+ "postfix": " Nodes",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"to": "null"
}
],
+ "repeat": null,
+ "repeatDirection": "h",
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
- "tableColumn": "",
+ "tableColumn": "Value",
"targets": [
{
- "expr": "sum(kube_pod_info{node=~\"$node\"}) / sum(kube_node_status_allocatable_pods{node=~\".*\"})",
+ "expr": "sum(kube_node_info)",
"format": "time_series",
+ "instant": true,
"intervalFactor": 1,
- "refId": "A"
+ "legendFormat": "",
+ "refId": "B"
}
],
- "thresholds": "80,90",
- "title": "Cluster Pod Usage",
+ "thresholds": "1",
+ "title": "",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "70%",
"valueMaps": [
{
"op": "=",
"#d44a3a"
],
"datasource": "Prometheus",
- "format": "percentunit",
+ "format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
- "show": true,
+ "show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
- "h": 4,
- "w": 6,
- "x": 6,
+ "h": 2,
+ "w": 12,
+ "x": 12,
"y": 1
},
- "id": 5,
+ "id": 30,
"interval": null,
"links": [],
"mappingType": 1,
"nullPointMode": "connected",
"nullText": null,
"options": {},
- "postfix": "",
+ "postfix": " Pods Running",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(78, 203, 42, 0.28)",
+ "full": false,
+ "lineColor": "#629e51",
+ "show": true
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(kube_pod_status_phase)",
+ "format": "time_series",
+ "instant": true,
+ "interval": "",
+ "intervalFactor": 1,
+ "refId": "A"
+ }
+ ],
+ "thresholds": "",
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "70%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": true,
+ "colorPrefix": false,
+ "colorValue": false,
+ "colors": [
+ "#56A64B",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "Prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 12,
+ "x": 0,
+ "y": 3
+ },
+ "id": 24,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "options": {},
+ "postfix": " Nodes Unavailable",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"tableColumn": "",
"targets": [
{
- "expr": "sum(kube_pod_container_resource_requests_cpu_cores{node=~\"$node\"}) / sum(kube_node_status_allocatable_cpu_cores{node=~\"$node\"})",
+ "expr": "sum(kube_node_info)-sum(kube_node_status_condition{condition=\"Ready\", status=\"true\"})",
"format": "time_series",
+ "instant": true,
"intervalFactor": 1,
"refId": "A"
}
],
- "thresholds": "80,90",
- "title": "Cluster CPU Usage",
+ "thresholds": "1,1",
+ "title": "",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "70%",
"valueMaps": [
{
"op": "=",
],
"valueName": "current"
},
+ {
+ "cacheTimeout": null,
+ "colorBackground": true,
+ "colorValue": false,
+ "colors": [
+ "#56A64B",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "Prometheus",
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 2,
+ "w": 12,
+ "x": 12,
+ "y": 3
+ },
+ "id": 55,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "options": {},
+ "postfix": " Pods not Ready",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false,
+ "ymax": null,
+ "ymin": null
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "expr": "sum(kube_pod_status_phase{phase!=\"Running\"})",
+ "instant": true,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "thresholds": "1",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "",
+ "type": "singlestat",
+ "valueFontSize": "70%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
{
"cacheTimeout": null,
"colorBackground": false,
"datasource": "Prometheus",
"format": "percentunit",
"gauge": {
- "maxValue": 100,
+ "maxValue": 1,
"minValue": 0,
"show": true,
"thresholdLabels": false,
"gridPos": {
"h": 4,
"w": 6,
- "x": 12,
- "y": 1
+ "x": 0,
+ "y": 5
},
- "id": 6,
+ "id": 4,
"interval": null,
"links": [],
"mappingType": 1,
"tableColumn": "",
"targets": [
{
- "expr": "sum(kube_pod_container_resource_requests_memory_bytes{node=~\"$node\"}) / sum(kube_node_status_allocatable_memory_bytes{node=~\"$node\"})",
+ "expr": "sum(kube_pod_info) / sum(kube_node_status_allocatable_pods)",
"format": "time_series",
"intervalFactor": 1,
"refId": "A"
}
],
- "thresholds": "80,90",
- "title": "Cluster Memory Usage",
+ "thresholds": "0.7,0.85",
+ "title": "Pod Usage",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
"datasource": "Prometheus",
"format": "percentunit",
"gauge": {
- "maxValue": 100,
+ "maxValue": 1,
"minValue": 0,
"show": true,
"thresholdLabels": false,
"gridPos": {
"h": 4,
"w": 6,
- "x": 18,
- "y": 1
+ "x": 6,
+ "y": 5
},
- "id": 7,
+ "id": 5,
"interval": null,
"links": [],
"mappingType": 1,
"tableColumn": "",
"targets": [
{
- "expr": "(sum (node_filesystem_size_bytes{nodename=~\"$node\"}) - sum (node_filesystem_free_bytes{nodename=~\"$node\"})) / sum (node_filesystem_size_bytes{nodename=~\"$node\"})",
+ "expr": "sum(kube_pod_container_resource_requests_cpu_cores) / sum(kube_node_status_allocatable_cpu_cores)",
"format": "time_series",
+ "instant": true,
"intervalFactor": 1,
"refId": "A"
}
],
- "thresholds": "80,90",
- "title": "Cluster Disk Usage",
+ "thresholds": "0.7,0.85",
+ "title": "CPU Usage",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
"valueName": "current"
},
{
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
"datasource": "Prometheus",
- "fill": 1,
- "fillGradient": 0,
+ "format": "percentunit",
+ "gauge": {
+ "maxValue": 1,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
"gridPos": {
- "h": 5,
+ "h": 4,
"w": 6,
- "x": 0,
+ "x": 12,
"y": 5
},
- "id": 9,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
+ "id": 6,
+ "interval": null,
"links": [],
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
+ "mappingType": 1,
+ "mappingTypes": [
{
- "expr": "sum(kube_node_status_allocatable_pods{node=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "allocatable",
- "refId": "A"
- },
- {
- "expr": "sum(kube_node_status_capacity_pods{node=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "capacity",
- "refId": "B"
- },
- {
- "expr": "sum(kube_pod_info{node=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "requested",
- "refId": "C"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Cluster Pod Capacity",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": "pods",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 5,
- "w": 6,
- "x": 6,
- "y": 5
- },
- "id": 10,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum(kube_node_status_capacity_cpu_cores{node=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "allocatable",
- "refId": "A"
- },
- {
- "expr": "sum(kube_node_status_allocatable_cpu_cores{node=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "capacity",
- "refId": "B"
- },
- {
- "expr": "sum(kube_pod_container_resource_requests_cpu_cores{node=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "requested",
- "refId": "C"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Cluster CPU Capacity",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "decimals": null,
- "format": "none",
- "label": "cores",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 5,
- "w": 6,
- "x": 12,
- "y": 5
- },
- "id": 11,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum(kube_node_status_allocatable_memory_bytes{node=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "allocatable",
- "refId": "A"
- },
- {
- "expr": "sum(kube_node_status_capacity_memory_bytes{node=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "capacity",
- "refId": "B"
- },
- {
- "expr": "sum(kube_pod_container_resource_requests_memory_bytes{node=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "requested",
- "refId": "C"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Cluster Mem Capacity",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "decbytes",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "Prometheus",
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 5,
- "w": 6,
- "x": 18,
- "y": 5
- },
- "id": 12,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "sum(node_filesystem_size_bytes{nodename=~\"$node\"}) - sum(node_filesystem_free_bytes{nodename=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "usage",
- "refId": "A"
- },
- {
- "expr": "sum(node_filesystem_size_bytes{nodename=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "legendFormat": "limit",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Cluster Disk Capacity",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "decbytes",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 10
- },
- "id": 14,
- "panels": [],
- "title": "Deployments",
- "type": "row"
- },
- {
- "columns": [
- {
- "text": "Current",
- "value": "current"
- }
- ],
- "datasource": "Prometheus",
- "fontSize": "100%",
- "gridPos": {
- "h": 5,
- "w": 6,
- "x": 0,
- "y": 11
- },
- "id": 16,
- "links": [],
- "options": {},
- "pageSize": null,
- "scroll": true,
- "showHeader": true,
- "sort": {
- "col": 1,
- "desc": true
- },
- "styles": [
- {
- "alias": "Time",
- "dateFormat": "YYYY-MM-DD HH:mm:ss",
- "pattern": "Time",
- "type": "date"
- },
- {
- "alias": "",
- "colorMode": "row",
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "decimals": 0,
- "pattern": "Metric",
- "thresholds": [
- "0",
- "0",
- ".9"
- ],
- "type": "string",
- "unit": "none"
- },
- {
- "alias": "",
- "colorMode": "row",
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "dateFormat": "YYYY-MM-DD HH:mm:ss",
- "decimals": 0,
- "link": false,
- "pattern": "Value",
- "thresholds": [
- "0",
- "1"
- ],
- "type": "number",
- "unit": "none"
- }
- ],
- "targets": [
- {
- "expr": "kube_deployment_status_replicas{namespace=~\"$namespace\"}",
- "format": "time_series",
- "instant": true,
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "{{ deployment }}",
- "refId": "A"
- }
- ],
- "title": "Deployment Replicas - Up To Date",
- "transform": "timeseries_to_rows",
- "type": "table"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 6,
- "x": 6,
- "y": 11
- },
- "id": 18,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "sum(kube_deployment_status_replicas{namespace=~\"$namespace\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "",
- "title": "Deployment Replicas",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "avg"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 6,
- "x": 12,
- "y": 11
- },
- "id": 19,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "sum(kube_deployment_status_replicas_updated{namespace=~\"$namespace\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "",
- "title": "Deployment Replicas - Updated",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "avg"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 6,
- "x": 18,
- "y": 11
- },
- "id": 20,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "sum(kube_deployment_status_replicas_unavailable{namespace=~\"$namespace\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "",
- "title": "Deployment Replicas - Unavailable",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "avg"
- },
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 16
- },
- "id": 22,
- "panels": [],
- "title": "Node",
- "type": "row"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 8,
- "x": 0,
- "y": 17
- },
- "id": 24,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "sum(kube_node_info{node=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "",
- "title": "Number Of Nodes",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "avg"
- },
- {
- "cacheTimeout": null,
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 8,
- "x": 8,
- "y": 17
- },
- "id": 25,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "sum(kube_node_status_condition{condition=\"OutOfDisk\", node=~\"$node\", status=\"true\"}) or vector(0)",
- "format": "time_series",
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "1",
- "title": "Nodes Out of Disk",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": true,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 8,
- "x": 16,
- "y": 17
- },
- "id": 26,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
+ "name": "value to text",
+ "value": 1
},
{
"name": "range to text",
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "expr": "sum(kube_node_spec_unschedulable{node=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
- "refId": "A"
- }
- ],
- "thresholds": "1",
- "title": "Nodes Unavailable",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 20
- },
- "id": 28,
- "panels": [],
- "title": "Pods",
- "type": "row"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "#299c46",
- "rgba(237, 129, 40, 0.89)",
- "#d44a3a"
- ],
- "datasource": "Prometheus",
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 3,
- "w": 12,
- "x": 0,
- "y": 21
- },
- "id": 30,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "options": {},
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(78, 203, 42, 0.28)",
- "full": false,
- "lineColor": "#629e51",
- "show": true
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
},
"tableColumn": "",
"targets": [
{
- "expr": "sum(kube_pod_status_phase{namespace=~\"$namespace\", phase=\"Running\"})",
+ "expr": "sum(kube_pod_container_resource_requests_memory_bytes) / sum(kube_node_status_allocatable_memory_bytes)",
"format": "time_series",
- "interval": "",
+ "instant": true,
"intervalFactor": 1,
"refId": "A"
}
],
- "thresholds": "",
- "title": "Pods Running",
+ "thresholds": "0.7,0.85",
+ "title": "Memory Usage",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
"colorBackground": false,
"colorValue": false,
"colors": [
- "#299c46",
+ "#73BF69",
"rgba(237, 129, 40, 0.89)",
"#d44a3a"
],
"datasource": "Prometheus",
- "format": "none",
+ "format": "percentunit",
"gauge": {
- "maxValue": 100,
+ "maxValue": 1,
"minValue": 0,
- "show": false,
+ "show": true,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
- "h": 3,
- "w": 12,
- "x": 12,
- "y": 21
+ "h": 4,
+ "w": 6,
+ "x": 18,
+ "y": 5
},
- "id": 31,
+ "id": 7,
"interval": null,
"links": [],
"mappingType": 1,
}
],
"sparkline": {
- "fillColor": "rgba(78, 203, 42, 0.28)",
+ "fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
- "lineColor": "#629e51",
- "show": true
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
},
"tableColumn": "",
"targets": [
{
- "expr": "sum(kube_pod_status_phase{namespace=~\"$namespace\", phase=\"Pending\"})",
+ "expr": "(sum (node_filesystem_size_bytes) - sum (node_filesystem_free_bytes)) / sum (node_filesystem_size_bytes)",
"format": "time_series",
- "interval": "",
+ "instant": true,
"intervalFactor": 1,
"refId": "A"
}
],
- "thresholds": "",
- "title": "Pods Pending",
+ "thresholds": "0.7,0.85",
+ "title": "Disk Usage",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [
],
"valueName": "current"
},
+ {
+ "collapsed": false,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 9
+ },
+ "id": 61,
+ "panels": [],
+ "title": "OSM",
+ "type": "row"
+ },
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
- "#299c46",
+ "#d44a3a",
"rgba(237, 129, 40, 0.89)",
- "#d44a3a"
+ "#299c46"
],
"datasource": "Prometheus",
"format": "none",
"gauge": {
- "maxValue": 100,
+ "maxValue": 1,
"minValue": 0,
- "show": false,
+ "show": true,
"thresholdLabels": false,
- "thresholdMarkers": true
+ "thresholdMarkers": false
},
"gridPos": {
- "h": 3,
- "w": 8,
+ "h": 4,
+ "w": 3,
"x": 0,
- "y": 24
+ "y": 10
},
- "id": 32,
+ "id": 71,
"interval": null,
"links": [],
"mappingType": 1,
}
],
"sparkline": {
- "fillColor": "rgba(78, 203, 42, 0.28)",
+ "fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
- "lineColor": "#629e51",
- "show": true
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false,
+ "ymax": null,
+ "ymin": null
},
"tableColumn": "",
"targets": [
{
- "expr": "sum(kube_pod_status_phase{namespace=~\"$namespace\", phase=\"Failed\"})",
+ "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"prometheus\"}",
"format": "time_series",
- "interval": "",
- "intervalFactor": 1,
"refId": "A"
}
],
- "thresholds": "",
- "title": "Pods Failed",
+ "thresholds": "0,1",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Prometheus",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "100%",
"valueMaps": [
{
"op": "=",
- "text": "N/A",
+ "text": "0",
"value": "null"
}
],
"colorBackground": false,
"colorValue": false,
"colors": [
- "#299c46",
+ "#d44a3a",
"rgba(237, 129, 40, 0.89)",
- "#d44a3a"
+ "#299c46"
],
"datasource": "Prometheus",
+ "decimals": null,
"format": "none",
"gauge": {
- "maxValue": 100,
+ "maxValue": 1,
"minValue": 0,
- "show": false,
+ "show": true,
"thresholdLabels": false,
- "thresholdMarkers": true
+ "thresholdMarkers": false
},
"gridPos": {
- "h": 3,
- "w": 8,
- "x": 8,
- "y": 24
+ "h": 4,
+ "w": 3,
+ "x": 4,
+ "y": 10
},
- "id": 33,
+ "id": 74,
"interval": null,
"links": [],
"mappingType": 1,
}
],
"sparkline": {
- "fillColor": "rgba(78, 203, 42, 0.28)",
+ "fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
- "lineColor": "#629e51",
- "show": true
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false,
+ "ymax": null,
+ "ymin": null
},
"tableColumn": "",
"targets": [
{
- "expr": "sum(kube_pod_status_phase{namespace=~\"$namespace\", phase=\"Succeeded\"})",
+ "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"mongo\"}",
"format": "time_series",
- "interval": "",
- "intervalFactor": 1,
"refId": "A"
}
],
- "thresholds": "",
- "title": "Pods Succeeded",
+ "thresholds": "0,1",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "mongo",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "100%",
"valueMaps": [
{
"op": "=",
- "text": "N/A",
+ "text": "0",
"value": "null"
}
],
"colorBackground": false,
"colorValue": false,
"colors": [
- "#299c46",
+ "#d44a3a",
"rgba(237, 129, 40, 0.89)",
- "#d44a3a"
+ "#299c46"
],
"datasource": "Prometheus",
"format": "none",
"gauge": {
- "maxValue": 100,
+ "maxValue": 1,
"minValue": 0,
- "show": false,
+ "show": true,
"thresholdLabels": false,
- "thresholdMarkers": true
+ "thresholdMarkers": false
},
"gridPos": {
- "h": 3,
- "w": 8,
- "x": 16,
- "y": 24
+ "h": 4,
+ "w": 3,
+ "x": 8,
+ "y": 10
},
- "id": 34,
+ "id": 72,
"interval": null,
"links": [],
"mappingType": 1,
}
],
"sparkline": {
- "fillColor": "rgba(78, 203, 42, 0.28)",
+ "fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
- "lineColor": "#629e51",
- "show": true
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false,
+ "ymax": null,
+ "ymin": null
},
"tableColumn": "",
"targets": [
{
- "expr": "sum(kube_pod_status_phase{namespace=~\"$namespace\", phase=\"Unknown\"})",
+ "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"mysql\"}",
"format": "time_series",
- "interval": "",
- "intervalFactor": 1,
"refId": "A"
}
],
- "thresholds": "",
- "title": "Pods Unknown",
+ "thresholds": "0,1",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "mysql ",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "100%",
"valueMaps": [
{
"op": "=",
- "text": "N/A",
+ "text": "0",
"value": "null"
}
],
"valueName": "current"
},
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 27
- },
- "id": 36,
- "panels": [],
- "title": "Containers",
- "type": "row"
- },
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
- "#299c46",
+ "#d44a3a",
"rgba(237, 129, 40, 0.89)",
- "#d44a3a"
+ "#299c46"
],
"datasource": "Prometheus",
"format": "none",
"gauge": {
- "maxValue": 100,
+ "maxValue": 1,
"minValue": 0,
- "show": false,
+ "show": true,
"thresholdLabels": false,
- "thresholdMarkers": true
+ "thresholdMarkers": false
},
"gridPos": {
- "h": 3,
- "w": 6,
- "x": 0,
- "y": 28
+ "h": 4,
+ "w": 3,
+ "x": 12,
+ "y": 10
},
- "id": 38,
+ "id": 77,
"interval": null,
"links": [],
"mappingType": 1,
"nullPointMode": "connected",
"nullText": null,
"options": {},
+ "pluginVersion": "6.3.5",
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false,
+ "ymax": null,
+ "ymin": null
},
- "tableColumn": "",
+ "tableColumn": "Value",
"targets": [
{
- "expr": "sum(kube_pod_container_status_running{namespace=~\"$namespace\"})",
+ "expr": "kube_deployment_status_replicas_available{deployment=\"ro\"}",
"format": "time_series",
- "intervalFactor": 1,
+ "instant": true,
+ "legendFormat": "",
"refId": "A"
}
],
- "thresholds": "",
- "title": "Containers Running",
+ "thresholds": "0,1",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "ro",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "100%",
"valueMaps": [
{
"op": "=",
- "text": "N/A",
+ "text": "0",
"value": "null"
}
],
"colorBackground": false,
"colorValue": false,
"colors": [
- "#299c46",
+ "#d44a3a",
"rgba(237, 129, 40, 0.89)",
- "#d44a3a"
+ "#299c46"
],
"datasource": "Prometheus",
+ "decimals": null,
"format": "none",
"gauge": {
- "maxValue": 100,
+ "maxValue": 1,
"minValue": 0,
- "show": false,
+ "show": true,
"thresholdLabels": false,
- "thresholdMarkers": true
+ "thresholdMarkers": false
},
"gridPos": {
- "h": 3,
- "w": 6,
- "x": 6,
- "y": 28
+ "h": 4,
+ "w": 3,
+ "x": 16,
+ "y": 10
},
- "id": 39,
+ "id": 73,
"interval": null,
"links": [],
"mappingType": 1,
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false,
+ "ymax": null,
+ "ymin": null
},
"tableColumn": "",
"targets": [
{
- "expr": "sum(kube_pod_container_status_waiting{namespace=~\"$namespace\"})",
+ "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"zookeeper\"}",
"format": "time_series",
- "intervalFactor": 1,
"refId": "A"
}
],
- "thresholds": "",
- "title": "Containers Waiting",
+ "thresholds": "0,1",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "zookeeper",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "100%",
"valueMaps": [
{
"op": "=",
- "text": "N/A",
+ "text": "0",
"value": "null"
}
],
"colorBackground": false,
"colorValue": false,
"colors": [
- "#299c46",
+ "#d44a3a",
"rgba(237, 129, 40, 0.89)",
- "#d44a3a"
+ "#299c46"
],
"datasource": "Prometheus",
+ "decimals": null,
"format": "none",
"gauge": {
- "maxValue": 100,
+ "maxValue": 1,
"minValue": 0,
- "show": false,
+ "show": true,
"thresholdLabels": false,
- "thresholdMarkers": true
+ "thresholdMarkers": false
},
"gridPos": {
- "h": 3,
- "w": 6,
- "x": 12,
- "y": 28
+ "h": 4,
+ "w": 3,
+ "x": 20,
+ "y": 10
},
- "id": 40,
+ "id": 78,
"interval": null,
"links": [],
"mappingType": 1,
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false,
+ "ymax": null,
+ "ymin": null
},
"tableColumn": "",
"targets": [
{
- "expr": "sum(kube_pod_container_status_terminated{namespace=~\"$namespace\"})",
+ "expr": "kube_statefulset_status_replicas_ready{namespace=\"osm\", statefulset=\"kafka\"}",
"format": "time_series",
- "intervalFactor": 1,
"refId": "A"
}
],
- "thresholds": "",
- "title": "Containers Terminated",
+ "thresholds": "0,1",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "kafka",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "100%",
"valueMaps": [
{
"op": "=",
- "text": "N/A",
+ "text": "0",
"value": "null"
}
],
"colorBackground": false,
"colorValue": false,
"colors": [
- "#299c46",
+ "#d44a3a",
"rgba(237, 129, 40, 0.89)",
- "#d44a3a"
+ "#299c46"
],
"datasource": "Prometheus",
"format": "none",
"gauge": {
- "maxValue": 100,
+ "maxValue": 1,
"minValue": 0,
- "show": false,
+ "show": true,
"thresholdLabels": false,
- "thresholdMarkers": true
+ "thresholdMarkers": false
},
"gridPos": {
- "h": 3,
- "w": 6,
- "x": 18,
- "y": 28
+ "h": 4,
+ "w": 3,
+ "x": 0,
+ "y": 14
},
- "id": 41,
+ "id": 76,
"interval": null,
"links": [],
"mappingType": 1,
"nullPointMode": "connected",
"nullText": null,
"options": {},
+ "pluginVersion": "6.3.5",
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false,
+ "ymax": null,
+ "ymin": null
},
- "tableColumn": "",
+ "tableColumn": "Value",
"targets": [
{
- "expr": "sum(delta(kube_pod_container_status_restarts_total{namespace=\"kube-system\"}[30m]))",
+ "expr": "kube_deployment_status_replicas_available{deployment=\"lcm\"}",
"format": "time_series",
- "intervalFactor": 1,
+ "instant": true,
+ "legendFormat": "",
"refId": "A"
}
],
- "thresholds": "",
- "title": "Containers Restarts (Last 30 Minutes)",
+ "thresholds": "0,1",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "lcm",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "100%",
"valueMaps": [
{
"op": "=",
- "text": "N/A",
+ "text": "0",
"value": "null"
}
],
"colorBackground": false,
"colorValue": false,
"colors": [
- "#299c46",
+ "#d44a3a",
"rgba(237, 129, 40, 0.89)",
- "#d44a3a"
+ "#299c46"
],
"datasource": "Prometheus",
"format": "none",
"gauge": {
- "maxValue": 100,
+ "maxValue": 1,
"minValue": 0,
- "show": false,
+ "show": true,
"thresholdLabels": false,
- "thresholdMarkers": true
+ "thresholdMarkers": false
},
"gridPos": {
- "h": 3,
- "w": 12,
- "x": 0,
- "y": 31
+ "h": 4,
+ "w": 3,
+ "x": 4,
+ "y": 14
},
- "id": 43,
+ "id": 79,
"interval": null,
"links": [],
"mappingType": 1,
"nullPointMode": "connected",
"nullText": null,
"options": {},
+ "pluginVersion": "6.3.5",
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false,
+ "ymax": null,
+ "ymin": null
},
"tableColumn": "",
"targets": [
{
- "expr": "sum(kube_pod_container_resource_requests_cpu_cores{namespace=~\"$namespace\", node=~\"$node\"})",
- "format": "time_series",
- "intervalFactor": 1,
+ "expr": "kube_deployment_status_replicas_available{deployment=\"light-ui\"}",
+ "instant": true,
"refId": "A"
}
],
- "thresholds": "",
- "title": "CPU Cores Requested by Containers",
+ "thresholds": "0,1",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "light-ui",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "100%",
"valueMaps": [
{
"op": "=",
- "text": "N/A",
+ "text": "0",
"value": "null"
}
],
- "valueName": "current"
+ "valueName": "avg"
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorValue": false,
"colors": [
- "#299c46",
+ "#d44a3a",
"rgba(237, 129, 40, 0.89)",
- "#d44a3a"
+ "#299c46"
],
"datasource": "Prometheus",
- "format": "decbytes",
+ "description": "",
+ "format": "none",
"gauge": {
- "maxValue": 100,
+ "maxValue": 1,
"minValue": 0,
- "show": false,
+ "show": true,
"thresholdLabels": false,
- "thresholdMarkers": true
+ "thresholdMarkers": false
},
"gridPos": {
- "h": 3,
- "w": 12,
- "x": 12,
- "y": 31
+ "h": 4,
+ "w": 3,
+ "x": 8,
+ "y": 14
},
- "id": 42,
+ "id": 75,
"interval": null,
"links": [],
"mappingType": 1,
"nullPointMode": "connected",
"nullText": null,
"options": {},
+ "pluginVersion": "6.3.5",
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false,
+ "ymax": null,
+ "ymin": null
},
- "tableColumn": "",
+ "tableColumn": "Value",
"targets": [
{
- "expr": "sum(kube_pod_container_resource_requests_memory_bytes{namespace=~\"$namespace\", node=~\"$node\"})",
+ "expr": "kube_deployment_status_replicas_available{deployment=\"nbi\"}",
"format": "time_series",
- "intervalFactor": 1,
+ "instant": true,
+ "legendFormat": "",
"refId": "A"
}
],
- "thresholds": "",
- "title": "Memory Requested By Containers",
+ "thresholds": "0,1",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "nbi",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "100%",
"valueMaps": [
{
"op": "=",
- "text": "N/A",
+ "text": "0",
"value": "null"
}
- ],
- "valueName": "current"
- },
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 34
- },
- "id": 50,
- "panels": [],
- "title": "OSM Third Party Modules",
- "type": "row"
+ ],
+ "valueName": "current"
},
{
"cacheTimeout": null,
- "colorBackground": true,
+ "colorBackground": false,
"colorValue": false,
"colors": [
- "#bf1b00",
- "#508642",
- "#ef843c"
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
],
"datasource": "Prometheus",
"format": "none",
"gauge": {
"maxValue": 1,
"minValue": 0,
- "show": false,
+ "show": true,
"thresholdLabels": false,
- "thresholdMarkers": true
+ "thresholdMarkers": false
},
"gridPos": {
- "h": 3,
- "w": 8,
- "x": 0,
- "y": 35
+ "h": 4,
+ "w": 3,
+ "x": 12,
+ "y": 14
},
- "id": 51,
+ "id": 67,
"interval": null,
"links": [],
"mappingType": 1,
"nullPointMode": "connected",
"nullText": null,
"options": {},
+ "pluginVersion": "6.3.5",
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
- "full": true,
+ "full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false,
+ "ymax": null,
+ "ymin": null
},
- "tableColumn": "",
+ "tableColumn": "Value",
"targets": [
{
- "expr": "mysql_up{}",
+ "expr": "kube_deployment_status_replicas_available{deployment=\"pol\"}",
"format": "time_series",
- "intervalFactor": 1,
+ "instant": true,
+ "legendFormat": "",
"refId": "A"
}
],
- "thresholds": "1,2",
- "title": "MysqlDB Up",
+ "thresholds": "0,1",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "pol",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "100%",
"valueMaps": [
{
"op": "=",
- "text": "N/A",
+ "text": "0",
"value": "null"
}
],
},
{
"cacheTimeout": null,
- "colorBackground": true,
+ "colorBackground": false,
"colorValue": false,
"colors": [
- "#bf1b00",
- "#508642",
- "#ef843c"
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
],
"datasource": "Prometheus",
"format": "none",
"gauge": {
"maxValue": 1,
"minValue": 0,
- "show": false,
+ "show": true,
"thresholdLabels": false,
- "thresholdMarkers": true
+ "thresholdMarkers": false
},
"gridPos": {
- "h": 3,
- "w": 8,
- "x": 8,
- "y": 35
+ "h": 4,
+ "w": 3,
+ "x": 16,
+ "y": 14
},
- "id": 52,
+ "id": 69,
"interval": null,
"links": [],
"mappingType": 1,
"nullPointMode": "connected",
"nullText": null,
"options": {},
+ "pluginVersion": "6.3.5",
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
- "full": true,
+ "full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false,
+ "ymax": null,
+ "ymin": null
},
"tableColumn": "",
"targets": [
{
- "expr": "mongodb_up{}",
- "format": "time_series",
- "intervalFactor": 1,
+ "expr": "kube_deployment_status_replicas_available{deployment=\"mon\"}",
+ "instant": true,
"refId": "A"
}
],
- "thresholds": "1,2",
- "title": "MongoDB Up",
+ "thresholds": "0,1",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "mon",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "100%",
"valueMaps": [
{
"op": "=",
- "text": "N/A",
+ "text": "0",
"value": "null"
}
],
- "valueName": "current"
+ "valueName": "avg"
},
{
"cacheTimeout": null,
- "colorBackground": true,
+ "colorBackground": false,
"colorValue": false,
"colors": [
- "#bf1b00",
- "#508642",
- "#ef843c"
+ "#d44a3a",
+ "rgba(237, 129, 40, 0.89)",
+ "#299c46"
],
"datasource": "Prometheus",
"format": "none",
"gauge": {
"maxValue": 1,
"minValue": 0,
- "show": false,
+ "show": true,
"thresholdLabels": false,
- "thresholdMarkers": true
+ "thresholdMarkers": false
},
"gridPos": {
- "h": 3,
- "w": 8,
- "x": 16,
- "y": 35
+ "h": 4,
+ "w": 3,
+ "x": 20,
+ "y": 14
},
- "id": 53,
+ "id": 81,
"interval": null,
"links": [],
"mappingType": 1,
"nullPointMode": "connected",
"nullText": null,
"options": {},
+ "pluginVersion": "6.3.5",
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
- "full": true,
+ "full": false,
"lineColor": "rgb(31, 120, 193)",
- "show": true
+ "show": false,
+ "ymax": null,
+ "ymin": null
},
- "tableColumn": "",
+ "tableColumn": "Value",
"targets": [
{
- "expr": "kafka_brokers{}",
+ "expr": "kube_deployment_status_replicas_available{deployment=\"keystone\"}",
"format": "time_series",
- "intervalFactor": 1,
+ "instant": true,
+ "legendFormat": "",
"refId": "A"
}
],
- "thresholds": "1,2",
- "title": "Kafka Broker Up",
+ "thresholds": "0,1",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "keystone",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "100%",
"valueMaps": [
{
"op": "=",
- "text": "N/A",
+ "text": "0",
"value": "null"
}
],
"valueName": "current"
+ },
+ {
+ "datasource": "Prometheus",
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "fill": 6,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 9,
+ "w": 23,
+ "x": 0,
+ "y": 18
+ },
+ "id": 84,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": true,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=\"osm\"}) by (pod)",
+ "instant": false,
+ "intervalFactor": 4,
+ "legendFormat": "{{pod}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Pod CPU Usage",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "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
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "datasource": "Prometheus",
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "fill": 6,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 9,
+ "w": 23,
+ "x": 0,
+ "y": 27
+ },
+ "id": 85,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": true,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(container_memory_working_set_bytes{namespace=\"osm\", container!=\"\"}) by (pod)",
+ "intervalFactor": 4,
+ "legendFormat": "{{pod}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Pod Memory Usage",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "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
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "cacheTimeout": null,
+ "content": "\n\n\n",
+ "gridPos": {
+ "h": 4,
+ "w": 3,
+ "x": 21,
+ "y": 36
+ },
+ "id": 82,
+ "links": [],
+ "mode": "markdown",
+ "options": {},
+ "pluginVersion": "6.3.5",
+ "targets": [
+ {
+ "expr": "",
+ "instant": true,
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "",
+ "transparent": true,
+ "type": "text"
+ },
+ {
+ "cacheTimeout": null,
+ "content": "<h2 style=\"text-align: center;\"></p>\n\n\n",
+ "gridPos": {
+ "h": 4,
+ "w": 3,
+ "x": 19,
+ "y": 40
+ },
+ "id": 80,
+ "links": [],
+ "mode": "html",
+ "options": {},
+ "pluginVersion": "6.3.5",
+ "targets": [
+ {
+ "expr": "",
+ "instant": true,
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "",
+ "transparent": true,
+ "type": "text"
}
],
+ "refresh": "30s",
"schemaVersion": 19,
"style": "dark",
- "tags": [
- "osm-third-party-modules",
- "kubernetes-cluster"
- ],
+ "tags": [],
"templating": {
"list": [
{
"regex": "/$ds/",
"skipUrlSync": false,
"type": "datasource"
- },
- {
- "current": {
- "text": ".*",
- "value": ".*"
- },
- "hide": 0,
- "label": null,
- "name": "node",
- "options": [
- {
- "selected": true,
- "text": ".*",
- "value": ".*"
- }
- ],
- "query": ".*",
- "skipUrlSync": false,
- "type": "constant"
- },
- {
- "current": {
- "text": ".*",
- "value": ".*"
- },
- "hide": 0,
- "label": null,
- "name": "namespace",
- "options": [
- {
- "selected": true,
- "text": ".*",
- "value": ".*"
- }
- ],
- "query": ".*",
- "skipUrlSync": false,
- "type": "constant"
}
]
},
"time": {
- "from": "now-30m",
+ "from": "now-15m",
"to": "now"
},
"timepicker": {
]
},
"timezone": "browser",
- "title": "Summary Kubernetes Cluster and OSM Modules",
- "uid": "4XuMd2Iiz",
- "version": 13
- }
\ No newline at end of file
+ "title": "OSM Status Summary",
+ "uid": "4XuPd2Ii1",
+ "version": 2
+ }
# remove dashboards
echo "Deleting dashboards...."
-kubectl -n $NAMESPACE delete configmap osm-monitoring-prometheus-summary-grafana > /dev/null 2>&1
+kubectl -n $NAMESPACE delete configmap osm-monitoring-osm-summary-grafana > /dev/null 2>&1
+kubectl -n $NAMESPACE delete configmap osm-monitoring-osm-nodes-grafana > /dev/null 2>&1
kubectl -n $NAMESPACE delete configmap osm-monitoring-prometheus-kafka-exporter-grafana > /dev/null 2>&1
kubectl -n $NAMESPACE delete configmap osm-monitoring-prometheus-mysql-exporter-grafana > /dev/null 2>&1
kubectl -n $NAMESPACE delete configmap osm-monitoring-prometheus-mongodb-exporter-grafana > /dev/null 2>&1
kubectl delete namespace $NAMESPACE
if [ -n "$HELM" ] ; then
- sudo helm reset --force
- kubectl delete --namespace kube-system serviceaccount tiller
- kubectl delete clusterrolebinding tiller-cluster-rule
- sudo rm /usr/local/bin/helm
+ sudo helm reset --force
+ kubectl delete --namespace kube-system serviceaccount tiller
+ kubectl delete clusterrolebinding tiller-cluster-rule
+ sudo rm /usr/local/bin/helm
rm -rf $HOME/.helm
fi
-
-