Skip to content

Commit 0edd366

Browse files
authored
exporter, victoriametrics: use systemctl directly, add openvpn exporter, normalize osarch (#738)
1 parent baed265 commit 0edd366

4 files changed

Lines changed: 50 additions & 15 deletions

File tree

exporter/defaults.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,3 +121,17 @@ exporter:
121121
dst: "{install_dir}/pagespeed_exporter"
122122
exec: "{install_dir}/pagespeed_exporter {args}"
123123
args: ""
124+
125+
openvpn:
126+
store: github
127+
version: latest
128+
source: "https://github.com/natrontech/openvpn-exporter/releases/download/{tag}/openvpn-exporter_{tag}_{kernel_lower}_{osarch}.tar.gz"
129+
install_dir: "/opt/exporter/{type}/{name}"
130+
tar:
131+
args: ''
132+
move:
133+
src: "{install_dir}/openvpn-exporter-{kernel_lower}-{osarch}"
134+
dst: "{install_dir}/openvpn-exporter"
135+
exec: "{install_dir}/openvpn-exporter {args}"
136+
args: ""
137+

exporter/macro.jinja

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
{%- import_yaml "exporter/defaults.yaml" as defaults %}
22

3+
{#- Normalize osarch: x86_64 -> amd64, aarch64 -> arm64 for GitHub release URLs #}
4+
{%- set _osarch_map = {"x86_64": "amd64", "aarch64": "arm64"} %}
5+
{%- set _osarch = _osarch_map.get(grains["osarch"], grains["osarch"]) %}
6+
37

48
{%- macro install_dir(settings, prefix=[]) %}
59
{{ "_".join(prefix) }}_install_dir:
@@ -31,7 +35,7 @@
3135
- shell: /bin/bash
3236
- cwd: {{ settings["install_dir"] }}
3337
- watch_in:
34-
- service: {{ "_".join(prefix) }}_systemd
38+
- cmd: {{ "_".join(prefix) }}_systemd
3539
{%- if extractor.get("clean", True) %}
3640
file.absent:
3741
- name: {{ output }}
@@ -49,7 +53,7 @@
4953
- group: root
5054
- shell: /bin/bash
5155
- watch_in:
52-
- service: {{ "_".join(prefix) }}_systemd
56+
- cmd: {{ "_".join(prefix) }}_systemd
5357
{%- if settings.get("version", "") %}
5458
- unless:
5559
- "[[ $(cat {{ settings["install_dir"] }}/.salt_version_info) =~ {{ settings["version"] }} ]]"
@@ -105,7 +109,7 @@
105109
- "[[ ! $({{ dir }}/venv/bin/pip freeze -r {{ requirements_txt }} 2>&1) =~ WARNING ]]"
106110
{%- endif %}
107111
- watch_in:
108-
- service: {{ "_".join(prefix) }}_systemd
112+
- cmd: {{ "_".join(prefix) }}_systemd
109113
{%- endmacro %}
110114

111115

@@ -130,11 +134,13 @@
130134
type: {{ type }}
131135
settings: {{ settings }}
132136
defaults: {{ defaults["systemd"] }}
133-
service.running:
134-
- name: exporter_{{ name }}.service
135-
- enable: True
136-
- watch:
137+
cmd.run:
138+
- name: systemctl daemon-reload && systemctl enable exporter_{{ name }}.service && systemctl restart exporter_{{ name }}.service
139+
- onchanges:
137140
- file: {{ "_".join(prefix) }}_systemd
141+
{{ "_".join(prefix) }}_systemd_running:
142+
cmd.run:
143+
- name: systemctl is-active exporter_{{ name }}.service || systemctl start exporter_{{ name }}.service
138144
{%- endmacro %}
139145

140146

@@ -160,7 +166,7 @@
160166
{# define format_source #}
161167
{%- set format_source = {"tag": settings.get("version",""),
162168
"tag_vstrip": settings.get("version","").lstrip("v"),
163-
"osarch": grains["osarch"],
169+
"osarch": _osarch,
164170
"cpuarch": grains["cpuarch"],
165171
"kernel": grains["kernel"],
166172
"kernel_lower": grains["kernel"].lower() } %}
@@ -177,7 +183,8 @@
177183
{%- set file = defaults["salt_cache_dir"] ~ "/" ~ type ~ "/" ~ file_src.split("/")[-1] %}
178184

179185
{# define format_base #}
180-
{%- set format_base = {"name": name, "type": type, "file": file, "install_dir": settings["install_dir"]} %}
186+
{%- set format_base = {"name": name, "type": type, "file": file, "install_dir": settings["install_dir"],
187+
"osarch": _osarch, "kernel_lower": grains["kernel"].lower()} %}
181188

182189
{# format args #}
183190
{%- do settings.update({"args": settings["args"].format(**format_base) }) %}
@@ -240,3 +247,4 @@
240247
{{ service(name, type, settings, prefix) }}
241248

242249
{%- endmacro %}
250+

exporter/pillar.example

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,15 @@ exporter:
3636
--collector.interrupts
3737

3838

39+
openvpn:
40+
type: openvpn
41+
version: v1.1.3
42+
args:
43+
-openvpn.listen-address :9176
44+
-openvpn.loglevel debug
45+
-openvpn.status-files /var/log/openvpn/openvpn-status.log
46+
47+
3948
bb_sites_1:
4049
type: blackbox
4150

victoriametrics/_setup.sls

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,12 +158,16 @@
158158
WantedBy=multi-user.target
159159
160160
{{ kind }}_{{ vm_name }}_systemd_daemon-reload:
161-
service.running:
162-
- name: {{ service_name }}.service
163-
- enable: True
164-
- require:
165-
- cmd: {{ kind }}_{{ vm_name }}_archive_extract
166-
- watch:
161+
cmd.run:
162+
- name: systemctl daemon-reload && systemctl enable {{ service_name }}.service && systemctl restart {{ service_name }}.service
163+
- onchanges:
167164
- file: {{ kind }}_{{ vm_name }}_systemd_unit
168165
- cmd: {{ kind }}_{{ vm_name }}_archive_extract
166+
167+
{{ kind }}_{{ vm_name }}_systemd_running:
168+
cmd.run:
169+
- name: systemctl is-active {{ service_name }}.service || systemctl start {{ service_name }}.service
170+
- require:
171+
- cmd: {{ kind }}_{{ vm_name }}_archive_extract
169172
{%- endif %}
173+

0 commit comments

Comments
 (0)