14 Commits
0.1.0 ... 0.3.0

Author SHA1 Message Date
720e9c94da Updated documentation and changelog for new version 2016-01-13 15:55:16 +01:00
ec993c2066 Made it work with telegraf 0.10.0 2016-01-13 15:50:54 +01:00
fabb511365 Updated CHANGELOG; added Gemfile.lock; Added aferrari-technisys as contributor 2015-11-14 16:08:31 +01:00
6f7d970595 Fixed kitchen test setup 2015-11-14 14:43:29 +01:00
18cfcd8cff Adding "net" to be used 2015-11-01 12:12:38 +01:00
5692928cb3 Removed options 2015-11-01 08:31:32 +01:00
aa391d97f9 Merge pull request #2 from aferrari-technisys/master
Update etc-opt-telegraf-telegraf.conf.j2
2015-10-29 15:31:39 +01:00
64f62c8dc5 Update etc-opt-telegraf-telegraf.conf.j2
Fix missing line into config result after apply template
2015-10-29 10:10:06 -03:00
8a869e7a0e Merge pull request #1 from aferrari-technisys/master
Improvement and upgrade for v0.2.0 of telegraf
2015-10-29 14:00:31 +01:00
ef8ecffbdf Update etc-opt-telegraf-telegraf.conf.j2
Added Specifications to Extra section too.
2015-10-29 09:56:35 -03:00
37f3a8e208 Update main.yml
Moved procstat to EXTRA section that need custom process name that can apply only in some hosts
2015-10-29 09:55:44 -03:00
a3951d52a8 Update README.md
Updated Readme for 0.2.0 version
2015-10-29 09:54:51 -03:00
3f7f83cfc4 Added iteration for specifications
with procstats plugin a new config value exist called "specifications" is similar to config but this plugin call specifications.
2015-10-29 09:49:39 -03:00
677950be23 Updated version and added plugins
Updated for 0.2.0 version and added plugins netstat and procstat that has new  "specifications" params
2015-10-29 09:47:54 -03:00
9 changed files with 236 additions and 13 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
.kitchen/
.kitchen.local.yml
.idea/
pmip

View File

@ -1,14 +1,17 @@
---
driver:
name: docker
provision_command: sed -i '/tsflags=nodocs/d' /etc/yum.conf
provisioner:
name: ansible_playbook
ansible_yum_repo: "http://mirror.logol.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm"
hosts: localhost
require_chef_for_busser: false
require_ruby_for_busser: true
platforms:
- name: centos-6.6
- name: centos-6.7
verifier:
ruby_bindir: '/usr/bin'

View File

@ -5,6 +5,18 @@ Below an overview of all changes in the releases.
Version (Release date)
0.3.0 (2016-01-13)
* Made it work with telegraf 0.10.0
* Default installation: 0.10.0
0.2.0 (2015-11-14)
* Fixed kitchen test setup
* Adding "net" to the telegraf_plugins_default property
* Update etc-opt-telegraf-telegraf.conf.j2 #2 (By pull request: aferrari-technisys (Thanks!))
* Improvement and upgrade for v0.2.0 of telegraf #1 (By pull request: aferrari-technisys (Thanks!))
0.1.0 (2015-09-23)
* Updated `telegraf_agent_version` to 0.1.9

41
Gemfile.lock Normal file
View File

@ -0,0 +1,41 @@
GEM
remote: https://rubygems.org/
specs:
faraday (0.9.2)
multipart-post (>= 1.2, < 3)
highline (1.7.8)
kitchen-ansible (0.0.30)
librarian-ansible
test-kitchen
kitchen-docker (2.3.0)
test-kitchen (>= 1.0.0)
librarian (0.1.2)
highline
thor (~> 0.15)
librarian-ansible (1.0.6)
faraday
librarian (~> 0.1.0)
mixlib-shellout (2.2.3)
multipart-post (2.0.0)
net-scp (1.2.1)
net-ssh (>= 2.6.5)
net-ssh (2.9.2)
safe_yaml (1.0.4)
test-kitchen (1.4.2)
mixlib-shellout (>= 1.2, < 3.0)
net-scp (~> 1.1)
net-ssh (~> 2.7, < 2.10)
safe_yaml (~> 1.0)
thor (~> 0.18)
thor (0.19.1)
PLATFORMS
ruby
DEPENDENCIES
kitchen-ansible
kitchen-docker
test-kitchen
BUNDLED WITH
1.10.6

