docker: add ves application container to barometer plus appropiate yaml file 17/49517/9
authorGordon Kelly <gordon.kelly@intel.com>
Fri, 22 Dec 2017 00:39:07 +0000 (00:39 +0000)
committerMaryam Tahhan <maryam.tahhan@intel.com>
Thu, 11 Jan 2018 17:08:25 +0000 (17:08 +0000)
Change-Id: Ia6fd4797e28cae64af40c4e3395a51588fd2aab3
Signed-off-by: gordonkelly <gordon.kelly@intel.com>
3rd_party/collectd-ves-app/ves_app/native.yaml [new file with mode: 0644]
docker/ves/Dockerfile [new file with mode: 0644]
docker/ves/start_ves_app.sh [new file with mode: 0644]

diff --git a/3rd_party/collectd-ves-app/ves_app/native.yaml b/3rd_party/collectd-ves-app/ves_app/native.yaml
new file mode 100644 (file)
index 0000000..8a35154
--- /dev/null
@@ -0,0 +1,287 @@
+---
+# Common event header definition (required fields and defaults)
+commonEventHeader: &commonEventHeader
+  domain: N/A
+  eventId: "{system.id}"
+  eventName: ""
+  eventType: Info
+  lastEpochMicrosec: 0
+  priority: Normal
+  reportingEntityId: &reportingEntityId "{system.hostname}"
+  reportingEntityName: *reportingEntityId
+  sequence: 0
+  sourceName: N/A
+  startEpochMicrosec: 0
+  version: 2.0
+
+# Host measurements definition
+Host Measurements: !Measurements
+  - ITEM-DESC:
+      event:
+        commonEventHeader: &hostCommonEventHeader
+          <<: *commonEventHeader
+          eventType: platform
+          domain: measurementsForVfScaling
+          sourceId: &sourceId "{vl.host}"
+          sourceName: *sourceId
+          startEpochMicrosec: !Number "{vl.time}"
+        measurementsForVfScalingFields: &hostMeasurementsForVfScalingFields
+          measurementsForVfScalingVersion: 2.0
+          additionalMeasurements: !ArrayItem
+            - SELECT:
+                host: "{vl.host}"
+                plugin: "/^(?!memory|cpu|interface|disk).*$/"
+            - INDEX-KEY:
+                - host
+                - plugin
+                - plugin_instance
+            - ITEM-DESC:
+                name: !StripExtraDash "{vl.plugin}-{vl.plugin_instance}"
+                arrayOfFields: !ArrayItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: "{vl.plugin}"
+                      plugin_instance: "{vl.plugin_instance}"
+                  - ITEM-DESC:
+                      name: !StripExtraDash "{vl.type}-{vl.type_instance}-{vl.ds_name}"
+                      value: "{vl.value}"
+          measurementInterval: !Number "{vl.interval}"
+          memoryUsageArray: !ArrayItem
+            - SELECT:
+                host: "{vl.host}"
+                plugin: memory
+                type: memory
+                type_instance: free
+            - ITEM-DESC:
+                vmIdentifier: "{vl.host}"
+                memoryFree: !Number "{vl.value}"
+                memoryUsed: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: memory
+                      type: memory
+                      type_instance: used
+                  - VALUE: !Bytes2Kibibytes "{vl.value}"
+                memoryBuffered: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: memory
+                      type: memory
+                      type_instance: buffered
+                  - VALUE: !Bytes2Kibibytes "{vl.value}"
+                memoryCached: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: memory
+                      type: memory
+                      type_instance: cached
+                  - VALUE: !Bytes2Kibibytes "{vl.value}"
+                memorySlabRecl: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: memory
+                      type: memory
+                      type_instance: slab_recl
+                  - VALUE: !Bytes2Kibibytes "{vl.value}"
+                  - DEFAULT: 0
+                memorySlabUnrecl: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: memory
+                      type: memory
+                      type_instance: slab_unrecl
+                  - VALUE: !Bytes2Kibibytes "{vl.value}"
+                  - DEFAULT: 0
+          cpuUsageArray: !ArrayItem
+            - SELECT:
+                host: "{vl.host}"
+                plugin: cpu
+                type: percent
+                type_instance: idle
+            - ITEM-DESC:
+                cpuIdentifier: "{vl.plugin_instance}"
+                cpuIdle: !Number "{vl.value}"
+                percentUsage: 0.0
+                cpuUsageUser: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: cpu
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: percent
+                      type_instance: user
+                cpuWait: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: cpu
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: percent
+                      type_instance: wait
+                cpuUsageInterrupt: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: cpu
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: percent
+                      type_instance: interrupt
+                cpuUsageNice: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: cpu
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: percent
+                      type_instance: nice
+                cpuUsageSoftIrq: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: cpu
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: percent
+                      type_instance: softirq
+                cpuUsageSteal: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: cpu
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: percent
+                      type_instance: steal
+                cpuUsageSystem: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: cpu
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: percent
+                      type_instance: system
+          vNicPerformanceArray: !ArrayItem
+            - SELECT:
+                host: "{vl.host}"
+                plugin: interface
+                type: if_packets
+                ds_name: rx
+            - ITEM-DESC:
+                valuesAreSuspect: "true"
+                vNicIdentifier: "{vl.plugin_instance}"
+                receivedTotalPacketsAccumulated: !Number "{vl.value}"
+                transmittedTotalPacketsAccumulated: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: interface
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: if_packets
+                      ds_name: tx
+                receivedOctetsAccumulated: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: interface
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: if_octets
+                      ds_name: rx
+                transmittedOctetsAccumulated: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: interface
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: if_octets
+                      ds_name: tx
+                receivedErrorPacketsAccumulated: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: interface
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: if_errors
+                      ds_name: rx
+                transmittedErrorPacketsAccumulated: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: interface
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: if_errors
+                      ds_name: tx
+                receivedDiscardedPacketsAccumulated: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: interface
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: if_dropped
+                      ds_name: rx
+                transmittedDiscardedPacketsAccumulated: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: interface
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: if_dropped
+                      ds_name: tx
+          diskUsageArray: !ArrayItem
+            - SELECT:
+                host: "{vl.host}"
+                plugin: disk
+                type: disk_octets
+                ds_name: read
+            - ITEM-DESC:
+                diskIdentifier: "{vl.plugin_instance}"
+                diskOctetsReadLast: !Number "{vl.value}"
+                diskOctetsWriteLast: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: disk
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: disk_octets
+                      ds_name: write
+                diskOpsReadLast: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: disk
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: disk_ops
+                      ds_name: read
+                diskOpsWriteLast: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: disk
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: disk_ops
+                      ds_name: write
+                diskIoTimeLast: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: disk
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: disk_io_time
+                      ds_name: io_time
+                  - DEFAULT: 0
+                diskMergedReadLast: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: disk
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: disk_merged
+                      ds_name: read
+                  - DEFAULT: 0
+                diskMergedWriteLast: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: disk
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: disk_merged
+                      ds_name: write
+                  - DEFAULT: 0
+                diskTimeReadLast: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: disk
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: disk_time
+                      ds_name: read
+                  - DEFAULT: 0
+                diskTimeWriteLast: !ValueItem
+                  - SELECT:
+                      host: "{vl.host}"
+                      plugin: disk
+                      plugin_instance: "{vl.plugin_instance}"
+                      type: disk_time
+                      ds_name: write
+                  - DEFAULT: 0
+  - SELECT:
+      plugin: memory
+      type_instance: free
+
+
diff --git a/docker/ves/Dockerfile b/docker/ves/Dockerfile
new file mode 100644 (file)
index 0000000..f77f852
--- /dev/null
@@ -0,0 +1,20 @@
+FROM centos:7
+RUN yum update -y && \
+    yum install -y epel-release \
+                   git \
+                   nc
+
+RUN yum install -y python-pip
+RUN pip install pyyaml \
+                kafka-python
+
+ENV repos_dir /src
+
+WORKDIR ${repos_dir}
+RUN git clone https://gerrit.opnfv.org/gerrit/barometer
+WORKDIR barometer/3rd_party/collectd-ves-app/ves_app
+COPY start_ves_app.sh ${repos_dir}
+RUN chmod 755 start_ves_app.sh
+
+ENTRYPOINT ["./start_ves_app.sh"]
+CMD ["host.yaml"]
diff --git a/docker/ves/start_ves_app.sh b/docker/ves/start_ves_app.sh
new file mode 100644 (file)
index 0000000..ad27635
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/bash
+# Copyright 2017 OPNFV
+#
+# 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.
+
+
+YAML_FILE="$1"
+
+#wait for kafka service to be available
+while ! nc localhost  9092  < /dev/null; do sleep 1;  done
+
+python ves_app.py --events-schema="$YAML_FILE" --config=ves_app_config.conf