Skip to content

Commit

Permalink
Ansible Role for deploying grafana-agent
Browse files Browse the repository at this point in the history
Signed-off-by: Adam Kraitman <[email protected]>
  • Loading branch information
akraitman committed Mar 26, 2024
1 parent 30e68a8 commit 978d5cb
Show file tree
Hide file tree
Showing 6 changed files with 110 additions and 0 deletions.
6 changes: 6 additions & 0 deletions grafana_agent.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
- hosts: all
strategy: free
roles:
- grafana_agent
become: true
7 changes: 7 additions & 0 deletions roles/grafana_agent/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
# Mimir URL and creds
agent_mimir_url: "http://sepia-grafana.front.sepia.ceph.com:9009/api/v1/push"
agent_mimir_username: "admin"

scrape_interval_global: "60s"
scrape_interval_node: "30s"
6 changes: 6 additions & 0 deletions roles/grafana_agent/handlers/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
- name: "Restart grafana agent instance"
become: true
ansible.builtin.service:
name: "grafana-agent"
state: "restarted"
3 changes: 3 additions & 0 deletions roles/grafana_agent/meta/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
dependencies:
- role: secrets
55 changes: 55 additions & 0 deletions roles/grafana_agent/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
- name: Include secrets
include_vars: "{{ secrets_path | mandatory }}/mimir_password.yml"
no_log: true
tags:
- always

- name: "Import Grafana GPG key"
become: true
ansible.builtin.apt_key:
url: "https://apt.grafana.com/gpg.key"
state: "present"
when: ansible_pkg_mgr == "apt"

- name: "Add Grafana's repository to APT sources list"
become: true
ansible.builtin.apt_repository:
repo: "deb https://apt.grafana.com stable main"
state: present
when: ansible_pkg_mgr == "apt"

- name: "Add Grafana's repository to yum/dnf systems"
become: true
ansible.builtin.yum_repository:
baseurl: "https://rpm.grafana.com"
name: "grafana"
description: "grafana"
gpgcheck: true
gpgkey: "https://rpm.grafana.com/gpg.key"
state: present
when: ansible_os_family == "RedHat"

- name: "Install grafana-agent"
become: true
ansible.builtin.package:
name: "grafana-agent"
state: "present"

- name: "Enable grafana-agent"
become: true
ansible.builtin.service:
name: "grafana-agent"
state: "started"
enabled: true

# Deploy config file from template and restart the agent
- name: "Configure agent"
become: true
ansible.builtin.template:
src: "templates/grafana-agent.yaml.j2"
dest: "/etc/grafana-agent.yaml"
mode: "0440"
owner: "root"
group: "grafana-agent"
notify: "Restart grafana agent instance"
33 changes: 33 additions & 0 deletions roles/grafana_agent/templates/grafana-agent.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
server:
log_level: info

metrics:
global:
remote_write:
- url: {{ agent_mimir_url }}
basic_auth:
username: {{ agent_mimir_username }}
password: {{ agent_mimir_password }}
queue_config:
max_backoff: 5m
external_labels:
nodetype: unknown_nodetype
ingest_instance: {{ inventory_hostname }}
scrape_interval: {{ scrape_interval_global }}
configs:
- name: {{ inventory_hostname }}
scrape_configs:
- job_name: 'grafana-agent-exporter'
relabel_configs:
- source_labels: [__address__]
target_label: instance
replacement: {{ inventory_hostname }}

integrations:
node_exporter:
enabled: true
scrape_interval: {{ scrape_interval_node }}
instance: {{ inventory_hostname }}
rootfs_path: /
sysfs_path: /sys
procfs_path: /proc

0 comments on commit 978d5cb

Please sign in to comment.