diff options
-rw-r--r-- | 3rd_party/collectd-ves-app/ves_app/native.yaml | 287 | ||||
-rw-r--r-- | docker/barometer-grafana/Dockerfile (renamed from docker/grafana/Dockerfile) | 0 | ||||
-rwxr-xr-x | docker/barometer-grafana/configure_grafana.sh (renamed from docker/grafana/configure_grafana.sh) | 0 | ||||
-rw-r--r-- | docker/barometer-grafana/dashboards/average_load_dashboard.json (renamed from docker/grafana/dashboards/average_load_dashboard.json) | 0 | ||||
-rwxr-xr-x | docker/barometer-grafana/dashboards/configure_grafana.sh (renamed from docker/grafana/dashboards/configure_grafana.sh) | 0 | ||||
-rw-r--r-- | docker/barometer-grafana/dashboards/cpu_usage_dashboard.json (renamed from docker/grafana/dashboards/cpu_usage_dashboard.json) | 0 | ||||
-rw-r--r-- | docker/barometer-grafana/dashboards/host_overview_dashboard.json (renamed from docker/grafana/dashboards/host_overview_dashboard.json) | 0 | ||||
-rw-r--r-- | docker/barometer-grafana/dashboards/hugepages_dashboard.json (renamed from docker/grafana/dashboards/hugepages_dashboard.json) | 0 | ||||
-rw-r--r-- | docker/barometer-grafana/dashboards/intel_pmu_dashboard.json (renamed from docker/grafana/dashboards/intel_pmu_dashboard.json) | 0 | ||||
-rw-r--r-- | docker/barometer-grafana/dashboards/intel_rdt_dashboard.json (renamed from docker/grafana/dashboards/intel_rdt_dashboard.json) | 0 | ||||
-rw-r--r-- | docker/barometer-grafana/dashboards/ipmi_dashboard.json (renamed from docker/grafana/dashboards/ipmi_dashboard.json) | 0 | ||||
-rw-r--r-- | docker/barometer-grafana/dashboards/mcelog_dashboard.json (renamed from docker/grafana/dashboards/mcelog_dashboard.json) | 0 | ||||
-rw-r--r-- | docker/barometer-grafana/dashboards/ovs_stats_dashboard.json (renamed from docker/grafana/dashboards/ovs_stats_dashboard.json) | 0 | ||||
-rw-r--r-- | docker/barometer-grafana/dashboards/virt_dashboard.json (renamed from docker/grafana/dashboards/virt_dashboard.json) | 0 | ||||
-rw-r--r-- | docker/barometer-grafana/run.sh (renamed from docker/grafana/run.sh) | 0 | ||||
-rw-r--r-- | docker/ves/Dockerfile | 20 | ||||
-rw-r--r-- | docker/ves/start_ves_app.sh | 22 | ||||
-rw-r--r-- | docs/release/userguide/docker.userguide.rst | 96 |
18 files changed, 362 insertions, 63 deletions
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 index 00000000..8a351547 --- /dev/null +++ b/3rd_party/collectd-ves-app/ves_app/native.yaml @@ -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/grafana/Dockerfile b/docker/barometer-grafana/Dockerfile index 32a78862..32a78862 100644 --- a/docker/grafana/Dockerfile +++ b/docker/barometer-grafana/Dockerfile diff --git a/docker/grafana/configure_grafana.sh b/docker/barometer-grafana/configure_grafana.sh index 0b185297..0b185297 100755 --- a/docker/grafana/configure_grafana.sh +++ b/docker/barometer-grafana/configure_grafana.sh diff --git a/docker/grafana/dashboards/average_load_dashboard.json b/docker/barometer-grafana/dashboards/average_load_dashboard.json index ae797f75..ae797f75 100644 --- a/docker/grafana/dashboards/average_load_dashboard.json +++ b/docker/barometer-grafana/dashboards/average_load_dashboard.json diff --git a/docker/grafana/dashboards/configure_grafana.sh b/docker/barometer-grafana/dashboards/configure_grafana.sh index 8ce9689b..8ce9689b 100755 --- a/docker/grafana/dashboards/configure_grafana.sh +++ b/docker/barometer-grafana/dashboards/configure_grafana.sh diff --git a/docker/grafana/dashboards/cpu_usage_dashboard.json b/docker/barometer-grafana/dashboards/cpu_usage_dashboard.json index c9509fa0..c9509fa0 100644 --- a/docker/grafana/dashboards/cpu_usage_dashboard.json +++ b/docker/barometer-grafana/dashboards/cpu_usage_dashboard.json diff --git a/docker/grafana/dashboards/host_overview_dashboard.json b/docker/barometer-grafana/dashboards/host_overview_dashboard.json index e6d3ad95..e6d3ad95 100644 --- a/docker/grafana/dashboards/host_overview_dashboard.json +++ b/docker/barometer-grafana/dashboards/host_overview_dashboard.json diff --git a/docker/grafana/dashboards/hugepages_dashboard.json b/docker/barometer-grafana/dashboards/hugepages_dashboard.json index 146fccf4..146fccf4 100644 --- a/docker/grafana/dashboards/hugepages_dashboard.json +++ b/docker/barometer-grafana/dashboards/hugepages_dashboard.json diff --git a/docker/grafana/dashboards/intel_pmu_dashboard.json b/docker/barometer-grafana/dashboards/intel_pmu_dashboard.json index e1fad5fa..e1fad5fa 100644 --- a/docker/grafana/dashboards/intel_pmu_dashboard.json +++ b/docker/barometer-grafana/dashboards/intel_pmu_dashboard.json diff --git a/docker/grafana/dashboards/intel_rdt_dashboard.json b/docker/barometer-grafana/dashboards/intel_rdt_dashboard.json index 49efec7a..49efec7a 100644 --- a/docker/grafana/dashboards/intel_rdt_dashboard.json +++ b/docker/barometer-grafana/dashboards/intel_rdt_dashboard.json diff --git a/docker/grafana/dashboards/ipmi_dashboard.json b/docker/barometer-grafana/dashboards/ipmi_dashboard.json index 04179ef6..04179ef6 100644 --- a/docker/grafana/dashboards/ipmi_dashboard.json +++ b/docker/barometer-grafana/dashboards/ipmi_dashboard.json diff --git a/docker/grafana/dashboards/mcelog_dashboard.json b/docker/barometer-grafana/dashboards/mcelog_dashboard.json index 9618bacc..9618bacc 100644 --- a/docker/grafana/dashboards/mcelog_dashboard.json +++ b/docker/barometer-grafana/dashboards/mcelog_dashboard.json diff --git a/docker/grafana/dashboards/ovs_stats_dashboard.json b/docker/barometer-grafana/dashboards/ovs_stats_dashboard.json index 34c8b7bf..34c8b7bf 100644 --- a/docker/grafana/dashboards/ovs_stats_dashboard.json +++ b/docker/barometer-grafana/dashboards/ovs_stats_dashboard.json diff --git a/docker/grafana/dashboards/virt_dashboard.json b/docker/barometer-grafana/dashboards/virt_dashboard.json index 5317b701..5317b701 100644 --- a/docker/grafana/dashboards/virt_dashboard.json +++ b/docker/barometer-grafana/dashboards/virt_dashboard.json diff --git a/docker/grafana/run.sh b/docker/barometer-grafana/run.sh index 5b9a8191..5b9a8191 100644 --- a/docker/grafana/run.sh +++ b/docker/barometer-grafana/run.sh diff --git a/docker/ves/Dockerfile b/docker/ves/Dockerfile new file mode 100644 index 00000000..f77f852a --- /dev/null +++ b/docker/ves/Dockerfile @@ -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 index 00000000..ad276353 --- /dev/null +++ b/docker/ves/start_ves_app.sh @@ -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 diff --git a/docs/release/userguide/docker.userguide.rst b/docs/release/userguide/docker.userguide.rst index be9f6cae..fe0ea5ac 100644 --- a/docs/release/userguide/docker.userguide.rst +++ b/docs/release/userguide/docker.userguide.rst @@ -291,69 +291,6 @@ Check your docker image is running Build the influxdb + Grafana docker images ------------------------------------------ - - -Install docker-compose -^^^^^^^^^^^^^^^^^^^^^^ - -On the node where you want to run influxdb + grafana: -1. Start by installing docker compose - -.. code:: bash - - $ sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose - -.. note:: - Use the latest Compose release number in the download command. The above command is an example, - and it may become out-of-date. To ensure you have the latest version, check the Compose repository - release page on GitHub. - -2. Apply executable permissions to the binary: - -.. code:: bash - - $ sudo chmod +x /usr/bin/docker-compose - -3. Test the installation. - -.. code:: bash - - $ sudo docker-compose --version - - -Download the InfluxDB and Grafana docker image -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If you wish to use pre-built barometer project's influxdb and grafana images, you can pull the -images from https://hub.docker.com/r/opnfv/barometer-influxdb/ and https://hub.docker.com/r/opnfv/barometer-grafana/ - -.. note:: - If your preference is to build images locally please see sections `Build the InfluxDB Image`_ and - `Build the Grafana Image`_ - -.. code:: bash - - $ docker pull opnfv/barometer-influxdb - $ docker pull opnfv/barometer-grafana - -Run the Influxdb and Grafana Images -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Launch containers: - -.. code:: bash - - $ cd barometer/docker/ - $ sudo docker-compose up -d - -Check your docker images are running - -.. code:: bash - - $ sudo docker ps - -Connect to <host_ip>:3000 with a browser and log into grafana: admin/admin - - Build the InfluxDB Image ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -410,6 +347,39 @@ Output should contain an influxdb image: REPOSITORY TAG IMAGE ID CREATED SIZE barometer-grafana latest 05f2a3edd96b 3 hours ago 1.2GB + +Download the InfluxDB and Grafana docker image +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +If you wish to use pre-built barometer project's influxdb and grafana images, you can pull the +images from https://hub.docker.com/r/opnfv/barometer-influxdb/ and https://hub.docker.com/r/opnfv/barometer-grafana/ + +.. note:: + If your preference is to build images locally please see sections `Build the InfluxDB Image`_ and + `Build the Grafana Image`_ + +.. code:: bash + + $ docker pull opnfv/barometer-influxdb + $ docker pull opnfv/barometer-grafana + +Run the Influxdb and Grafana Images +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Launch containers: + +.. code:: bash + + $ cd barometer/docker/ + $ sudo docker-compose up -d + +Check your docker images are running + +.. code:: bash + + $ sudo docker ps + +Connect to <host_ip>:3000 with a browser and log into grafana: admin/admin + Testing the docker image ^^^^^^^^^^^^^^^^^^^^^^^^ |