Metrics store¶
Iter8 provides a metrics store for A/B/n and performance metrics. This simplifies the set up and execution of test scenarios. Iter8 currently supports the following databases:
By default, Iter8 uses BadgerDB. Note, however, that BadgerDB is not suitable for production use and is only suitable for a single instance of Iter8. Support for other databases is in the works. See below for details on how you can contribute additional implementations.
BadgerDB configuration options¶
BadgerDB is a file system-based database. When installing Iter8, the following options can be configured:
bagderdb.storage
- The amount of space allocated to BadgerDB (default 50Mi).badgerdb.storageClassName
- The Kubernetes storage class that should be used. The default (standard
) may not work for all clusters.
Redis configuration options¶
We assume that Redis is deployed. For example, for a basic deployment:
kubectl create deploy redis --image=redis/redis-stack:latest --port=6379
kubectl expose deploy redis --port=6379
Run Iter8 with the metrics store implementation set to redis
and specify its endpoint:
helm upgrade --install --repo https://iter8-tools.github.io/iter8 --version 1.1 iter8 controller \
--set clusterScoped=true \
--set metrics.implementation=redis \
--set metrics.redis.addresss=redis:6379
Contribute a new metrics store implementation¶
To contribute a new metrics store implementation:
-
Create an issue for discussion.
-
Submit a pull request on the Iter8 project with the following updates:
-
Create sub-folder in storage and provide an implementation of this interface including test cases.
-
Add a new case to metrics.GetClient()
-
Update the default Helm chart configuration values.yaml and bump the chart version in Chart.yaml.
-
Please also consider including your information in our list of adopters.
-
-
Submit a second pull request on the Iter8 docs project updating the list of available implementations.
-
Alert the project reviewers on Slack
#development
channel.