Skip to content

Commit

Permalink
Update dj-wasabi.telegraf
Browse files Browse the repository at this point in the history
  • Loading branch information
natefoo committed Oct 4, 2018
1 parent 4fcfff0 commit 6bf8ecf
Show file tree
Hide file tree
Showing 24 changed files with 368 additions and 107 deletions.
35 changes: 35 additions & 0 deletions roles/dj-wasabi.telegraf/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,35 @@
---
name: Bug report
about: Help to improve this Ansible role.

---

**Describe the bug**
<!--- A clear and concise description of what the bug is. -->

**Installation method/version**
<!--- Please provide the installation method and version of the role. -->

* Github / latest
* Ansible Galaxy / 1.1.0

**Ansible Version**

```
<!--- Paste output from "ansible --version" -->
```

**Targetted hosts**
Concerns the following OS(es):
<!--- Pick one below and delete the rest -->

* Ubuntu
* Debian
* CentOS
* Mint

**Expected behavior**
<!--- A clear and concise description of what you expected to happen. -->

**Additional context**
<!--- Add any other context about the problem here. Configuration of the role/group_vars information etc. -->
14 changes: 14 additions & 0 deletions roles/dj-wasabi.telegraf/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,14 @@
---
name: Feature request
about: Suggest an idea for this Ansible role

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Additional context**
Add any other context or screenshots about the feature request here.
2 changes: 1 addition & 1 deletion roles/dj-wasabi.telegraf/.travis.yml
Expand Up @@ -5,7 +5,7 @@ services:
- docker

install:
- pip install molecule ansible docker
- pip install -r requirements.txt

script:
- molecule --version
Expand Down
19 changes: 19 additions & 0 deletions roles/dj-wasabi.telegraf/CHANGELOG.md
Expand Up @@ -5,6 +5,25 @@ Below an overview of all changes in the releases.

Version (Release date)

0.10.0 (2018-08-12)

* Updating to telegraf 1.7.3
* Fix Deprecation warnings #54
* Changed 'include' to 'include_tasks' to remove deprecation warning #53 (By pull request: tjend (Thanks!))
* Add option to remove extra plugin config files #52 (By pull request: tjend (Thanks!))
* Plugins extra hash allow multiple inputs same type #50 (By pull request: tjend (Thanks!))
* Using specific version for tests
* Update minimum Ansible version to 2.4

0.9.0 (2018-05-06)

* plugins: be able to specify the filename of extra plugings #40 (By pull request: gaelL (Thanks!))
* Fix markdown #41 (By pull request: Angristan (Thanks!))
* Allow to override RedHat release version #43 (By pull request: tszym (Thanks!))
* Improved comments, split up role, moved tags and added defaults #45 (By pull request: boxrick (Thanks!))
* Fix Travis Tests #42
* Convert the telegraf_plugins_extra varaible to a hash so that we can … #46 (By pull request: tjend (Thanks!))

0.8.0 (2017-10-30)

* Updating to Molecule V2
Expand Down
3 changes: 3 additions & 0 deletions roles/dj-wasabi.telegraf/CODE_OF_CONDUCT.md
@@ -0,0 +1,3 @@
# Code of Conduct

The Code of Conduct from Ansible found [here](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html) applies to this Ansible role as well.
88 changes: 88 additions & 0 deletions roles/dj-wasabi.telegraf/CONTRIBUTING.md
@@ -0,0 +1,88 @@
# Contributing to this role

**Table of content**

