diff --git a/ansible/install/group_vars/all.yml b/ansible/install/group_vars/all.yml
index eac388d78..980b8861c 100644
--- a/ansible/install/group_vars/all.yml
+++ b/ansible/install/group_vars/all.yml
@@ -260,6 +260,13 @@ regex_warn: false
regex_info: false
+########################################################
+# Ping Plugin for Latency and Jitter between controllers
+########################################################
+# Might result in more network traffic
+ping_plugin: false
+ping_interval: 1
+
############################
# OpenDaylight JAVA Plugin
###########################
diff --git a/ansible/install/roles/collectd-openstack/defaults/main.yml b/ansible/install/roles/collectd-openstack/defaults/main.yml
index 419b0460d..702af0cfe 100644
--- a/ansible/install/roles/collectd-openstack/defaults/main.yml
+++ b/ansible/install/roles/collectd-openstack/defaults/main.yml
@@ -145,3 +145,10 @@ karaf_password: karaf
# Determines if WARN/INFO messages are also counted
regex_warn: false
regex_info: false
+
+########################################################
+# Ping Plugin for Latency and Jitter between controllers
+########################################################
+# Might result in more network traffic
+ping_plugin: false
+ping_interval: 1
diff --git a/ansible/install/roles/collectd-openstack/tasks/main.yml b/ansible/install/roles/collectd-openstack/tasks/main.yml
index 11684a29c..adb08b01a 100644
--- a/ansible/install/roles/collectd-openstack/tasks/main.yml
+++ b/ansible/install/roles/collectd-openstack/tasks/main.yml
@@ -37,6 +37,7 @@
- collectd-ceph
- collectd-mysql
- collectd-turbostat
+ - collectd-ping
# (sai) Separating out collectd java rpms as they have a lot of dependencies and
# are only required for ODL monitoring on controllers only
diff --git a/ansible/install/roles/collectd-openstack/templates/controller.collectd.conf.j2 b/ansible/install/roles/collectd-openstack/templates/controller.collectd.conf.j2
index 05bbbb6f3..6bc418e35 100644
--- a/ansible/install/roles/collectd-openstack/templates/controller.collectd.conf.j2
+++ b/ansible/install/roles/collectd-openstack/templates/controller.collectd.conf.j2
@@ -51,11 +51,13 @@ LoadPlugin tail
LoadPlugin turbostat
LoadPlugin unixsock
LoadPlugin uptime
+{% if ping_plugin %}
+LoadPlugin ping
+{% endif %}
{% if opendaylight_java_plugin %}
LoadPlugin java
{% endif %}
-
# Open unix domain socket for collectdctl
SocketFile "/var/run/collectd-unixsock"
@@ -423,6 +425,25 @@ PreCacheChain "PreCache"
ValuesPercentage true
+# ping plugin
+{% if ping_plugin %}
+{% if groups['controller'] | length > 1 %}
+
+{% if inventory_hostname == groups['controller'][0] %}
+ Host "{{groups['controller'][1]}}"
+ Host "{{groups['controller'][2]}}"
+{% elif inventory_hostname == groups['controller'][1] %}
+ Host "{{groups['controller'][0]}}"
+ Host "{{groups['controller'][2]}}"
+{% elif inventory_hostname == groups['controller'][2] %}
+ Host "{{groups['controller'][0]}}"
+ Host "{{groups['controller'][1]}}"
+{% endif %}
+ Interval {{ping_interval}}
+
+{% endif %}
+{% endif %}
+
# Tail plugin configuration
diff --git a/ansible/install/roles/grafana-dashboards/templates/openstack_general_system_performance.json.j2 b/ansible/install/roles/grafana-dashboards/templates/openstack_general_system_performance.json.j2
index aa26c639a..d47ea3e1f 100644
--- a/ansible/install/roles/grafana-dashboards/templates/openstack_general_system_performance.json.j2
+++ b/ansible/install/roles/grafana-dashboards/templates/openstack_general_system_performance.json.j2
@@ -2670,6 +2670,81 @@
"short",
"percent"
]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": null,
+ "fill": 1,
+ {% if vars.update({'panel_idx': (vars.panel_idx + 1)}) %} {% endif %}
+ "id": {{vars.panel_idx}},
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "rightSide": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "refId": "A",
+ "target": "aliasByNode($Cloud.$Node.ping.*, 3)"
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Ping- Latency and Jitter",
+ "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": false
+ }
+ ]
}
],
"showTitle": true,