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>
service monitoring system. It collects metrics from configured targets at given
intervals, evaluates rule expressions, displays the results, and can trigger
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
define Package/prometheus/install
local web_listen_address
config_load "prometheus"
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"
+
+ # 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_set_param command "$PROG"
uci -q batch <<EOF
set prometheus.prometheus=prometheus
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'
commit prometheus
EOF