Skip to content

Commit a3e32b0

Browse files
authored
Merge pull request #11 from remerge/kafka-exporter
Add Kafka exporter
2 parents f17325b + 3703f24 commit a3e32b0

File tree

13 files changed

+440
-214
lines changed

13 files changed

+440
-214
lines changed

.copier-answers.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
# Changes here will be overwritten by Copier
3-
_commit: v0.39.1
3+
_commit: v0.44.2-14-gd32fad2
44
_src_path: gh:remerge/template
55
deploy_branch: production
66
google_cloud_gke_master_subnet: null
@@ -14,14 +14,10 @@ project_name: Ansible Role for Kafka
1414
project_owner: sre
1515
project_type: ansible-role
1616
use_ansible: false
17-
use_consul: false
1817
use_docker: false
1918
use_golang: false
2019
use_google_cloud_compute: false
21-
use_google_cloud_dns: false
2220
use_google_cloud_gke: false
23-
use_google_cloud_public_dns: false
24-
use_nomad: false
2521
use_python: true
2622
use_terraform: false
2723
use_terraform_google: false

.envrc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ dotenv_if_exists
1616
PATH_add "${PWD}/bin"
1717

1818
# Load poetry virtual env
19-
export POETRY_ACTIVE=1 && poetry run true
20-
export VIRTUAL_ENV="$(poetry env info --path)"
19+
VIRTUAL_ENV="$(poetry env info --path)"
20+
export VIRTUAL_ENV POETRY_ACTIVE=1
2121
PATH_add "${VIRTUAL_ENV}/bin"

.pre-commit-config.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ repos:
3939

4040
# https://github.com/igorshubovych/markdownlint-cli/tags
4141
- repo: https://github.com/igorshubovych/markdownlint-cli
42-
rev: "v0.32.2"
42+
rev: "v0.33.0"
4343
hooks:
4444
- id: markdownlint-fix
4545
name: markdownlint
4646

4747
# https://github.com/adrienverge/yamllint/tags
4848
- repo: https://github.com/adrienverge/yamllint
49-
rev: "v1.28.0"
49+
rev: "v1.29.0"
5050
hooks:
5151
- id: yamllint
5252
entry: yamllint --strict
@@ -71,7 +71,7 @@ repos:
7171

7272
# https://github.com/ansible/ansible-lint/tags
7373
- repo: https://github.com/ansible/ansible-lint
74-
rev: "v6.10.2"
74+
rev: "v6.11.0"
7575
hooks:
7676
- id: ansible-lint
7777
name: ansible-lint
@@ -91,14 +91,14 @@ repos:
9191

9292
# https://github.com/bridgecrewio/checkov/tags
9393
- repo: https://github.com/bridgecrewio/checkov
94-
rev: "2.2.229"
94+
rev: "2.2.281"
9595
hooks:
9696
- id: checkov
9797
name: checkov
9898
args: [--config-file=.checkov.yml]
9999

100100
# https://github.com/jorisroovers/gitlint/tags
101101
- repo: https://github.com/jorisroovers/gitlint
102-
rev: "v0.18.0"
102+
rev: "v0.19.0dev"
103103
hooks:
104104
- id: gitlint

