diff options
Diffstat (limited to 'docker')
8 files changed, 148 insertions, 0 deletions
diff --git a/docker/ansible/collectd_service.yml b/docker/ansible/collectd_service.yml index 965ec8ee..7022cc8b 100644 --- a/docker/ansible/collectd_service.yml +++ b/docker/ansible/collectd_service.yml @@ -38,3 +38,9 @@ become_user: root roles: - run_grafana + +- hosts: prometheus_hosts + become: true + become_user: root + roles: + - run_prometheus diff --git a/docker/ansible/roles/config_files/tasks/main.yml b/docker/ansible/roles/config_files/tasks/main.yml index 4bf81f81..9ba9cbb2 100644 --- a/docker/ansible/roles/config_files/tasks/main.yml +++ b/docker/ansible/roles/config_files/tasks/main.yml @@ -53,6 +53,10 @@ - name: enable network plugin import_tasks: network.yml +- name: enable prometheus plugin + import_tasks: prometheus.yml + when: groups['prometheus_hosts'] is defined + - name: enable pmu plugin import_tasks: pmu.yml diff --git a/docker/ansible/roles/config_files/tasks/prometheus.yml b/docker/ansible/roles/config_files/tasks/prometheus.yml new file mode 100644 index 00000000..51f2b1f6 --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/prometheus.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. +--- + +- name: enable prometheus plugin + template: + src: prometheus.conf.j2 + dest: "{{ config_file_dir }}/prometheus.conf" + tags: + - prometheus
\ No newline at end of file diff --git a/docker/ansible/roles/config_files/templates/prometheus.conf.j2 b/docker/ansible/roles/config_files/templates/prometheus.conf.j2 new file mode 100644 index 00000000..bb947867 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/prometheus.conf.j2 @@ -0,0 +1,19 @@ +#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. + +LoadPlugin write_prometheus + +<Plugin "write_prometheus"> + Port "{{ prometheus_port }}" +</Plugin> diff --git a/docker/ansible/roles/config_files/vars/main.yml b/docker/ansible/roles/config_files/vars/main.yml index ab4a7867..cbe64b3c 100644 --- a/docker/ansible/roles/config_files/vars/main.yml +++ b/docker/ansible/roles/config_files/vars/main.yml @@ -28,6 +28,9 @@ influxdb_hostname: "{{ (groups['influxdb_hosts']|default({}))[0] | default('loca #get hostname as used by ansible network_ip_addr: "{{ hostvars[influxdb_hostname].ansible_hostname }}" +#prometheus plugin vars +prometheus_port: 9103 + #ovs event and stats plugin vars ovs_event_interval: 1 ovs_event_ip_addr: localhost 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 |