ansible-collection-prometheus/roles/mysqld_exporter/templates/mysqld_exporter.service.j2
SuperQ af8fc8fd9e
feat: Add mysqld_exporter role
Add a role for deploying the mysqld_exporter.

Signed-off-by: SuperQ <superq@gmail.com>
2023-03-13 21:08:38 +01:00

55 lines
1.7 KiB
Django/Jinja

{{ ansible_managed | comment }}
[Unit]
Description=Prometheus MySQLd Exporter
After=network-online.target
[Service]
Type=simple
User={{ mysqld_exporter_system_user }}
Group={{ mysqld_exporter_system_group }}
ExecStart={{ mysqld_exporter_binary_install_dir }}/mysqld_exporter \
{% for collector in mysqld_exporter_enabled_collectors -%}
{% if not collector is mapping %}
--collect.{{ collector }} \
{% else -%}
{% set name, options = (collector.items()|list)[0] -%}
--collect.{{ name }} \
{% for k,v in options|dictsort %}
--collect.{{ name }}.{{ k }}={{ v | quote }} \
{% endfor -%}
{% endif -%}
{% endfor -%}
{% for collector in mysqld_exporter_disabled_collectors %}
--no-collect.{{ collector }} \
{% endfor %}
{% if mysqld_exporter_tls_server_config | length > 0 or mysqld_exporter_http_server_config | length > 0 or mysqld_exporter_basic_auth_users | length > 0 %}
--web.config.file={{ mysqld_exporter_config_dir }}/web_config.yaml \
{% endif %}
--web.listen-address={{ mysqld_exporter_web_listen_address }} \
--web.telemetry-path={{ mysqld_exporter_web_telemetry_path }} \
--config.my-cnf={{ mysqld_exporter_config_dir }}/{{ mysqld_exporter_config_file }}
SyslogIdentifier=mysqld_exporter
Restart=always
RestartSec=1
StartLimitInterval=0
{% set protect_home = 'yes' %}
{% for m in ansible_mounts if m.mount.startswith('/home') %}
{% set protect_home = 'read-only' %}
{% endfor %}
ProtectHome={{ protect_home }}
NoNewPrivileges=yes
{% if (ansible_facts.packages.systemd | first).version is version('232', '>=') %}
ProtectSystem=strict
ProtectControlGroups=true
ProtectKernelModules=true
ProtectKernelTunables=yes
{% else %}
ProtectSystem=full
{% endif %}
[Install]
WantedBy=multi-user.target