aboutsummaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
Diffstat (limited to 'docker')
-rw-r--r--docker/README_collectd22
-rw-r--r--docker/ansible/collectd6_test.yml143
-rw-r--r--docker/ansible/collectd_build.yml (renamed from docker/ansible/roles/config_files/templates/logfile.conf.j2)20
-rw-r--r--docker/ansible/collectd_ves.yml13
-rw-r--r--docker/ansible/default.inv8
-rw-r--r--docker/ansible/roles/build_collectd/tasks/main.yml71
-rw-r--r--docker/ansible/roles/config_files/defaults/main.yml60
-rw-r--r--docker/ansible/roles/config_files/tasks/capabilities.yml (renamed from docker/ansible/roles/config_files/templates/csv.conf.j2)14
-rw-r--r--docker/ansible/roles/config_files/tasks/csv.yml7
-rw-r--r--docker/ansible/roles/config_files/tasks/default_read_import.yml108
-rw-r--r--docker/ansible/roles/config_files/tasks/default_read_plugins.yml34
-rw-r--r--docker/ansible/roles/config_files/tasks/dpdk.yml19
-rw-r--r--docker/ansible/roles/config_files/tasks/exec.yml8
-rw-r--r--docker/ansible/roles/config_files/tasks/hugepages.yml9
-rw-r--r--docker/ansible/roles/config_files/tasks/ipmi.yml13
-rw-r--r--docker/ansible/roles/config_files/tasks/kafka.yml9
-rw-r--r--docker/ansible/roles/config_files/tasks/logfile.yml10
-rw-r--r--docker/ansible/roles/config_files/tasks/logparser.yml (renamed from docker/ansible/roles/config_files/templates/network.conf.j2)14
-rw-r--r--docker/ansible/roles/config_files/tasks/main.yml59
-rw-r--r--docker/ansible/roles/config_files/tasks/make_mcelog.yml5
-rw-r--r--docker/ansible/roles/config_files/tasks/mcelog.yml11
-rw-r--r--docker/ansible/roles/config_files/tasks/network.yml22
-rw-r--r--docker/ansible/roles/config_files/tasks/ovs.yml53
-rw-r--r--docker/ansible/roles/config_files/tasks/pmu.yml7
-rw-r--r--docker/ansible/roles/config_files/tasks/prometheus.yml9
-rw-r--r--docker/ansible/roles/config_files/tasks/rdt.yml9
-rw-r--r--docker/ansible/roles/config_files/tasks/snmp_agent.yml11
-rw-r--r--docker/ansible/roles/config_files/tasks/syslog.yml7
-rw-r--r--docker/ansible/roles/config_files/tasks/uuid.yml7
-rw-r--r--docker/ansible/roles/config_files/tasks/virt.yml16
-rw-r--r--docker/ansible/roles/config_files/tasks/vswitch.yml49
-rw-r--r--docker/ansible/roles/config_files/templates/default_read_plugins.conf.j234
-rw-r--r--docker/ansible/roles/config_files/templates/dpdkevents.conf.j236
-rw-r--r--docker/ansible/roles/config_files/templates/exec.conf.j222
-rw-r--r--docker/ansible/roles/config_files/templates/hugepages.conf.j224
-rw-r--r--docker/ansible/roles/config_files/templates/intel_pmu.conf.j224
-rw-r--r--docker/ansible/roles/config_files/templates/ipmi.conf.j245
-rw-r--r--docker/ansible/roles/config_files/templates/kafka.conf.j222
-rw-r--r--docker/ansible/roles/config_files/templates/latest/snmp_agent.conf.j2398
-rw-r--r--docker/ansible/roles/config_files/templates/logparser.conf.j275
-rw-r--r--docker/ansible/roles/config_files/templates/ovs_events.conf.j226
-rw-r--r--docker/ansible/roles/config_files/templates/ovs_stats.conf.j225
-rw-r--r--docker/ansible/roles/config_files/templates/prometheus.conf.j219
-rw-r--r--docker/ansible/roles/config_files/templates/snmp_agent.conf.j217
-rw-r--r--docker/ansible/roles/config_files/templates/syslog.conf.j221
-rw-r--r--docker/ansible/roles/config_files/templates/virt.conf.j232
-rw-r--r--docker/ansible/roles/config_files/vars/main.yml79
-rw-r--r--docker/ansible/roles/install_docker/tasks/fedora.yml47
-rw-r--r--docker/ansible/roles/install_docker/tasks/main.yml6
-rw-r--r--docker/ansible/roles/install_docker/tasks/ubuntu.yml11
-rw-r--r--docker/ansible/roles/run_collectd/tasks/main.yml35
-rw-r--r--docker/ansible/roles/run_collectd/vars/main.yml (renamed from docker/ansible/roles/config_files/templates/dpdkstat.conf.j2)22
-rw-r--r--docker/ansible/roles/run_grafana/tasks/main.yml6
-rw-r--r--docker/ansible/roles/run_influxdb/tasks/main.yml8
-rw-r--r--docker/ansible/roles/run_kafka/tasks/main.yml10
-rw-r--r--docker/ansible/roles/run_kafka/vars/main.yml13
-rw-r--r--docker/ansible/roles/run_prometheus/templates/prometheus.yml15
-rw-r--r--docker/ansible/roles/run_ves/tasks/main.yml10
-rw-r--r--docker/ansible/roles/run_zookeeper/tasks/main.yml41
-rw-r--r--docker/barometer-collectd-experimental/Dockerfile54
-rw-r--r--docker/barometer-collectd-experimental/run_collectd.sh (renamed from docker/barometer-collectd-master/run_collectd.sh)5
-rw-r--r--docker/barometer-collectd-latest/Dockerfile36
-rw-r--r--docker/barometer-collectd-latest/run_collectd.sh (renamed from docker/ansible/roles/config_files/templates/uuid.conf.j2)14
-rw-r--r--docker/barometer-collectd-master/Dockerfile30
-rw-r--r--docker/barometer-collectd/Dockerfile34
-rw-r--r--docker/barometer-collectd/run_collectd.sh5
-rw-r--r--docker/barometer-grafana/Dockerfile15
-rwxr-xr-xdocker/barometer-grafana/dashboards/configure_grafana.sh6
-rw-r--r--docker/barometer-grafana/dashboards/cpu_usage_dashboard.json4
-rw-r--r--docker/barometer-influxdb/Dockerfile17
-rw-r--r--docker/barometer-kafka/Dockerfile15
-rwxr-xr-xdocker/barometer-kafka/start_kafka.sh5
-rw-r--r--docker/barometer-snmp/Dockerfile15
-rw-r--r--docker/barometer-snmp/snmpd.conf6
-rw-r--r--docker/barometer-tests/Dockerfile18
-rw-r--r--docker/barometer-tests/testcases.yaml21
-rw-r--r--docker/barometer-ves/Dockerfile6
-rw-r--r--docker/barometer-ves/start_ves_app.sh2
-rw-r--r--docker/flask_app/Dockerfile (renamed from docker/ansible/roles/config_files/templates/rdt.conf.j2)19
-rw-r--r--docker/flask_app/README45
-rw-r--r--docker/flask_app/flask_app.py16
-rw-r--r--docker/flask_app/requirements.txt1
-rw-r--r--docker/ves/Dockerfile15
83 files changed, 1598 insertions, 776 deletions
diff --git a/docker/README_collectd b/docker/README_collectd
index c922ab64..cf497105 100644
--- a/docker/README_collectd
+++ b/docker/README_collectd
@@ -9,7 +9,7 @@ Table of content:
1. DESCRIPTION
2. SYSTEM REQUIREMENTS
3. INSTALLATION NOTES - barometer-collectd
-4. INSTALLATION NOTES - barometer-collectd-master
+4. INSTALLATION NOTES - barometer-collectd-latest
5. ADDITIONAL STEPS
------------------------------------------------------------------------------
@@ -18,9 +18,9 @@ Table of content:
This Dockerfile provides instruction for building collect in isolated container.
There are currently two variants of collectd container:
- barometer-collectd - it is based on stable collect release
- - barometer-collectd-master - development container that is based on
- latest 'master' branch for collectd project. It contains all available
- collectd plugins and features that are available on 'master' branch but
+ - barometer-collectd-latest - development container that is based on
+ latest 'main' branch for collectd project. It contains all available
+ collectd plugins and features that are available on 'main' branch but
some issues with configuration or stability may occur
------------------------------------------------------------------------------
@@ -46,22 +46,22 @@ sudo docker run -ti --net=host -v `pwd`/src/collectd/collectd_sample_configs:/op
/opt/collectd/sbin/collectd -f
------------------------------------------------------------------------------
-4. INSTALLATION NOTES: barometer-collectd-master (development container)
+4. INSTALLATION NOTES: barometer-collectd-latest (development container)
-To build docker barometer-collectd-master container run (it is based on master branch from collectd):
-sudo docker build -f ./docker/barometer-collectd-master/Dockerfile .
+To build docker barometer-collectd-latest container run (it is based on main branch from collectd):
+sudo docker build -f ./docker/barometer-collectd-latest/Dockerfile .
from root barometer folder.
To run builded image run
sudo docker images # get docker image id
-sudo docker run -ti --net=host -v `pwd`/src/collectd/collectd_sample_configs-master:/opt/collectd/etc/collectd.conf.d \
+sudo docker run -ti --net=host -v `pwd`/src/collectd/collectd_sample_configs-latest:/opt/collectd/etc/collectd.conf.d \
-v /var/run:/var/run -v /tmp:/tmp --privileged <image id>
-NOTE: barometer-collectd-master container uses a different sample configurations files
-compared to regular barometer-collectd container (src/collectd/collectd_sample_configs-master)
+NOTE: barometer-collectd-latest container uses a different sample configurations files
+compared to regular barometer-collectd container (src/collectd/collectd_sample_configs-latest)
To make some changes run
-sudo docker run -ti --net=host -v `pwd`/src/collectd/collectd_sample_configs-master:/opt/collectd/etc/collectd.conf.d \
+sudo docker run -ti --net=host -v `pwd`/src/collectd/collectd_sample_configs-latest:/opt/collectd/etc/collectd.conf.d \
-v /var/run:/var/run -v /tmp:/tmp --privileged --entrypoint=/bin/bash <image id>
/opt/collectd/sbin/collectd -f
diff --git a/docker/ansible/collectd6_test.yml b/docker/ansible/collectd6_test.yml
new file mode 100644
index 00000000..c1a3a8b4
--- /dev/null
+++ b/docker/ansible/collectd6_test.yml
@@ -0,0 +1,143 @@
+---
+# ansible-playbook -e PR=<PRID> -e new_plugin=<plugin> collectd6_test.yml
+
+# As well as passing a PRID, a config command should be passable too since
+# a lot of the plugins have been explicitly disabled in the build.
+- hosts: localhost
+ become: true
+ tasks:
+ - name: Set names for containers to be used for testing
+ set_fact:
+ collectd5_container_name: "bar-collectd-latest"
+ collectd6_container_name: "bar-collectd-6{{ '-' + PR if PR is defined }}"
+ flask_container_name: "test-collectd-5-v-6"
+
+ - name: Remove existing containers
+ docker_container:
+ name: "{{ item }}"
+ state: absent
+ force_kill: yes
+ with_items:
+ - "{{ collectd5_container_name }}"
+ - "{{ collectd6_container_name }}"
+ - "{{ flask_container_name }}"
+
+ - name: Get a list of containers
+ command:
+ docker ps -a
+ register: output
+
+ - name: Confirm that existing test containers were removed
+ assert:
+ that:
+ - 'not "{{ collectd5_container_name }}" in output.stdout'
+ - 'not "{{ collectd6_container_name }}" in output.stdout'
+ - 'not "{{ flask_container_name }}" in output.stdout'
+
+ - name: Build collectd containers
+ include_role:
+ name: build_collectd
+ args:
+ apply:
+ tags:
+ - latest
+ - collectd-6
+ - flask_test
+ vars:
+ COLLECTD_PULL_REQUESTS: "{{ PR | default() }}"
+ COLLECTD_CONFIG_CMD_ARGS: "{{ '--enable-' + new_plugin if new_plugin is defined }}"
+
+ - name: "Set up config for write_http plugin"
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | default([]) | union(['write_http']) }}"
+ collectd_plugin_write_http_nodes:
+ flask:
+ url: http://localhost:5000
+ format: "Command"
+
+ - name: Generate collectd configs
+ include_role:
+ name: config_files
+
+ # Since I can't skip-tags here, I have to remove the plugins later
+ # TODO(efoley) Add a disable_plugins and enable_plugins list to
+ # roles/config_files, as an alternative to tags.
+ # This alternative is kinda needed anyway, so that it's easier to add extra
+ # plugins instead of using.
+ # ``{{ collectd_plugins | default([]) | union(['the_plugin_i_want_to_enable'])}}``
+ # Tags can stay, since they are convenient, and easier to pass to the
+ # command line than a list of plugins
+ - name: "Remove plugin configs"
+ file:
+ path: "/opt/collectd/etc/collectd.conf.d/{{ item }}.conf"
+ state: absent
+ with_items:
+ - snmp_agent
+ - intel_pmu
+
+ # TODO(efoley): The path here should be parameterised, to a degree, I don't
+ # want it to be repeated. And I shouldn't assume that this is always going
+ # to be the value (unless it is in vars/main instead of defaults/main)
+ - name: "Remove plugin configs (collectd 6)"
+ file:
+ path: "/opt/collectd/etc/collectd.conf.d/{{ item }}.conf"
+ state: absent
+ with_items:
+ - csv
+ - network
+ - rrdtool
+ - write_kafka
+ - write_prometheus
+ - logfile
+
+ - debug:
+ var: PR
+
+ - name: Run the collectd-6 container
+ include_role:
+ name: run_collectd
+ vars:
+ collectd_image_name: "opnfv/barometer-collectd-6{{ '-' + PR if PR is defined }}"
+ collectd_container_name: "{{ collectd6_container_name }}"
+
+ - name: Run the collectd-latest container
+ include_role:
+ name: run_collectd
+ vars:
+ collectd_image_name: opnfv/barometer-collectd-latest
+ collectd_container_name: "{{ collectd5_container_name }}"
+
+ - name: Run the flask test container
+ docker_container:
+ name: "{{ flask_container_name }}"
+ image: test-collectd-write_http
+ detach: yes
+ state: started
+ #network_mode: host
+ published_ports: 5000:5000
+
+ - name: Check output for flask app
+ become: true
+ shell: |
+ docker logs {{ flask_container_name }} {{ '| grep "' + new_plugin + '"' if new_plugin is defined }} | tail -200
+ register: output
+
+ - debug:
+ var: output.stdout_lines
+
+ - name: Get a list of running containers
+ become: true
+ command:
+ docker ps
+ register: output
+
+ - name: Make sure that the expected containers are running
+ assert:
+ that:
+ - '"{{ collectd6_container_name }}" in output.stdout'
+ - '"{{ collectd5_container_name }}" in output.stdout'
+ - '"{{ flask_container_name }}" in output.stdout'
+
+# Create a small report at the end for collectd versions...
+# Update Apply PRs to check out a branch when it is a single PR
+# OR update these playbooks to use the tag way of checking out a PR
diff --git a/docker/ansible/roles/config_files/templates/logfile.conf.j2 b/docker/ansible/collectd_build.yml
index 8bc96ffe..d5cad076 100644
--- a/docker/ansible/roles/config_files/templates/logfile.conf.j2
+++ b/docker/ansible/collectd_build.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2021 Anuket and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,12 +11,12 @@
# 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 logfile
-
-<Plugin logfile>
- LogLevel "{{ logfile_log_level }}"
- File "{{ logfile_dir }}/collectd.log"
- Timestamp true
-</Plugin>
-
+---
+# ansible-playbook collectd_build.yml
+#
+- hosts: localhost
+ become: true
+ become_user: root
+ gather_facts: true
+ roles:
+ - name: build_collectd
diff --git a/docker/ansible/collectd_ves.yml b/docker/ansible/collectd_ves.yml
index f6140a5f..002744ce 100644
--- a/docker/ansible/collectd_ves.yml
+++ b/docker/ansible/collectd_ves.yml
@@ -1,19 +1,20 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2016-2019 Intel Corporation and OPNFV. All rights reserved.
#
# 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
+# 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.
+#
---
-- hosts: collectd_hosts kafka_hosts ves_hosts
+- hosts: collectd_hosts kafka_hosts ves_hosts zookeeper_hosts
become: true
become_user: root
gather_facts: true
@@ -27,6 +28,12 @@
- config_files
- run_collectd
+- hosts: zookeeper_hosts
+ become: true
+ become_user: root
+ roles:
+ - run_zookeeper
+
- hosts: kafka_hosts
become: true
become_user: root
diff --git a/docker/ansible/default.inv b/docker/ansible/default.inv
index 9319b9ea..d65e1c0e 100644
--- a/docker/ansible/default.inv
+++ b/docker/ansible/default.inv
@@ -13,6 +13,9 @@ localhost
[collectd_hosts:vars]
install_mcelog=true
insert_ipmi_modules=true
+#to use latest (collectd-main branch) or experimental (main + PRs) container
+#set the collectd flavor below. Possible values: stable|latest|experimental
+flavor=stable
[influxdb_hosts]
#hostname or ip must be used.
@@ -20,11 +23,16 @@ insert_ipmi_modules=true
#hostname
[grafana_hosts]
+#NOTE: As per current support, Grafana and Influxdb should be same host.
#hostname
[prometheus_hosts]
#localhost
+[zookeeper_hosts]
+#NOTE: currently one zookeeper host is supported
+#hostname
+
[kafka_hosts]
#hostname
diff --git a/docker/ansible/roles/build_collectd/tasks/main.yml b/docker/ansible/roles/build_collectd/tasks/main.yml
new file mode 100644
index 00000000..6faddde5
--- /dev/null
+++ b/docker/ansible/roles/build_collectd/tasks/main.yml
@@ -0,0 +1,71 @@
+# Copyright 2021 Anuket and others
+#
+# 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: Build stable container
+ docker_image:
+ name: anuket/barometer-collectd
+ build:
+ path: "{{ playbook_dir }}/../barometer-collectd/"
+ source: build
+ tags:
+ - stable
+
+- name: Build the latest container
+ docker_image:
+ name: anuket/barometer-collectd-latest
+ build:
+ path: "{{ playbook_dir }}/../../"
+ dockerfile: "docker/barometer-collectd-latest/Dockerfile"
+ source: build
+ tags:
+ - latest
+
+- name: Build collectd-experimental
+ docker_image:
+ name: anuket/barometer-collectd-experimental
+ build:
+ path: "{{ playbook_dir }}/../../"
+ dockerfile: "docker/barometer-collectd-experimental/Dockerfile"
+ args:
+ COLLECTD_FLAVOR: experimental
+ COLLECTD_TAG: "{{ COLLECTD_TAG | default('main') }}"
+ COLLECTD_PULL_REQUESTS: "{{ COLLECTD_PULL_REQUESTS | default() }}"
+ source: build
+ tags:
+ - experimental
+
+- name: Build collectd-6
+ docker_image:
+ name: "anuket/barometer-collectd-6{{ ( '-' + COLLECTD_PULL_REQUESTS ) if COLLECTD_PULL_REQUESTS is defined else '' }}"
+ build:
+ path: "{{ playbook_dir }}/../../"
+ dockerfile: "docker/barometer-collectd-experimental/Dockerfile"
+ args:
+ COLLECTD_FLAVOR: collectd-6
+ COLLECTD_TAG: "{{ COLLECTD_TAG | default('collectd-6.0') }}"
+ COLLECTD_CONFIG_CMD_ARGS: "{{ COLLECTD_CONFIG_CMD_ARGS if COLLECTD_CONFIG_CMD_ARGS is defined }}"
+ source: build
+ tags:
+ - collectd-6
+
+- name: Build test_app for write_http
+ docker_image:
+ name: test-collectd-write_http
+ build:
+ path: "{{ playbook_dir }}/../flask_app/"
+ source: build
+ tags:
+ - flask_test
+ - never
+
diff --git a/docker/ansible/roles/config_files/defaults/main.yml b/docker/ansible/roles/config_files/defaults/main.yml
new file mode 100644
index 00000000..c2004ae1
--- /dev/null
+++ b/docker/ansible/roles/config_files/defaults/main.yml
@@ -0,0 +1,60 @@
+# Copyright 2018-21 Anuket, Intel Corporation and others
+#
+# 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.
+---
+config_file_dir: "/opt/collectd/etc/collectd.conf.d/"
+csv_log_dir: "/var/lib/collectd/csv"
+logfile_dir: "/var/log/"
+
+#global default interval
+interval_value: 10
+
+#influx network port
+influx_network_port: 25826
+
+#network plugin vars
+network_port: 25826
+network_ip_addr: localhost
+
+#prometheus plugin vars
+prometheus_port: 9103
+
+#ovs event and stats plugin vars
+ovs_events_interval: 1
+ovs_events_ip_addr: localhost
+ovs_events_port: 6640
+ovs_stats_interval: 1
+ovs_stats_ip_addr: localhost
+ovs_stats_port: 6640
+
+#rdt plugin vars
+rdt_interval: 1
+
+#kafka plugin vars
+kafka_ip_addr: localhost
+kafka_port: 9092
+kafka_topic: collectd
+
+#logfile plugin vars
+logfile_log_level: info
+
+#syslog plugin vars
+syslog_log_level: info
+
+#rrd plugin vars
+rrdtool_db_dir: "/var/lib/collectd/rrd"
+cache_flush: 120
+write_per_sec: 50
+
+#additional configuration files path
+additional_configs_path: ""
diff --git a/docker/ansible/roles/config_files/templates/csv.conf.j2 b/docker/ansible/roles/config_files/tasks/capabilities.yml
index 3e351932..cfca03a2 100644
--- a/docker/ansible/roles/config_files/templates/csv.conf.j2
+++ b/docker/ansible/roles/config_files/tasks/capabilities.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2019-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,11 +11,11 @@
# 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 csv
-
-<Plugin csv>
- DataDir "{{ csv_log_dir }}"
- StoreRates false
-</Plugin>
+- name: enable capabilities plugin
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['capabilities']) | unique }}"
+ tags:
+ - capabilities
diff --git a/docker/ansible/roles/config_files/tasks/csv.yml b/docker/ansible/roles/config_files/tasks/csv.yml
index 0be4ec8f..bfd88c0e 100644
--- a/docker/ansible/roles/config_files/tasks/csv.yml
+++ b/docker/ansible/roles/config_files/tasks/csv.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,9 +14,8 @@
---
- name: enable csv plugin
- template:
- src: csv.conf.j2
- dest: "{{ config_file_dir }}/csv.conf"
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['csv']) | unique }}"
tags:
- csv
diff --git a/docker/ansible/roles/config_files/tasks/default_read_import.yml b/docker/ansible/roles/config_files/tasks/default_read_import.yml
index d70919b3..46b4d516 100644
--- a/docker/ansible/roles/config_files/tasks/default_read_import.yml
+++ b/docker/ansible/roles/config_files/tasks/default_read_import.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 OPNFV, Intel Corporation and Red Hat
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,123 +12,107 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-
- name: enable contextswitch plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin contextswitch(\s+.*)?$'
- replace: '\1LoadPlugin contextswitch\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['contextswitch']) | unique }}"
tags:
+ - en_default_all
- contextswitch
- name: enable cpu plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin cpu(\s+.*)?$'
- replace: '\1LoadPlugin cpu\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['cpu']) | unique }}"
tags:
+ - en_default_all
- cpu
- name: enable cpufreq plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin cpufreq(\s+.*)?$'
- replace: '\1LoadPlugin cpufreq\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['cpufreq']) | unique }}"
tags:
+ - en_default_all
- cpufreq
- name: enable df plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin df(\s+.*)?$'
- replace: '\1LoadPlugin df\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['df']) | unique }}"
tags:
+ - en_default_all
- df
- name: enable disk plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin disk(\s+.*)?$'
- replace: '\1LoadPlugin disk\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['disk']) | unique }}"
tags:
+ - en_default_all
- disk
- name: enable ethstat plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin ethstat(\s+.*)?$'
- replace: '\1LoadPlugin ethstat\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['ethstat']) | unique }}"
tags:
+ - en_default_all
- ethstat
- name: enable ipc plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin ipc(\s+.*)?$'
- replace: '\1LoadPlugin ipc\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['ipc']) | unique }}"
tags:
+ - en_default_all
- ipc
- name: enable irq plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin irq(\s+.*)?$'
- replace: '\1LoadPlugin irq\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['irq']) | unique }}"
tags:
+ - en_default_all
- irq
- name: enable load plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin load(\s+.*)?$'
- replace: '\1LoadPlugin load\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['load']) | unique }}"
tags:
+ - en_default_all
- load
- name: enable memory plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin memory(\s+.*)?$'
- replace: '\1LoadPlugin memory\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['memory']) | unique }}"
tags:
+ - en_default_all
- memory
- name: enable numa plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin numa(\s+.*)?$'
- replace: '\1LoadPlugin numa\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['numa']) | unique }}"
tags:
+ - en_default_all
- numa
- name: enable processes plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin processes(\s+.*)?$'
- replace: '\1LoadPlugin processes\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['processes']) | unique }}"
tags:
+ - en_default_all
- processes
- name: enable swap plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin swap(\s+.*)?$'
- replace: '\1LoadPlugin swap\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['swap']) | unique }}"
tags:
+ - en_default_all
- swap
- name: enable turbostat plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin turbostat(\s+.*)?$'
- replace: '\1LoadPlugin turbostat\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['turbostat']) | unique }}"
tags:
+ - en_default_all
- turbostat
- name: enable uptime plugin
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin uptime(\s+.*)?$'
- replace: '\1LoadPlugin uptime\2'
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['uptime']) | unique }}"
tags:
+ - en_default_all
- uptime
diff --git a/docker/ansible/roles/config_files/tasks/default_read_plugins.yml b/docker/ansible/roles/config_files/tasks/default_read_plugins.yml
deleted file mode 100644
index 95b942c2..00000000
--- a/docker/ansible/roles/config_files/tasks/default_read_plugins.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-#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: copy default template to system
- template:
- src: default_read_plugins.conf.j2
- dest: "{{ config_file_dir }}/default_read_plugins.conf"
- tags:
- - always
-
-- name: enable all default plugins
- replace:
- path: "{{ config_file_dir }}/default_read_plugins.conf"
- regexp: '(\s+)#LoadPlugin(\s+.*)?$'
- replace: '\1LoadPlugin\2'
- register: en_default_all
- tags:
- - en_default_all
-
-- name: include per default plugin tasks
- include: default_read_import.yml
- when: en_default_all is not defined \ No newline at end of file
diff --git a/docker/ansible/roles/config_files/tasks/dpdk.yml b/docker/ansible/roles/config_files/tasks/dpdk.yml
index 7809c56a..2be146b0 100644
--- a/docker/ansible/roles/config_files/tasks/dpdk.yml
+++ b/docker/ansible/roles/config_files/tasks/dpdk.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,17 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-
-- name: enable dpdkstat plugin
- template:
- src: dpdkstat.conf.j2
- dest: "{{ config_file_dir }}/dpdkstat.conf"
+- name: enable dpdk_telemetry plugin
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['dpdk_telemetry']) | unique }}"
tags:
- - dpdkstat
-
-- name: enable dpdkevents plugin
- template:
- src: dpdkevents.conf.j2
- dest: "{{ config_file_dir }}/dpdkevents.conf"
- tags:
- - dpdkevents
+ - dpdk_telemetry
diff --git a/docker/ansible/roles/config_files/tasks/exec.yml b/docker/ansible/roles/config_files/tasks/exec.yml
index b7389703..956e3a8f 100644
--- a/docker/ansible/roles/config_files/tasks/exec.yml
+++ b/docker/ansible/roles/config_files/tasks/exec.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,10 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-
- name: enable exec plugin
- template:
- src: exec.conf.j2
- dest: "{{ config_file_dir }}/exec.conf"
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['exec']) | unique }}"
tags:
- exec
diff --git a/docker/ansible/roles/config_files/tasks/hugepages.yml b/docker/ansible/roles/config_files/tasks/hugepages.yml
index bf49035c..5b4ec0ba 100644
--- a/docker/ansible/roles/config_files/tasks/hugepages.yml
+++ b/docker/ansible/roles/config_files/tasks/hugepages.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -25,9 +25,8 @@
- hugepages
- name: enable hugepages plugin
- template:
- src: hugepages.conf.j2
- dest: "{{ config_file_dir }}//hugepages.conf"
- when: hugepages_result|succeeded
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['hugepages']) | unique }}"
+ when: hugepages_result is succeeded
tags:
- hugepages
diff --git a/docker/ansible/roles/config_files/tasks/ipmi.yml b/docker/ansible/roles/config_files/tasks/ipmi.yml
index c7359fbf..12913a85 100644
--- a/docker/ansible/roles/config_files/tasks/ipmi.yml
+++ b/docker/ansible/roles/config_files/tasks/ipmi.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -31,7 +31,7 @@
command: "modprobe ipmi_devintf"
register: ipmi_devintf
ignore_errors: true
- when: ipmi_devintf|failed and insert_ipmi_modules|default(false)|bool
+ when: (ipmi_devintf is failed) and (insert_ipmi_modules|default(false)|bool)
tags:
- ipmi
@@ -39,7 +39,7 @@
command: "modprobe ipmi_si"
register: ipmi_devsi
ignore_errors: true
- when: ipmi_devsi|failed and insert_ipmi_modules|default(false)|bool
+ when: (ipmi_devsi is failed) and (insert_ipmi_modules|default(false)|bool)
tags:
- ipmi
@@ -52,10 +52,9 @@
- ipmi
- name: enable ipmi plugin
- template:
- src: ipmi.conf.j2
- dest: "{{ config_file_dir }}/0_ipmi.conf"
- when: ipmi0_exists|succeeded and ipmi_devintf|succeeded and ipmi_devsi|succeeded
+ set_fact:
+ collectd_plugins: '{{ collectd_plugins | union(["ipmi"]) | unique }}'
+ when: (ipmi0_exists is succeeded) and (ipmi_devintf is succeeded) and (ipmi_devsi is succeeded)
tags:
- ipmi
diff --git a/docker/ansible/roles/config_files/tasks/kafka.yml b/docker/ansible/roles/config_files/tasks/kafka.yml
index d7639cbf..6fb3f050 100644
--- a/docker/ansible/roles/config_files/tasks/kafka.yml
+++ b/docker/ansible/roles/config_files/tasks/kafka.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,9 +13,8 @@
# limitations under the License.
---
-- name: enable kafka plugin
- template:
- src: kafka.conf.j2
- dest: "{{ config_file_dir }}/kafka.conf"
+- name: enable kafka plugin with collectd_config
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['write_kafka']) | unique }}"
tags:
- kafka
diff --git a/docker/ansible/roles/config_files/tasks/logfile.yml b/docker/ansible/roles/config_files/tasks/logfile.yml
index b2700594..cd1c1049 100644
--- a/docker/ansible/roles/config_files/tasks/logfile.yml
+++ b/docker/ansible/roles/config_files/tasks/logfile.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,12 +14,8 @@
---
- name: enable logfile plugin
- template:
- src: logfile.conf.j2
- dest: "{{ config_file_dir }}/logfile.conf"
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['logfile']) | unique }}"
tags:
- logfile
-
-
-
diff --git a/docker/ansible/roles/config_files/templates/network.conf.j2 b/docker/ansible/roles/config_files/tasks/logparser.yml
index c89a18eb..72adcea2 100644
--- a/docker/ansible/roles/config_files/templates/network.conf.j2
+++ b/docker/ansible/roles/config_files/tasks/logparser.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2019-21 Anuket, Intel Corporation, and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,10 +11,12 @@
# 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 network
-
-#this is auto-filled using ansible script
-<Plugin network>
-</Plugin>
+- name: enable logparser plugin
+ template:
+ src: logparser.conf.j2
+ dest: "{{ config_file_dir }}/logparser.conf"
+ tags:
+ - logparser
diff --git a/docker/ansible/roles/config_files/tasks/main.yml b/docker/ansible/roles/config_files/tasks/main.yml
index 1bf66985..9b241890 100644
--- a/docker/ansible/roles/config_files/tasks/main.yml
+++ b/docker/ansible/roles/config_files/tasks/main.yml
@@ -1,16 +1,18 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-2021 Intel Corporation, Anuket and others.
+# All rights reserved.
#
# 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
+# 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: Clean collectd config dir path
@@ -29,11 +31,14 @@
tags:
- always
+- name: enable capabilities plugin
+ import_tasks: capabilities.yml
+
- name: enable csv plugin
import_tasks: csv.yml
- name: enable default plugins
- import_tasks: default_read_plugins.yml
+ import_tasks: default_read_import.yml
- name: enable dpdk plugins
import_tasks: dpdk.yml
@@ -50,6 +55,9 @@
- name: enable logfile plugin
import_tasks: logfile.yml
+- name: enable logparser plugin
+ import_tasks: logparser.yml
+
- name: enable mcelog plugin
import_tasks: mcelog.yml
@@ -75,14 +83,59 @@
- name: enable syslog plugin
import_tasks: syslog.yml
+- name: enable ovs plugins
+ import_tasks: ovs.yml
+
- name: enable virt plugin
import_tasks: virt.yml
- name: enable ipmi plugin
include: ipmi.yml
+- name: Enable unixsock plugin
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['unixsock']) | unique }}"
+ tags:
+ - unixsock
+
- name: enable uuid plugin
include: uuid.yml
+- name: configure plugins
+ include_role:
+ name: collectd_config
+ vars:
+ collectd_conf_output_dir: /tmp/collectd.conf.d
+ tags:
+ - always
+ - en_default_all
+
+- name: Copy the generated plugin configs
+ copy:
+ src: "{{ item.src }}"
+ dest: "{{ item.dest }}"
+ with_items:
+ - { src: "/tmp/collectd.conf.d/", dest: "{{ config_file_dir }}" }
+ - { src: "/tmp/collectd.conf", dest: "{{ config_file_dir }}/../collectd.conf" }
+ tags:
+ - always
+ - en_default_all
+
+- name: Update TypesDB location
+ lineinfile:
+ path: "{{ config_file_dir }}../collectd.conf"
+ regexp: '^TypesDB "/usr/share/collectd/types.db"$'
+ line: 'TypesDB "/opt/collectd/share/collectd/types.db"'
+
+- name: Update config file location
+ lineinfile:
+ path: "{{ config_file_dir }}../collectd.conf"
+ regexp: "^(.*)/tmp/collectd.conf.d(.*)$"
+ line: '\1{{ config_file_dir }}\2'
+ backrefs: yes
+ tags:
+ - always
+ - en_default_all
+
- name: copy additional config files
include: additional_configs.yml
diff --git a/docker/ansible/roles/config_files/tasks/make_mcelog.yml b/docker/ansible/roles/config_files/tasks/make_mcelog.yml
index d05b9433..938396c8 100644
--- a/docker/ansible/roles/config_files/tasks/make_mcelog.yml
+++ b/docker/ansible/roles/config_files/tasks/make_mcelog.yml
@@ -1,16 +1,17 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2016-2019 Intel Corporation and OPNFV. All rights reserved.
#
# 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
+# 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: extract mcelog from online archive
diff --git a/docker/ansible/roles/config_files/tasks/mcelog.yml b/docker/ansible/roles/config_files/tasks/mcelog.yml
index be185092..ac14f80c 100644
--- a/docker/ansible/roles/config_files/tasks/mcelog.yml
+++ b/docker/ansible/roles/config_files/tasks/mcelog.yml
@@ -1,16 +1,17 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-2019 Intel Corporation and OPNFV. All rights reserved.
#
# 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
+# 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: install mcelog package
@@ -32,7 +33,7 @@
- name: build mcelog from sources if not in package
import_tasks: make_mcelog.yml
- when: mcelog_present|failed and install_mcelog|default(false)|bool
+ when: (mcelog_present is failed) and (install_mcelog|default(false)|bool)
tags:
- mcelogs
@@ -72,6 +73,6 @@
template:
src: mcelog.conf.j2
dest: "{{ config_file_dir }}/mcelog.conf"
- when: mcelog_running|succeeded and mcelog_exists|succeeded and mcelog_client_exists|succeeded
+ when: (mcelog_running is succeeded) and (mcelog_exists is succeeded) and (mcelog_client_exists is succeeded)
tags:
- - mcelogs
+ - mcelogs
diff --git a/docker/ansible/roles/config_files/tasks/network.yml b/docker/ansible/roles/config_files/tasks/network.yml
index 52902d4c..0af6a713 100644
--- a/docker/ansible/roles/config_files/tasks/network.yml
+++ b/docker/ansible/roles/config_files/tasks/network.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,26 +14,24 @@
---
- name: Enable network plugin
- template:
- src: network.conf.j2
- dest: "{{ config_file_dir }}/network.conf"
+ set_fact:
+ collectd_plugins: '{{ collectd_plugins | union (["network"]) | unique }}'
tags:
- network
- name: Add network port if defined
- lineinfile:
- dest: "{{ config_file_dir }}/network.conf"
- insertafter: Plugin network
- line: " Server \"{{ network_ip_addr }}\" \"{{ network_port }}\""
+ set_fact:
+ collectd_plugin_network_server: "{{ collectd_plugin_network_server | default([]) | union([{
+ 'name': network_ip_addr,
+ 'port': network_port,
+ }]) }}"
when: network_ip_addr is defined
tags:
- network
- name: Modify network.conf to add influxdb_hosts
- lineinfile:
- dest: "{{ config_file_dir }}/network.conf"
- insertafter: Plugin network
- line: " Server \"{{ item }}\" \"{{ influx_network_port }}\""
+ set_fact:
+ collectd_plugin_network_server: "{{ collectd_plugin_network_server | default([]) | union([{ 'name': item, 'port': influx_network_port }]) }}"
with_items: "{{ groups['influxdb_hosts'] }}"
tags:
- network
diff --git a/docker/ansible/roles/config_files/tasks/ovs.yml b/docker/ansible/roles/config_files/tasks/ovs.yml
new file mode 100644
index 00000000..fe3f0a13
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/ovs.yml
@@ -0,0 +1,53 @@
+# Copyright 2018-21 Anuket, Intel Corporation and others
+#
+# 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: Check if vswitchd is running
+ shell: ps -ef | grep vswitchd | grep -v grep > /dev/null
+ register: vswitchd_running
+ ignore_errors: True
+ tags:
+ - ovs_stats
+ - ovs_events
+
+- name: Check if db.sock exists
+ stat:
+ path: /var/run/openvswitch/db.sock
+ register: dbsock_exists
+ ignore_errors: True
+ tags:
+ - ovs_stats
+ - ovs_events
+
+- name: enable ovs_stats plugin
+ set_fact:
+ collectd_plugins: '{{ collectd_plugins | union(["ovs_stats"]) | unique }}'
+ collectd_plugin_ovs_stats_port: "{{ ovs_stats_port if ovs_stats_port is defined else omit }}"
+ collectd_plugin_ovs_stats_address: "{{ ovs_stats_ip_addr if ovs_stats_ip_addr is defined else omit }}"
+ collectd_plugin_ovs_stats_interval: "{{ ovs_stats_interval if ovs_stats_interval is defined else omit }}"
+ when: (vswitchd_running is succeeded) and (dbsock_exists is succeeded)
+ tags:
+ - ovs_stats
+
+- name: enable ovs_events plugin
+ set_fact:
+ collectd_plugins: '{{ collectd_plugins | union(["ovs_events"]) | unique }}'
+ collectd_plugin_ovs_events_interval: "{{ ovs_events_interval if ovs_events_interval is defined else omit }}"
+ collectd_plugin_ovs_events_address: "{{ ovs_events_ip_addr if ovs_events_ip_addr is defined else omit }}"
+ collectd_plugin_ovs_events_port: "{{ ovs_events_port if ovs_events_port is defined else omit }}"
+ when: (vswitchd_running is succeeded) and (dbsock_exists is succeeded)
+ tags:
+ - ovs_events
+
+
diff --git a/docker/ansible/roles/config_files/tasks/pmu.yml b/docker/ansible/roles/config_files/tasks/pmu.yml
index 20e3034c..c5820f98 100644
--- a/docker/ansible/roles/config_files/tasks/pmu.yml
+++ b/docker/ansible/roles/config_files/tasks/pmu.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,8 +14,7 @@
---
- name: enable intel_pmu plugin
- template:
- src: intel_pmu.conf.j2
- dest: "{{ config_file_dir }}/intel_pmu.conf"
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['intel_pmu']) | unique }}"
tags:
- pmu
diff --git a/docker/ansible/roles/config_files/tasks/prometheus.yml b/docker/ansible/roles/config_files/tasks/prometheus.yml
index 51f2b1f6..c0e7e79d 100644
--- a/docker/ansible/roles/config_files/tasks/prometheus.yml
+++ b/docker/ansible/roles/config_files/tasks/prometheus.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,8 +14,7 @@
---
- name: enable prometheus plugin
- template:
- src: prometheus.conf.j2
- dest: "{{ config_file_dir }}/prometheus.conf"
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['write_prometheus']) | unique }}"
tags:
- - prometheus \ No newline at end of file
+ - prometheus
diff --git a/docker/ansible/roles/config_files/tasks/rdt.yml b/docker/ansible/roles/config_files/tasks/rdt.yml
index cbfa7de5..f0a46261 100644
--- a/docker/ansible/roles/config_files/tasks/rdt.yml
+++ b/docker/ansible/roles/config_files/tasks/rdt.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -29,10 +29,9 @@
- rdt
- name: enable rdt plugin
- template:
- src: rdt.conf.j2
- dest: "{{ config_file_dir }}/rdt.conf"
- when: rdt_result|succeeded and virt_file.stat.exists == False
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['intel_rdt']) | unique }}"
+ when: (rdt_result is succeeded) and (virt_file.stat.exists == False)
tags:
- rdt
diff --git a/docker/ansible/roles/config_files/tasks/snmp_agent.yml b/docker/ansible/roles/config_files/tasks/snmp_agent.yml
index 603dc122..5e1ba975 100644
--- a/docker/ansible/roles/config_files/tasks/snmp_agent.yml
+++ b/docker/ansible/roles/config_files/tasks/snmp_agent.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+#Copyright 2018-2019 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.
@@ -17,5 +17,14 @@
template:
src: snmp_agent.conf.j2
dest: "{{ config_file_dir }}/snmp_agent.conf"
+ when: flavor|default('stable')|string == 'stable'
+ tags:
+ - snmp
+
+- name: enable snmp agent for non-stable container
+ template:
+ src: latest/snmp_agent.conf.j2
+ dest: "{{ config_file_dir }}/snmp_agent.conf"
+ when: flavor|default('stable')|string != 'stable'
tags:
- snmp
diff --git a/docker/ansible/roles/config_files/tasks/syslog.yml b/docker/ansible/roles/config_files/tasks/syslog.yml
index 97864a5d..e9ab06f3 100644
--- a/docker/ansible/roles/config_files/tasks/syslog.yml
+++ b/docker/ansible/roles/config_files/tasks/syslog.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,9 +14,8 @@
---
- name: enable syslog plugin
- template:
- src: syslog.conf.j2
- dest: "{{ config_file_dir }}/syslog.conf"
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['syslog']) | unique }}"
tags:
- syslog
diff --git a/docker/ansible/roles/config_files/tasks/uuid.yml b/docker/ansible/roles/config_files/tasks/uuid.yml
index 25cfa128..df669e1a 100644
--- a/docker/ansible/roles/config_files/tasks/uuid.yml
+++ b/docker/ansible/roles/config_files/tasks/uuid.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,8 +14,7 @@
---
- name: enable uuid plugin
- template:
- src: uuid.conf.j2
- dest: "{{ config_file_dir }}/uuid.conf"
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['uuid']) | unique }}"
tags:
- uuid
diff --git a/docker/ansible/roles/config_files/tasks/virt.yml b/docker/ansible/roles/config_files/tasks/virt.yml
index 9db10e8c..75a17a18 100644
--- a/docker/ansible/roles/config_files/tasks/virt.yml
+++ b/docker/ansible/roles/config_files/tasks/virt.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -21,16 +21,14 @@
- virt
- name: (virt) check if rdt is enabled
- stat:
- path: "{{ config_file_dir }}/rdt.conf"
- register: rdt_file
+ set_fact:
+ rdt_enabled: true
tags:
- - virt
+ - rdt
- name: enable virt plugin
- template:
- src: virt.conf.j2
- dest: "{{ config_file_dir }}/virt.conf"
- when: libvirt_result|succeeded and rdt_file.stat.exists == False
+ set_fact:
+ collectd_plugins: "{{ collectd_plugins | union(['virt']) | unique }}"
+ when: libvirt_result is succeeded and not (rdt_enabled | default(false))
tags:
- virt
diff --git a/docker/ansible/roles/config_files/tasks/vswitch.yml b/docker/ansible/roles/config_files/tasks/vswitch.yml
deleted file mode 100644
index baffc4bd..00000000
--- a/docker/ansible/roles/config_files/tasks/vswitch.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-#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: Check if vswitchd is running
- shell: ps -ef | grep vswitchd | grep -v grep > /dev/null
- register: vswitchd_running
- ignore_errors: True
- tags:
- - ovs_stats
- - ovs_events
-
-- name: Check if db.sock exists
- stat:
- path: /var/run/openvswitch/db.sock
- register: dbsock_exists
- ignore_errors: True
- tags:
- - ovs_stats
- - ovs_events
-
-- name: enable ovs_stats plugin
- template:
- src: "ovs_stats.conf.j2"
- dest: "{{ config_file_dir }}/ovs_stats.conf"
- when: vswitchd_running|succeeded and dbsock_exists|succeeded
- tags:
- - ovs_stats
-
-- name: enable ovs_events plugin
- template:
- src: "ovs_events.conf.j2"
- dest: "{{ config_file_dir }}/ovs_events.conf"
- when: vswitchd_running|succeeded and dbsock_exists|succeeded
- tags:
- - ovs_events
-
-
diff --git a/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 b/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2
deleted file mode 100644
index 48beb0be..00000000
--- a/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2
+++ /dev/null
@@ -1,34 +0,0 @@
-#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.
-
-Hostname "{{ inventory_hostname }}"
-Interval "{{ interval_value }}"
-
-
-#LoadPlugin contextswitch
-#LoadPlugin cpu
-#LoadPlugin cpufreq
-#LoadPlugin df
-#LoadPlugin disk
-#LoadPlugin ethstat
-#LoadPlugin ipc
-#LoadPlugin irq
-#LoadPlugin load
-#LoadPlugin memory
-#LoadPlugin numa
-#LoadPlugin processes
-#LoadPlugin swap
-#LoadPlugin turbostat
-#LoadPlugin uptime
-
diff --git a/docker/ansible/roles/config_files/templates/dpdkevents.conf.j2 b/docker/ansible/roles/config_files/templates/dpdkevents.conf.j2
deleted file mode 100644
index 60bdb3e2..00000000
--- a/docker/ansible/roles/config_files/templates/dpdkevents.conf.j2
+++ /dev/null
@@ -1,36 +0,0 @@
-#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 dpdkevents>
- Interval 1
-</LoadPlugin>
-
-<Plugin "dpdkevents">
-# <EAL>
-# Coremask "0x1"
-# MemoryChannels "4"
-# FilePrefix "rte"
-# </EAL>
- <Event "link_status">
- SendEventsOnUpdate false
- EnabledPortMask 0xffff
- SendNotification true
- </Event>
-# <Event "keep_alive">
-# SendEventsOnUpdate false
-# LCoreMask "0xf"
-# KeepAliveShmName "/dpdk_keepalive_shm_name"
-# SendNotification true
-# </Event>
-</Plugin>
diff --git a/docker/ansible/roles/config_files/templates/exec.conf.j2 b/docker/ansible/roles/config_files/templates/exec.conf.j2
deleted file mode 100644
index 2467606b..00000000
--- a/docker/ansible/roles/config_files/templates/exec.conf.j2
+++ /dev/null
@@ -1,22 +0,0 @@
-#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 exec
-
-<Plugin exec>
- # For OVS PMD stats plugin
- Exec "collectd_exec" "/src/barometer/src/collectd/collectd_sample_configs/ovs_pmd_stats.sh"
- NotificationExec "collectd_exec" "/src/barometer/src/collectd/collectd_sample_configs/write_notification.sh"
-</Plugin>
-
diff --git a/docker/ansible/roles/config_files/templates/hugepages.conf.j2 b/docker/ansible/roles/config_files/templates/hugepages.conf.j2
deleted file mode 100644
index b391a398..00000000
--- a/docker/ansible/roles/config_files/templates/hugepages.conf.j2
+++ /dev/null
@@ -1,24 +0,0 @@
-#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 hugepages
-
-<Plugin hugepages>
- ReportPerNodeHP true
- ReportRootHP true
- ValuesPages true
- ValuesBytes false
- ValuesPercentage false
-</Plugin>
-
diff --git a/docker/ansible/roles/config_files/templates/intel_pmu.conf.j2 b/docker/ansible/roles/config_files/templates/intel_pmu.conf.j2
deleted file mode 100644
index 067a3e82..00000000
--- a/docker/ansible/roles/config_files/templates/intel_pmu.conf.j2
+++ /dev/null
@@ -1,24 +0,0 @@
-#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 intel_pmu
-
-<Plugin intel_pmu>
- ReportHardwareCacheEvents true
- ReportKernelPMUEvents true
- ReportSoftwareEvents true
-# EventList "/var/cache/pmu/GenuineIntel-6-2D-core.json"
-# HardwareEvents "L2_RQSTS.CODE_RD_HIT,L2_RQSTS.CODE_RD_MISS" "L2_RQSTS.ALL_CODE_RD"
-</Plugin>
-
diff --git a/docker/ansible/roles/config_files/templates/ipmi.conf.j2 b/docker/ansible/roles/config_files/templates/ipmi.conf.j2
deleted file mode 100644
index 54554d23..00000000
--- a/docker/ansible/roles/config_files/templates/ipmi.conf.j2
+++ /dev/null
@@ -1,45 +0,0 @@
-#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 ipmi
-
-#<Plugin ipmi>
-# <Instance "local">
-# Sensor "some_sensor"
-# Sensor "another_one"
-# IgnoreSelected false
-# NotifySensorAdd false
-# NotifySensorRemove true
-# NotifySensorNotPresent false
-# NotifyIPMIConnectionState false
-# SELEnabled false
-# SELClearEvent false
-# </Instance>
-# <Instance "remote">
-# Host "server.example.com"
-# Address "1.2.3.4"
-# Username "user"
-# Password "secret"
-# #AuthType "md5"
-# Sensor "some_sensor"
-# Sensor "another_one"
-# IgnoreSelected false
-# NotifySensorAdd false
-# NotifySensorRemove true
-# NotifySensorNotPresent false
-# NotifyIPMIConnectionState false
-# SELEnabled false
-# SELClearEvent false
-# </Instance>
-#</Plugin>
diff --git a/docker/ansible/roles/config_files/templates/kafka.conf.j2 b/docker/ansible/roles/config_files/templates/kafka.conf.j2
deleted file mode 100644
index 3e4bc242..00000000
--- a/docker/ansible/roles/config_files/templates/kafka.conf.j2
+++ /dev/null
@@ -1,22 +0,0 @@
-#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_kafka
-
-<Plugin write_kafka>
- Property "metadata.broker.list" "{{ kafka_ip_addr }}:{{ kafka_port }}"
- <Topic "{{ kafka_topic }}">
- Format JSON
- </Topic>
-</Plugin>
diff --git a/docker/ansible/roles/config_files/templates/latest/snmp_agent.conf.j2 b/docker/ansible/roles/config_files/templates/latest/snmp_agent.conf.j2
new file mode 100644
index 00000000..1ff8b228
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/latest/snmp_agent.conf.j2
@@ -0,0 +1,398 @@
+# Copyright 2017-2019 Intel Corporation and OPNFV. All rights reserved.
+#
+# 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 snmp_agent
+
+<Plugin snmp_agent>
+# Intel PMU MIB
+ <Table "pmuTable">
+ IndexOID "INTEL-PMU-MIB::pmuGroupIndex"
+ <Data "pmuGroupDescr">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "intel_pmu"
+ OIDs "INTEL-PMU-MIB::pmuGroupDescr"
+ </Data>
+ <Data "pmuL1DCacheLoads">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-dcache-loads"
+ OIDs "INTEL-PMU-MIB::pmuL1DCacheLoads"
+ </Data>
+ <Data "pmuL1DCacheLoadMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-dcache-load-misses"
+ OIDs "INTEL-PMU-MIB::pmuL1DCacheLoadMisses"
+ </Data>
+ <Data "pmuL1DCacheStores">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-dcache-stores"
+ OIDs "INTEL-PMU-MIB::pmuL1DCacheStores"
+ </Data>
+ <Data "pmuL1DCacheStoreMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-dcache-store-misses"
+ OIDs "INTEL-PMU-MIB::pmuL1DCacheStoreMisses"
+ </Data>
+ <Data "pmuL1DCachePrefetches">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-dcache-prefetches"
+ OIDs "INTEL-PMU-MIB::pmuL1DCachePrefetches"
+ </Data>
+ <Data "pmuL1DCachePrefetchMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-dcache-prefetch-misses"
+ OIDs "INTEL-PMU-MIB::pmuL1DCachePrefetchMisses"
+ </Data>
+ <Data "pmuL1ICacheLoads">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-icache-loads"
+ OIDs "INTEL-PMU-MIB::pmuL1ICacheLoads"
+ </Data>
+ <Data "pmuL1ICacheLoadMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-icache-load-misses"
+ OIDs "INTEL-PMU-MIB::pmuL1ICacheLoadMisses"
+ </Data>
+ <Data "pmuL1ICachePrefetches">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-icache-prefetches"
+ OIDs "INTEL-PMU-MIB::pmuL1ICachePrefetches"
+ </Data>
+ <Data "pmuL1ICachePrefetchMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-icache-prefetch-misses"
+ OIDs "INTEL-PMU-MIB::pmuL1ICachePrefetchMisses"
+ </Data>
+ <Data "pmuLLCLoads">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "LLC-loads"
+ OIDs "INTEL-PMU-MIB::pmuLLCLoads"
+ </Data>
+ <Data "pmuLLCLoadMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "LLC-load-misses"
+ OIDs "INTEL-PMU-MIB::pmuLLCLoadMisses"
+ </Data>
+ <Data "pmuLLCStores">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "LLC-stores"
+ OIDs "INTEL-PMU-MIB::pmuLLCStores"
+ </Data>
+ <Data "pmuLLCStoreMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "LLC-store-misses"
+ OIDs "INTEL-PMU-MIB::pmuLLCStoreMisses"
+ </Data>
+ <Data "pmuLLCPrefetches">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "LLC-prefetches"
+ OIDs "INTEL-PMU-MIB::pmuLLCPrefetches"
+ </Data>
+ <Data "pmuLLCPrefetchMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "LLC-prefetch-misses"
+ OIDs "INTEL-PMU-MIB::pmuLLCPrefetchMisses"
+ </Data>
+ <Data "pmuDTLBLoads">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "dTLB-loads"
+ OIDs "INTEL-PMU-MIB::pmuDTLBLoads"
+ </Data>
+ <Data "pmuDTLBLoadMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "dTLB-load-misses"
+ OIDs "INTEL-PMU-MIB::pmuDTLBLoadMisses"
+ </Data>
+ <Data "pmuDTLBStores">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "dTLB-stores"
+ OIDs "INTEL-PMU-MIB::pmuDTLBStores"
+ </Data>
+ <Data "pmuDTLBStoreMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "dTLB-store-misses"
+ OIDs "INTEL-PMU-MIB::pmuDTLBStoreMisses"
+ </Data>
+ <Data "pmuDTLBPrefetches">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "dTLB-prefetches"
+ OIDs "INTEL-PMU-MIB::pmuDTLBPrefetches"
+ </Data>
+ <Data "pmuDTLBPrefetchMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "dTLB-prefetch-misses"
+ OIDs "INTEL-PMU-MIB::pmuDTLBPrefetchMisses"
+ </Data>
+ <Data "pmuITLBLoads">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "iTLB-loads"
+ OIDs "INTEL-PMU-MIB::pmuITLBLoads"
+ </Data>
+ <Data "pmuITLBLoadMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "iTLB-load-misses"
+ OIDs "INTEL-PMU-MIB::pmuITLBLoadMisses"
+ </Data>
+ <Data "pmuBranchLoads">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "branch-loads"
+ OIDs "INTEL-PMU-MIB::pmuBranchLoads"
+ </Data>
+ <Data "pmuBranchLoadMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "branch-load-misses"
+ OIDs "INTEL-PMU-MIB::pmuBranchLoadMisses"
+ </Data>
+ <Data "pmuCpuCycles">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "cpu-cycles"
+ OIDs "INTEL-PMU-MIB::pmuCpuCycles"
+ </Data>
+ <Data "pmuInstructions">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "instructions"
+ OIDs "INTEL-PMU-MIB::pmuInstructions"
+ </Data>
+ <Data "pmuCacheReferences">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "cache-references"
+ OIDs "INTEL-PMU-MIB::pmuCacheReferences"
+ </Data>
+ <Data "pmuCacheMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "cache-misses"
+ OIDs "INTEL-PMU-MIB::pmuCacheMisses"
+ </Data>
+ <Data "pmuBranches">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "branches"
+ OIDs "INTEL-PMU-MIB::pmuBranches"
+ </Data>
+ <Data "pmuBranchMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "branch-misses"
+ OIDs "INTEL-PMU-MIB::pmuBranchMisses"
+ </Data>
+ <Data "pmuBusCycles">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "bus-cycles"
+ OIDs "INTEL-PMU-MIB::pmuBusCycles"
+ </Data>
+ <Data "pmuCpuClock">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "cpu-clock"
+ OIDs "INTEL-PMU-MIB::pmuCpuClock"
+ </Data>
+ <Data "pmuTaskClock">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "task-clock"
+ OIDs "INTEL-PMU-MIB::pmuTaskClock"
+ </Data>
+ <Data "pmuContextSwitches">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "context-switches"
+ OIDs "INTEL-PMU-MIB::pmuContextSwitches"
+ </Data>
+ <Data "pmuCpuMigrations">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "cpu-migrations"
+ OIDs "INTEL-PMU-MIB::pmuCpuMigrations"
+ </Data>
+ <Data "pmuPageFaults">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "page-faults"
+ OIDs "INTEL-PMU-MIB::pmuPageFaults"
+ </Data>
+ <Data "pmuMinorFaults">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "minor-faults"
+ OIDs "INTEL-PMU-MIB::pmuMinorFaults"
+ </Data>
+ <Data "pmuMajorFaults">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "major-faults"
+ OIDs "INTEL-PMU-MIB::pmuMajorFaults"
+ </Data>
+ <Data "pmuAlignmentFaults">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "alignment-faults"
+ OIDs "INTEL-PMU-MIB::pmuAlignmentFaults"
+ </Data>
+ <Data "pmuEmulationFaults">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "emulation-faults"
+ OIDs "INTEL-PMU-MIB::pmuEmulationFaults"
+ </Data>
+ </Table>
+# Intel RDT MIB
+ <Table "rdtTable">
+ IndexOID "INTEL-RDT-MIB::rdtGroupIndex"
+ SizeOID "INTEL-RDT-MIB::rdtGroupNumber"
+ <Data "rdtGroupDescr">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "intel_rdt"
+ OIDs "INTEL-RDT-MIB::rdtGroupDescr"
+ </Data>
+ <Data "rdtLlc">
+ Plugin "intel_rdt"
+ Type "bytes"
+ TypeInstance "llc"
+ OIDs "INTEL-RDT-MIB::rdtLlc"
+ </Data>
+ <Data "rdtIpc">
+ Plugin "intel_rdt"
+ Type "ipc"
+ OIDs "INTEL-RDT-MIB::rdtIpc"
+ </Data>
+ <Data "rdtMbmRemote">
+ Plugin "intel_rdt"
+ Type "memory_bandwidth"
+ TypeInstance "remote"
+ OIDs "INTEL-RDT-MIB::rdtMbmRemote"
+ </Data>
+ <Data "rdtMbmLocal">
+ Plugin "intel_rdt"
+ Type "memory_bandwidth"
+ TypeInstance "local"
+ OIDs "INTEL-RDT-MIB::rdtMbmLocal"
+ </Data>
+ </Table>
+# Intel Mcelog MIB
+ <Table "mcelogTable">
+ IndexOID "INTEL-MCELOG-MIB::memoryGroupIndex"
+ <Data "memoryGroupDescr">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "mcelog"
+ OIDs "INTEL-MCELOG-MIB::memoryGroupDescr"
+ </Data>
+ <Data "memoryCorrectedErrors">
+ Plugin "mcelog"
+ Type "errors"
+ TypeInstance "corrected_memory_errors"
+ OIDs "INTEL-MCELOG-MIB::memoryCorrectedErrors"
+ </Data>
+ <Data "memoryCorrectedTimedErrors">
+ Plugin "mcelog"
+ Type "errors"
+ TypeInstance "corrected_memory_errors_in_24h"
+ OIDs "INTEL-MCELOG-MIB::memoryCorrectedTimedErrors"
+ </Data>
+ <Data "memoryUncorrectedErrors">
+ Plugin "mcelog"
+ Type "errors"
+ TypeInstance "uncorrected_memory_errors"
+ OIDs "INTEL-MCELOG-MIB::memoryUncorrectedErrors"
+ </Data>
+ <Data "memoryUncorrectedTimedErrors">
+ Plugin "mcelog"
+ Type "errors"
+ TypeInstance "uncorrected_memory_errors_in_24h"
+ OIDs "INTEL-MCELOG-MIB::memoryUncorrectedTimedErrors"
+ </Data>
+ </Table>
+# Hugepages
+ <Table "hugepagesTable">
+ <Data "hugepagesNode">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "hugepages"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesNode"
+ </Data>
+ <Data "hugepagesMemoryFree">
+ Plugin "hugepages"
+ Type "memory"
+ TypeInstance "free"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesMemoryFree"
+ </Data>
+ <Data "hugepagesMemoryUsed">
+ Plugin "hugepages"
+ Type "memory"
+ TypeInstance "used"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesMemoryUsed"
+ </Data>
+ <Data "hugepagesPagesFree">
+ Plugin "hugepages"
+ Type "vmpage_number"
+ TypeInstance "free"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesPagesFree"
+ </Data>
+ <Data "hugepagesPagesUsed">
+ Plugin "hugepages"
+ Type "vmpage_number"
+ TypeInstance "used"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesPagesUsed"
+ </Data>
+ <Data "hugepagesPercentFree">
+ Plugin "hugepages"
+ Type "percent"
+ TypeInstance "free"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesPercentFree"
+ </Data>
+ <Data "hugepagesPercentUsed">
+ Plugin "hugepages"
+ Type "percent"
+ TypeInstance "used"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesPercentUsed"
+ </Data>
+ </Table>
+</Plugin>
diff --git a/docker/ansible/roles/config_files/templates/logparser.conf.j2 b/docker/ansible/roles/config_files/templates/logparser.conf.j2
new file mode 100644
index 00000000..1f1a725b
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/logparser.conf.j2
@@ -0,0 +1,75 @@
+# Copyright 2019 Intel Corporation and OPNFV. All rights reserved.
+#
+# 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 logparser
+
+<Plugin logparser>
+ <Logfile "/var/log/syslog">
+ FirstFullRead false
+ <Message "pcie_errors">
+ DefaultType "pcie_error"
+ DefaultSeverity "warning"
+ <Match "aer error">
+ Regex "AER:.*error received"
+ SubmatchIdx -1
+ </Match>
+ <Match "incident time">
+ Regex "(... .. ..:..:..) .* pcieport.*AER"
+ SubmatchIdx 1
+ IsMandatory false
+ </Match>
+ <Match "root port">
+ Regex "pcieport (.*): AER:"
+ SubmatchIdx 1
+ IsMandatory true
+ </Match>
+ <Match "device">
+ PluginInstance true
+ Regex " ([0-9a-fA-F:\\.]*): PCIe Bus Error"
+ SubmatchIdx 1
+ IsMandatory false
+ </Match>
+ <Match "severity_mandatory">
+ Regex "severity="
+ SubMatchIdx -1
+ </Match>
+ <Match "nonfatal">
+ Regex "severity=.*\\([nN]on-[fF]atal"
+ TypeInstance "non_fatal"
+ IsMandatory false
+ </Match>
+ <Match "fatal">
+ Regex "severity=.*\\([fF]atal"
+ Severity "failure"
+ TypeInstance "fatal"
+ IsMandatory false
+ </Match>
+ <Match "corrected">
+ Regex "severity=Corrected"
+ TypeInstance "correctable"
+ IsMandatory false
+ </Match>
+ <Match "error type">
+ Regex "type=(.*),"
+ SubmatchIdx 1
+ IsMandatory false
+ </Match>
+ <Match "id">
+ Regex ", id=(.*)"
+ SubmatchIdx 1
+ </Match>
+ </Message>
+ </Logfile>
+</Plugin>
diff --git a/docker/ansible/roles/config_files/templates/ovs_events.conf.j2 b/docker/ansible/roles/config_files/templates/ovs_events.conf.j2
deleted file mode 100644
index 4fbea5ad..00000000
--- a/docker/ansible/roles/config_files/templates/ovs_events.conf.j2
+++ /dev/null
@@ -1,26 +0,0 @@
-#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 ovs_events>
- Interval "{{ ovs_events_interval }}"
-</LoadPlugin>
-
-<Plugin ovs_events>
-# Port "{{ ovs_event_port }}"
-# Address "{{ ovs_event_ip_addr }}"
-# Socket "/var/run/openvswitch/db.sock"
-# Interfaces "br0" "veth0"
- SendNotification true
- DispatchValues true
-</Plugin>
diff --git a/docker/ansible/roles/config_files/templates/ovs_stats.conf.j2 b/docker/ansible/roles/config_files/templates/ovs_stats.conf.j2
deleted file mode 100644
index fc26e4b8..00000000
--- a/docker/ansible/roles/config_files/templates/ovs_stats.conf.j2
+++ /dev/null
@@ -1,25 +0,0 @@
-#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 ovs_stats>
- Interval "{{ ovs_stats_interval }}"
-</LoadPlugin>
-
-<Plugin ovs_stats>
-# Port "{{ ovs_stats_port }}"
-# Address "{{ ovs_stats_ip_addr }}"
-# Socket "/var/run/openvswitch/db.sock"
-# Bridges "br0" "br_ext"
-</Plugin>
-
diff --git a/docker/ansible/roles/config_files/templates/prometheus.conf.j2 b/docker/ansible/roles/config_files/templates/prometheus.conf.j2
deleted file mode 100644
index bb947867..00000000
--- a/docker/ansible/roles/config_files/templates/prometheus.conf.j2
+++ /dev/null
@@ -1,19 +0,0 @@
-#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/templates/snmp_agent.conf.j2 b/docker/ansible/roles/config_files/templates/snmp_agent.conf.j2
index 406033ed..48bb709f 100644
--- a/docker/ansible/roles/config_files/templates/snmp_agent.conf.j2
+++ b/docker/ansible/roles/config_files/templates/snmp_agent.conf.j2
@@ -13,12 +13,15 @@
# limitations under the License.
LoadPlugin snmp_agent
+
<Plugin snmp_agent>
# Intel PMU MIB
<Table "pmuTable">
IndexOID "INTEL-PMU-MIB::pmuGroupIndex"
<Data "pmuGroupDescr">
- Instance true
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
Plugin "intel_pmu"
OIDs "INTEL-PMU-MIB::pmuGroupDescr"
</Data>
@@ -280,7 +283,9 @@ LoadPlugin snmp_agent
IndexOID "INTEL-RDT-MIB::rdtGroupIndex"
SizeOID "INTEL-RDT-MIB::rdtGroupNumber"
<Data "rdtGroupDescr">
- Instance true
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
Plugin "intel_rdt"
OIDs "INTEL-RDT-MIB::rdtGroupDescr"
</Data>
@@ -312,7 +317,9 @@ LoadPlugin snmp_agent
<Table "mcelogTable">
IndexOID "INTEL-MCELOG-MIB::memoryGroupIndex"
<Data "memoryGroupDescr">
- Instance true
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
Plugin "mcelog"
OIDs "INTEL-MCELOG-MIB::memoryGroupDescr"
</Data>
@@ -344,7 +351,9 @@ LoadPlugin snmp_agent
# Hugepages
<Table "hugepagesTable">
<Data "hugepagesNode">
- Instance true
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
Plugin "hugepages"
OIDs "INTEL-HUGEPAGES-MIB::hugepagesNode"
</Data>
diff --git a/docker/ansible/roles/config_files/templates/syslog.conf.j2 b/docker/ansible/roles/config_files/templates/syslog.conf.j2
deleted file mode 100644
index f9d77814..00000000
--- a/docker/ansible/roles/config_files/templates/syslog.conf.j2
+++ /dev/null
@@ -1,21 +0,0 @@
-#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 syslog
-
-# Decrease syslog verbosity, to avoid duplicate logging
-<Plugin syslog>
- LogLevel "{{ syslog_log_level }}"
-</Plugin>
-
diff --git a/docker/ansible/roles/config_files/templates/virt.conf.j2 b/docker/ansible/roles/config_files/templates/virt.conf.j2
deleted file mode 100644
index f1ba324d..00000000
--- a/docker/ansible/roles/config_files/templates/virt.conf.j2
+++ /dev/null
@@ -1,32 +0,0 @@
-#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 virt
-
-<Plugin virt>
-# Connection "xen:///"
- RefreshInterval 60
-# Domain "name"
-# BlockDevice "name:device"
-# BlockDeviceFormat target
-# BlockDeviceFormatBasename false
-# InterfaceDevice "name:device"
-# IgnoreSelected false
-# HostnameFormat name
-# InterfaceFormat name
-# PluginInstanceFormat name
-# Instances 1
- ExtraStats "cpu_util disk disk_err domain_state fs_info job_stats_background pcpu perf vcpupin"
-</Plugin>
-
diff --git a/docker/ansible/roles/config_files/vars/main.yml b/docker/ansible/roles/config_files/vars/main.yml
index f12492a3..02fd7fb9 100644
--- a/docker/ansible/roles/config_files/vars/main.yml
+++ b/docker/ansible/roles/config_files/vars/main.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,51 +12,56 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
+collectd_plugins: []
+collectd_interval: "{{ interval_value }}"
+collectd_hostname: "{{ inventory_hostname }}"
-#directory paths
-config_file_dir: "/opt/collectd/etc/collectd.conf.d/"
-csv_log_dir: "/var/lib/collectd/csv"
-logfile_dir: "/var/log/"
+collectd_plugin_capabilities_port: "9564"
-#global default interval
-interval_value: 10
+collectd_plugin_cpu_valuespercentage: False
+collectd_plugin_cpu_reportbystate: True
-#influx network port
-influx_network_port: 25826
+collectd_plugin_csv_datadir: "{{ csv_log_dir }}"
+collectd_plugin_csv_storerates: False
-#network plugin vars
-#network_port: 25826
-#network_ip_addr: localhost
+collectd_plugin_dpdk_telemetry_client_socket_path: "/var/run/.client"
+collectd_plugin_dpdk_telemetry_dpdk_socket_path: "/var/run/dpdk/rte/telemetry"
-#prometheus plugin vars
-prometheus_port: 9103
+collectd_plugin_exec_exec:
+ - user: "collectd_exec"
+ exec: "/src/barometer/src/collectd/collectd_sample_configs/ovs_pmd_stats.sh"
+collectd_plugin_exec_notification:
+ - user: "collectd_exec"
+ notification_exec: "/src/barometer/src/collectd/collectd_sample_configs/write_notification.sh"
-#ovs event and stats plugin vars
-ovs_event_interval: 1
-ovs_event_ip_addr: localhost
-ovs_event_port: 6640
-ovs_stats_interval: 1
-ovs_stats_ip_addr: localhost
-ovs_stats_port: 6640
+collectd_plugin_hugepages_report_per_node_hp: True
+collectd_plugin_hugepages_report_root_hp: True
+collectd_plugin_hugepages_values_pages: True
+collectd_plugin_hugepages_values_bytes: False
+collectd_plugin_hugepages_values_percentage: False
-#rdt plugin vars
-rdt_interval: 1
+collectd_plugin_intel_pmu_report_hardware_cache_events: True
+collectd_plugin_intel_pmu_report_kernel_pmu_events: True
+collectd_plugin_intel_pmu_report_software_events: True
+collectd_plugin_intel_pmu_cores: ["0-4"]
-#kafka plugin vars
-kafka_ip_addr: localhost
-kafka_port: 9092
-kafka_topic: collectd
+collectd_plugin_intel_rdt_cores: [""]
+collectd_plugin_intel_rdt_interval: "{{ rdt_interval }}"
-#logfile plugin vars
-logfile_log_level: info
+collectd_plugin_logfile_loglevel: "{{ logfile_log_level }}"
+collectd_plugin_logfile_file: "{{ logfile_dir }}/collectd.log"
+collectd_plugin_logfile_timestamp: True
-#syslog plugin vars
-syslog_log_level: info
+collectd_plugin_ovs_events_dispatch_values: True
+collectd_plugin_ovs_events_send_notification: True
-#rrd plugin vars
-rrdtool_db_dir: "/var/lib/collectd/rrd"
-cache_flush: 120
-write_per_sec: 50
+collectd_plugin_virt_extra_stats: "cpu_util disk disk_err domain_state fs_info job_stats_background pcpu perf vcpupin"
+collectd_plugin_virt_refresh_interval: 60
-#additional configuration files path
-additional_configs_path: ""
+collectd_plugin_write_kafka_hosts:
+ - "{{ kafka_ip_addr }}:{{ kafka_port }}"
+collectd_plugin_write_kafka_topics: '{{ { kafka_topic: { "format": "JSON" }} }}'
+
+collectd_plugin_write_prometheus_port: "{{ prometheus_port }}"
+
+collectd_plugin_syslog_loglevel: "{{ syslog_log_level }}"
diff --git a/docker/ansible/roles/install_docker/tasks/fedora.yml b/docker/ansible/roles/install_docker/tasks/fedora.yml
new file mode 100644
index 00000000..f2a4f403
--- /dev/null
+++ b/docker/ansible/roles/install_docker/tasks/fedora.yml
@@ -0,0 +1,47 @@
+#Copyright 2019 Red Hat
+#
+# 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: Set Python interpreter
+ set_fact: ansible_python_interpreter=/usr/bin/python3
+
+- name: install dependencies for docker
+ package:
+ name: "{{ packages }}"
+ state: present
+ vars:
+ packages:
+ - python3-dnf
+ - python3
+ - python3-libselinux
+
+- name: set up docker repository
+ command: "dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo && dnf makecache"
+
+- name: install docker-py
+ package:
+ name: python3-docker
+ state: present
+
+- name: install docker
+ package:
+ name: docker-ce
+ state: present
+
+- name: start docker daemon
+ systemd:
+ name: docker
+ daemon_reload: true
+ state: started
+ enabled: true
diff --git a/docker/ansible/roles/install_docker/tasks/main.yml b/docker/ansible/roles/install_docker/tasks/main.yml
index 7e015bbc..ba356563 100644
--- a/docker/ansible/roles/install_docker/tasks/main.yml
+++ b/docker/ansible/roles/install_docker/tasks/main.yml
@@ -24,6 +24,12 @@
import_tasks: ubuntu.yml
when: ansible_distribution == "Ubuntu"
+- name: install docker for fedora
+ tags:
+ - install_docker
+ import_tasks: fedora.yml
+ when: ansible_distribution == "Fedora"
+
- name: install docker for centos
tags:
- install_docker
diff --git a/docker/ansible/roles/install_docker/tasks/ubuntu.yml b/docker/ansible/roles/install_docker/tasks/ubuntu.yml
index 44156873..f3aa81b1 100644
--- a/docker/ansible/roles/install_docker/tasks/ubuntu.yml
+++ b/docker/ansible/roles/install_docker/tasks/ubuntu.yml
@@ -13,20 +13,23 @@
# limitations under the License.
---
+- name: set Python interpreter
+ set_fact: ansible_python_interpreter=/usr/bin/python3
+
- name: update package manager cache
tags:
- cache_update
package:
update_cache: yes
-- name: install python
+- name: install python3
package:
- name: python
+ name: python3
state: present
-- name: install python-pip
+- name: install python3-pip
package:
- name: python-pip
+ name: python3-pip
state: present
- name: install docker-py
diff --git a/docker/ansible/roles/run_collectd/tasks/main.yml b/docker/ansible/roles/run_collectd/tasks/main.yml
index c77aad58..bf5aabf5 100644
--- a/docker/ansible/roles/run_collectd/tasks/main.yml
+++ b/docker/ansible/roles/run_collectd/tasks/main.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
- name: remove bar-collectd container
docker_container:
- name: bar-collectd
+ name: "{{ collectd_container_name }}"
state: absent
tags:
- rm_containers
@@ -24,23 +24,38 @@
- name: Remove bar-collectd image
docker_image:
- name: opnfv/barometer-collectd
+ name: "{{ collectd_image_name }}"
state: absent
tags:
- rm_images
- rm_collectd_image
when: rm_images|default(false)|bool == true
-- name: launch collectd container
- docker_container:
- name: bar-collectd
- image: opnfv/barometer-collectd
- volumes:
- - /opt/collectd/etc/collectd.conf.d/:/opt/collectd/etc/collectd.conf.d
+- name: check if /sys/fs/resctrl exist
+ stat:
+ path: /sys/fs/resctrl
+ register: resctrl_dir
+
+- name: set list of volumes to bind
+ set_fact:
+ volumes_list:
+
+ - /opt/collectd/etc/:/opt/collectd/etc/
- /var/run:/var/run
- /tmp:/tmp
- /var/lib/collectd:/var/lib/collectd
- command: "/run_collectd.sh"
+
+- name: add resctrl to container volumes
+ set_fact:
+ volumes_list: "{{ volumes_list + [ '/sys/fs/resctrl:/sys/fs/resctrl' ] }}"
+ when: resctrl_dir.stat.exists
+
+- name: launch collectd container
+ docker_container:
+ name: "{{ collectd_container_name }}"
+ image: "{{ collectd_image_name }}"
+ volumes: "{{ volumes_list }}"
+ entrypoint: "/run_collectd.sh"
detach: yes
state: started
restart: yes
diff --git a/docker/ansible/roles/config_files/templates/dpdkstat.conf.j2 b/docker/ansible/roles/run_collectd/vars/main.yml
index 738fb4d0..26007ecf 100644
--- a/docker/ansible/roles/config_files/templates/dpdkstat.conf.j2
+++ b/docker/ansible/roles/run_collectd/vars/main.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2019-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,15 +11,13 @@
# 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 dpdkstat
-
-<Plugin dpdkstat>
-# Coremask "0xf"
-# ProcessType "secondary"
-# FilePrefix "rte"
- EnabledPortMask 0xffff
-# PortName "interface1"
-# PortName "interface2"
-</Plugin>
-
+collectd_container_name: "bar-collectd"
+default_flavor: "{{ flavor|default('stable')|string }}"
+flavor_image_name: "{{
+ 'barometer-collectd-latest' if (default_flavor == 'master' or default_flavor == 'latest') else
+ 'barometer-collectd-experimental' if (default_flavor == 'experimental') else
+ 'barometer-collectd-6' if (default_flavor == 'collectd-6')
+ else 'barometer-collectd' }}"
+collectd_image_name: "{{ 'anuket/' + flavor_image_name }}"
diff --git a/docker/ansible/roles/run_grafana/tasks/main.yml b/docker/ansible/roles/run_grafana/tasks/main.yml
index 0ec307fa..d4a1638c 100644
--- a/docker/ansible/roles/run_grafana/tasks/main.yml
+++ b/docker/ansible/roles/run_grafana/tasks/main.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -25,7 +25,7 @@
- name: Remove barometer-grafana image
docker_image:
state: absent
- name: opnfv/barometer-grafana
+ name: anuket/barometer-grafana
tags:
- rm_images
- rm_grafana_image
@@ -40,7 +40,7 @@
- name: launch barometer-grafana container
docker_container:
name: bar-grafana
- image: opnfv/barometer-grafana
+ image: anuket/barometer-grafana
volumes:
- /var/lib/grafana:/var/lib/grafana
ports:
diff --git a/docker/ansible/roles/run_influxdb/tasks/main.yml b/docker/ansible/roles/run_influxdb/tasks/main.yml
index 53187fae..02eeb788 100644
--- a/docker/ansible/roles/run_influxdb/tasks/main.yml
+++ b/docker/ansible/roles/run_influxdb/tasks/main.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,9 +22,9 @@
- rm_influxdb_cont
when: rm_containers|default(false)|bool == true
-- name: Remove opnfv/barometer-influxdb image
+- name: Remove barometer-influxdb image
docker_image:
- name: opnfv/barometer-influxdb
+ name: anuket/barometer-influxdb
state: absent
tags:
- rm_images
@@ -34,7 +34,7 @@
- name: launch barometer-influxdb container
docker_container:
name: bar-influxdb
- image: opnfv/barometer-influxdb
+ image: anuket/barometer-influxdb
volumes:
- /var/lib/influxdb:/var/lib/influxdb
exposed:
diff --git a/docker/ansible/roles/run_kafka/tasks/main.yml b/docker/ansible/roles/run_kafka/tasks/main.yml
index 34d1f910..f30acd89 100644
--- a/docker/ansible/roles/run_kafka/tasks/main.yml
+++ b/docker/ansible/roles/run_kafka/tasks/main.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,19 +22,19 @@
- remove_bar-kafka
when: rm_containers|default(false)|bool == true
-- name: Remove opnfv/barometer-kafka image
+- name: Remove anuket/barometer-kafka image
docker_image:
- name: opnfv/barometer-kafka
+ name: anuket/barometer-kafka
state: absent
tags:
- remove_images
- remove_kafka_image
when: rm_images|default(false)|bool == true
-- name: launch opnfv/barometer-kafka container
+- name: launch anuket/barometer-kafka container
docker_container:
name: bar-kafka
- image: opnfv/barometer-kafka
+ image: anuket/barometer-kafka
env:
zookeeper_node: "{{ zookeeper_hostname }}"
broker_id: "{{ broker_id }}"
diff --git a/docker/ansible/roles/run_kafka/vars/main.yml b/docker/ansible/roles/run_kafka/vars/main.yml
index 69f0fe0b..b3091d40 100644
--- a/docker/ansible/roles/run_kafka/vars/main.yml
+++ b/docker/ansible/roles/run_kafka/vars/main.yml
@@ -1,19 +1,22 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2016-2019 Intel Corporation and OPNFV. All rights reserved.
#
# 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
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
---
-zookeeper_hostname: zookeeper
-zookeeper_host_ip: localhost
+zookeeper_hostname: "{{ (groups['zookeeper_hosts']|default({}))[0] | default('localhost') }}"
+zookeeper_host_ip: "{{ hostvars[zookeeper_hostname].ansible_default_ipv4.address }}"
-broker_id: 0
+broker_id: "0"
diff --git a/docker/ansible/roles/run_prometheus/templates/prometheus.yml b/docker/ansible/roles/run_prometheus/templates/prometheus.yml
index 7c6afa8a..86ee6e0a 100644
--- a/docker/ansible/roles/run_prometheus/templates/prometheus.yml
+++ b/docker/ansible/roles/run_prometheus/templates/prometheus.yml
@@ -1,3 +1,18 @@
+# Copyright 2018-2019 Intel Corporation and OPNFV. All rights reserved.
+#
+# 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.
+#
+
global:
scrape_timeout: "{{scrape_timeout}}"
scrape_interval: "{{scrape_interval}}"
diff --git a/docker/ansible/roles/run_ves/tasks/main.yml b/docker/ansible/roles/run_ves/tasks/main.yml
index aa9c29d3..a203fa98 100644
--- a/docker/ansible/roles/run_ves/tasks/main.yml
+++ b/docker/ansible/roles/run_ves/tasks/main.yml
@@ -1,4 +1,4 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2018-21 Anuket, Intel Corporation and others
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -22,19 +22,19 @@
- remove_bar-ves
when: rm_containers|default(false)|bool == true
-- name: Remove opnfv/barometer-ves image
+- name: Remove anuket/barometer-ves image
docker_image:
state: absent
- name: opnfv/barometer-ves
+ name: anuket/barometer-ves
tags:
- remove_images
- remove_ves_image
when: rm_images|default(false)|bool == true
-- name: launch opnfv/barometer-ves container
+- name: launch anuket/barometer-ves container
docker_container:
name: bar-ves
- image: opnfv/barometer-ves
+ image: anuket/barometer-ves
detach: yes
state: started
restart: yes
diff --git a/docker/ansible/roles/run_zookeeper/tasks/main.yml b/docker/ansible/roles/run_zookeeper/tasks/main.yml
new file mode 100644
index 00000000..fdda300d
--- /dev/null
+++ b/docker/ansible/roles/run_zookeeper/tasks/main.yml
@@ -0,0 +1,41 @@
+#Copyright 2019 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-zookeeper container
+ docker_container:
+ name: bar-zookeeper
+ state: absent
+ tags:
+ - remove_containers
+ - remove_bar-zookeeper
+ when: rm_containers|default(false)|bool == true
+
+- name: Remove zookeeper image
+ docker_image:
+ state: absent
+ name: zookeeper:3.4.11
+ tags:
+ - remove_images
+ - remove_zookeeper_image
+ when: rm_images|default(false)|bool == true
+
+- name: launch zookeeper container
+ docker_container:
+ name: bar-zookeeper
+ image: zookeeper:3.4.11
+ detach: yes
+ state: started
+ restart: yes
+ network_mode: host
diff --git a/docker/barometer-collectd-experimental/Dockerfile b/docker/barometer-collectd-experimental/Dockerfile
new file mode 100644
index 00000000..f051ef35
--- /dev/null
+++ b/docker/barometer-collectd-experimental/Dockerfile
@@ -0,0 +1,54 @@
+# Copyright 2017-2021 Intel Corporation, Anuket and others.
+# All rights reserved.
+#
+# 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.
+#
+
+FROM quay.io/centos/centos:stream8 as builder
+
+ARG COLLECTD_FLAVOR=experimental
+ARG COLLECTD_PULL_REQUESTS
+ARG COLLECTD_CONFIG_CMD_ARGS
+ARG COLLECTD_TAG
+ARG WITH_DPDK=n
+
+ENV DOCKER y
+ENV repos_dir /src
+
+RUN mkdir -p ${repos_dir}/barometer
+COPY . ${repos_dir}/barometer
+
+WORKDIR ${repos_dir}/barometer/systems
+RUN ./build_base_machine.sh && \
+ dnf clean all && rm -rf /var/cache/dnf
+
+FROM quay.io/centos/centos:stream8
+
+COPY docker/barometer-collectd-experimental/run_collectd.sh /run_collectd.sh
+RUN chmod +x /run_collectd.sh
+
+RUN useradd -ms /bin/bash collectd_exec && \
+ echo "collectd_exec ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
+
+COPY --from=builder /opt/collectd /opt/collectd
+COPY --from=builder /usr/local/src /usr/local/src
+COPY --from=builder /usr/share/snmp/mibs /usr/share/snmp/mibs
+COPY --from=builder /opt/collectd/share/collectd/types.db /usr/share/collectd/types.db
+
+RUN dnf install -y 'dnf-command(builddep)' centos-release-opstools && \
+ dnf config-manager --set-enabled powertools && \
+ dnf builddep -y https://raw.githubusercontent.com/centos-opstools/collectd/master/collectd.spec && \
+ dnf install -y jansson && \
+ dnf clean all && rm -rf /var/cache/dnf
+
+ENTRYPOINT ["/run_collectd.sh"]
diff --git a/docker/barometer-collectd-master/run_collectd.sh b/docker/barometer-collectd-experimental/run_collectd.sh
index 001cce1a..5920248a 100644
--- a/docker/barometer-collectd-master/run_collectd.sh
+++ b/docker/barometer-collectd-experimental/run_collectd.sh
@@ -1,15 +1,16 @@
#!/bin/bash
-# Copyright 2017 OPNFV
+# Copyright 2016-2019 Intel Corporation and OPNFV. All rights reserved.
#
# 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
+# 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.
+#
/opt/collectd/sbin/collectd -f
diff --git a/docker/barometer-collectd-latest/Dockerfile b/docker/barometer-collectd-latest/Dockerfile
new file mode 100644
index 00000000..4b6dfefb
--- /dev/null
+++ b/docker/barometer-collectd-latest/Dockerfile
@@ -0,0 +1,36 @@
+# Copyright 2017-2021 Intel Corporation, Anuket and others.
+# All rights reserved.
+#
+# 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.
+#
+
+FROM quay.io/centos/centos:stream8
+
+ARG COLLECTD_FLAVOR=latest
+ARG WITH_DPDK=y
+ENV DOCKER y
+ENV repos_dir /src
+
+RUN mkdir -p ${repos_dir}/barometer
+COPY . ${repos_dir}/barometer
+
+WORKDIR ${repos_dir}/barometer/systems
+RUN sh ./build_base_machine.sh && \
+ dnf clean all && rm -rf /var/cache/dnf && \
+ useradd -ms /bin/bash collectd_exec && \
+ echo "collectd_exec ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
+
+COPY docker/barometer-collectd-latest/run_collectd.sh /run_collectd.sh
+RUN chmod +x /run_collectd.sh
+
+ENTRYPOINT ["/run_collectd.sh"]
diff --git a/docker/ansible/roles/config_files/templates/uuid.conf.j2 b/docker/barometer-collectd-latest/run_collectd.sh
index a9a84e71..5920248a 100644
--- a/docker/ansible/roles/config_files/templates/uuid.conf.j2
+++ b/docker/barometer-collectd-latest/run_collectd.sh
@@ -1,20 +1,16 @@
-#Copyright 2018 OPNFV and Intel Corporation
+#!/bin/bash
+# Copyright 2016-2019 Intel Corporation and OPNFV. All rights reserved.
#
# 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
+# 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 uuid
-
-#<Plugin uuid>
-# UUIDFile "/etc/uuid"
-#</Plugin>
-
+#
+/opt/collectd/sbin/collectd -f
diff --git a/docker/barometer-collectd-master/Dockerfile b/docker/barometer-collectd-master/Dockerfile
deleted file mode 100644
index 0f890d08..00000000
--- a/docker/barometer-collectd-master/Dockerfile
+++ /dev/null
@@ -1,30 +0,0 @@
-FROM centos:7
-RUN yum update -y && \
- yum install -y which sudo git && \
- yum clean all && \
- git config --global http.sslVerify false
-
-ENV DOCKER y
-ENV COLLECTD_USE_MASTER y
-ENV WITH_DPDK y
-ENV repos_dir /src
-ENV openstack_plugins /src/barometer/src/collectd-openstack-plugins
-
-WORKDIR ${repos_dir}
-RUN mkdir -p ${repos_dir}/barometer
-COPY . ${repos_dir}/barometer
-
-WORKDIR ${repos_dir}/barometer/systems
-RUN sh ./build_base_machine.sh && \
- useradd -ms /bin/bash collectd_exec && \
- echo "collectd_exec ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
-
-WORKDIR ${openstack_plugins}
-RUN make && \
- pip install --upgrade pip && \
- pip install -r ${openstack_plugins}/collectd-openstack-plugins/requirements.txt
-
-COPY docker/barometer-collectd-master/run_collectd.sh /run_collectd.sh
-RUN chmod +x /run_collectd.sh
-
-ENTRYPOINT ["/run_collectd.sh"]
diff --git a/docker/barometer-collectd/Dockerfile b/docker/barometer-collectd/Dockerfile
index a7a8a077..db155572 100644
--- a/docker/barometer-collectd/Dockerfile
+++ b/docker/barometer-collectd/Dockerfile
@@ -1,26 +1,40 @@
-FROM centos:7
-RUN yum update -y && \
- yum install -y which sudo git && \
- yum clean all && \
+# Copyright 2017-2021 Intel Corporation, Anuket and others.
+# All rights reserved.
+#
+# 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.
+#
+
+FROM quay.io/centos/centos:stream8
+RUN dnf update -y && \
+ dnf install -y which sudo git-core && \
+ dnf clean all && \
git config --global http.sslVerify false
ENV DOCKER y
ENV WITH_DPDK y
+ENV COLLECTD_FLAVOR stable
ENV repos_dir /src
-ENV openstack_plugins /src/barometer/src/collectd-openstack-plugins
WORKDIR ${repos_dir}
RUN git clone https://gerrit.opnfv.org/gerrit/barometer
+
WORKDIR ${repos_dir}/barometer/systems
RUN sh ./build_base_machine.sh && \
+ dnf clean all && rm -rf /var/cache/dnf && \
+ cd ${repos_dir}/ && rm -rf barometer && \
useradd -ms /bin/bash collectd_exec && \
echo "collectd_exec ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
-WORKDIR ${openstack_plugins}
-RUN make && \
- pip install --upgrade pip && \
- pip install -r ${openstack_plugins}/collectd-openstack-plugins/requirements.txt
-
COPY run_collectd.sh /run_collectd.sh
RUN chmod +x /run_collectd.sh
diff --git a/docker/barometer-collectd/run_collectd.sh b/docker/barometer-collectd/run_collectd.sh
index 001cce1a..5920248a 100644
--- a/docker/barometer-collectd/run_collectd.sh
+++ b/docker/barometer-collectd/run_collectd.sh
@@ -1,15 +1,16 @@
#!/bin/bash
-# Copyright 2017 OPNFV
+# Copyright 2016-2019 Intel Corporation and OPNFV. All rights reserved.
#
# 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
+# 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.
+#
/opt/collectd/sbin/collectd -f
diff --git a/docker/barometer-grafana/Dockerfile b/docker/barometer-grafana/Dockerfile
index 610e8086..714f95ae 100644
--- a/docker/barometer-grafana/Dockerfile
+++ b/docker/barometer-grafana/Dockerfile
@@ -1,3 +1,18 @@
+# Copyright 2017-2019 Intel Corporation and OPNFV. All rights reserved.
+#
+# 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.
+#
+
FROM grafana/grafana:4.6.3
ENV grafana_folder /opt/grafana
diff --git a/docker/barometer-grafana/dashboards/configure_grafana.sh b/docker/barometer-grafana/dashboards/configure_grafana.sh
index 8ce9689b..9089f832 100755
--- a/docker/barometer-grafana/dashboards/configure_grafana.sh
+++ b/docker/barometer-grafana/dashboards/configure_grafana.sh
@@ -1,16 +1,18 @@
-# Copyright 2017 OPNFV
+# Copyright 2017-2019 Intel Corporation and OPNFV. All rights reserved.
#
# 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
+# 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.
+#
+
curl -u admin:admin -X POST -H 'content-type: application/json'\
http://127.0.0.1:3000/api/datasources -d \
'{"name":"collectd","type":"influxdb","url":"http://localhost:8086","access":"proxy","isDefault":true,"database":"collectd","user":"admin","password":"admin","basicAuth":false}'
diff --git a/docker/barometer-grafana/dashboards/cpu_usage_dashboard.json b/docker/barometer-grafana/dashboards/cpu_usage_dashboard.json
index 0b8ab73e..bab2742d 100644
--- a/docker/barometer-grafana/dashboards/cpu_usage_dashboard.json
+++ b/docker/barometer-grafana/dashboards/cpu_usage_dashboard.json
@@ -582,7 +582,7 @@
"measurement": "cpu_value",
"orderByTime": "ASC",
"policy": "default",
- "query": "select derivative(mean(value),1s) AS idle from \"cpu_value\" WHERE \"type\" = 'cpu' AND \"host\" =~ /^$host$/ AND $timeFilter GROUP BY time($interval), instance, type_instance fill(null)",
+ "query": "select derivative(mean(value),1s) AS idle from \"cpu_value\" WHERE \"host\" =~ /^$host$/ AND $timeFilter GROUP BY time($interval), instance, type_instance fill(null)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
@@ -710,7 +710,7 @@
"measurement": "cpu_value",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"value\") FROM \"cpu_value\" WHERE (\"host\" =~ /^$host$/ AND \"type\" = 'cpu' AND \"type_instance\" != 'idle') AND $timeFilter GROUP BY time($__interval), \"instance\", \"type_instance\" fill(none)",
+ "query": "SELECT mean(\"value\") FROM \"cpu_value\" WHERE (\"host\" =~ /^$host$/ AND \"type_instance\" != 'idle') AND $timeFilter GROUP BY time($__interval), \"instance\", \"type_instance\" fill(none)",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
diff --git a/docker/barometer-influxdb/Dockerfile b/docker/barometer-influxdb/Dockerfile
index 2989f631..5a640c2b 100644
--- a/docker/barometer-influxdb/Dockerfile
+++ b/docker/barometer-influxdb/Dockerfile
@@ -1,4 +1,19 @@
+# Copyright 2017-2019 Intel Corporation and OPNFV. All rights reserved.
+#
+# 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.
+#
+
FROM influxdb:1.3.7
-RUN wget https://raw.githubusercontent.com/collectd/collectd/collectd-5.8/src/types.db -O /types.db
+RUN wget https://raw.githubusercontent.com/collectd/collectd/collectd-5.11/src/types.db -O /types.db
COPY ./influxdb.conf /etc/influxdb/influxdb.conf
diff --git a/docker/barometer-kafka/Dockerfile b/docker/barometer-kafka/Dockerfile
index 3e2402e4..828d5ae4 100644
--- a/docker/barometer-kafka/Dockerfile
+++ b/docker/barometer-kafka/Dockerfile
@@ -1,3 +1,18 @@
+# Copyright 2017-2019 Intel Corporation and OPNFV. All rights reserved.
+#
+# 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.
+#
+
FROM centos:7
RUN yum update -y && yum install -y epel-release \
wget \
diff --git a/docker/barometer-kafka/start_kafka.sh b/docker/barometer-kafka/start_kafka.sh
index abde2d13..1edbccea 100755
--- a/docker/barometer-kafka/start_kafka.sh
+++ b/docker/barometer-kafka/start_kafka.sh
@@ -1,17 +1,18 @@
#!/bin/bash
-# Copyright 2017 OPNFV
+# Copyright 2016-2019 Intel Corporation and OPNFV. All rights reserved.
#
# 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
+# 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.
+#
if [ -n "$broker_id" ]
then
diff --git a/docker/barometer-snmp/Dockerfile b/docker/barometer-snmp/Dockerfile
index b6cf94bd..dfc02d25 100644
--- a/docker/barometer-snmp/Dockerfile
+++ b/docker/barometer-snmp/Dockerfile
@@ -1,3 +1,18 @@
+# Copyright 2018-2019 Intel Corporation and OPNFV. All rights reserved.
+#
+# 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.
+#
+
FROM polinux/snmpd
COPY ./snmpd.conf /etc/snmpd/snmpd.conf
diff --git a/docker/barometer-snmp/snmpd.conf b/docker/barometer-snmp/snmpd.conf
index 61ec1a38..54f65fc5 100644
--- a/docker/barometer-snmp/snmpd.conf
+++ b/docker/barometer-snmp/snmpd.conf
@@ -1,16 +1,18 @@
-# Copyright 2017 OPNFV
+# Copyright 2016-2019 Intel Corporation and OPNFV. All rights reserved.
#
# 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
+# 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.
+#
+
view systemview included .1
access notConfigGroup "" any noauth exact systemview none none
master agentx
diff --git a/docker/barometer-tests/Dockerfile b/docker/barometer-tests/Dockerfile
new file mode 100644
index 00000000..6b5d3f15
--- /dev/null
+++ b/docker/barometer-tests/Dockerfile
@@ -0,0 +1,18 @@
+FROM opnfv/functest-core:hunter
+
+ARG BRANCH=master
+ARG OPNFV_BRANCH=stable/hunter
+ARG OPENSTACK_TAG=stable/rocky
+
+RUN apk --no-cache add --virtual .build-deps --update \
+ python-dev build-base linux-headers libffi-dev \
+ openssl-dev libjpeg-turbo-dev && \
+ wget -q -O- https://opendev.org/openstack/requirements/raw/branch/$OPENSTACK_TAG/upper-constraints.txt > upper-constraints.txt && \
+ wget -q -O- https://git.opnfv.org/functest/plain/upper-constraints.txt?h=$OPNFV_BRANCH > upper-constraints.opnfv.txt && \
+ sed -i -E /#egg=baro_tests/d upper-constraints.opnfv.txt && \
+ pip install --no-cache-dir --src /src -cupper-constraints.txt -cupper-constraints.opnfv.txt \
+ git+https://gerrit.opnfv.org/gerrit/barometer@$BRANCH#egg=baro_tests && \
+ rm -r upper-constraints.txt upper-constraints.opnfv.txt && \
+ apk del .build-deps
+COPY testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml
+CMD ["run_tests", "-t", "all"]
diff --git a/docker/barometer-tests/testcases.yaml b/docker/barometer-tests/testcases.yaml
new file mode 100644
index 00000000..a8c0a4f3
--- /dev/null
+++ b/docker/barometer-tests/testcases.yaml
@@ -0,0 +1,21 @@
+---
+tiers:
+ -
+ name: barometer
+ order: 0
+ description: >-
+ Test suites from the Barometer project
+ testcases:
+ -
+ case_name: barometercollectd
+ project_name: barometer
+ criteria: 100
+ blocking: false
+ description: >-
+ Test suite for the Barometer project. Separate tests verify
+ the proper configuration and basic functionality of all the
+ collectd plugins as described in the Project Release Plan
+ dependencies:
+ - DEPLOY_SCENARIO: 'bar'
+ run:
+ name: barometercollectd
diff --git a/docker/barometer-ves/Dockerfile b/docker/barometer-ves/Dockerfile
index e36ef848..27b3cbd3 100644
--- a/docker/barometer-ves/Dockerfile
+++ b/docker/barometer-ves/Dockerfile
@@ -18,9 +18,9 @@ RUN yum update -y && \
git \
nc
-RUN yum install -y python-pip
-RUN pip install pyyaml \
- kafka-python
+RUN yum install -y python3 python3-pip
+RUN pip3 install pyyaml \
+ kafka-python
ENV VES_DIR /opt/ves
diff --git a/docker/barometer-ves/start_ves_app.sh b/docker/barometer-ves/start_ves_app.sh
index f859bc45..0ac756c8 100644
--- a/docker/barometer-ves/start_ves_app.sh
+++ b/docker/barometer-ves/start_ves_app.sh
@@ -24,4 +24,4 @@ fi
#wait for kafka service to be available
while ! nc $ves_kafka_host 9092 < /dev/null; do sleep 1; done
-python ves_app.py --events-schema="./yaml/$YAML_FILE" --config="./config/ves_app_config.conf"
+python3 ves_app.py --events-schema="./yaml/$YAML_FILE" --config="./config/ves_app_config.conf"
diff --git a/docker/ansible/roles/config_files/templates/rdt.conf.j2 b/docker/flask_app/Dockerfile
index 0e1afcfc..67e6d589 100644
--- a/docker/ansible/roles/config_files/templates/rdt.conf.j2
+++ b/docker/flask_app/Dockerfile
@@ -1,22 +1,25 @@
-#Copyright 2018 OPNFV and Intel Corporation
+# Copyright 2021 Anuket and others. All rights reserved.
#
# 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
+# 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.
+#
+
+FROM python:3-alpine
+
+EXPOSE 5000
-<LoadPlugin intel_rdt>
- Interval {{ rdt_interval }}
-</LoadPlugin>
+WORKDIR /app
+COPY ./ /app
-<Plugin intel_rdt>
- Cores ""
-</Plugin>
+RUN python -m pip install -r requirements.txt
+ENTRYPOINT ["python", "flask_app.py"]
diff --git a/docker/flask_app/README b/docker/flask_app/README
new file mode 100644
index 00000000..03f8f3ff
--- /dev/null
+++ b/docker/flask_app/README
@@ -0,0 +1,45 @@
+To build this run:
+ sudo docker build -t my-flask-app .
+
+To run the app and see collectd metrics:
+
+ sudo docker run -d --net=host my-flask-app
+ OR
+ sudo docker run -d -p 5000:5000 my-flask-app
+
+and configure collectd to use the write_http plugin:
+
+ LoadPlugin write_http
+
+ <Plugin "write_http">
+ <Node "example">
+ URL "http://127.0.0.1:5000"
+ Format Command
+ # Format JSON
+ </Node>
+ </Plugin>
+
+Format Command is used to make the output more readable for humans.
+You can also use JSON.
+
+Later the server will do something more useful.
+To view the metrics that are being sent by collectd, run::
+
+ sudo docker inspect <container_id>
+ #OR
+ sudo docker logs <container_id>
+
+Metrics from collectd-5.x will use PUTVAL
+Metrics from collectd-6.x will use PUTMETRIC
+
+Sample output::
+
+ 127.0.0.1 - - [21/Apr/2021 19:31:49] "POST / HTTP/1.1" 200 -
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/turbostat-cpu00/gauge-TSC interval=10.000 1619029909.268:2112.02271161789
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/turbostat-cpu00/frequency-busy interval=10.000 1619029909.268:1613.51555288381
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/turbostat-cpu00/percent-c1 interval=10.000 1619029909.268:86.2353665532377
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/turbostat-cpu00/frequency-average interval=10.000 1619029909.268:222.094501460956
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/turbostat-pkg00/temperature interval=10.000 1619029909.268:53
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/turbostat-pkg00/temperature-tcc_activation interval=10.000 1619029909.268:100
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/turbostat-cpu04/frequency-average interval=10.000 1619029909.268:206.978572579757
+
diff --git a/docker/flask_app/flask_app.py b/docker/flask_app/flask_app.py
new file mode 100644
index 00000000..771a91bc
--- /dev/null
+++ b/docker/flask_app/flask_app.py
@@ -0,0 +1,16 @@
+from flask import Flask, request
+import json
+
+app = Flask(__name__)
+
+@app.route('/', methods=['GET', 'POST'])
+def get_data():
+ #print(request.data)
+ #print(type(request.data))
+ print(request.data.decode('utf-8'))
+ #print(json.loads(request.data.decode("utf-8")))
+
+ return 'This is working!'
+
+if __name__=='__main__':
+ app.run(debug=True, host='0.0.0.0')
diff --git a/docker/flask_app/requirements.txt b/docker/flask_app/requirements.txt
new file mode 100644
index 00000000..e3e9a71d
--- /dev/null
+++ b/docker/flask_app/requirements.txt
@@ -0,0 +1 @@
+Flask
diff --git a/docker/ves/Dockerfile b/docker/ves/Dockerfile
index f77f852a..fd04d905 100644
--- a/docker/ves/Dockerfile
+++ b/docker/ves/Dockerfile
@@ -1,3 +1,18 @@
+# Copyright 2017-2019 Intel Corporation and OPNFV. All rights reserved.
+#
+# 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.
+#
+
FROM centos:7
RUN yum update -y && \
yum install -y epel-release \