Add Ping Plugin

This plugin helps each controller ping the other 2 controllers over the
InternalAPI interface. This helps us to indetify the latency and jutter
between the controllers in situations where REST calls take too long or
clustered services go down.

Change-Id: I24a2ad9cafeb6900932e982b4b1bb456f8ad691f
This commit is contained in:
Sai Sindhur Malleni 2017-11-09 18:03:06 -05:00 committed by jkilpatr
parent a9f8e4f8b5
commit 0804dc9dc0
5 changed files with 112 additions and 1 deletions

View File

@ -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
###########################

View File

@ -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

View File

@ -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

View File

@ -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
<Plugin unixsock>
SocketFile "/var/run/collectd-unixsock"
@ -423,6 +425,25 @@ PreCacheChain "PreCache"
ValuesPercentage true
</Plugin>
# ping plugin
{% if ping_plugin %}
{% if groups['controller'] | length > 1 %}
<Plugin "ping">
{% 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}}
</Plugin>
{% endif %}
{% endif %}
# Tail plugin configuration
<Plugin "tail">

View File

@ -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,