Files
2026-08-26 03:39:42 +05:30

121 lines
9.9 KiB
Markdown

# pyroscope
![Version: 1.19.1](https://img.shields.io/badge/Version-1.19.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.19.0](https://img.shields.io/badge/AppVersion-1.19.0-informational?style=flat-square)
🔥 horizontally-scalable, highly-available, multi-tenant continuous profiling aggregation system
**Homepage:** <https://grafana.com/oss/pyroscope/>
## Source Code
* <https://github.com/grafana/pyroscope>
* <https://github.com/grafana/pyroscope/tree/main/operations/pyroscope/helm/pyroscope>
## Requirements
| Repository | Name | Version |
|------------|------|---------|
| https://charts.min.io/ | minio(minio) | 4.1.0 |
| https://grafana.github.io/helm-charts | alloy(alloy) | 1.5.2 |
| https://grafana.github.io/helm-charts | agent(grafana-agent) | 0.44.2 |
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| agent | object | `{"agent":{"clustering":{"enabled":true},"configMap":{"create":false,"name":"grafana-agent-config-pyroscope"}},"controller":{"podAnnotations":{"profiles.grafana.com/cpu.port_name":"http-metrics","profiles.grafana.com/cpu.scrape":"true","profiles.grafana.com/goroutine.port_name":"http-metrics","profiles.grafana.com/goroutine.scrape":"true","profiles.grafana.com/memory.port_name":"http-metrics","profiles.grafana.com/memory.scrape":"true"},"replicas":1,"type":"statefulset"},"enabled":false}` | ----------------------------------- |
| alloy | object | `{"alloy":{"clustering":{"enabled":true},"configMap":{"create":false,"name":"alloy-config-pyroscope"},"stabilityLevel":"public-preview"},"controller":{"podAnnotations":{"profiles.grafana.com/cpu.port_name":"http-metrics","profiles.grafana.com/cpu.scrape":"true","profiles.grafana.com/goroutine.port_name":"http-metrics","profiles.grafana.com/goroutine.scrape":"true","profiles.grafana.com/memory.port_name":"http-metrics","profiles.grafana.com/memory.scrape":"true","profiles.grafana.com/service_git_ref":"v1.8.1","profiles.grafana.com/service_repository":"https://github.com/grafana/alloy"},"replicas":1,"type":"statefulset"},"enabled":true}` | ----------------------------------- |
| architecture.deployUnifiedServices | bool | `false` | Deploy unified write/read services. These endpoints will can be used no matter if the helm chart is configured as single-binary or microservices |
| architecture.microservices.clusterLabelSuffix | string | `"-micro-services"` | Memberlist cluster label that will be used for all members of this cluster |
| architecture.microservices.enabled | bool | `false` | Enable micro-services deployment mode. This is recommend for larger scale deployment and allow right size each aspect of Pyroscope. |
| architecture.overwriteResources | object | `{}` | This flag is useful for testing, it will overwrite all pods resource statements with its contents |
| architecture.storage.migration.ingesterWeight | float | `1` | Specifies the fraction [0:1] that should be send to the v1 write path / ingester in combined mode. 0 means no traffics is sent to ingester. 1 means 100% of requests are sent to ingester. |
| architecture.storage.migration.queryBackend | bool | `true` | Specify a time stamp from when the v2 read path should serve traffic. |
| architecture.storage.migration.queryBackendFrom | string | `"auto"` | Specify a time stamp from when the v2 read path should serve traffic. |
| architecture.storage.migration.segmentWriterWeight | float | `1` | Specifies the fraction [0:1] that should be send to the v2 write path / segment-writer in combined mode. 0 means no traffics is sent to segment-writer. 1 means 100% of requests are sent to segment-writer. |
| architecture.storage.v1 | bool | `true` | Enable v1 storage layer. |
| architecture.storage.v2 | bool | `false` | Enable v2 storage layer. |
| global.imageRegistry | string | `nil` | Overrides the Docker registry globally for all images |
| ingress.annotations | object | `{}` | |
| ingress.className | string | `""` | |
| ingress.enabled | bool | `false` | |
| ingress.labels | object | `{}` | |
| ingress.pathType | string | `"ImplementationSpecific"` | |
| minio | object | `{"buckets":[{"name":"grafana-pyroscope-data","policy":"none","purge":false}],"drivesPerNode":2,"enabled":false,"persistence":{"size":"5Gi"},"podAnnotations":{},"replicas":1,"resources":{"requests":{"cpu":"100m","memory":"128Mi"}},"rootPassword":"supersecret","rootUser":"grafana-pyroscope"}` | ----------------------------------- |
| pyroscope.affinity | object | `{}` | |
| pyroscope.cluster_domain | string | `".cluster.local."` | Kubernetes cluster domain suffix for DNS discovery |
| pyroscope.components | object | `{}` | |
| pyroscope.config | string | The config depends on other values been set, details can be found in [`values.yaml`](./values.yaml) | Contains Pyroscope's configuration as a string. |
| pyroscope.disableSelfProfile | bool | `true` | Enable or disable Self profile push, useful to test |
| pyroscope.dnsPolicy | string | `"ClusterFirst"` | |
| pyroscope.extraArgs."log.level" | string | `"debug"` | |
| pyroscope.extraContainers | list | `[]` | |
| pyroscope.extraCustomEnvVars | object | `{}` | |
| pyroscope.extraEnvFrom | list | `[]` | Environment variables from secrets or configmaps to add to the pods |
| pyroscope.extraEnvVars | object | `{}` | |
| pyroscope.extraLabels | object | `{}` | |
| pyroscope.extraVolumeMounts | list | `[]` | |
| pyroscope.extraVolumes | list | `[]` | |
| pyroscope.fullnameOverride | string | `""` | |
| pyroscope.grpc.port | int | `9095` | |
| pyroscope.grpc.port_name | string | `"grpc"` | |
| pyroscope.image.pullPolicy | string | `"IfNotPresent"` | |
| pyroscope.image.registry | string | `""` | |
| pyroscope.image.repository | string | `"grafana/pyroscope"` | |
| pyroscope.image.tag | string | `""` | |
| pyroscope.imagePullSecrets | list | `[]` | |
| pyroscope.initContainers | list | `[]` | |
| pyroscope.memberlist.port | int | `7946` | |
| pyroscope.memberlist.port_name | string | `"memberlist"` | |
| pyroscope.metastore.port | int | `9099` | |
| pyroscope.metastore.port_name | string | `"raft"` | |
| pyroscope.nameOverride | string | `""` | |
| pyroscope.nodeSelector | object | `{}` | |
| pyroscope.persistence.accessModes[0] | string | `"ReadWriteOnce"` | |
| pyroscope.persistence.annotations | object | `{}` | |
| pyroscope.persistence.enabled | bool | `false` | |
| pyroscope.persistence.metastore.subPath | string | `".metastore"` | |
| pyroscope.persistence.shared.enabled | bool | `true` | |
| pyroscope.persistence.shared.subPath | string | `".shared"` | |
| pyroscope.persistence.size | string | `"10Gi"` | |
| pyroscope.podAnnotations."profiles.grafana.com/cpu.port_name" | string | `"http2"` | |
| pyroscope.podAnnotations."profiles.grafana.com/cpu.scrape" | string | `"true"` | |
| pyroscope.podAnnotations."profiles.grafana.com/goroutine.port_name" | string | `"http2"` | |
| pyroscope.podAnnotations."profiles.grafana.com/goroutine.scrape" | string | `"true"` | |
| pyroscope.podAnnotations."profiles.grafana.com/memory.port_name" | string | `"http2"` | |
| pyroscope.podAnnotations."profiles.grafana.com/memory.scrape" | string | `"true"` | |
| pyroscope.podDisruptionBudget.enabled | bool | `true` | |
| pyroscope.podDisruptionBudget.maxUnavailable | int | `1` | |
| pyroscope.podSecurityContext.fsGroup | int | `10001` | |
| pyroscope.podSecurityContext.runAsNonRoot | bool | `true` | |
| pyroscope.podSecurityContext.runAsUser | int | `10001` | |
| pyroscope.replicaCount | int | `1` | |
| pyroscope.resources | object | `{}` | |
| pyroscope.securityContext | object | `{}` | |
| pyroscope.service.annotations | object | `{}` | |
| pyroscope.service.headlessAnnotations | object | `{}` | |
| pyroscope.service.port | int | `4040` | |
| pyroscope.service.port_name | string | `"http2"` | |
| pyroscope.service.scheme | string | `"HTTP"` | |
| pyroscope.service.type | string | `"ClusterIP"` | |
| pyroscope.serviceAccount.annotations | object | `{}` | |
| pyroscope.serviceAccount.create | bool | `true` | |
| pyroscope.serviceAccount.name | string | `""` | |
| pyroscope.structuredConfig | object | `{}` | Allows to override Pyroscope's configuration using structured format. |
| pyroscope.tenantOverrides | object | `{}` | Allows to add tenant specific overrides to the default limit configuration. |
| pyroscope.tolerations | list | `[]` | |
| pyroscope.topologySpreadConstraints | list | `[]` | Topology Spread Constraints |
| serviceMonitor.annotations | object | `{}` | ServiceMonitor annotations |
| serviceMonitor.enabled | bool | `false` | If enabled, ServiceMonitor resources for Prometheus Operator are created |
| serviceMonitor.interval | string | `nil` | ServiceMonitor scrape interval |
| serviceMonitor.labels | object | `{}` | Additional ServiceMonitor labels |
| serviceMonitor.matchExpressions | list | `[]` | Optional expressions to match on |
| serviceMonitor.metricRelabelings | list | `[]` | ServiceMonitor metric relabel configs to apply to samples before ingestion https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint |
| serviceMonitor.namespaceSelector | object | `{}` | Namespace selector for ServiceMonitor resources |
| serviceMonitor.relabelings | list | `[]` | ServiceMonitor relabel configs to apply to samples before scraping https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig |
| serviceMonitor.scheme | string | `"http"` | ServiceMonitor will use http by default, but you can pick https as well |
| serviceMonitor.scrapeTimeout | string | `nil` | ServiceMonitor scrape timeout in Go duration format (e.g. 15s) |
| serviceMonitor.targetLabels | list | `[]` | ServiceMonitor will add labels from the service to the Prometheus metric https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#servicemonitorspec |
| serviceMonitor.tlsConfig | string | `nil` | ServiceMonitor will use these tlsConfig settings to make the health check requests |