- Kubernetes cluster (1.19+)
- Prometheus installed and scraping
- Grafana installed (optional, for dashboards)
- Helm 3.0+ (for Helm installation)
# Install from OCI registry
helm install onax oci://ghcr.io/varaxlabs/charts/onax \
--namespace monitoring \
--create-namespace
# Or install with custom values
helm install onax oci://ghcr.io/varaxlabs/charts/onax \
--namespace monitoring \
--create-namespace \
--set metrics.serviceMonitor.enabled=true \
--set logging.level=debugkubectl apply -f https://raw.githubusercontent.com/varaxlabs/onax/main/deploy/manifests/operator.yaml# Clone repository
git clone https://github.com/varaxlabs/onax.git
cd onax
# Deploy using Helm from local chart
helm install onax ./deploy/helm/onax \
--namespace monitoring \
--create-namespaceThe Helm chart creates a ServiceMonitor by default when metrics.serviceMonitor.enabled=true.
Add to your prometheus.yaml:
scrape_configs:
- job_name: 'onax'
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- monitoring
relabel_configs:
- source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name]
action: keep
regex: onax
- source_labels: [__meta_kubernetes_pod_ip]
action: replace
target_label: __address__
replacement: $1:8080- Open Grafana
- Click "+" → "Import"
- Paste the raw GitHub URL:
- Overview:
https://raw.githubusercontent.com/varaxlabs/onax/main/dashboards/cronjob-overview.json - Details:
https://raw.githubusercontent.com/varaxlabs/onax/main/dashboards/cronjob-details.json
- Overview:
- Select your Prometheus data source
- Click "Import"
# Download dashboards
curl -o cronjob-overview.json \
https://raw.githubusercontent.com/varaxlabs/onax/main/dashboards/cronjob-overview.json
curl -o cronjob-details.json \
https://raw.githubusercontent.com/varaxlabs/onax/main/dashboards/cronjob-details.jsonThen import via Grafana UI.
kubectl apply -f https://raw.githubusercontent.com/varaxlabs/onax/main/alerts/cronjob-alerts.yamlkubectl apply -f https://raw.githubusercontent.com/varaxlabs/onax/main/alerts/cronjob-alerts-configmap.yamlThen add the ConfigMap to your Prometheus rule files.
# Check pod is running
kubectl get pods -n monitoring -l app.kubernetes.io/name=onax
# Check logs
kubectl logs -n monitoring -l app.kubernetes.io/name=onax
# Port-forward to check metrics
kubectl port-forward -n monitoring svc/onax 8080:8080
# In another terminal
curl http://localhost:8080/metrics | grep cronjob_monitorYou should see metrics for all CronJobs in your cluster.
helm uninstall onax --namespace monitoringkubectl delete -f https://raw.githubusercontent.com/varaxlabs/onax/main/deploy/manifests/operator.yaml