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

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.