Browse Source

prometheus: Update default tsdb directory handling

Use /srv/prometheus instead of /data, because user `prometheus` doens't
have permissions to create `/data/` in `/`.

Instead this commit puts prometheus data into `/srv/prometheus` by
default, which is a cleaner path, and it'll create tsdb path & then assign
required permissions on each prometheus service start.

This way, also, the cases when users re-configure tsdb to point to
external USB - it'll also be created and assigned required permissions for
prometheus.

Signed-off-by: Alex Simkin <sashasimkin@gmail.com>
lilik-openwrt-22.03
Alex Simkin 3 years ago
committed by Paul Spooren
parent
commit
abf8949a2a
3 changed files with 11 additions and 2 deletions
  1. +3
    -0
      utils/prometheus/Makefile
  2. +7
    -1
      utils/prometheus/files/etc/init.d/prometheus
  3. +1
    -1
      utils/prometheus/files/etc/uci-defaults/prometheus-defaults

+ 3
- 0
utils/prometheus/Makefile View File

@ -47,6 +47,9 @@ Prometheus, a Cloud Native Computing Foundation project, is a systems and
service monitoring system. It collects metrics from configured targets at given service monitoring system. It collects metrics from configured targets at given
intervals, evaluates rule expressions, displays the results, and can trigger intervals, evaluates rule expressions, displays the results, and can trigger
alerts if some condition is observed to be true. alerts if some condition is observed to be true.
Default tsdb path is /srv/prometheus, you might want to edit /etc/config/prometheus
in order to place it on USB storage or external SD card.
endef endef
define Package/prometheus/install define Package/prometheus/install


+ 7
- 1
utils/prometheus/files/etc/init.d/prometheus View File

@ -12,8 +12,14 @@ start_service() {
local web_listen_address local web_listen_address
config_load "prometheus" config_load "prometheus"
config_get config_file prometheus config_file "$CONFFILE" config_get config_file prometheus config_file "$CONFFILE"
config_get storage_tsdb_path prometheus storage_tsdb_path "/data"
config_get storage_tsdb_path prometheus storage_tsdb_path "/srv/prometheus"
config_get web_listen_address prometheus web_listen_address "127.0.0.1:9090" config_get web_listen_address prometheus web_listen_address "127.0.0.1:9090"
# Create tsdb dir & permissions if needed
if [ ! -d "$storage_tsdb_path" ]; then
mkdir "$storage_tsdb_path"
chown prometheus:prometheus "$storage_tsdb_path"
fi;
procd_open_instance procd_open_instance
procd_set_param command "$PROG" procd_set_param command "$PROG"


+ 1
- 1
utils/prometheus/files/etc/uci-defaults/prometheus-defaults View File

@ -6,7 +6,7 @@ uci -q get prometheus.prometheus || {
uci -q batch <<EOF uci -q batch <<EOF
set prometheus.prometheus=prometheus set prometheus.prometheus=prometheus
set prometheus.prometheus.config_file='/etc/prometheus.yml' set prometheus.prometheus.config_file='/etc/prometheus.yml'
set prometheus.prometheus.storage_tsdb_path='/data'
set prometheus.prometheus.storage_tsdb_path='/srv/prometheus'
set prometheus.prometheus.web_listen_address='127.0.0.1:9090' set prometheus.prometheus.web_listen_address='127.0.0.1:9090'
commit prometheus commit prometheus
EOF EOF


Loading…
Cancel
Save