- [Contributing to this role](#contributing-to-this-role)
* [Contributing](#contributing)
* [(local) Development](#-local--development)
+ [Requirements](#requirements)
+ [Execution](#execution)
- [Other](#other)
* [Virtualenv](#virtualenv)
* [Links](#links)

Thank you very much for making time to improve this Ansible role.

## Contributing

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. [Contributor Code of Conduct](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html).

1. Fork the repo

2. Create a branch and apply your changes to this branch.

a. Make sure you have updated the documentation when adding new variables;

b. Don't forget to add/update tests so we can test the functionality during each Pull Request;

c. Make sure the tests will succeed.

3. Push the branch to your fork and submit a pull request.

**Note**

Pull Requests that fails during the tests will not be merged.

## Coding Guidelines

Style guides are important because they ensure consistency in the content, look, and feel of a book or a website.

* [Ansible Style Guide](http://docs.ansible.com/ansible/latest/dev_guide/style_guide/)
* It's "Ansible" when referring to the product and ``ansible`` when referring to the command line tool, package, etc
* Playbooks should be written in multi-line YAML with ``key: value``. The form ``key=value`` is only for ``ansible`` ad-hoc, not for ``ansible-playbook``.
* Tasks should always have a ``name:``

## (local) Development

This role make use of Molecule to test the execution of the role and verificate it. In the root of the repository, a file named `requirements.txt` exists and contains the versions used by the tests.

### Requirements

You can install them with the following command:

```
pip install -r requirements.txt
```

Once the dependencies are installed, please install Docker as Molecule is configured in this repository to create Docker containers. See [this](https://docs.docker.com/install/) link to install Docker on your system.

### Execution

Once everything is installed, you can validate your changes by executing:
```
molecule test
```

It should run without any issues.

# Other

## Virtualenv

Suggestion is to create a virtualenv so you won't have issues with other projects.

Some web pages describing for virtual env:

* http://thepythonguru.com/python-virtualenv-guide/
* https://realpython.com/python-virtual-environments-a-primer/
* https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/

## Links

[Molecule](https://molecule.readthedocs.io/)

[Ansible](https://www.ansible.com/)

[Molecule V2 with your own role](https://werner-dijkerman.nl/2017/09/05/using-molecule-v2-to-test-ansible-roles/)

**End note**: Have fun making changes. If a feature helps you, then others find it helpful too and I will happily have it merged.
21 changes: 21 additions & 0 deletions roles/dj-wasabi.telegraf/LICENSE
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2018 Werner Dijkerman

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
12 changes: 12 additions & 0 deletions roles/dj-wasabi.telegraf/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,12 @@
**Description of PR**
<!--- Describe what the PR holds -->

**Type of change**
<!--- Pick one below and delete the rest: -->

Feature Pull Request
Bugfix Pull Request
Docs Pull Request

**Fixes an issue**
<!--- If this PR fixes an issue, please mention it. -->
35 changes: 25 additions & 10 deletions roles/dj-wasabi.telegraf/README.md
Expand Up @@ -36,6 +36,8 @@ The following parameters can be set for the Telegraf agent:
* `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
* `telegraf_agent_aws_tags`: Configure AWS ec2 tags into Telegraf tags section Default: `False`
* `telegraf_agent_aws_tags_prefix`: Define a prefix for AWS ec2 tags. Default: `""`
* `telegraf_agent_collection_jitter`: Jitter the collection by a random amount. Default: 0 (since v0.13)
* `telegraf_agent_metric_batch_size`: The agent metric batch size. Default: 1000 (since v0.13)
* `telegraf_agent_metric_buffer_limit`: The agent metric buffer limit. Default: 10000 (since v0.13)
Expand Down Expand Up @@ -68,7 +70,7 @@ The config will be printed line by line into the configuration, so you could als

and it will be printed in the configuration file.

There are two properties which are the same, but are used differently. Those are:
There are two properties which are similar, but are used differently. Those are:

* `telegraf_plugins_default`
* `telegraf_plugins_extra`
Expand All @@ -88,11 +90,11 @@ With the property `telegraf_plugins_default` it is set to use the default set of

Every telegraf agent has these as a default configuration.

The 2nd parameter `telegraf_plugins_extra` can be used to add plugins specific to the servers goal. Following is an example for using this parameter for MySQL database servers:
The 2nd parameter `telegraf_plugins_extra` can be used to add plugins specific to the servers goal. It is a hash instead of a list, so that you can merge values from multiple var files together. Following is an example for using this parameter for MySQL database servers:

cat group_vars/mysql_database
telegraf_plugins_extra:
- plugin: mysql
mysql:
config:
- servers = ["root:{{ mysql_root_password }}@tcp(localhost:3306)/"]

Expand Down Expand Up @@ -129,15 +131,28 @@ No dependencies
roles:
- { role: dj-wasabi.telegraf }

##Contributors
## Contributors

The following have contributed to this Ansible role:

* aferrari-technisys
* stvnwrgs
* lhoss
* thecodeassassin
* Ismael
* romainbureau
* Thomas Szymanski
* Alejandro
* Slawomir Skowron
* Ismael
* Laurent Hoss
* Anthony ARNAUD
* Rick Box
* Emerson Knapp
* gaelL
* Steven Wirges
* zend0
* Angristan
* Olivier Boukili
* Romain BUREAU
* TheCodeAssassin
* tjend

Thank you all!

## Molecule

Expand Down
13 changes: 11 additions & 2 deletions roles/dj-wasabi.telegraf/defaults/main.yml
@@ -1,13 +1,15 @@
---
# defaults file for ansible-telegraf

telegraf_agent_version: 1.4.0
telegraf_agent_version: 1.7.3
telegraf_agent_hostname: "{{ ansible_fqdn }}"
telegraf_agent_interval: 10
telegraf_agent_debug: False
telegraf_agent_round_interval: True
telegraf_agent_flush_interval: 10
telegraf_agent_flush_jitter: 0
telegraf_agent_aws_tags: False
telegraf_agent_aws_tags_prefix: ""

# v0.13 settings (not sure if supported in older version):
telegraf_agent_collection_jitter: 0
Expand All @@ -28,6 +30,7 @@ telegraf_agent_output:
- database = "telegraf"
- precision = "s"

# defaults - /etc/telegraf/telegraf.conf
telegraf_plugins_default:
- plugin: cpu
config:
Expand All @@ -39,5 +42,11 @@ telegraf_plugins_default:
- plugin: system
- plugin: swap
- plugin: netstat
- plugin: processes
- plugin: kernel

telegraf_plugins_extra:
# extra configuration - /etc/telegraf/telegraf.d/*
telegraf_plugins_extra: {}

# RedHat specific settings for convenience
telegraf_redhat_releasever: "$releasever"
2 changes: 1 addition & 1 deletion roles/dj-wasabi.telegraf/meta/.galaxy_install_info
@@ -1 +1 @@
{install_date: 'Mon Apr 23 15:26:37 2018', version: 0.8.0}
{install_date: 'Thu Oct 4 19:30:12 2018', version: 0.10.0}
2 changes: 1 addition & 1 deletion roles/dj-wasabi.telegraf/meta/main.yml
Expand Up @@ -4,7 +4,7 @@ galaxy_info:
description: Installing and configuring Telegraf
company:
license: license BSD
min_ansible_version: 1.2
min_ansible_version: 2.4
platforms:
- name: EL
versions:
Expand Down
2 changes: 1 addition & 1 deletion roles/dj-wasabi.telegraf/molecule/default/create.yml
Expand Up @@ -39,7 +39,7 @@
image: "molecule_local/{{ item.image }}"
state: started
recreate: False
log_driver: syslog
log_driver: none
command: "{{ item.command | default('sleep infinity') }}"
privileged: "{{ item.privileged | default(omit) }}"
volumes: "{{ item.volumes | default(omit) }}"
Expand Down
7 changes: 6 additions & 1 deletion roles/dj-wasabi.telegraf/molecule/default/molecule.yml
Expand Up @@ -13,8 +13,13 @@ platforms:
image: milcom/centos7-systemd
privileged: True
- name: telegraf-debian
image: maint/debian-systemd
image: minimum2scp/systemd-stretch
privileged: True
command: /sbin/init
- name: telegraf-ubuntu
image: solita/ubuntu-systemd:bionic
privileged: True
command: /sbin/init

provisioner:
name: ansible
Expand Down
17 changes: 12 additions & 5 deletions roles/dj-wasabi.telegraf/molecule/default/playbook.yml
Expand Up @@ -4,12 +4,19 @@
- name: "Installing which on CentOS"
yum:
name: which
state: installed
when: ansible_distribution == 'CentOS'
state: present
when:
- ansible_os_family == 'RedHat'

- name: "Installing wget on Debian"
apt:
name: wget
state: installed
when: ansible_distribution == 'Debian'
name: "{{ item }}"
state: present
when:
- ansible_os_family == 'Debian'
with_items:
- wget
- gpg

roles:
- role: ansible-telegraf
2 changes: 1 addition & 1 deletion roles/dj-wasabi.telegraf/molecule/default/yaml-lint.yml
Expand Up @@ -4,6 +4,6 @@ extends: default

rules:
line-length:
max: 120
max: 140
level: warning
truthy: disable
4 changes: 4 additions & 0 deletions roles/dj-wasabi.telegraf/requirements.txt
@@ -0,0 +1,4 @@
ansible==2.4.4.0
docker==3.3.0
molecule==2.13.1
testinfra==1.12.0

0 comments on commit 6bf8ecf

Please sign in to comment.