Storage Benchmark Kit
The Grafana docker compose consists of Grafana and prometheus docker images. The grafana docker compose contains the dashboards which can be directly deployed for the performance analytics.
if you are running SBK as docker image or as SBK as performance benchmarking application, this grafana docker compose can be used deploy the performance graphs.
As an example, just follow the below steps to see the performance graphs
Run the grafana docker compose
<SBK dir/grafana>% docker-compose up
For example, if you are running the SBK performance benchmarking of file system as follows
<SBK dir>% ./build/install/sbk/bin/sbk -class file -writers 1 -size 100 -seconds 60
Use the below command to run the grafana , prometheus pods and deployments
<SBK dir/grafana>% kubectl apply -f grafana-deployment.yaml -f grafana-service.yaml -f prometheus-deployment.yaml -f prometheus-service.yaml
output is as follows:
kmg@kmgs-MBP grafana % kubectl apply -f grafana-deployment.yaml -f grafana-service.yaml -f prometheus-deployment.yaml -f prometheus-service.yaml
deployment.apps/grafana created
service/grafana configured
deployment.apps/prometheus created
service/prometheus configured
you can check the status of the deployments with the below command:
kubectl get svc
output is as follows:
kmg@kmgs-MBP grafana % kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
grafana ClusterIP 10.105.242.78 <none> 3000/TCP 37s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 7m47s
prometheus ClusterIP 10.108.47.252 <none> 9090/TCP 37s
kubectl expose deployment grafana --type=LoadBalancer --name=grafana-ext
the execution of above command is one time activity; if you delete and recreate the grafana service, you need not execute the above command again.
kubectl expose deployment prometheus --type=LoadBalancer --name=prometheus-ext
kmg@kmgs-MBP grafana % kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
grafana ClusterIP 10.105.242.78 <none> 3000/TCP 14m
grafana-ext LoadBalancer 10.97.215.174 localhost 3000:31011/TCP 14m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 21m
prometheus ClusterIP 10.108.47.252 <none> 9090/TCP 14m
Helper kubctl commands to clean the pods , deployment and services
kubectl delete --all pods
kubectl delete --all deployments
kubectl delete --all namespaces
while running the grafana docker compose, if you are interested in profiling the system along with SBK metrics, you can use this dashboard : https://github.com/kmgowda/SBK/blob/master/grafana/dashboards/node-metrics.json.
But, you should run the node exporter to get the system metrics ; you can find the prometheus node exporter here : https://prometheus.io/docs/guides/node-exporter/
just run the node exporter, the prometheus settings are already configured with this docker compose: https://github.com/kmgowda/SBK/blob/master/grafana/docker-compose.yml