CONTRIBUTING.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ recommended to install Ansible with [pipx](https://pypa.github.io/pipx/):
4848
```shell
4949
pipx install --include-deps ansible
5050
pipx inject --include-apps ansible ansible-lint
51-
pipx inject ansible netaddr
5251
```
5352

5453
You can update all your pipx packages, including Ansible and all injected

defaults/exporter.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
kafka_exporter_version: "1.6.0"
3+
kafka_exporter_archive: "kafka_exporter-{{ kafka_exporter_version }}.linux-amd64"
4+
kafka_exporter_checksum: "sha512:18a52a92f8c1ef06175f2cb7e12b81aed75b4a87884fb3c3120c6671e2b25e3a3b52dda02eb952ba22f892598c8a47c474b625d481701d83382650c8b4616550"
5+
kafka_exporter_url: "https://github.com/danielqsj/kafka_exporter/releases/download/v{{ kafka_exporter_version }}/kafka_exporter-{{ kafka_exporter_version }}.linux-amd64.tar.gz"

defaults/main.yml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,20 @@
11
---
2-
# Kafka Version
32
scala_version: "2.13"
4-
kafka_version: "3.3.1"
5-
jmx_exporter_version: "0.17.2"
3+
kafka_version: "3.3.2"
64
kafka_archive: "kafka_{{ scala_version }}-{{ kafka_version }}"
7-
jmx_exporter_archive: "jmx_prometheus_javaagent-{{ jmx_exporter_version }}"
8-
kafka_checksum: "sha512:d14d9cc97d1702649b33378f38060c4a6220850a3d7182d1af20e905cb98728e51f2aeec63121f5773a389d6b66891b7508e5d23584dd1a4e424825e3d54e3e0"
9-
jmx_exporter_checksum: "sha1:614e3c13696f1df9f87640a67c80dc3d5a7f9619"
5+
kafka_checksum: "sha512:f56657105a67f6195c1d4795b5fb4a00fc5e2f5cce061d7f7a504063778187b325c6fbe51d7c59f57cd7ef323a37d4c2c780c27a5609a2008852cbfa944287b3"
106
kafka_url: "https://downloads.apache.org/kafka/{{ kafka_version }}/{{ kafka_archive }}.tgz"
7+
8+
jmx_exporter_version: "0.17.2"
9+
jmx_exporter_archive: "jmx_prometheus_javaagent-{{ jmx_exporter_version }}"
10+
jmx_exporter_checksum: "sha512:26ce9bfae04be23bd41c5e7b97fe2e6b98bf3311734523974c6ea9790bf9f7328fd6ec3a031f0ab7cc77f8a62bcb8bc980de0ac2cebd88d495ec375b8c038bc8"
1111
jmx_exporter_url: "https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/{{ jmx_exporter_version }}/{{ jmx_exporter_archive }}.jar"
1212

13-
# Kafka Installation
1413
kafka_user: kafka
1514
kafka_group: kafka
1615

17-
# KRaft Settings
1816
kafka_process_roles:
1917
- broker
2018
- controller
2119

22-
# Listener Settings
2320
kafka_listener_address: "{{ ansible_default_ipv4.address }}"

handlers/main.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
---
2-
- name: Restart kafka
2+
- name: Restart Kafka
33
ansible.builtin.systemd:
44
name: kafka
55
state: restarted
66
daemon_reload: true
7+
8+
- name: Restart Kafka exporter
9+
ansible.builtin.systemd:
10+
name: kafka-exporter
11+
state: restarted
12+
daemon_reload: true

poetry.lock

Lines changed: 278 additions & 132 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ python = "^3.10"
1010
[tool.poetry.group.dev.dependencies]
1111
black = "^22.12.0"
1212
flake8 = "^6.0.0"
13-
flake8-bugbear = "^22.12.6"
14-
pylint = "^2.15.8"
15-
tox = "^4.0.11"
13+
flake8-bugbear = "^23.1.20"
14+
pylint = "^2.15.10"
15+
tox = "^4.3.5"
1616
molecule = {extras = ["docker"], version = "^4.0.4"}
17-
ansible-lint = { version = "^6.10.0", markers = "platform_system != 'Windows'" }
17+
ansible-lint = { version = "^6.11.0", markers = "platform_system != 'Windows'" }
1818

1919
[build-system]
2020
requires = ["poetry-core>=1.0.0"]

tasks/exporter.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
- name: Download Kafka exporter
3+
ansible.builtin.get_url:
4+
url: "{{ kafka_exporter_url }}"
5+
dest: /tmp/{{ kafka_exporter_archive }}.tar.gz
6+
checksum: "{{ kafka_exporter_checksum }}"
7+
mode: 0644
8+
9+
- name: Unarchive Kafka exporter
10+
ansible.builtin.unarchive:
11+
src: /tmp/{{ kafka_exporter_archive }}.tar.gz
12+
dest: /opt
13+
remote_src: true
14+
owner: "{{ kafka_user }}"
15+
group: "{{ kafka_group }}"
16+
creates: /opt/{{ kafka_exporter_archive }}
17+
notify:
18+
- Restart Kafka exporter
19+
20+
- name: Create Kafka exporter symlink
21+
ansible.builtin.file:
22+
src: /opt/{{ kafka_exporter_archive }}
23+
dest: /opt/kafka_exporter
24+
owner: "{{ kafka_user }}"
25+
group: "{{ kafka_group }}"
26+
state: link
27+
notify:
28+
- Restart Kafka exporter
29+
30+
- name: Copy Kafka systemd service
31+
ansible.builtin.template:
32+
src: kafka-exporter.service.j2
33+
dest: /usr/lib/systemd/system/kafka-exporter.service
34+
owner: root
35+
group: root
36+
mode: 0644
37+
notify:
38+
- Restart Kafka exporter
39+
40+
- name: Flush handlers to prevent restart after start
41+
ansible.builtin.meta: flush_handlers
42+
43+
- name: Start Kafka exporter
44+
ansible.builtin.systemd:
45+
name: kafka-exporter
46+
state: started
47+
daemon_reload: true
48+
enabled: true

0 commit comments

Comments
 (0)