Monitoring
Aerospike Monitoring Stack can be used to enable monitoring and alerting for Aerospike clusters deployed by the Aerospike Kubernetes Operator.
Add Aerospike Prometheus Exporter Sidecar
Add the exporter as a sidecar to each Aerospike server pod using the PodSpec configuration. For example,
spec:
.
.
.
podSpec:
sidecars:
- name: aerospike-prometheus-exporter
image: "aerospike/aerospike-prometheus-exporter:1.9.0"
ports:
- containerPort: 9145
name: exporter
.
.
.
Deploy or Update Aerospike Cluster (Custom Resource)
Create or update your clusters once the Prometheus exporter sidecar is added.
Prometheus Configuration
Configure Prometheus to add exporter endpoints as scrape targets.
If Prometheus is also running on Kubernetes, it can be configured to extract exporter targets from Kubernetes API.
In the following example, Prometheus will be able to discover and add exporter targets in default
namespace which has endpoint port name as aerospike-prometheus-exporter
.
scrape_configs:
- job_name: 'aerospike'
kubernetes_sd_configs:
- role: endpoints
namespaces:
names:
- default
relabel_configs:
- source_labels: [__meta_kubernetes_pod_container_port_name]
separator: ;
regex: exporter
replacement: $1
action: keep
See Aerospike Monitoring Stack for its installation, configuration and setup guide.
Quick Example
This example demonstrates monitoring of Aerospike clusters deployed by Kubernetes Operator using Aerospike Monitoring Stack.
Add Aerospike helm repository
helm repo add aerospike https://aerospike.github.io/aerospike-kubernetes-enterprise
Deploy Aerospike Kubernetes Operator using helm chart
helm install operator aerospike/aerospike-kubernetes-operator --set replicas=1
Create a Kubernetes secret to store Aerospike license feature key file
kubectl create secret generic aerospike-license --from-file=<path-to-features.conf-file>
Deploy Aerospike cluster with Aerospike Prometheus Exporter sidecar
cat << EOF | helm install aerospike aerospike/aerospike-cluster \
--set devMode=true \
--set aerospikeSecretName=aerospike-license \
-f -
podSpec:
sidecars:
- name: aerospike-prometheus-exporter
image: "aerospike/aerospike-prometheus-exporter:1.9.0"
ports:
- containerPort: 9145
name: exporter
EOFDeploy Prometheus-Grafana Stack using aerospike-monitoring-stack.yaml
kubectl apply -f ./aerospike-monitoring-stack.yaml
Connect to Grafana dashboard,
kubectl port-forward service/aerospike-monitoring-stack-grafana 3000:80
Open
localhost:3000
in browser, and login to Grafana asadmin
/admin
.Import dashboards from Aerospike Monitoring GitHub Repo and visualise metrics.