aboutsummaryrefslogtreecommitdiffstats
path: root/docker/ansible/roles/config_files
diff options
context:
space:
mode:
authorGordon Kelly <gordon.kelly@intel.com>2018-02-15 09:40:44 +0000
committerGordon Kelly <gordon.kelly@intel.com>2018-02-23 15:45:13 +0000
commitd80cfa2391f97998eb33a06baf5a6489934919e7 (patch)
treeaef9382b956e63fc282a9fdd1337d066b3fa85f4 /docker/ansible/roles/config_files
parent206802828c9b76b56388fe270f114999713a3a8c (diff)
ansible: add ansible scripts to configure .conf file on collectd nodes
Change-Id: I7349582f7412088f4d303ca52eabf40afea3f5fe Signed-off-by: gordonkelly <gordon.kelly@intel.com>
Diffstat (limited to 'docker/ansible/roles/config_files')
-rw-r--r--docker/ansible/roles/config_files/tasks/csv.yml22
-rw-r--r--docker/ansible/roles/config_files/tasks/default_read_import.yml143
-rw-r--r--docker/ansible/roles/config_files/tasks/default_read_plugins.yml34
-rw-r--r--docker/ansible/roles/config_files/tasks/exec.yml21
-rw-r--r--docker/ansible/roles/config_files/tasks/hugepages.yml33
-rw-r--r--docker/ansible/roles/config_files/tasks/kafka.yml21
-rw-r--r--docker/ansible/roles/config_files/tasks/logfile.yml25
-rw-r--r--docker/ansible/roles/config_files/tasks/main.yml72
-rw-r--r--docker/ansible/roles/config_files/tasks/mcelog.yml44
-rw-r--r--docker/ansible/roles/config_files/tasks/network.yml21
-rw-r--r--docker/ansible/roles/config_files/tasks/pmu.yml21
-rw-r--r--docker/ansible/roles/config_files/tasks/rdt.yml39
-rw-r--r--docker/ansible/roles/config_files/tasks/rrdtool.yml22
-rw-r--r--docker/ansible/roles/config_files/tasks/snmp_agent.yml21
-rw-r--r--docker/ansible/roles/config_files/tasks/syslog.yml22
-rw-r--r--docker/ansible/roles/config_files/tasks/virt.yml36
-rw-r--r--docker/ansible/roles/config_files/tasks/vswitch.yml49
-rw-r--r--docker/ansible/roles/config_files/templates/csv.conf.j221
-rw-r--r--docker/ansible/roles/config_files/templates/default_read_plugins.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/kafka.conf.j222
-rw-r--r--docker/ansible/roles/config_files/templates/logfile.conf.j222
-rw-r--r--docker/ansible/roles/config_files/templates/mcelog.conf.j226
-rw-r--r--docker/ansible/roles/config_files/templates/network.conf.j220
-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/rdt.conf.j222
-rw-r--r--docker/ansible/roles/config_files/templates/rrdtool.conf.j221
-rw-r--r--docker/ansible/roles/config_files/templates/snmp_agent.conf.j2389
-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.yml53
34 files changed, 1452 insertions, 0 deletions
diff --git a/docker/ansible/roles/config_files/tasks/csv.yml b/docker/ansible/roles/config_files/tasks/csv.yml
new file mode 100644
index 00000000..0be4ec8f
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/csv.yml
@@ -0,0 +1,22 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: enable csv plugin
+ template:
+ src: csv.conf.j2
+ dest: "{{ config_file_dir }}/csv.conf"
+ 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
new file mode 100644
index 00000000..f11b8b80
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/default_read_import.yml
@@ -0,0 +1,143 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: enable cpu plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin cpu(\s+.*)?$'
+ replace: '\1LoadPlugin cpu\2'
+ tags:
+ - cpu
+
+- name: enable cpufreq plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin cpufreq(\s+.*)?$'
+ replace: '\1LoadPlugin cpufreq\2'
+ tags:
+ - cpufreq
+
+- name: enable disk plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin disk(\s+.*)?$'
+ replace: '\1LoadPlugin disk\2'
+ tags:
+ - disk
+
+- name: enable load plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin load(\s+.*)?$'
+ replace: '\1LoadPlugin load\2'
+ tags:
+ - load
+
+- name: enable memory plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin memory(\s+.*)?$'
+ replace: '\1LoadPlugin memory\2'
+ tags:
+ - memory
+
+- name: enable numa plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin numa(\s+.*)?$'
+ replace: '\1LoadPlugin numa\2'
+ tags:
+ - numa
+
+- name: enable processes plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin processes(\s+.*)?$'
+ replace: '\1LoadPlugin processes\2'
+ tags:
+ - processes
+
+- name: enable irq plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin irq(\s+.*)?$'
+ replace: '\1LoadPlugin irq\2'
+ tags:
+ - irq
+
+- name: enable swap plugin
+ replace:
+ path: "{{ config_file_dir }}/default_plugins.conf"
+ regexp: '(\s+)#LoadPlugin swap(\s+.*)?$'
+ replace: '\1LoadPlugin swap\2'
+ tags:
+ - swap
+
+- name: enable ethstat plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin ethstat(\s+.*)?$'
+ replace: '\1LoadPlugin ethstat\2'
+ tags:
+ - ethstat
+
+- name: enable ipc plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin ipc(\s+.*)?$'
+ replace: '\1LoadPlugin ipc\2'
+ tags:
+ - ipc
+
+- name: enable ipmi plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin ipmi(\s+.*)?$'
+ replace: '\1LoadPlugin ipmi\2'
+ tags:
+ - ipmi
+
+- name: enable df plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin df(\s+.*)?$'
+ replace: '\1LoadPlugin df\2'
+ tags:
+ - df
+
+- name: enable turbostat plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin turbostat(\s+.*)?$'
+ replace: '\1LoadPlugin turbostat\2'
+ tags:
+ - turbostat
+
+- name: enable uptime plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin uptime(\s+.*)?$'
+ replace: '\1LoadPlugin uptime\2'
+ tags:
+ - uptime
+
+- name: enable contextswitch plugin
+ replace:
+ path: "{{ config_file_dir }}/default_read_plugins.conf"
+ regexp: '(\s+)#LoadPlugin contextswitch(\s+.*)?$'
+ replace: '\1LoadPlugin contextswitch\2'
+ tags:
+ - contextswitch
+
diff --git a/docker/ansible/roles/config_files/tasks/default_read_plugins.yml b/docker/ansible/roles/config_files/tasks/default_read_plugins.yml
new file mode 100644
index 00000000..95b942c2
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/default_read_plugins.yml
@@ -0,0 +1,34 @@
+#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/exec.yml b/docker/ansible/roles/config_files/tasks/exec.yml
new file mode 100644
index 00000000..b7389703
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/exec.yml
@@ -0,0 +1,21 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: enable exec plugin
+ template:
+ src: exec.conf.j2
+ dest: "{{ config_file_dir }}/exec.conf"
+ tags:
+ - exec
diff --git a/docker/ansible/roles/config_files/tasks/hugepages.yml b/docker/ansible/roles/config_files/tasks/hugepages.yml
new file mode 100644
index 00000000..bf49035c
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/hugepages.yml
@@ -0,0 +1,33 @@
+#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 hugepages folders exist on host
+ stat:
+ path: "{{ item }}"
+ register: hugepages_result
+ ignore_errors: "true"
+ with_items:
+ /sys/devices/system/node
+ /sys/kernel/mm/hugepages
+ tags:
+ - hugepages
+
+- name: enable hugepages plugin
+ template:
+ src: hugepages.conf.j2
+ dest: "{{ config_file_dir }}//hugepages.conf"
+ when: hugepages_result|succeeded
+ tags:
+ - hugepages
diff --git a/docker/ansible/roles/config_files/tasks/kafka.yml b/docker/ansible/roles/config_files/tasks/kafka.yml
new file mode 100644
index 00000000..d7639cbf
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/kafka.yml
@@ -0,0 +1,21 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: enable kafka plugin
+ template:
+ src: kafka.conf.j2
+ dest: "{{ config_file_dir }}/kafka.conf"
+ tags:
+ - kafka
diff --git a/docker/ansible/roles/config_files/tasks/logfile.yml b/docker/ansible/roles/config_files/tasks/logfile.yml
new file mode 100644
index 00000000..b2700594
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/logfile.yml
@@ -0,0 +1,25 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: enable logfile plugin
+ template:
+ src: logfile.conf.j2
+ dest: "{{ config_file_dir }}/logfile.conf"
+ tags:
+ - logfile
+
+
+
+
diff --git a/docker/ansible/roles/config_files/tasks/main.yml b/docker/ansible/roles/config_files/tasks/main.yml
new file mode 100644
index 00000000..2f0938c0
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/main.yml
@@ -0,0 +1,72 @@
+#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: Clean collectd config dir path
+ file:
+ state: absent
+ path: "{{ config_file_dir }}"
+ tags:
+ - rm_config_dir
+ - always
+
+- name: Create collectd.d folder on remote host
+ file:
+ path: "{{ config_file_dir }}"
+ force: yes
+ state: directory
+ tags:
+ - always
+
+- name: enable csv plugin
+ import_tasks: csv.yml
+
+- name: enable default plugins
+ import_tasks: default_read_plugins.yml
+
+- name: enable exec plugin
+ import_tasks: exec.yml
+
+- name: enable hugepages plugin
+ import_tasks: hugepages.yml
+
+- name: enable kafka plugin
+ import_tasks: kafka.yml
+
+- name: enable logfile plugin
+ import_tasks: logfile.yml
+
+- name: enable mcelog plugin
+ import_tasks: mcelog.yml
+
+- name: enable network plugin
+ import_tasks: network.yml
+
+- name: enable pmu plugin
+ import_tasks: pmu.yml
+
+- name: enable rdt plugin
+ import_tasks: rdt.yml
+
+- name: enable rddtool plugin
+ import_tasks: rrdtool.yml
+
+- name: enable snmp_agent plugin
+ import_tasks: snmp_agent.yml
+
+- name: enable syslog plugin
+ import_tasks: syslog.yml
+
+- name: enable virt plugin
+ import_tasks: virt.yml
diff --git a/docker/ansible/roles/config_files/tasks/mcelog.yml b/docker/ansible/roles/config_files/tasks/mcelog.yml
new file mode 100644
index 00000000..9c935e3e
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/mcelog.yml
@@ -0,0 +1,44 @@
+#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 mcelog running on host
+ shell: ps -ef | grep mcelog | grep -v grep > /dev/null
+ register: mcelog_running
+ ignore_errors: "true"
+ tags:
+ - mcelogs
+
+- name: check if mcelog exists
+ shell: which mcelog > /dev/null
+ register: mcelog_exists
+ ignore_errors: "true"
+ tags:
+ - mcelogs
+
+- name: check if mcelog-client exists
+ stat:
+ path: /var/run/mcelog-client
+ register: mcelog_client_exists
+ ignore_errors: "true"
+ tags:
+ - mcelogs
+
+- name: enable mcelog plugin
+ template:
+ src: mcelog.conf.j2
+ dest: "{{ config_file_dir }}/mcelog.conf"
+ when: mcelog_running|succeeded and mcelog_exists|succeeded and mcelog_client_exists|succeeded
+ tags:
+ - mcelogs
diff --git a/docker/ansible/roles/config_files/tasks/network.yml b/docker/ansible/roles/config_files/tasks/network.yml
new file mode 100644
index 00000000..dca0c235
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/network.yml
@@ -0,0 +1,21 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: enable network plugin
+ template:
+ src: network.conf.j2
+ dest: "{{ config_file_dir }}/network.conf"
+ tags:
+ - network
diff --git a/docker/ansible/roles/config_files/tasks/pmu.yml b/docker/ansible/roles/config_files/tasks/pmu.yml
new file mode 100644
index 00000000..20e3034c
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/pmu.yml
@@ -0,0 +1,21 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: enable intel_pmu plugin
+ template:
+ src: intel_pmu.conf.j2
+ dest: "{{ config_file_dir }}/intel_pmu.conf"
+ tags:
+ - pmu
diff --git a/docker/ansible/roles/config_files/tasks/rdt.yml b/docker/ansible/roles/config_files/tasks/rdt.yml
new file mode 100644
index 00000000..cbfa7de5
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/rdt.yml
@@ -0,0 +1,39 @@
+#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 rdt on host
+ shell: |
+ grep -q cqm* "/proc/cpuinfo"
+ register: rdt_result
+ ignore_errors: "true"
+ tags:
+ - rdt
+
+- name: (rdt) check if virt is enabled
+ stat:
+ path: "{{ config_file_dir }}/virt.conf"
+ register: virt_file
+ tags:
+ - 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
+ tags:
+ - rdt
+
+
diff --git a/docker/ansible/roles/config_files/tasks/rrdtool.yml b/docker/ansible/roles/config_files/tasks/rrdtool.yml
new file mode 100644
index 00000000..4c681dc6
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/rrdtool.yml
@@ -0,0 +1,22 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: enable rrdtool plugin
+ template:
+ src: rrdtool.conf.j2
+ dest: "{{ config_file_dir }}/rrdtool.conf"
+ tags:
+ - rrdtool
+
diff --git a/docker/ansible/roles/config_files/tasks/snmp_agent.yml b/docker/ansible/roles/config_files/tasks/snmp_agent.yml
new file mode 100644
index 00000000..603dc122
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/snmp_agent.yml
@@ -0,0 +1,21 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: enable snmp agent
+ template:
+ src: snmp_agent.conf.j2
+ dest: "{{ config_file_dir }}/snmp_agent.conf"
+ tags:
+ - snmp
diff --git a/docker/ansible/roles/config_files/tasks/syslog.yml b/docker/ansible/roles/config_files/tasks/syslog.yml
new file mode 100644
index 00000000..97864a5d
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/syslog.yml
@@ -0,0 +1,22 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: enable syslog plugin
+ template:
+ src: syslog.conf.j2
+ dest: "{{ config_file_dir }}/syslog.conf"
+ tags:
+ - syslog
+
diff --git a/docker/ansible/roles/config_files/tasks/virt.yml b/docker/ansible/roles/config_files/tasks/virt.yml
new file mode 100644
index 00000000..9db10e8c
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/virt.yml
@@ -0,0 +1,36 @@
+#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 libvirtd on host
+ shell: ps -ef | grep libvirtd | grep -v grep > /dev/null
+ register: libvirt_result
+ ignore_errors: "true"
+ tags:
+ - virt
+
+- name: (virt) check if rdt is enabled
+ stat:
+ path: "{{ config_file_dir }}/rdt.conf"
+ register: rdt_file
+ tags:
+ - virt
+
+- 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
+ tags:
+ - virt
diff --git a/docker/ansible/roles/config_files/tasks/vswitch.yml b/docker/ansible/roles/config_files/tasks/vswitch.yml
new file mode 100644
index 00000000..baffc4bd
--- /dev/null
+++ b/docker/ansible/roles/config_files/tasks/vswitch.yml
@@ -0,0 +1,49 @@
+#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/csv.conf.j2 b/docker/ansible/roles/config_files/templates/csv.conf.j2
new file mode 100644
index 00000000..3e351932
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/csv.conf.j2
@@ -0,0 +1,21 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LoadPlugin csv
+
+<Plugin csv>
+ DataDir "{{ csv_log_dir }}"
+ StoreRates false
+</Plugin>
+
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
new file mode 100644
index 00000000..e0c52ca0
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2
@@ -0,0 +1,36 @@
+#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 ipmi
+#LoadPlugin irq
+#LoadPlugin load
+#LoadPlugin memory
+#LoadPlugin numa
+#LoadPlugin processes
+#LoadPlugin swap
+#LoadPlugin turbostat
+#LoadPlugin uuid
+#LoadPlugin uptime
+
diff --git a/docker/ansible/roles/config_files/templates/exec.conf.j2 b/docker/ansible/roles/config_files/templates/exec.conf.j2
new file mode 100644
index 00000000..2467606b
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/exec.conf.j2
@@ -0,0 +1,22 @@
+#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
new file mode 100644
index 00000000..b391a398
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/hugepages.conf.j2
@@ -0,0 +1,24 @@
+#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
new file mode 100644
index 00000000..067a3e82
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/intel_pmu.conf.j2
@@ -0,0 +1,24 @@
+#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/kafka.conf.j2 b/docker/ansible/roles/config_files/templates/kafka.conf.j2
new file mode 100644
index 00000000..3e4bc242
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/kafka.conf.j2
@@ -0,0 +1,22 @@
+#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/logfile.conf.j2 b/docker/ansible/roles/config_files/templates/logfile.conf.j2
new file mode 100644
index 00000000..8bc96ffe
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/logfile.conf.j2
@@ -0,0 +1,22 @@
+#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 logfile
+
+<Plugin logfile>
+ LogLevel "{{ logfile_log_level }}"
+ File "{{ logfile_dir }}/collectd.log"
+ Timestamp true
+</Plugin>
+
diff --git a/docker/ansible/roles/config_files/templates/mcelog.conf.j2 b/docker/ansible/roles/config_files/templates/mcelog.conf.j2
new file mode 100644
index 00000000..148053cb
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/mcelog.conf.j2
@@ -0,0 +1,26 @@
+#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 mcelog>
+ Interval 1
+</LoadPlugin>
+
+<Plugin mcelog>
+ <Memory>
+ McelogClientSocket "/var/run/mcelog-client"
+ PersistentNotification false
+ </Memory>
+## McelogLogfile "/var/log/mcelog"
+</Plugin>
+
diff --git a/docker/ansible/roles/config_files/templates/network.conf.j2 b/docker/ansible/roles/config_files/templates/network.conf.j2
new file mode 100644
index 00000000..3d940e85
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/network.conf.j2
@@ -0,0 +1,20 @@
+#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 network
+
+<Plugin network>
+ Server "{{ network_ip_addr }}" "{{ network_port }}"
+</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
new file mode 100644
index 00000000..4fbea5ad
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/ovs_events.conf.j2
@@ -0,0 +1,26 @@
+#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
new file mode 100644
index 00000000..fc26e4b8
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/ovs_stats.conf.j2
@@ -0,0 +1,25 @@
+#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/rdt.conf.j2 b/docker/ansible/roles/config_files/templates/rdt.conf.j2
new file mode 100644
index 00000000..814c23ca
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/rdt.conf.j2
@@ -0,0 +1,22 @@
+#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_rdt>
+ Interval "{{ rdt_interval }}"
+</LoadPlugin>
+
+<Plugin intel_rdt>
+ Cores ""
+</Plugin>
+
diff --git a/docker/ansible/roles/config_files/templates/rrdtool.conf.j2 b/docker/ansible/roles/config_files/templates/rrdtool.conf.j2
new file mode 100644
index 00000000..dd874210
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/rrdtool.conf.j2
@@ -0,0 +1,21 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+Loadplugin rrdtool
+
+<Plugin rrdtool>
+ DataDir "{{ rrdtool_db_dir }}"
+ CacheFlush {{ cache_flush }}
+ WritesPerSecond {{ write_per_sec }}
+</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
new file mode 100644
index 00000000..406033ed
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/snmp_agent.conf.j2
@@ -0,0 +1,389 @@
+#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 snmp_agent
+<Plugin snmp_agent>
+# Intel PMU MIB
+ <Table "pmuTable">
+ IndexOID "INTEL-PMU-MIB::pmuGroupIndex"
+ <Data "pmuGroupDescr">
+ Instance true
+ 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">
+ Instance true
+ 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">
+ Instance true
+ 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">
+ Instance true
+ 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/syslog.conf.j2 b/docker/ansible/roles/config_files/templates/syslog.conf.j2
new file mode 100644
index 00000000..f9d77814
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/syslog.conf.j2
@@ -0,0 +1,21 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+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
new file mode 100644
index 00000000..f1ba324d
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/virt.conf.j2
@@ -0,0 +1,32 @@
+#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
new file mode 100644
index 00000000..3677422a
--- /dev/null
+++ b/docker/ansible/roles/config_files/vars/main.yml
@@ -0,0 +1,53 @@
+#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.
+---
+
+#directory paths
+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
+
+#network plugin vars
+network_port: 25826
+network_ip_addr: localhost
+
+#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
+
+#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