diff options
author | Gordon Kelly <gordon.kelly@intel.com> | 2018-02-15 09:40:44 +0000 |
---|---|---|
committer | Gordon Kelly <gordon.kelly@intel.com> | 2018-02-23 15:45:13 +0000 |
commit | d80cfa2391f97998eb33a06baf5a6489934919e7 (patch) | |
tree | aef9382b956e63fc282a9fdd1337d066b3fa85f4 /docker/ansible/roles | |
parent | 206802828c9b76b56388fe270f114999713a3a8c (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')
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 |