219a5122fd
This patch adds the support for using Prometheus with Grafana and Collectd. Automated the most panels within the openstack system performance dashboad. To test it: $ansible-playbook -i hosts install/grafana-prometheus-dashboards.yml And make sure add grafana-api-key in the group_vars/all.yml Co-authored-by: Asma Syed Hameed <asyedham@redhat.com> Co-authored-by: Sai Sindhur Malleni <smalleni@redhat.com> Change-Id: Icb9fa058324165c0d304dc1dcf2dd843662307cf
204 lines
4.4 KiB
Django/Jinja
204 lines
4.4 KiB
Django/Jinja
# Installed by Browbeat Ansible Installer
|
|
# Config type: {{config_type}}
|
|
|
|
# Interval default is 10s
|
|
Interval {{collectd_interval}}
|
|
|
|
# Hostname for this machine, if not defined, use gethostname(2) system call
|
|
{% if not collectd_prometheus %}
|
|
Hostname "{{inventory_hostname}}"
|
|
{% endif %}
|
|
|
|
{% if collectd_prometheus %}
|
|
Hostname "{{prometheus_prefix}}_{{inventory_hostname}}"
|
|
{% endif %}
|
|
|
|
# Loaded Plugins:
|
|
LoadPlugin "logfile"
|
|
<Plugin "logfile">
|
|
File "/var/log/collectd.log"
|
|
LogLevel "info"
|
|
PrintSeverity true
|
|
Timestamp true
|
|
</Plugin>
|
|
|
|
LoadPlugin write_graphite
|
|
{% if ceph_storage_collectd_plugin %}
|
|
LoadPlugin ceph
|
|
{% endif %}
|
|
LoadPlugin cpu
|
|
{% if not collectd_prometheus %}
|
|
LoadPlugin conntrack
|
|
{% endif %}
|
|
{% if collectd_prometheus %}
|
|
LoadPlugin network
|
|
{% endif %}
|
|
LoadPlugin df
|
|
LoadPlugin disk
|
|
LoadPlugin exec
|
|
LoadPlugin interface
|
|
LoadPlugin irq
|
|
LoadPlugin load
|
|
LoadPlugin match_regex
|
|
LoadPlugin memory
|
|
LoadPlugin numa
|
|
LoadPlugin processes
|
|
{%if iostat_cephstorage_collectd_plugin %}
|
|
<LoadPlugin python>
|
|
Globals true
|
|
</LoadPlugin>
|
|
{% endif %}
|
|
LoadPlugin swap
|
|
LoadPlugin tail
|
|
LoadPlugin turbostat
|
|
LoadPlugin unixsock
|
|
LoadPlugin uptime
|
|
|
|
# Open unix domain socket for collectdctl
|
|
<Plugin unixsock>
|
|
SocketFile "/var/run/collectd-unixsock"
|
|
SocketGroup "collectd"
|
|
SocketPerms "0770"
|
|
DeleteSocket true
|
|
</Plugin>
|
|
|
|
PreCacheChain "PreCache"
|
|
<Chain "PreCache">
|
|
<Rule "ignore_tap">
|
|
<Match "regex">
|
|
Plugin "^interface$"
|
|
PluginInstance "^tap*"
|
|
</Match>
|
|
Target "stop"
|
|
</Rule>
|
|
<Rule "ignore_interfaces_q">
|
|
<Match "regex">
|
|
Plugin "^interface$"
|
|
PluginInstance "^q.*"
|
|
</Match>
|
|
Target "stop"
|
|
</Rule>
|
|
Target "return"
|
|
</Chain>
|
|
|
|
# Graphite Host Configuration
|
|
{% if collectd_graphite %}
|
|
<Plugin write_graphite>
|
|
<Carbon>
|
|
Host "{{graphite_host}}"
|
|
Port "{{collectd_write_graphite_port}}"
|
|
Prefix "{{graphite_prefix}}."
|
|
Protocol "tcp"
|
|
LogSendErrors true
|
|
StoreRates true
|
|
AlwaysAppendDS false
|
|
EscapeCharacter "_"
|
|
</Carbon>
|
|
</Plugin>
|
|
{% endif %}
|
|
|
|
# Prometheus Host Configuration
|
|
{% if collectd_prometheus %}
|
|
<Plugin network>
|
|
Server "{{prometheus_host}}" "{{prometheus_port}}"
|
|
</Plugin>
|
|
{% endif %}
|
|
|
|
|
|
{% if ceph_storage_collectd_plugin %}
|
|
<Plugin ceph>
|
|
LongRunAvgLatency false
|
|
ConvertSpecialMetricTypes true
|
|
<Daemon "osd.{{inventory_hostname}}.{{cephstorage_osd_socket.stdout}}">
|
|
SocketPath "/var/run/ceph/ceph-osd.{{cephstorage_osd_socket.stdout}}.asok"
|
|
</Daemon>
|
|
</Plugin>
|
|
|
|
{% endif %}
|
|
<Plugin df>
|
|
FSType anon_inodefs
|
|
FSType bdev
|
|
FSType cgroup
|
|
FSType cpuset
|
|
FSType debugfs
|
|
FSType devpts
|
|
FSType devtmpfs
|
|
FSType ecryptfs
|
|
FSType fuse
|
|
FSType fusectl
|
|
FSType hugetlbfs
|
|
FSType mqueue
|
|
FSType nfs
|
|
FSType nfs4
|
|
FSType nfsd
|
|
FSType overlay
|
|
FSType pipefs
|
|
FSType proc
|
|
FSType pstore
|
|
FSType ramfs
|
|
#FSType rootfs
|
|
FSType rpc_pipefs
|
|
FSType securityfs
|
|
FSType sockfs
|
|
FSType sysfs
|
|
FSType tmpfs
|
|
FSType vboxsf
|
|
MountPoint "/^/var/lib/docker/.*/"
|
|
IgnoreSelected true
|
|
ValuesPercentage true
|
|
ReportInodes true
|
|
</Plugin>
|
|
|
|
{%if disk_cephstorage_collectd_plugin %}
|
|
<Plugin disk>
|
|
Disk "/^[hsv]d[a-z]+[0-9]?|nvme.+$/"
|
|
Disk "/^nvm/"
|
|
IgnoreSelected false
|
|
</Plugin>
|
|
|
|
{% endif %}
|
|
{%if iostat_cephstorage_collectd_plugin %}
|
|
<Plugin python>
|
|
ModulePath "/usr/local/bin/"
|
|
Import "collectd_iostat_python"
|
|
|
|
<Module collectd_iostat_python>
|
|
Path "/usr/bin/iostat"
|
|
Interval {{iostat_cephstorage_collectd_interval}}
|
|
IostatInterval 2
|
|
Count 2
|
|
Verbose false
|
|
NiceNames false
|
|
PluginName collectd_iostat_python
|
|
</Module>
|
|
</Plugin>
|
|
|
|
{% endif %}
|
|
# (akrzos) Including the version of OpenStack that the process was verified as running after
|
|
# OpenStack Installation with a comment at the end of each Process/ProcessMatch statement.
|
|
# A Minus before the version means the process was not found in that version. (Ex -9)
|
|
<Plugin processes>
|
|
# Ceph (OpenStack Installed)
|
|
ProcessMatch "ceph-osd" "^/usr/bin/ceph-osd" # 10,11,12
|
|
|
|
# Collectd (Browbeat Installed)
|
|
ProcessMatch "collectd" "/usr/sbin/collectd"
|
|
|
|
# OVS (OpenStack Installed)
|
|
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch" # 10,11,12
|
|
ProcessMatch "ovsdb-server" "ovsdb-server.+openvswitch" # 10,11,12
|
|
</Plugin>
|
|
|
|
<Plugin swap>
|
|
ReportBytes true
|
|
ValuesPercentage true
|
|
</Plugin>
|
|
|
|
# Tail plugin configuration
|
|
<Plugin "tail">
|
|
{# Add ceph logs to tail #}
|
|
</Plugin>
|
|
|
|
# Include other collectd configuration files
|
|
Include "/etc/collectd.d"
|