Skip to content

Commit ebc607c

Browse files
Telegraf graphite (#375)
Telegraf graphite graphite output Reviewed-by: Anton Kachurin <[email protected]> Reviewed-by: Polina Gubina <None> Reviewed-by: Irina Pereiaslavskaia <None> Reviewed-by: None <None>
1 parent 2f6e50a commit ebc607c

File tree

4 files changed

+108
-1
lines changed

4 files changed

+108
-1
lines changed

inventory/prod/group_vars/all.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ kms_key: csm_kms_key
77
ansible_ssh_user: linux
88
ansible_ssh_private_key_file: "{{ local_private_key }}"
99
container_name: "csm"
10+
telegraf_graphite_url: localhost:2003
11+
telegraf_graphite_env: production_eu-de

playbooks/lb_monitoring_setup.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,30 @@
5050
wait_for_connection:
5151
timeout: 250
5252

53+
- name: Install telegraf client on nodes
54+
hosts: gatewayed
55+
become: yes
56+
roles:
57+
- role: telegraf_client
58+
vars:
59+
telegraf_graphite: true
60+
telegraf_graphite_urls:
61+
- "{{ telegraf_graphite_url }}"
62+
telegraf_graphite_prefix: "stats.system.csm.{{ telegraf_graphite_env }}"
63+
telegraf_graphite_template: host.tags.measurement.field
64+
telegraf_plugins_base:
65+
- name: cpu
66+
options:
67+
percpu: "false"
68+
totalcpu: "true"
69+
fielddrop:
70+
- "time_*"
71+
- name: net
72+
options:
73+
interfaces:
74+
- "lo"
75+
- "ens3"
76+
5377
- name: Setup nginx for TCP, HTTP, HTTPS connections
5478
hosts: gatewayed
5579
become: yes

roles/telegraf_client/defaults/main.yaml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,30 @@ telegraf_hostname:
1717
telegraf_omit_hostname: "false"
1818
telegraf_install_url:
1919

20+
telegraf_influxdb: false
2021
telegraf_influxdb_urls: []
2122
telegraf_influxdb_database: telegraf
2223
telegraf_influxdb_precision: s
2324
telegraf_influxdb_retention_policy: autogen
2425
telegraf_influxdb_write_consistency: any
25-
2626
telegraf_influxdb_timeout: 5s
2727
telegraf_influxdb_username:
2828
telegraf_influxdb_password:
2929
telegraf_influxdb_user_agent:
3030
telegraf_influxdb_udp_payload:
3131

32+
telegraf_graphite: false
33+
telegraf_graphite_urls: []
34+
telegraf_graphite_prefix:
35+
telegraf_graphite_template:
36+
telegraf_graphite_templates:
37+
telegraf_graphite_tag_support:
38+
telegraf_graphite_separator: "."
39+
telegraf_graphite_tls_ca:
40+
telegraf_graphite_tls_cert:
41+
telegraf_graphite_tls_key:
42+
telegraf_graphite_insecure_skip_verify:
43+
3244
telegraf_plugins_base:
3345
- name: mem
3446
- name: cpu

roles/telegraf_client/templates/telegraf.conf.j2

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
###############################################################################
2828

2929
[outputs]
30+
{% if telegraf_influxdb == true %}
3031
[[outputs.influxdb]]
3132
urls = [ "{{ telegraf_influxdb_urls|join('","') }}" ] # required
3233
database = "{{ telegraf_influxdb_database }}" # required
@@ -49,7 +50,75 @@
4950
{% if telegraf_influxdb_udp_payload is defined and telegraf_influxdb_udp_payload != None %}
5051
udp_payload = {{ telegraf_influxdb_udp_payload }}
5152
{% endif %}
53+
{% endif %}
54+
55+
{% if telegraf_graphite == true %}
56+
[[outputs.graphite]]
57+
# TCP endpoint for your graphite instance.
58+
# If multiple endpoints are configured, the output will be load balanced.
59+
# Only one of the endpoints will be written to with each iteration.
60+
servers = [ "{{ telegraf_graphite_urls|join('","') }}" ]
61+
62+
# Prefix metrics name
63+
{% if telegraf_graphite_prefix is defined and telegraf_graphite_prefix != None %}
64+
prefix = "{{ telegraf_graphite_prefix }}"
65+
{% else %}
66+
prefix = ""
67+
{% endif %}
68+
69+
# Graphite output template
70+
# see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
71+
{% if telegraf_graphite_template is defined and telegraf_graphite_template != None %}
72+
template = "{{ telegraf_graphite_template }}"
73+
{% else %}
74+
template = "host.tags.measurement.field"
75+
{% endif %}
76+
77+
# Graphite templates patterns
78+
# 1. Template for cpu
79+
# 2. Template for disk*
80+
# 3. Template for net
81+
# 4. Default template
82+
{% if telegraf_graphite_templates is defined and telegraf_graphite_templates != None %}
83+
templates = "{{ telegraf_graphite_templates }}"
84+
{% else %}
85+
templates = [
86+
"cpu host.measurement.field",
87+
"disk* host.measurement.tags.field",
88+
"net host.measurement.tags.field",
89+
"mem host.tags.measurement.field",
90+
"host.tags.measurement.field"
91+
]
92+
{% endif %}
5293

94+
# Enable Graphite tags support
95+
{% if telegraf_graphite_tag_support is defined and telegraf_graphite_tag_support != None %}
96+
template = "{{ telegraf_graphite_tag_support }}"
97+
{% else %}
98+
graphite_tag_support = false
99+
{% endif %}
100+
101+
# Character for separating metric name and field for Graphite tags
102+
graphite_separator = "{{ telegraf_graphite_separator }}"
103+
104+
# timeout in seconds for the write connection to graphite
105+
timeout = 5
106+
107+
# Optional TLS Config
108+
{% if telegraf_graphite_tls_ca is defined and telegraf_graphite_tls_ca != None %}
109+
tls_ca = "{{ telegraf_graphite_tls_ca }}"
110+
{% endif %}
111+
{% if telegraf_graphite_tls_cert is defined and telegraf_graphite_tls_cert != None %}
112+
tls_cert = "{{ telegraf_graphite_tls_cert }}"
113+
{% endif %}
114+
{% if telegraf_graphite_tls_key is defined and telegraf_graphite_tls_key != None %}
115+
tls_key = "{{ telegraf_graphite_tls_key }}"
116+
{% endif %}
117+
# Use TLS but skip chain & host verification
118+
{% if telegraf_graphite_insecure_skip_verify is defined and telegraf_graphite_insecure_skip_verify != None %}
119+
insecure_skip_verify = "{{ telegraf_graphite_insecure_skip_verify }}"
120+
{% endif %}
121+
{% endif %}
53122
###############################################################################
54123
# PLUGINS #
55124
###############################################################################

0 commit comments

Comments
 (0)