179 lines
4.8 KiB
Python
179 lines
4.8 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
#
|
|
# License: GNU General Public License v2
|
|
#
|
|
# Author: thl-cmk[at]outlook[dot]com
|
|
# URL : https://thl-cmk.hopto.org
|
|
# Date : 2017-12-26
|
|
#
|
|
# Cisco BGP Peer metrics plugin
|
|
#
|
|
# 2018-05-25: cleanup
|
|
# 2020-09-10: fixed typo FMS --> FSM (Thanks martin[dot]pechstein[at]posteo[dot]de)
|
|
# 2021-03-27: rewrite for CMK 2.0
|
|
#
|
|
from cmk.gui.i18n import _
|
|
|
|
from cmk.gui.plugins.metrics import (
|
|
metric_info,
|
|
graph_info,
|
|
perfometer_info
|
|
)
|
|
|
|
|
|
#####################################################################################################################
|
|
#
|
|
# define metrics for bgp peer perfdata
|
|
#
|
|
#####################################################################################################################
|
|
|
|
metric_info['cisco_bgp_peer_acceptedprefixes'] = {
|
|
'title': _('Prefixes accepted'),
|
|
'help': _('number of accepted prefixes'),
|
|
'unit': 'count',
|
|
'color': '11/a',
|
|
}
|
|
metric_info['cisco_bgp_peer_deniedprefixes'] = {
|
|
'title': _('Prefixes denied'),
|
|
'unit': '1/s',
|
|
'color': '21/a',
|
|
}
|
|
metric_info['cisco_bgp_peer_advertisedprefixes'] = {
|
|
'title': _('Prefixes advertised'),
|
|
'unit': '1/s',
|
|
'color': '31/a',
|
|
}
|
|
metric_info['cisco_bgp_peer_withdrawnprefixes'] = {
|
|
'title': _('Prefixes withdrawn'),
|
|
'unit': '1/s',
|
|
'color': '41/a',
|
|
}
|
|
metric_info['cisco_bgp_peer_suppressedprefixes'] = {
|
|
'title': _('Prefixes suppressed'),
|
|
'unit': '1/s',
|
|
'color': '12/a',
|
|
}
|
|
metric_info['cisco_bgp_peer_inupdates'] = {
|
|
'title': _('Updates received'),
|
|
'unit': '1/s',
|
|
'color': '22/a',
|
|
}
|
|
metric_info['cisco_bgp_peer_outupdates'] = {
|
|
'title': _('Updates send'),
|
|
'unit': '1/s',
|
|
'color': '32/a',
|
|
}
|
|
metric_info['cisco_bgp_peer_intotalmessages'] = {
|
|
'title': _('Total messages received'),
|
|
'unit': '1/s',
|
|
'color': '42/a',
|
|
}
|
|
metric_info['cisco_bgp_peer_outtotalmessages'] = {
|
|
'title': _('Total messages send'),
|
|
'unit': '1/s',
|
|
'color': '13/a',
|
|
}
|
|
metric_info['cisco_bgp_peer_fsmestablishedtransitions'] = {
|
|
'title': _('FSM transitions'),
|
|
'unit': 'count',
|
|
'color': '23/a',
|
|
}
|
|
metric_info['cisco_bgp_peer_fsmestablishedtime'] = {
|
|
'title': _('FSM last change'),
|
|
'unit': 's',
|
|
'color': '26/a',
|
|
}
|
|
metric_info['cisco_bgp_peer_inupdateelapsedtime'] = {
|
|
'title': _('Last update received'),
|
|
'unit': 's',
|
|
'color': '43/a',
|
|
}
|
|
|
|
|
|
######################################################################################################################
|
|
#
|
|
# how to graph perdata for bgp peer
|
|
#
|
|
######################################################################################################################
|
|
|
|
graph_info['cisco_bgp_peer.prefixes_accepted']={
|
|
'title': _('Accepted Prefixes'),
|
|
'metrics': [
|
|
('cisco_bgp_peer_acceptedprefixes', 'line'),
|
|
],
|
|
'scalars': [
|
|
('cisco_bgp_peer_acceptedprefixes:crit', _('crit')),
|
|
('cisco_bgp_peer_acceptedprefixes:warn', _('warn')),
|
|
],
|
|
}
|
|
|
|
graph_info['cisco_bgp_peer.prefixes_per_second']={
|
|
'title': _('Prefixes/s'),
|
|
'metrics': [
|
|
('cisco_bgp_peer_deniedprefixes', 'line'),
|
|
('cisco_bgp_peer_advertisedprefixes', 'line'),
|
|
('cisco_bgp_peer_withdrawnprefixes', 'line'),
|
|
('cisco_bgp_peer_suppressedprefixes', 'line'),
|
|
],
|
|
}
|
|
|
|
|
|
graph_info['cisco_bgp_peer.updates_in_out']={
|
|
'title': _('Updates'),
|
|
'metrics': [
|
|
('cisco_bgp_peer_inupdates', 'area'),
|
|
('cisco_bgp_peer_outupdates', '-area'),
|
|
]
|
|
}
|
|
|
|
graph_info['cisco_bgp_peer.messages_in_out']={
|
|
'title': _('Total messages'),
|
|
'metrics': [
|
|
('cisco_bgp_peer_intotalmessages', 'area'),
|
|
('cisco_bgp_peer_outtotalmessages', '-area'),
|
|
]
|
|
}
|
|
|
|
graph_info['cisco_bgp_peer.fms_transitions_from_to']={
|
|
'title': _('FSM transitions from/to established'),
|
|
'metrics': [
|
|
('cisco_bgp_peer_fsmestablishedtransitions', 'line'),
|
|
],
|
|
}
|
|
|
|
graph_info['cisco_bgp_peer.fms_transitions_last_change']={
|
|
'title': _('FSM established last change'),
|
|
'metrics': [
|
|
('cisco_bgp_peer_fsmestablishedtime', 'line'),
|
|
]
|
|
}
|
|
|
|
graph_info['cisco_bgp_peer.time_since_last_update']={
|
|
'title': _('Time since last update received'),
|
|
'metrics': [
|
|
('cisco_bgp_peer_inupdateelapsedtime', 'line'),
|
|
]
|
|
}
|
|
|
|
######################################################################################################################
|
|
#
|
|
# define perf-o-meter for bgp peer uptime + prefixes accepted/advertised
|
|
#
|
|
######################################################################################################################
|
|
|
|
perfometer_info.append(('stacked', [
|
|
{
|
|
'type': 'logarithmic',
|
|
'metric': 'cisco_bgp_peer_fsmestablishedtime',
|
|
'half_value': 2592000.0, # ome month
|
|
'exponent': 2,
|
|
},
|
|
{
|
|
'type': 'logarithmic',
|
|
'metric': 'cisco_bgp_peer_acceptedprefixes',
|
|
'half_value': 500000.0,
|
|
'exponent': 2,
|
|
}
|
|
]))
|