Merge "feature(prometheus): Configuration can be dynamically replaced"
diff --git a/installers/docker/docker-compose.yaml b/installers/docker/docker-compose.yaml
index 104de48..3fdfbc1 100644
--- a/installers/docker/docker-compose.yaml
+++ b/installers/docker/docker-compose.yaml
@@ -88,8 +88,11 @@
     ports:
       - "${OSM_PROM_PORTS:-9091:9090}"
     volumes:
-      - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
+      - ./prometheus/:/etc/prometheus/
       - prom_db:/prometheus
+    command:
+      - '--config.file=/etc/prometheus/prometheus.yml'
+      - '--web.enable-lifecycle'
     networks:
       - netOSM
     logging:
diff --git a/installers/docker/files/dashboards-osm.yml b/installers/docker/grafana/dashboards-osm.yml
similarity index 100%
rename from installers/docker/files/dashboards-osm.yml
rename to installers/docker/grafana/dashboards-osm.yml
diff --git a/installers/docker/files/datasource-prometheus.yml b/installers/docker/grafana/datasource-prometheus.yml
similarity index 100%
rename from installers/docker/files/datasource-prometheus.yml
rename to installers/docker/grafana/datasource-prometheus.yml
diff --git a/installers/docker/files/osm-sample-dashboard.json b/installers/docker/grafana/osm-sample-dashboard.json
similarity index 100%
rename from installers/docker/files/osm-sample-dashboard.json
rename to installers/docker/grafana/osm-sample-dashboard.json
diff --git a/installers/docker/files/osm-system-dashboard.json b/installers/docker/grafana/osm-system-dashboard.json
similarity index 100%
rename from installers/docker/files/osm-system-dashboard.json
rename to installers/docker/grafana/osm-system-dashboard.json
diff --git a/installers/docker/osm_pods/prometheus.yaml b/installers/docker/osm_pods/prometheus.yaml
index cdfd94d..b6ab986 100644
--- a/installers/docker/osm_pods/prometheus.yaml
+++ b/installers/docker/osm_pods/prometheus.yaml
@@ -53,7 +53,7 @@
     # Here it's Prometheus itself.
     scrape_configs:
       # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
-      - job_name: 'prometheus'
+      - job_name: 'mon_exporter'
 
         # metrics_path defaults to '/metrics'
         # scheme defaults to 'http'.
@@ -84,6 +84,9 @@
       containers:
       - name: prometheus
         image: prom/prometheus:v2.4.3
+        args:
+        - --config.file=/etc/prometheus/prometheus.yml
+        - --web.enable-lifecycle
         ports:
         - containerPort: 9090
           protocol: TCP
diff --git a/installers/docker/files/prometheus.yml b/installers/docker/prometheus/prometheus.yml
similarity index 97%
rename from installers/docker/files/prometheus.yml
rename to installers/docker/prometheus/prometheus.yml
index a36a241..8d37837 100644
--- a/installers/docker/files/prometheus.yml
+++ b/installers/docker/prometheus/prometheus.yml
@@ -36,7 +36,7 @@
 # Here it's Prometheus itself.
 scrape_configs:
   # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
-  - job_name: 'prometheus'
+  - job_name: 'mon_exporter'
     static_configs:
     - targets: ['mon:8000']
   - job_name: 'node_exporter'
diff --git a/installers/docker/files/node_exporter.service b/installers/docker/prometheus_exporters/node_exporter.service
similarity index 100%
rename from installers/docker/files/node_exporter.service
rename to installers/docker/prometheus_exporters/node_exporter.service
diff --git a/installers/full_install_osm.sh b/installers/full_install_osm.sh
index e210379..205be65 100755
--- a/installers/full_install_osm.sh
+++ b/installers/full_install_osm.sh
@@ -321,7 +321,7 @@
             sudo cp /tmp/node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64/node_exporter /usr/local/bin
             sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
             sudo rm -rf node_exporter-$PROMETHEUS_NODE_EXPORTER_TAG.linux-amd64*
-            sudo cp ${OSM_DEVOPS}/installers/docker/files/node_exporter.service /etc/systemd/system/node_exporter.service
+            sudo cp ${OSM_DEVOPS}/installers/docker/prometheus/node_exporter.service /etc/systemd/system/node_exporter.service
             sudo systemctl daemon-reload
             sudo systemctl restart node_exporter
             sudo systemctl enable node_exporter
@@ -541,12 +541,20 @@
             $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/osm_pla/docker-compose.yaml $OSM_DOCKER_WORK_DIR/osm_pla/docker-compose.yaml
         fi
 
-        # Prometheus
-        $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/files/prometheus.yml $OSM_DOCKER_WORK_DIR/prometheus.yml
+        # Prometheus files
+        $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/prometheus
+        $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/prometheus/prometheus.yml $OSM_DOCKER_WORK_DIR/prometheus/prometheus.yml
 
-        # Grafana & Prometheus Exporter files
-        $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/files
-        $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/files/* $OSM_DOCKER_WORK_DIR/files/
+        # Grafana files
+        $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/grafana
+        $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/dashboards-osm.yml $OSM_DOCKER_WORK_DIR/grafana/dashboards-osm.yml
+        $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/datasource-prometheus.yml $OSM_DOCKER_WORK_DIR/grafana/datasource-prometheus.yml
+        $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/osm-sample-dashboard.json $OSM_DOCKER_WORK_DIR/grafana/osm-sample-dashboard.json
+        $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/grafana/osm-system-dashboard.json $OSM_DOCKER_WORK_DIR/grafana/osm-system-dashboard.json
+
+        # Prometheus Exporters files
+        $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/prometheus_exporters
+        $WORKDIR_SUDO cp -b ${OSM_DEVOPS}/installers/docker/prometheus_exporters/node_exporter.service $OSM_DOCKER_WORK_DIR/prometheus_exporters/node_exporter.service
     fi
 
     # LCM