View File

@ -19,11 +19,12 @@ Role Variables
The following parameters can be set for the Telegraf agent:
* `telegraf_agent_version`: The version of Telegraf to install. Default: `0.1.9`
* `telegraf_agent_version`: The version of Telegraf to install. Default: `0.10.0`
* `telegraf_agent_interval`: The interval configured for sending data to the server. Default: `10`
* `telegraf_agent_debug`: Setting the Telegraf in debug mode. Default: `False`
* `telegraf_agent_utc`: Option for outputting data in UTC. Default: `True`
* `telegraf_agent_precision`: Precision to write data at. Valid values for Precision are n, u, ms, s, m, and h. Default: `s`
* `telegraf_agent_round_interval`: Rounds collection interval to 'interval' Default: True
* `telegraf_agent_flush_interval`: Default data flushing interval for all outputs. Default: 10
* `telegraf_agent_flush_jitter`: Jitter the flush interval by a random amount. Default: 0
You can set tags for the host running telegraf:
@ -36,7 +37,7 @@ Specifying an output. The default is set to localhost, you'll have to specify th
telegraf_agent_output:
- type: influxdb
config:
- url = "http://localhost:8086"
- urls = ["http://localhost:8086"]
- database = "telegraf"
The config will be printed line by line into the configuration, so you could also use:
@ -62,6 +63,7 @@ With the property `telegraf_plugins_default` it is set to use the default set of
- plugin: mem
- plugin: system
- plugin: swap
- plugin: netstat
Every telegraf agent has these as an default configuration.
@ -104,6 +106,12 @@ Example Playbook
roles:
- { role: dj-wasabi.telegraf }
##Contributors
The following have contributed to this Ansible role:
* aferrari-technisys
Test Kitchen
------------

View File

@ -1,19 +1,21 @@
---
# defaults file for ansible-telegraf
telegraf_agent_version: 0.1.9
telegraf_agent_version: 0.10.0
telegraf_agent_interval: 10
telegraf_agent_debug: False
telegraf_agent_utc: True
telegraf_agent_precision: s
telegraf_agent_round_interval: True
telegraf_agent_flush_interval: 10
telegraf_agent_flush_jitter: 0
telegraf_agent_tags:
telegraf_agent_output:
- type: influxdb
config:
- url = "http://localhost:8086"
- urls = ["http://localhost:8086"]
- database = "telegraf"
- precision = "s"
telegraf_plugins_default:
- plugin: cpu
@ -22,7 +24,13 @@ telegraf_plugins_default:
- plugin: disk
- plugin: io
- plugin: mem
- plugin: net
- plugin: system
- plugin: swap
- plugin: netstat
telegraf_plugins_extra:
- plugin: procstat
specifications:
- prefix = "" # optional string to prefix measurements
- exe = "java" # the name as pgrep can find

View File

@ -9,12 +9,28 @@
include: "Debian.yml"
when: ansible_os_family == "Debian"
- name: "Copy the template"
- name: "Set fact by remove the dots from version"
action: set_fact
telegraf_ver="{{ telegraf_agent_version.replace('.','') }}"
- name: "Copy the template for versions < 0.10.0"
action: template
src=etc-opt-telegraf-telegraf.conf.j2
dest=/etc/opt/telegraf/telegraf.conf
owner=root
group=root
mode=644
when: telegraf_ver < 100
sudo: yes
notify: "Restart Telegraf"
- name: "Copy the template for versions >= 0.10.0"
action: template
src=telegraf.conf.j2
dest=/etc/telegraf/telegraf.conf
owner=root
group=root
mode=644
when: telegraf_ver >= 100
sudo: yes
notify: "Restart Telegraf"

