DirectorySecurity AdvisoriesPricing
Sign in
Directory
grafana-pyroscope logoHELM

grafana-pyroscope

Helm chart
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart versions
Default values
Chart metadata
Images

Tag:

1
# Default values for pyroscope.
2
# This is a YAML-formatted file.
3
# Declare variables to be passed into your templates.
4
global:
5
# -- Overrides the Docker registry globally for all images
6
imageRegistry: null
7
pyroscope:
8
replicaCount: 1
9
# -- Enable or disable Self profile push, useful to test
10
disableSelfProfile: true
11
# -- Kubernetes cluster domain suffix for DNS discovery
12
cluster_domain: .cluster.local.
13
image:
14
registry: ''
15
repository: cgr.dev/scratch-images/test-tmp/grafana-pyroscope
16
pullPolicy: IfNotPresent
17
# Allows to override the image tag, which defaults to the appVersion in the chart metadata
18
tag: 2.0.3-r1@sha256:48d82fe2ff7a485c1063af863472caad03367430402bcde2c13123c438ccbd85
19
extraArgs:
20
log.level: debug
21
extraLabels: {}
22
extraEnvVars: {}
23
# The following environment variables are set by the Helm chart.
24
# JAEGER_AGENT_HOST: jaeger-agent.jaeger.svc.cluster.local.
25
26
extraCustomEnvVars: {}
27
# The following environment variables raw form.
28
# - name: MY_NODE_NAME
29
# valueFrom:
30
# fieldRef:
31
# fieldPath: spec.nodeName
32
33
# -- Environment variables from secrets or configmaps to add to the pods
34
extraEnvFrom: []
35
imagePullSecrets: []
36
dnsPolicy: ClusterFirst
37
initContainers: []
38
extraContainers: []
39
nameOverride: ""
40
fullnameOverride: ""
41
rbac:
42
# -- Whether to create RBAC resources
43
create: true
44
serviceAccount:
45
# Specifies whether a service account should be created
46
create: true
47
# Annotations to add to the service account
48
annotations: {}
49
# The name of the service account to use.
50
# If not set and create is true, a name is generated using the fullname template
51
name: ""
52
podAnnotations:
53
# Scrapes itself see https://grafana.com/docs/pyroscope/latest/deploy-kubernetes/helm/#optional-scrape-your-own-workloads-profiles
54
profiles.grafana.com/memory.scrape: "true"
55
profiles.grafana.com/memory.port_name: http2
56
profiles.grafana.com/cpu.scrape: "true"
57
profiles.grafana.com/cpu.port_name: http2
58
profiles.grafana.com/goroutine.scrape: "true"
59
profiles.grafana.com/goroutine.port_name: http2
60
# profiles.grafana.com/block.scrape: "true"
61
# profiles.grafana.com/mutex.scrape: "true"
62
podSecurityContext:
63
fsGroup: 10001
64
runAsUser: 10001
65
runAsNonRoot: true
66
podDisruptionBudget:
67
enabled: true
68
maxUnavailable: 1
69
securityContext: {}
70
# capabilities:
71
# drop:
72
# - ALL
73
# readOnlyRootFilesystem: true
74
# runAsNonRoot: true
75
# runAsUser: 1000
76
77
service:
78
type: ClusterIP
79
port: 4040
80
port_name: http2
81
scheme: HTTP
82
annotations: {}
83
headlessAnnotations: {}
84
memberlist:
85
port: 7946
86
port_name: memberlist
87
grpc:
88
port: 9095
89
port_name: grpc
90
metastore:
91
port: 9099
92
port_name: raft
93
resources: {}
94
# We usually recommend not to specify default resources and to leave this as a conscious
95
# choice for the user. This also increases chances charts run on environments with little
96
# resources, such as Minikube. If you do want to specify resources, uncomment the following
97
# lines, adjust them as necessary, and remove the curly braces after 'resources'.
98
#
99
# Note that if memory consumption is higher than you would like, you can decrease the interval
100
# that profiles are written into blocks by setting `pyroscopedb.max-block-duration` in the `extraArgs`
101
# stanza. By default, it is set to 3h - override it, for example, as below:
102
# ```
103
# extraArgs:
104
# pyroscopedb.max-block-duration: 30m
105
# ```
106
#
107
# limits:
108
# cpu: 100m
109
# memory: 128Mi
110
# requests:
111
# cpu: 100m
112
# memory: 128Mi
113
114
nodeSelector: {}
115
# -- Topology Spread Constraints
116
topologySpreadConstraints: []
117
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
118
## If you set enabled as "True", you need :
119
## - create a pv which above 10Gi and has same namespace with pyroscope
120
## - keep storageClassName same with below setting
121
persistence:
122
enabled: false
123
accessModes:
124
- ReadWriteOnce
125
size: 10Gi
126
annotations: {}
127
# selector:
128
# matchLabels:
129
# app.kubernetes.io/name: pyroscope
130
# subPath: ""
131
# existingClaim:
132
133
metastore:
134
# subPath to use of the data volume for the metastore persistence.
135
subPath: .metastore
136
extraVolumes: []
137
# - name: backup-volume
138
# emptydir: {}
139
140
extraVolumeMounts: []
141
# - name: testing
142
# mountPath: /var/lib/testing
143
# readOnly: false
144
# - name: test-volume
145
# mountPath: /var/tmp/test-volume
146
# existingClaim: test-volume
147
# readOnly: false
148
149
tolerations: []
150
affinity: {}
151
# Override the PodPriorityClass
152
# priorityClassName: high
153
154
# run specific components separately
155
components: {}
156
# -- Allows to override Pyroscope's configuration using structured format.
157
structuredConfig: {}
158
# -- Contains Pyroscope's configuration as a string.
159
# @default -- The config depends on other values been set, details can be found in [`values.yaml`](./values.yaml)
160
config: |
161
{{- if .Values.minio.enabled }}
162
storage:
163
backend: s3
164
s3:
165
endpoint: "{{ include "pyroscope.fullname" . }}-minio:9000"
166
bucket_name: {{(index .Values.minio.buckets 0).name | quote }}
167
access_key_id: {{ .Values.minio.rootUser | quote }}
168
secret_access_key: {{ .Values.minio.rootPassword | quote }}
169
insecure: true
170
{{- end }}
171
# -- Allows to add tenant specific overrides to the default limit configuration.
172
tenantOverrides: {}
173
# "foo":
174
# ingestion_rate_mb: 1
175
# ingestion_burst_size_mb: 2
176
# -- Grafana Agent Configuration.
177
architecture:
178
storage:
179
# -- (bool) Enable v1 storage layer.
180
v1: false
181
# -- (bool) Enable v2 storage layer.
182
v2: true
183
migration:
184
# -- (float) 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.
185
ingesterWeight: 1.0
186
# -- (float) 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.
187
segmentWriterWeight: 1.0
188
# -- (string) Specify a time stamp from when the v2 read path should serve traffic. Defaults to "auto" which determines the split point from the metastore.
189
queryBackendFrom: auto
190
# -- This flag is useful for testing, it will overwrite all pods resource statements with its contents
191
overwriteResources: {}
192
# limits: {}
193
# requests: {}
194
195
# -- Deploy unified write/read services. These endpoints will can be used no matter if the helm chart is configured as single-binary or microservices
196
deployUnifiedServices: false
197
microservices:
198
# -- (bool) Enable micro-services deployment mode. This is recommend for larger scale deployment and allow right size each aspect of Pyroscope.
199
enabled: false
200
# -- (string) Memberlist cluster label that will be used for all members of this cluster
201
clusterLabelSuffix: -micro-services
202
# -- @ignored
203
# Not useful to be indivually exposed
204
v1:
205
querier:
206
kind: Deployment
207
replicaCount: 3
208
resources:
209
limits:
210
memory: 1Gi
211
requests:
212
memory: 256Mi
213
cpu: 1
214
extraArgs:
215
store-gateway.sharding-ring.replication-factor: "3"
216
query-frontend:
217
kind: Deployment
218
replicaCount: 2
219
resources:
220
limits:
221
memory: 1Gi
222
requests:
223
memory: 256Mi
224
cpu: 100m
225
query-scheduler:
226
kind: Deployment
227
replicaCount: 2
228
resources:
229
limits:
230
memory: 1Gi
231
requests:
232
memory: 256Mi
233
cpu: 100m
234
distributor:
235
kind: Deployment
236
replicaCount: 2
237
resources:
238
limits:
239
memory: 1Gi
240
requests:
241
memory: 256Mi
242
cpu: 500m
243
ingester:
244
kind: StatefulSet
245
replicaCount: 3
246
terminationGracePeriodSeconds: 600
247
resources:
248
limits:
249
memory: 16Gi
250
requests:
251
memory: 8Gi
252
cpu: 1
253
compactor:
254
kind: StatefulSet
255
replicaCount: 3
256
terminationGracePeriodSeconds: 1200
257
persistence:
258
enabled: false
259
resources:
260
limits:
261
memory: 16Gi
262
requests:
263
memory: 8Gi
264
cpu: 1
265
store-gateway:
266
kind: StatefulSet
267
replicaCount: 3
268
persistence:
269
# The store-gateway needs not need persistent storage, but we still run it as a StatefulSet
270
# This is to avoid having blocks of data being
271
enabled: false
272
resources:
273
limits:
274
memory: 16Gi
275
requests:
276
memory: 8Gi
277
cpu: 1
278
readinessProbe:
279
# The store gateway can be configured to wait on startup for ring stability to be reached before it becomes
280
# ready. See the `store-gateway.sharding-ring.wait-stability-min-duration` server argument for more information.
281
#
282
# Depending on this flag and the number of tenants + blocks that need to be synced on startup, pods can take
283
# some time to become ready. This value can be used to ensure Kubernetes waits long enough and reduce errors.
284
initialDelaySeconds: 60
285
extraArgs:
286
store-gateway.sharding-ring.replication-factor: "3"
287
tenant-settings:
288
kind: Deployment
289
replicaCount: 1
290
resources:
291
limits:
292
memory: 4Gi
293
requests:
294
memory: 16Mi
295
cpu: 0.1
296
ad-hoc-profiles:
297
kind: Deployment
298
replicaCount: 1
299
resources:
300
limits:
301
memory: 4Gi
302
requests:
303
memory: 16Mi
304
cpu: 0.1
305
# -- @ignored
306
# Not useful to be indivually exposed
307
v2:
308
query-backend:
309
kind: Deployment
310
replicaCount: 3
311
resources:
312
limits:
313
memory: 1Gi
314
requests:
315
memory: 256Mi
316
cpu: 1
317
query-frontend:
318
kind: Deployment
319
replicaCount: 2
320
resources:
321
limits:
322
memory: 1Gi
323
requests:
324
memory: 256Mi
325
cpu: 100m
326
distributor:
327
kind: Deployment
328
replicaCount: 2
329
resources:
330
limits:
331
memory: 1Gi
332
requests:
333
memory: 256Mi
334
cpu: 500m
335
segment-writer:
336
kind: StatefulSet
337
replicaCount: 3
338
terminationGracePeriodSeconds: 600
339
resources:
340
limits:
341
memory: 4Gi
342
requests:
343
memory: 2Gi
344
cpu: 1
345
compaction-worker:
346
kind: StatefulSet
347
replicaCount: 3
348
terminationGracePeriodSeconds: 1200
349
persistence:
350
enabled: false
351
resources:
352
limits:
353
memory: 2Gi
354
requests:
355
memory: 1Gi
356
cpu: 1
357
metastore:
358
kind: StatefulSet
359
replicaCount: 3
360
terminationGracePeriodSeconds: 1200
361
persistence:
362
enabled: false
363
resources:
364
limits:
365
memory: 2Gi
366
requests:
367
memory: 1Gi
368
cpu: 1
369
extraArgs:
370
# Expect 3 metastores
371
metastore.raft.bootstrap-expect-peers: 3
372
# enable cleanup of blocks beyond retention
373
metastore.index.cleanup-interval: 1m
374
metastore.snapshot-compact-on-restore: true
375
tenant-settings:
376
kind: Deployment
377
replicaCount: 1
378
resources:
379
limits:
380
memory: 256Mi
381
requests:
382
memory: 16Mi
383
cpu: 0.1
384
ad-hoc-profiles:
385
kind: Deployment
386
replicaCount: 1
387
resources:
388
limits:
389
memory: 256Mi
390
requests:
391
memory: 16Mi
392
cpu: 0.1
393
admin:
394
kind: Deployment
395
replicaCount: 1
396
resources:
397
limits:
398
memory: 256Mi
399
requests:
400
memory: 16Mi
401
cpu: 0.1
402
# -------------------------------------
403
# Configuration for `alloy` child chart
404
# -------------------------------------
405
alloy:
406
enabled: true
407
controller:
408
type: "statefulset"
409
replicas: 1
410
podAnnotations:
411
profiles.grafana.com/memory.scrape: "true"
412
profiles.grafana.com/memory.port_name: "http-metrics"
413
profiles.grafana.com/cpu.scrape: "true"
414
profiles.grafana.com/cpu.port_name: "http-metrics"
415
profiles.grafana.com/goroutine.scrape: "true"
416
profiles.grafana.com/goroutine.port_name: "http-metrics"
417
profiles.grafana.com/service_repository: 'https://github.com/grafana/alloy'
418
profiles.grafana.com/service_git_ref: 'v1.8.1'
419
alloy:
420
stabilityLevel: "public-preview" # This needs to be set for some of our resources until verison v1.2 is released
421
configMap:
422
create: false
423
name: alloy-config-pyroscope
424
clustering:
425
enabled: true
426
# -------------------------------------
427
# Configuration for `grafana-agent` child chart
428
# -------------------------------------
429
agent:
430
enabled: false
431
controller:
432
type: "statefulset"
433
replicas: 1
434
podAnnotations:
435
profiles.grafana.com/memory.scrape: "true"
436
profiles.grafana.com/memory.port_name: "http-metrics"
437
profiles.grafana.com/cpu.scrape: "true"
438
profiles.grafana.com/cpu.port_name: "http-metrics"
439
profiles.grafana.com/goroutine.scrape: "true"
440
profiles.grafana.com/goroutine.port_name: "http-metrics"
441
agent:
442
configMap:
443
create: false
444
name: grafana-agent-config-pyroscope
445
clustering:
446
enabled: true
447
# -------------------------------------
448
# Configuration for `minio` child chart
449
# -------------------------------------
450
minio:
451
enabled: false
452
replicas: 1
453
# Minio requires 2 to 16 drives for erasure code (drivesPerNode * replicas)
454
# https://docs.min.io/docs/minio-erasure-code-quickstart-guide
455
# Since we only have 1 replica, that means 2 drives must be used.
456
drivesPerNode: 2
457
rootUser: grafana-pyroscope
458
rootPassword: supersecret
459
buckets:
460
- name: grafana-pyroscope-data
461
policy: none
462
purge: false
463
persistence:
464
size: 5Gi
465
resources:
466
requests:
467
cpu: 100m
468
memory: 128Mi
469
podAnnotations: {}
470
ingress:
471
enabled: false
472
className: ""
473
pathType: ImplementationSpecific
474
# Additional labels to add to the ingress resource
475
labels: {}
476
# Additional annotations to add to the ingress resource
477
annotations: {}
478
# hosts:
479
# - localhost
480
# tls:
481
# - secretName: certificate
482
httpRoute:
483
enabled: false
484
gateway:
485
name: ""
486
namespace: ""
487
# -- Optional to specify listener's name.
488
sectionName: null
489
# -- Additional labels to add to HTTPRoute resource.
490
labels: {}
491
# -- Additional annotations to add to HTTPRoute resource.
492
annotations: {}
493
hostnames: []
494
# -- Timeout settings to add to each rule in HTTPRoute resource.
495
# https://gateway-api.sigs.k8s.io/reference/spec/#httproutetimeouts.
496
timeouts: {}
497
# request: 0s
498
# ServiceMonitor configuration
499
serviceMonitor:
500
# -- If enabled, ServiceMonitor resources for Prometheus Operator are created
501
enabled: false
502
# -- Namespace selector for ServiceMonitor resources
503
namespaceSelector: {}
504
# -- Optional expressions to match on
505
matchExpressions: []
506
# - key: prometheus.io/service-monitor
507
# operator: NotIn
508
# values:
509
# - "false"
510
# -- ServiceMonitor annotations
511
annotations: {}
512
# -- Additional ServiceMonitor labels
513
labels: {}
514
# -- ServiceMonitor scrape interval
515
interval: null
516
# -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
517
scrapeTimeout: null
518
# -- ServiceMonitor relabel configs to apply to samples before scraping
519
# https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
520
relabelings: []
521
# -- ServiceMonitor metric relabel configs to apply to samples before ingestion
522
# https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
523
metricRelabelings: []
524
# --ServiceMonitor will add labels from the service to the Prometheus metric
525
# https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#servicemonitorspec
526
targetLabels: []
527
# -- ServiceMonitor will use http by default, but you can pick https as well
528
scheme: http
529
# -- ServiceMonitor will use these tlsConfig settings to make the health check requests
530
tlsConfig: null
531
# -- Array of extra K8s manifests to deploy alongside the chart
532
extraObjects: []
533
# extraObjects:
534
# - apiVersion: autoscaling.k8s.io/v1
535
# kind: VerticalPodAutoscaler
536
# metadata:
537
# name: pyroscope-distributor
538
# spec:
539
# targetRef:
540
# apiVersion: apps/v1
541
# kind: Deployment
542
# name: '{{ include "pyroscope.fullname" . }}-distributor'
543
# updatePolicy:
544
# updateMode: Auto
545

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.