From ada3bb5cda036c736b460b76552ce47dd8f40aa8 Mon Sep 17 00:00:00 2001 From: John O Loughlin Date: Thu, 28 Jun 2018 16:01:00 +0100 Subject: Adding support for prometheus using ansible To enable add the following with your ip address to your inventory file: [prometheus_hosts] 172.24.4.19 Change-Id: I85add815367bcbcf1240398db2c43c2130537969 Signed-off-by: John O Loughlin --- docker/ansible/roles/run_prometheus/tasks/main.yml | 65 ++++++++++++++++++++++ .../roles/run_prometheus/templates/prometheus.yml | 9 +++ docker/ansible/roles/run_prometheus/vars/main.yml | 21 +++++++ 3 files changed, 95 insertions(+) create mode 100644 docker/ansible/roles/run_prometheus/tasks/main.yml create mode 100644 docker/ansible/roles/run_prometheus/templates/prometheus.yml create mode 100644 docker/ansible/roles/run_prometheus/vars/main.yml (limited to 'docker/ansible/roles/run_prometheus') diff --git a/docker/ansible/roles/run_prometheus/tasks/main.yml b/docker/ansible/roles/run_prometheus/tasks/main.yml new file mode 100644 index 00000000..940852e8 --- /dev/null +++ b/docker/ansible/roles/run_prometheus/tasks/main.yml @@ -0,0 +1,65 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: remove bar-prometheus container + docker_container: + name: bar-prometheus + state: absent + tags: + - rm_containers + - rm_prometheus_cont + when: rm_containers|default(false)|bool == true + +- name: Create prometheus directory + file: + path: /etc/prometheus + state: directory + +- name: copy prometheus config + template: + src: prometheus.yml + dest: "/etc/prometheus/prometheus.yml" + +- name: modify prometheus.yml to add prometheus_hosts + lineinfile: + dest: /etc/prometheus/prometheus.yml + insertafter: targets + line: " - '{{ item }}:{{ prometheus_port }}'" + with_items: "{{ groups['collectd_hosts'] }}" + +- name: Remove prom-prometheus image + docker_image: + name: prom/prometheus + state: absent + tags: + - rm_images + - rm_prometheus_cont + when: rm_images|default(false)|bool == true + +- name: launch bar-prometheus container + docker_container: + name: bar-prometheus + image: prom/prometheus + volumes: + - /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml + exposed: + - 9090 + - "{{ prometheus_port }}" + ports: + - 9090:9090 + - "{{ prometheus_port }}:{{ prometheus_port }}" + detach: yes + restart: yes + network_mode: host diff --git a/docker/ansible/roles/run_prometheus/templates/prometheus.yml b/docker/ansible/roles/run_prometheus/templates/prometheus.yml new file mode 100644 index 00000000..7c6afa8a --- /dev/null +++ b/docker/ansible/roles/run_prometheus/templates/prometheus.yml @@ -0,0 +1,9 @@ +global: + scrape_timeout: "{{scrape_timeout}}" + scrape_interval: "{{scrape_interval}}" + evaluation_interval: "{{evaluation_interval}}" + +scrape_configs: + - job_name: 'collectd_exporter' + static_configs: + - targets: diff --git a/docker/ansible/roles/run_prometheus/vars/main.yml b/docker/ansible/roles/run_prometheus/vars/main.yml new file mode 100644 index 00000000..acf4d2d4 --- /dev/null +++ b/docker/ansible/roles/run_prometheus/vars/main.yml @@ -0,0 +1,21 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +#prometheus plugin vars +prometheus_port: 9103 + +scrape_timeout: 4s +scrape_interval: 5s +evaluation_interval: 5s \ No newline at end of file -- cgit 1.2.3-korg