monasca-agent/conf.d
Matthew Oliver 833e5946fe Add swift_handoffs check plugin to monasca
A powerful metric to watch for a swift cluster is the
number of handoff partitions on a drive on a storage node.

A build up of handoff nodes on a particular server could
indicate a disk problem somewhere in the cluster. A bottleneck
somewhere. Or better, when would be a good time to rebalance
the ring (as you'd want to do it when existing backend data
movement is at a minimum.

So it turns out to be a great visualisation of the health of
a cluster.

That's what this check plugin does. Each instance check takes
the following values:

  ring: <path to a Swift ring file>
  devices: <path to the directory of mountpoints>
  granularity: <either server or device>

To be able to determine primary vs handoff partitions on a drive
the swift ring needs to be consulted. If a storage node stores
more then 1 ring, and an instance would be defined for each.

You give swift a bunch of disks. These disks are placed in what
swift calls the 'devices' location. That is a directory where a
mount point for each mounted swift drive is located.

Finally, you can decide on the granularity, which defaults to
`server` if not defined. Only 2 metrics are created from this
check:

  swift.partitions.primary_count
  swift.partitions.handoff_count

But with the hostname dimension a ring dimension will also be set.
Allowing the graphing of the handoff vs partitions of each ring.
When the granularity is set to device, then an additional
dimension to the metric is added, the device name (the name of
the devices mount point). This allows the graphing and monitoring
of each device in a server if a finer granularity is required.

Because we need to consult the Swift ring there is a runtime
requirement on the Python Swift module being installed. But
this isn't required for the unit tests. Making it a runtime
dependency means when the check is loaded it'll log an error
and then exit if it can't import the swift module.

This is the second of two Swift check plugins I've been working on.
For more details see my blog post[1]

[1] - https://oliver.net.au/?p=358

Change-Id: Ie91add9af39f2ab0e5b575390c0c6355563c0bfc
2019-10-18 17:16:14 +02:00
..
a10_system_check.yaml.example Implements A10 Load Balancer plugin configurations 2017-02-09 10:13:20 -07:00
activemq.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
activemq_58.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
apache.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
cacti.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
cadvisor_host.yaml.example Add Dimensions into White List 2017-05-04 15:40:24 -06:00
cassandra.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
ceph.yaml.example Ceph cluster plugin 2017-06-19 10:11:13 -03:00
check_mk_local.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
couch.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
couchbase.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
cpu.yaml Enable the system metrics in Docker environment 2018-08-22 10:12:38 +02:00
crash.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
directory.yaml.example Fix Directory Check in Agent 2016-02-26 16:03:39 -07:00
disk.yaml Enable the system metrics in Docker environment 2018-08-22 10:12:38 +02:00
docker.yaml.example Improve docker plugin 2016-11-08 14:20:02 -07:00
elastic.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
file_size.yaml.example Add Plugin to Monitor File Size 2016-02-05 13:17:53 -07:00
gearmand.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
gunicorn.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
haproxy.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
hdfs.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
host_alive.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
http_check.yaml.example Allow Keystone config in init_config for http check 2018-04-23 11:11:02 +02:00
http_metrics.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
iis.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
jenkins.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
jmx.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
json_plugin.yaml.example Add json_plugin: simple way to post metrics to Monasca 2016-12-09 14:04:02 +00:00
kafka_consumer.yaml.example Invalid kafka_consumer documentation 2016-09-01 10:39:56 +02:00
kibana.yaml.example Kibana metrics 2016-08-01 08:08:44 +02:00
kubernetes.yaml.example Add container memory percentage metric when running in k8s 2017-12-13 09:46:19 -07:00
kubernetes_api.yaml.example Add Kubernetes API Plugin 2017-04-24 14:23:35 -06:00
kyototycoon.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
libvirt.yaml.example Change template/example of Libvirt config file 2017-08-18 09:04:06 +09:00
lighttpd.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
load.yaml Enable the system metrics in Docker environment 2018-08-22 10:12:38 +02:00
lxc.yaml.example Add LXC swap metric collector and fix lxc bug 2018-03-07 16:54:46 -03:00
mcache.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
memory.yaml Enable the system metrics in Docker environment 2018-08-22 10:12:38 +02:00
mk_livestatus.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
mongo.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
mysql.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
nagios_wrapper.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
network.yaml Add HPE copyright 2016-02-02 10:34:10 -07:00
nginx.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
ntp.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
ovs.yaml.example Fix libvirt plugin when using keystone v3 2017-05-15 22:52:45 +08:00
postfix.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
postgres.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
process.yaml.example Enable the process plugin in Docker environment 2018-07-09 10:57:33 +02:00
prometheus.yaml.example Add prometheus client plugin 2017-05-23 13:02:50 -06:00
rabbitmq.yaml.example Fix RabbitMQ whitelist documentation error 2017-11-14 15:44:27 +00:00
redisdb.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
riak.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
solidfire.yaml.example Add SolidFire Monasca Check Plugin: 2016-08-02 14:55:05 +00:00
solr.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
sqlserver.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
supervisord.yaml.example Porting Supervisord check from DataDog 2016-01-22 10:09:28 -08:00
swift_diags.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
swift_handoffs.yaml.example Add swift_handoffs check plugin to monasca 2019-10-18 17:16:14 +02:00
swift_recon.yaml.example Add swift_recon check plugin to monasca 2019-10-09 19:06:08 +02:00
tcp_check.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
tomcat.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
varnish.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
vcenter.yaml Monasca VMWare vCenter plugin to monitor ESX clusters 2016-01-28 22:09:09 +05:30
vcenter_slim.yaml.example Add a smaller vcenter plugin for status 2017-07-31 09:46:09 -06:00
vertica.yaml.example Rework Vertica plugin 2016-06-06 14:46:27 -06:00
win32_event_log.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
wmi_check.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00
zk.yaml.example Add HPE copyright 2016-02-02 10:34:10 -07:00