From c15e3a9d152b0b19267ba8fd5eb1670753479e07 Mon Sep 17 00:00:00 2001
From: jurgenhaas <juergen@paragon-es.de>
Date: Wed, 14 Mar 2018 18:48:19 +0100
Subject: [PATCH] ansible-roles/fluentd-client#4 Moior FluentD buffer

---
 tasks/install.yml                 | 18 ++++++++++++++++
 templates/fluentd_buffer.chart.sh | 34 +++++++++++++++++++++++++++++++
 templates/fluentd_buffer.conf     | 10 +++++++++
 3 files changed, 62 insertions(+)
 create mode 100644 templates/fluentd_buffer.chart.sh
 create mode 100644 templates/fluentd_buffer.conf

diff --git a/tasks/install.yml b/tasks/install.yml
index ae83c36..69d366d 100644
--- a/tasks/install.yml
+++ b/tasks/install.yml
@@ -28,3 +28,21 @@
   args:
     chdir: /opt/{{ netdata_local_archive|default('netdata') }}
   when: netdata_clone.changed or netdata_extract.changed
+
+- name: "Install Custom Charts"
+  template:
+    src: '{{ item }}.chart.sh'
+    dest: '/usr/libexec/netdata/charts.d/{{ item }}.chart.sh'
+  with_items:
+    - 'fluentd_buffer'
+  notify:
+    - "Restart NetData"
+
+- name: "Install Custom Alerts"
+  template:
+    src: '{{ item }}.conf'
+    dest: '/etc/netdata/health.d/{{ item }}.conf'
+  with_items:
+    - 'fluentd_buffer'
+  notify:
+    - "Restart NetData"
diff --git a/templates/fluentd_buffer.chart.sh b/templates/fluentd_buffer.chart.sh
new file mode 100644
index 0000000..17ff950
--- /dev/null
+++ b/templates/fluentd_buffer.chart.sh
@@ -0,0 +1,34 @@
+fluentd_buffer_update_every=5
+fluentd_buffer_priority=12000
+fluentd_buffer_value1=0
+fluentd_buffer_last=0
+fluentd_buffer_count=0
+
+fluentd_buffer_get() {
+  fluentd_buffer_value1=$(find /var/log/td-agent/buffer -type f | wc -l)
+  return 0
+}
+
+fluentd_buffer_check() {
+  return 0
+}
+
+fluentd_buffer_create() {
+  cat <<EOF
+CHART fluentd_buffer.files '' "Files in buffer" "files" fluentd fluentd.countfiles line $((fluentd_buffer_priority + 1)) $fluentd_buffer_update_every
+DIMENSION countfiles '' absolute 1 1
+EOF
+  return 0
+}
+
+fluentd_buffer_update() {
+  fluentd_buffer_get || return 1
+
+  cat <<VALUESEOF
+BEGIN fluentd_buffer.files $1
+SET countfiles = $fluentd_buffer_value1
+END
+VALUESEOF
+
+  return 0
+}
diff --git a/templates/fluentd_buffer.conf b/templates/fluentd_buffer.conf
new file mode 100644
index 0000000..2bf2442
--- /dev/null
+++ b/templates/fluentd_buffer.conf
@@ -0,0 +1,10 @@
+template: fluentd_buffer_files
+      on: fluentd_buffer.files
+    calc: $this
+   green: 15
+     red: 20
+   every: 10s
+    warn: $this > $green
+    crit: $this > $red
+    info: files in buffer
+      to: sysadmin
-- 
GitLab