To deploy the Mobility Collector Observability alongside existing application services (FM, PM, infra workloads), use the dedicated monitoring-only profile.
Prerequisites
Longhorn must be pre-installed (same as full-stack, required for PVC persistence).
Kubernetes secrets for TimescaleDB and Redis should be deployed and available on the
matrix-pm-analyticsnamespace
Step 1: Load Docker Images
For your Mobility Collector Observability version, you must download the new docker images and copy them to your local registry. The docker images you need for your upgrade are listed in the Release Notes.
Follow these steps to download your images. Once downloaded, load them into your local registry.
docker load -i <docker-image-name>.tar.gzStep 2: Create Kubernetes namespace and secrets:
# Create 'monitoring' namespace
kubectl create namespace monitoring
# Create Redis secret from matrix-pm-analytics
kubectl get secret matrix-redis-cluster -n matrix-pm-analytics -o json | jq 'del(.metadata.uid,.metadata.resourceVersion,.metadata.creationTimestamp,.metadata.managedFields,.metadata.annotations,.metadata.ownerReferences) | .metadata.namespace = "monitoring"' | kubectl -n monitoring apply -f -
# Create TimescaleDB secret from matrix-pm-analytics
kubectl get secret matrix-timescaledb-credentials -n matrix-pm-analytics -o json | jq 'del(.metadata.uid,.metadata.resourceVersion,.metadata.creationTimestamp,.metadata.managedFields,.metadata.annotations,.metadata.ownerReferences) | .metadata.namespace = "monitoring"' | kubectl -n monitoring apply -f -
Step 3: Install from the archive on the target control-plane node (Docker runtime):
./scripts/install-monitoring-bundle.sh \\
--bundle dist/mobility-monitoring-airgap-<chartVersion>-<gitSha>.zip \\
--release mobility-collector \\
--namespace monitoring
The installer will:
unpack the bundle
apply kube-prometheus CRDs
docker loadbundled imagesrun
helm upgrade --installwithvalues.yaml+values-monitoring-only.yaml
helm upgrade --install mobility-collector helm \\
-f helm/values.yaml \\
-f helm/values-monitoring-only.yaml \\
--namespace monitoring \\
--create-namespace
What's deployed
Prometheus Operator + Prometheus (metrics scraping and retention)
Grafana (dashboards and visualization)
Verify monitoring-only deployment
# Check Prometheus Operator and stack resources
kubectl get pods -n monitoring
kubectl get svc -n monitoring
# Port-forward to access Grafana and Prometheus (optional)
kubectl port-forward -n monitoring svc/mobility-collector-grafana 3000:80 &
kubectl port-forward -n monitoring svc/mobility-collector-kube-pr-prometheus 9090:9090 &
# Then open in browser:
# - Grafana: <http://localhost:3000> (default creds: admin/admin123)
# - Prometheus: <http://localhost:9090>