# 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
Hostname "{{inventory_hostname}}"

# 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
LoadPlugin conntrack
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
<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>

{% 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"
