aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorEmma Foley <efoley@redhat.com>2021-07-13 19:23:12 +0100
committerEmma Foley <efoley@redhat.com>2021-12-17 09:48:20 +0000
commit5cc8e3c94bdf62c5fd9838e4987d4e670d36f9ed (patch)
tree10fa2f20c7e537836e99ce3ba9bfda6edc554d8f /docs
parentf3051b17dfc6e45f6cec50940c560e4cbb1d3774 (diff)
Add a playbook that tests collectd 6 vs collectd5
The playbook will: * build collectd-6, collectd-latest and flask app containers * generate a set of collectd configs * launch the collectd-6, collectd-latest with the generated configs * run the flask app which has a http_server that receives metrics from collectd v5 and collectd v6 * display the received metrics from both versions of collectd Collectd v5 shows PUTVAL Collectd v6 shows PUTMETRIC The playbook takes the following parameters: * PR (optional) The PRID for an upstream collectd pull request that will be passed to the collectd 6 container build * plugin (optional) The name of the plugin that is bneing ported This will filter the received metrics to show the value passed. Additional updates to existing roles include: * run_collectd parameterises the collectd container name so that the role can be reused for launching multiple collectd containers by passing distinct names. Change-Id: Ia62196c347387d380aae69e14ed0dd8e2c76d9c9 Signed-off-by: Emma Foley <efoley@redhat.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/release/release-notes/notes/collectd-5-v-6-testing-cc821b32bad2794c.yaml10
-rw-r--r--docs/testing/index.rst80
2 files changed, 89 insertions, 1 deletions
diff --git a/docs/release/release-notes/notes/collectd-5-v-6-testing-cc821b32bad2794c.yaml b/docs/release/release-notes/notes/collectd-5-v-6-testing-cc821b32bad2794c.yaml
new file mode 100644
index 00000000..20013147
--- /dev/null
+++ b/docs/release/release-notes/notes/collectd-5-v-6-testing-cc821b32bad2794c.yaml
@@ -0,0 +1,10 @@
+release_summary: >
+ Testing playbooks were added to compare collectd5 vs collectd6, for the
+ purpose of helping to review new PRs by comparing the generated metrics
+ between versions.
+testing:
+ - |
+ Added a playbook to compare collectd 5 and collectd 6. The playbook uses
+ existing ansible roles to build both collectd 5 and collectd 6 container
+ images, creates a common configuration, then runs the containers and shows
+ the outputs to let the user inspect the metrics and whether they match.
diff --git a/docs/testing/index.rst b/docs/testing/index.rst
index 392b39f4..f763ca64 100644
--- a/docs/testing/index.rst
+++ b/docs/testing/index.rst
@@ -1 +1,79 @@
-.. To be decided
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) Anuket and others
+
+==============================
+Anuket Barometer testing guide
+==============================
+
+This document will describe how to use different tests in this repo.
+
+There are a number of tools and scripts in Barometer that can be used for testing, whether that is during development, building, code reviews, or run regularly in CI.
+Some of the tests are automated, and cover building collectd, others cover particular plugins.
+
+.. TODO: This guide should also include how to manually verify that collectd plugins are working as expected.
+
+.. TODO: There might be some troubleshooting guide in here too.
+
+Porting collectd to version 6
+=============================
+
+Thre is an ansible playbook for building and running collectd 5 and 6 together to compare the collected metrics.
+This is intended to help test porting from collectd 5 to 6, and confirm equivalency across the versions.
+
+The playbook will::
+
+ * build collectd-6, collectd-latest and flask app containers
+ * generate a set of collectd configs
+ * launch the collectd-6, collectd-latest with the generated configs
+ * run the flask app which has a http server that receives metrics from
+ collectd v5 and collectd v6
+ * display the received metrics from both versions of collectd
+ Collectd v5 shows PUTVAL
+ Collectd v6 shows PUTMETRIC
+
+To run this comparison, use the following command::
+
+ $ cd docker/ansible/
+ $ sudo ansible-playbook -i default.inv collectd6_test.yml
+
+The playbook takes the following parameters:
+
+ * PR (optional)
+ The PRID for an upstream collectd pull request that will be
+ passed to the collectd 6 container build
+
+ * plugin (optional)
+ The name of the plugin that is bneing ported
+ This will filter the received metrics to show the value passed.
+
+To run the playbook with these configs, pass the extra var to ansible::
+
+ sudo ansible-playbook -i default.inv -e PR=<PR_ID> -e plugin=<plugin_name> collectd6_test.yml
+
+The metrics can then be viewed by inspecting the container logs or attaching to the container to view the output::
+
+ $ docker attach <webserver-container>
+ $ #OR
+ $ docker logs <webserver-container>
+
+Metrics from collectd 5 will appear preceeded with ``PUTVAL``, and metrics from collectd 6 will appear preceeded by ``PUTMETRIC``.
+
+::
+
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/hugepages-mm-2048Kb/vmpage_number-free interval=10.000 1629466502.664:0
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/hugepages-mm-2048Kb/vmpage_number-used interval=10.000 1629466502.664:0
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/hugepages-mm-1048576Kb/vmpage_number-free interval=10.000 1629466502.664:0
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/hugepages-mm-1048576Kb/vmpage_number-used interval=10.000 1629466502.664:0
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/hugepages-node0-2048Kb/vmpage_number-free interval=10.000 1629466502.664:0
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/hugepages-node0-2048Kb/vmpage_number-used interval=10.000 1629466502.664:0
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/hugepages-node0-1048576Kb/vmpage_number-used interval=10.000 1629466502.665:0
+ PUTVAL fbae30cc-2f20-11b2-a85c-819293100691/hugepages-node0-1048576Kb/vmpage_number-free interval=10.000 1629466502.665:0
+ PUTMETRIC collectd_hugepages_vmpage_number type=GAUGE time=1629466501.807 interval=10.000 label:hugepages="mm-2048Kb" label:instance="fbae30cc-2f20-11b2-a85c-819293100691" label:type="free" 0
+ PUTMETRIC collectd_hugepages_vmpage_number type=GAUGE time=1629466501.807 interval=10.000 label:hugepages="mm-2048Kb" label:instance="fbae30cc-2f20-11b2-a85c-819293100691" label:type="used" 0
+ PUTMETRIC collectd_hugepages_vmpage_number type=GAUGE time=1629466501.808 interval=10.000 label:hugepages="mm-1048576Kb" label:instance="fbae30cc-2f20-11b2-a85c-819293100691" label:type="free" 0
+ PUTMETRIC collectd_hugepages_vmpage_number type=GAUGE time=1629466501.808 interval=10.000 label:hugepages="node0-2048Kb" label:instance="fbae30cc-2f20-11b2-a85c-819293100691" label:type="free" 0
+ PUTMETRIC collectd_hugepages_vmpage_number type=GAUGE time=1629466501.808 interval=10.000 label:hugepages="node0-2048Kb" label:instance="fbae30cc-2f20-11b2-a85c-819293100691" label:type="used" 0
+ PUTMETRIC collectd_hugepages_vmpage_number type=GAUGE time=1629466501.809 interval=10.000 label:hugepages="node0-1048576Kb" label:instance="fbae30cc-2f20-11b2-a85c-819293100691" label:type="free" 0
+ PUTMETRIC collectd_hugepages_vmpage_number type=GAUGE time=1629466501.809 interval=10.000 label:hugepages="node0-1048576Kb" label:instance="fbae30cc-2f20-11b2-a85c-819293100691" label:type="used" 0
+ PUTMETRIC collectd_hugepages_vmpage_number type=GAUGE time=1629466501.808 interval=10.000 label:hugepages="mm-1048576Kb" label:instance="fbae30cc-2f20-11b2-a85c-819293100691" label:type="used" 0