A Helm chart for deploying Performance Co-Pilot Archive Analysis with Grafana on Kubernetes.
This chart deploys the PCP Archive Analysis container which includes Grafana with the grafana-pcp plugin for analyzing PCP archive data. It's designed for analysis of retrospective system performance data collected by PCP.
- Grafana with PCP Plugin: Pre-configured Grafana instance with grafana-pcp plugin
- Importing: User-supplied volumes for Grafana dashboards and PCP archives
- Security: Non-privileged container with configurable security contexts
- Ingress Support: Optional ingress for external web access
- Kubernetes 1.19+
- Helm 3.8+ (required for OCI registry support)
helm install archive-analysis oci://ghcr.io/performancecopilot/helm-charts/archive-analysis --version 1.0.0 -n monitoring --create-namespace# Clone repository
git clone https://github.com/performancecopilot/helm-charts.git
cd helm-charts
# Install from local chart
helm install archive-analysis ./archive-analysis -n monitoring --create-namespace# Download packaged chart
wget https://github.com/performancecopilot/helm-charts/releases/download/v1.0.0/archive-analysis-1.0.0.tgz
# Install from package
helm install archive-analysis archive-analysis-1.0.0.tgz -n monitoring --create-namespacehelm uninstall archive-analysis -n monitoringThe following table lists the configurable parameters and their default values:
| Parameter | Description | Default |
|---|---|---|
replicaCount |
Number of replicas | 1 |
image.repository |
Container image repository | ghcr.io/performancecopilot/archive-analysis |
image.tag |
Container image tag | "" (uses appVersion) |
image.pullPolicy |
Container image pull policy | IfNotPresent |
service.type |
Kubernetes service type | ClusterIP |
service.ports.grafana |
Grafana service port | 3000 |
service.ports.pcp |
PCP REST API service port | 44323 |
ingress.enabled |
Enable ingress | false |
persistence.dashboards.enabled |
Enable Grafana dashboards persistence | true |
persistence.dashboards.size |
Grafana dashboards storage size | 16Mi |
persistence.archives.enabled |
Enable archives persistence | true |
persistence.archives.size |
Archives storage size | 1Gi |
env.GF_SECURITY_ADMIN_PASSWORD |
Grafana admin password | admin |
helm install archive-analysis oci://ghcr.io/performancecopilot/helm-charts/archive-analysis --version 1.0.0 -n monitoring --create-namespacehelm install archive-analysis oci://ghcr.io/performancecopilot/helm-charts/archive-analysis --version 1.0.0 \
--set env.GF_SECURITY_ADMIN_PASSWORD=mypassword \
-n monitoring --create-namespacehelm install archive-analysis oci://ghcr.io/performancecopilot/helm-charts/archive-analysis --version 1.0.0 \
--set ingress.enabled=true \
--set ingress.hosts[0].host=grafana.example.com \
--set ingress.hosts[0].paths[0].path=/ \
-n monitoring --create-namespacehelm install archive-analysis oci://ghcr.io/performancecopilot/helm-charts/archive-analysis --version 1.0.0 \
--set persistence.dashboards.size=32Mi \
--set persistence.archives.size=5Gi \
--set persistence.dashboards.storageClass=fast-ssd \
-n monitoring --create-namespacegit clone https://github.com/performancecopilot/helm-charts.git
cd helm-charts
helm install archive-analysis ./archive-analysis -n monitoring --create-namespaceAfter installation, access Grafana using:
-
Port Forward (default):
kubectl port-forward -n monitoring svc/archive-analysis 3000:3000
Then open http://localhost:3000
-
NodePort Service:
helm upgrade archive-analysis oci://ghcr.io/performancecopilot/helm-charts/archive-analysis --version 1.0.0 \ --set service.type=NodePort \ -n monitoring
-
Ingress (if enabled): Access via configured hostname
Default login: admin / admin (or custom password if set)
To analyze PCP archives:
- Copy archive files to the archives persistent volume
- Use Grafana's PCP datasource to query the archive data
- Create dashboards for visualization
The chart creates two persistent volume claims:
- Grafana Dashboards (
/var/lib/grafana): Stores Grafana dashboards, configuration, and user data - Archives (
/var/log/pcp): Stores PCP archive files for analysis
This chart runs as a non-privileged container by default:
- Runs as user 1000
- No privilege escalation
- RuntimeDefault seccomp profile
- No special capabilities required
Check the logs:
kubectl logs -f deployment/archive-analysisCheck PVC status:
kubectl get pvcVerify service and ingress configuration:
kubectl get svc,ingress