View File

@ -12,8 +12,6 @@
interval = "{{ telegraf_agent_interval }}s"
debug = {{ telegraf_agent_debug | lower }}
hostname = "{{ ansible_fqdn }}"
utc = {{ telegraf_agent_utc | lower }}
precision = "{{ telegraf_agent_precision }}"
# Configuration for influxdb server to send metrics to
[outputs]
@ -62,6 +60,13 @@
{{ items }}
{% endfor %}
{% endif %}
{% if item.specifications is defined and item.specifications is iterable %}
[[{{item.plugin}}.specifications]]
{% for items in item.specifications %}
{{ items }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
@ -101,6 +106,12 @@
{{ items }}
{% endfor %}
{% endif %}
{% if item.specifications is defined and item.specifications is iterable %}
[[{{item.plugin}}.specifications]]
{% for items in item.specifications %}
{{ items }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}

123
templates/telegraf.conf.j2 Normal file
View File

@ -0,0 +1,123 @@
# Telegraf configuration
[tags]
{% if telegraf_agent_tags is defined and telegraf_agent_tags is iterable %}
{% for item in telegraf_agent_tags %}
{{ item.tag_name }} = "{{ item.tag_value }}"
{% endfor %}
{% endif %}
# Configuration for telegraf agent
[agent]
interval = "{{ telegraf_agent_interval }}s"
debug = {{ telegraf_agent_debug | lower }}
hostname = "{{ ansible_fqdn }}"
round_interval = {{ telegraf_agent_round_interval | lower }}
flush_interval = "{{ telegraf_agent_flush_interval }}s"
flush_jitter = "{{ telegraf_agent_flush_jitter }}s"
###############################################################################
# OUTPUTS #
###############################################################################
{% if telegraf_agent_output is defined and telegraf_agent_output is iterable %}
{% for item in telegraf_agent_output %}
[[outputs.{{ item.type }}]]
{% for items in item.config %}
{{ items }}
{% endfor %}
{% endfor %}
{% endif %}
###############################################################################
# INPUTS #
###############################################################################
{% if telegraf_plugins_default is defined and telegraf_plugins_default is iterable %}
{% for item in telegraf_plugins_default %}
[[inputs.{{ item.plugin }}]]
{% if item.interval is defined %}
interval = "{{ item.interval }}s"
{% endif %}
{% if item.config is defined and item.config is iterable %}
{% for items in item.config %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagpass is defined and item.tagpass is iterable %}
[{{ item.plugin }}.tagpass]
{% for items in item.tagpass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagdrop is defined and item.tagdrop is iterable %}
[{{ item.plugin }}.tagdrop]
{% for items in item.tagdrop %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.pass is defined and item.pass is iterable %}
[{{ item.plugin }}.pass]
{% for items in item.pass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.drop is defined and item.drop is iterable %}
[{{ item.plugin }}.drop]
{% for items in item.drop %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.specifications is defined and item.specifications is iterable %}
[[{{item.plugin}}.specifications]]
{% for items in item.specifications %}
{{ items }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
{% if telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable %}
{% for item in telegraf_plugins_extra %}
[[inputs.{{ item.plugin }}]]
{% if item.interval is defined %}
interval = "{{ item.interval }}s"
{% endif %}
{% if item.config is defined and item.config is iterable %}
{% for items in item.config %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagpass is defined and item.tagpass is iterable %}
[{{ item.plugin }}.tagpass]
{% for items in item.tagpass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagdrop is defined and item.tagdrop is iterable %}
[{{ item.plugin }}.tagdrop]
{% for items in item.tagdrop %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.pass is defined and item.pass is iterable %}
[{{ item.plugin }}.pass]
{% for items in item.pass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.drop is defined and item.drop is iterable %}
[{{ item.plugin }}.drop]
{% for items in item.drop %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.specifications is defined and item.specifications is iterable %}
[[{{item.plugin}}.specifications]]
{% for items in item.specifications %}
{{ items }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}