Metrics store¶
One of Iter8's key advantages is that it incorporates its own metrics store simplifying the set up and execution of A/B/n and performance tests. Iter8 currently supports the following databases:
- BadgerDB
- Redis
Iter8 uses BadgerDB by default. Note, however, that BadgerDB is not suitable for production use and is only suitable for a single instance of Iter8. Support for other databases are in the works. See below for details on how to contribute additional implementations.
Using Redis as the metrics store¶
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 0.18 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.