This chart deploys a complete observability stack for KruiseGame, including:
- OpenKruise (to provide PodProbeMarker / Advanced StatefulSet CRDs)
- KruiseGame Controller Manager (configured to emit telemetry)
- OpenTelemetry Collector (receives, processes, and exports telemetry)
- Prometheus (Metrics)
- Loki (Logs)
- Tempo (Traces)
- Grafana (Visualization with pre-loaded dashboards)
- Minecraft demo GameServer (HostPort network) to generate telemetry (logs/metrics/traces)
It is designed for demonstration and testing purposes to showcase the observability capabilities of KruiseGame out-of-the-box.
- Kubernetes 1.18+
- Helm 4.x
If you are installing from a Helm repository:
helm repo add openkruise https://openkruise.github.io/charts/
helm repo updateWe recommend installing with the release name okg-demo in namespace okg-demo to ensure all service links work correctly by default.
helm dependency build charts/charts/kruise-game-observability-demo
helm install okg-demo charts/charts/kruise-game-observability-demo --namespace okg-demo --create-namespaceNote: If you choose a different release name, you MUST override the endpoint URLs in
values.yaml(e.g.,kruise-game.manager.otel.endpoint, Grafana datasources) to match your release name.
- Default KruiseGame image:
ghcr.io/ballista01/kruise-game-manager:dev(tracks the latest dev build). - To pin a specific build, override via Helm:
# Use a specific tag (e.g., dev-<sha>) helm upgrade --install okg-demo charts/kruise-game-observability-demo \ --namespace okg-demo --create-namespace \ --set kruise-game.image.tag=dev-<sha> # Or pin by digest (if available) helm upgrade --install okg-demo charts/kruise-game-observability-demo \ --namespace okg-demo --create-namespace \ --set kruise-game.image.digest=sha256:<digest>
-
Wait for Pods: Ensure all pods in
okg-demonamespace are running.kubectl get pods -n okg-demo -w
-
Access Grafana:
# Get admin password (default: admin) kubectl get secret --namespace okg-demo okg-demo-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo # Port-forward Grafana kubectl port-forward --namespace okg-demo svc/okg-demo-grafana 3000:80
Open http://localhost:3000 in your browser.
-
View Dashboards: Go to Dashboards -> Browse. You will see the "KruiseGame Overview" dashboard.
-
Generate Traffic: Deploy a GameServerSet to see metrics, logs, and traces populate the dashboard.
This chart is a wrapper around several upstream charts. Key configurations are exposed in values.yaml, but you can override any sub-chart value.
| Parameter | Description | Default |
|---|---|---|
kruise-game.manager.logFormat |
Log output format for KruiseGame manager (console or json) |
console |
kruise-game.manager.otel.enabled |
Enable OTel in KruiseGame | true |
opentelemetry-collector.mode |
Deployment mode for collector | deployment |
loki.enabled |
Enable Loki | true |
tempo.enabled |
Enable Tempo | true |
prometheus.enabled |
Enable Prometheus | true |
grafana.enabled |
Enable Grafana | true |
demoGameServer.enabled |
Deploy demo GameServerSet (Minecraft, HostPort) | true |
OpenKruise is bundled to install required CRDs (PodProbeMarker, Advanced StatefulSet). Defaults: kruise.installCRDs=true, kruise.installation.namespace=kruise-system, kruise.manager.replicaCount=1.
For full configuration, refer to the values.yaml file and the documentation of the dependency charts.