We now use `bc` for some of the stats calculations. Ensure it
is installed, or we silently generate bad field data.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
Due to the nature of the shape of the JSON data import, the scaling
R had some hard wired constructs bound to the data shape. This limited
our extending the JSON data.
recode to be more 'R tidyverse' style.
Also add in a launch time stats table, and split the graphing
across 3 pages to de-cramp them (particularly when rendering >1
test run).
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
When in debug mode, mount the scripts dir into the container to
allow 'live' editing and reloading into R. This makes the dev cycle
much faster.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
Keep track of memory consumed on the nodes, log that, and
generate an overall cluster value for 'pods-per-Gb'.
Generate this data here, whilst we have the data to hand, as
it can get much more difficult to calculate this information
the further you get down the monitoring stream (such as the
farther you get into an ELK stack).
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
Removed hardcoded vagrant box version. This change will now
allow the override of the version, or if no override is passed in
it will take the version on the system, or download the latest version.
Signed-off-by: craigsterrett <craig.sterrett@intel.com>
This udpate allows us to specify an OS specific
include file with function overrides. Useful when using
setup_system.sh on other OSes.
Signed-off-by: Justin Scott <justin.a.scott@intel.com>
The README has not kept upto date with the code. Update to make it
more useful, but try to keep fairly neutral so it does not rot so
fast.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
This change will allow the create_stack.sh script to be called to init
the k8s cluster with a user generated bootstrap token and a pre-defined
master_ip. This will allow us to automate initial deployment of cluster
with a known list of IPs
Signed-off-by: Ganesh Maharaj Mahalingam <ganesh.mahalingam@intel.com>
Add a table to the end of the report showing useful details about
the systems that were under test - version numbers, resources etc.
Fixes: #145
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
The time we measure is the time to launch and delete the whole
deployment, not the 'pod'. Change the graph titles to be more
accurate.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
Rather than duplicate the same aes() over all the parts of the ggplot(),
add the aes to the base ggplot, and then default to using that for
all the other additions.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
geom_smooth can generate a mass of warnings when applied to a small
dataset. Use the same test (>20 samples) we do for 'do we draw dots',
but in the inverse - so, we either draw dots (small set) or a smoothed
overlayed line (bit sets).
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
Now the data has the ability to 'step' (that is, increment
the pod count by >1 between samples), use that n_pod value
for the x-axis, rather than a +1 count, so the x-axis makes
a lot more sense.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
If a RUNTIME is not set, then save it as 'default' in the JSON
rather than an empty string, as the emptry string does not render
well later in any graphing.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
Add invididual date entries to each statistics sample, to
suppliment the top level date entry. This helps order the
samples if we are flattening the data into say Elasticsearch.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
When 'grace' handling was added, it got missed from the parallel
script (which shares the bb.*.in files). Add it in to fix the test.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
proxy_ip_list variable had scope issues, used as global variable
initially then as a local variable. Changed all to global.
Signed-off-by: root <root@csterret-desk1.amr.corp.intel.com>
This commit replaces our static manifests with Kustomize
versions and adds scripting to apply them.
Signed-off-by: Justin Scott <justin.a.scott@intel.com>
We were storing some JSON data (such as NUM_PODS) as strings.
This would default their type into the Elastic DB as strings,
and not ints. May as well store ints as ints, so make that so.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
The boot 'points' code was accidentally updating the cpu plot
(copy and paste error). Correct it to update the correct chart.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
Test how long it takes to launch, and delete, a deployment
running up 'n' pods. Used to ascertain if parallel launch times
are linear with number of pods or not.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
We were carrying a bunch of legacy docker based functions
that we do not use. Drop them. We can always add them back
in later if we find we do need some.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
We are very likely to re-use the k8s api code in many/all of the
tests, so move common code out to a common libray file.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
Capture some of the k8s setup information in the JSON results
files. Add sections for:
- kubectl version
- kubectl get nodes
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
If we have $RUNTIME set in the env, then we set up the pod
RuntimeClass, otherwise, just use the default node runtimes.
Clean up some of the un-used library code around docker/RUNTIME
as well whilst we are there.
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
We need to check when we are launching our first instance of a
deployment when using the k8s API directly, as we have to modify
the URL for the first instance. Rather than check for '1', let's
check for 'STEP', as technically you can run the loop starting at
a non-1 index (particularly useful to run with NUM_PODS==STEP, as
you then get a 'single shot' test of 'n' containers).
Signed-off-by: Graham Whaley <graham.whaley@intel.com>