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: chainreg.biz/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: 1.21.1-r7@sha256:f79b1689391871f27c00583f6ac91ffbd1b7fc4cbfd79f96a065e19bf0646a31
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
shared:
137
enabled: true
138
# subPath to use of the data volume for the shared storage used as bucket replacement.
139
subPath: .shared
140
extraVolumes: []
141
# - name: backup-volume
142
# emptydir: {}
143
144
extraVolumeMounts: []
145
# - name: testing
146
# mountPath: /var/lib/testing
147
# readOnly: false
148
# - name: test-volume
149
# mountPath: /var/tmp/test-volume
150
# existingClaim: test-volume
151
# readOnly: false
152
153
tolerations: []
154
affinity: {}
155
# Override the PodPriorityClass
156
# priorityClassName: high
157
158
# run specific components separately
159
components: {}
160
# -- Allows to override Pyroscope's configuration using structured format.
161
structuredConfig: {}
162
# -- Contains Pyroscope's configuration as a string.
163
# @default -- The config depends on other values been set, details can be found in [`values.yaml`](./values.yaml)
164
config: |
165
{{- if .Values.minio.enabled }}
166
storage:
167
backend: s3
168
s3:
169
endpoint: "{{ include "pyroscope.fullname" . }}-minio:9000"
170
bucket_name: {{(index .Values.minio.buckets 0).name | quote }}
171
access_key_id: {{ .Values.minio.rootUser | quote }}
172
secret_access_key: {{ .Values.minio.rootPassword | quote }}
173
insecure: true
174
{{- end }}
175
# -- Allows to add tenant specific overrides to the default limit configuration.
176
tenantOverrides: {}
177
# "foo":
178
# ingestion_rate_mb: 1
179
# ingestion_burst_size_mb: 2
180
# -- Grafana Agent Configuration.
181
architecture:
182
storage:
183
# -- (bool) Enable v1 storage layer.
184
v1: true
185
# -- (bool) Enable v2 storage layer.
186
v2: false
187
migration:
188
# -- (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.
189
ingesterWeight: 1.0
190
# -- (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.
191
segmentWriterWeight: 1.0
192
# -- (bool) Specify a time stamp from when the v2 read path should serve traffic.
193
queryBackend: true
194
# -- (string) Specify a time stamp from when the v2 read path should serve traffic.
195
queryBackendFrom: auto
196
# -- This flag is useful for testing, it will overwrite all pods resource statements with its contents
197
overwriteResources: {}
198
# limits: {}
199
# requests: {}
200
201
# -- Deploy unified write/read services. These endpoints will can be used no matter if the helm chart is configured as single-binary or microservices
202
deployUnifiedServices: false
203
microservices:
204
# -- (bool) Enable micro-services deployment mode. This is recommend for larger scale deployment and allow right size each aspect of Pyroscope.
205
enabled: false
206
# -- (string) Memberlist cluster label that will be used for all members of this cluster
207
clusterLabelSuffix: -micro-services
208
# -- @ignored
209
# Not useful to be indivually exposed
210
v1:
211
querier:
212
kind: Deployment
213
replicaCount: 3
214
resources:
215
limits:
216
memory: 1Gi
217
requests:
218
memory: 256Mi
219
cpu: 1
220
extraArgs:
221
store-gateway.sharding-ring.replication-factor: "3"
222
query-frontend:
223
kind: Deployment
224
replicaCount: 2
225
resources:
226
limits:
227
memory: 1Gi
228
requests:
229
memory: 256Mi
230
cpu: 100m
231
query-scheduler:
232
kind: Deployment
233
replicaCount: 2
234
resources:
235
limits:
236
memory: 1Gi
237
requests:
238
memory: 256Mi
239
cpu: 100m
240
distributor:
241
kind: Deployment
242
replicaCount: 2
243
resources:
244
limits:
245
memory: 1Gi
246
requests:
247
memory: 256Mi
248
cpu: 500m
249
ingester:
250
kind: StatefulSet
251
replicaCount: 3
252
terminationGracePeriodSeconds: 600
253
resources:
254
limits:
255
memory: 16Gi
256
requests:
257
memory: 8Gi
258
cpu: 1
259
compactor:
260
kind: StatefulSet
261
replicaCount: 3
262
terminationGracePeriodSeconds: 1200
263
persistence:
264
enabled: false
265
resources:
266
limits:
267
memory: 16Gi
268
requests:
269
memory: 8Gi
270
cpu: 1
271
store-gateway:
272
kind: StatefulSet
273
replicaCount: 3
274
persistence:
275
# The store-gateway needs not need persistent storage, but we still run it as a StatefulSet
276
# This is to avoid having blocks of data being
277
enabled: false
278
resources:
279
limits:
280
memory: 16Gi
281
requests:
282
memory: 8Gi
283
cpu: 1
284
readinessProbe:
285
# The store gateway can be configured to wait on startup for ring stability to be reached before it becomes
286
# ready. See the `store-gateway.sharding-ring.wait-stability-min-duration` server argument for more information.
287
#
288
# Depending on this flag and the number of tenants + blocks that need to be synced on startup, pods can take
289
# some time to become ready. This value can be used to ensure Kubernetes waits long enough and reduce errors.
290
initialDelaySeconds: 60
291
extraArgs:
292
store-gateway.sharding-ring.replication-factor: "3"
293
tenant-settings:
294
kind: Deployment
295
replicaCount: 1
296
resources:
297
limits:
298
memory: 4Gi
299
requests:
300
memory: 16Mi
301
cpu: 0.1
302
ad-hoc-profiles:
303
kind: Deployment
304
replicaCount: 1
305
resources:
306
limits:
307
memory: 4Gi
308
requests:
309
memory: 16Mi
310
cpu: 0.1
311
# -- @ignored
312
# Not useful to be indivually exposed
313
v2:
314
query-backend:
315
kind: Deployment
316
replicaCount: 3
317
resources:
318
limits:
319
memory: 1Gi
320
requests:
321
memory: 256Mi
322
cpu: 1
323
query-frontend:
324
kind: Deployment
325
replicaCount: 2
326
resources:
327
limits:
328
memory: 1Gi
329
requests:
330
memory: 256Mi
331
cpu: 100m
332
distributor:
333
kind: Deployment
334
replicaCount: 2
335
resources:
336
limits:
337
memory: 1Gi
338
requests:
339
memory: 256Mi
340
cpu: 500m
341
segment-writer:
342
kind: StatefulSet
343
replicaCount: 3
344
terminationGracePeriodSeconds: 600
345
resources:
346
limits:
347
memory: 4Gi
348
requests:
349
memory: 2Gi
350
cpu: 1
351
compaction-worker:
352
kind: StatefulSet
353
replicaCount: 3
354
terminationGracePeriodSeconds: 1200
355
persistence:
356
enabled: false
357
resources:
358
limits:
359
memory: 2Gi
360
requests:
361
memory: 1Gi
362
cpu: 1
363
metastore:
364
kind: StatefulSet
365
replicaCount: 3
366
terminationGracePeriodSeconds: 1200
367
persistence:
368
enabled: false
369
resources:
370
limits:
371
memory: 2Gi
372
requests:
373
memory: 1Gi
374
cpu: 1
375
extraArgs:
376
# Expect 3 metastores
377
metastore.raft.bootstrap-expect-peers: 3
378
# enable cleanup of blocks beyond retention
379
metastore.index.cleanup-interval: 1m
380
metastore.snapshot-compact-on-restore: true
381
tenant-settings:
382
kind: Deployment
383
replicaCount: 1
384
resources:
385
limits:
386
memory: 256Mi
387
requests:
388
memory: 16Mi
389
cpu: 0.1
390
ad-hoc-profiles:
391
kind: Deployment
392
replicaCount: 1
393
resources:
394
limits:
395
memory: 256Mi
396
requests:
397
memory: 16Mi
398
cpu: 0.1
399
admin:
400
kind: Deployment
401
replicaCount: 1
402
resources:
403
limits:
404
memory: 256Mi
405
requests:
406
memory: 16Mi
407
cpu: 0.1
408
# -------------------------------------
409
# Configuration for `alloy` child chart
410
# -------------------------------------
411
alloy:
412
enabled: true
413
controller:
414
type: "statefulset"
415
replicas: 1
416
podAnnotations:
417
profiles.grafana.com/memory.scrape: "true"
418
profiles.grafana.com/memory.port_name: "http-metrics"
419
profiles.grafana.com/cpu.scrape: "true"
420
profiles.grafana.com/cpu.port_name: "http-metrics"
421
profiles.grafana.com/goroutine.scrape: "true"
422
profiles.grafana.com/goroutine.port_name: "http-metrics"
423
profiles.grafana.com/service_repository: 'https://github.com/grafana/alloy'
424
profiles.grafana.com/service_git_ref: 'v1.8.1'
425
alloy:
426
stabilityLevel: "public-preview" # This needs to be set for some of our resources until verison v1.2 is released
427
configMap:
428
create: false
429
name: alloy-config-pyroscope
430
clustering:
431
enabled: true
432
# -------------------------------------
433
# Configuration for `grafana-agent` child chart
434
# -------------------------------------
435
agent:
436
enabled: false
437
controller:
438
type: "statefulset"
439
replicas: 1
440
podAnnotations:
441
profiles.grafana.com/memory.scrape: "true"
442
profiles.grafana.com/memory.port_name: "http-metrics"
443
profiles.grafana.com/cpu.scrape: "true"
444
profiles.grafana.com/cpu.port_name: "http-metrics"
445
profiles.grafana.com/goroutine.scrape: "true"
446
profiles.grafana.com/goroutine.port_name: "http-metrics"
447
agent:
448
configMap:
449
create: false
450
name: grafana-agent-config-pyroscope
451
clustering:
452
enabled: true
453
# -------------------------------------
454
# Configuration for `minio` child chart
455
# -------------------------------------
456
minio:
457
enabled: false
458
replicas: 1
459
# Minio requires 2 to 16 drives for erasure code (drivesPerNode * replicas)
460
# https://docs.min.io/docs/minio-erasure-code-quickstart-guide
461
# Since we only have 1 replica, that means 2 drives must be used.
462
drivesPerNode: 2
463
rootUser: grafana-pyroscope
464
rootPassword: supersecret
465
buckets:
466
- name: grafana-pyroscope-data
467
policy: none
468
purge: false
469
persistence:
470
size: 5Gi
471
resources:
472
requests:
473
cpu: 100m
474
memory: 128Mi
475
podAnnotations: {}
476
ingress:
477
enabled: false
478
className: ""
479
pathType: ImplementationSpecific
480
# Additional labels to add to the ingress resource
481
labels: {}
482
# Additional annotations to add to the ingress resource
483
annotations: {}
484
# hosts:
485
# - localhost
486
# tls:
487
# - secretName: certificate
488
httpRoute:
489
enabled: false
490
gateway:
491
name: ""
492
namespace: ""
493
# -- Optional to specify listener's name.
494
sectionName: null
495
# -- Additional labels to add to HTTPRoute resource.
496
labels: {}
497
# -- Additional annotations to add to HTTPRoute resource.
498
annotations: {}
499
hostnames: []
500
# -- Timeout settings to add to each rule in HTTPRoute resource.
501
# https://gateway-api.sigs.k8s.io/reference/spec/#httproutetimeouts.
502
timeouts: {}
503
# request: 0s
504
# ServiceMonitor configuration
505
serviceMonitor:
506
# -- If enabled, ServiceMonitor resources for Prometheus Operator are created
507
enabled: false
508
# -- Namespace selector for ServiceMonitor resources
509
namespaceSelector: {}
510
# -- Optional expressions to match on
511
matchExpressions: []
512
# - key: prometheus.io/service-monitor
513
# operator: NotIn
514
# values:
515
# - "false"
516
# -- ServiceMonitor annotations
517
annotations: {}
518
# -- Additional ServiceMonitor labels
519
labels: {}
520
# -- ServiceMonitor scrape interval
521
interval: null
522
# -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
523
scrapeTimeout: null
524
# -- ServiceMonitor relabel configs to apply to samples before scraping
525
# https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
526
relabelings: []
527
# -- ServiceMonitor metric relabel configs to apply to samples before ingestion
528
# https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
529
metricRelabelings: []
530
# --ServiceMonitor will add labels from the service to the Prometheus metric
531
# https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#servicemonitorspec
532
targetLabels: []
533
# -- ServiceMonitor will use http by default, but you can pick https as well
534
scheme: http
535
# -- ServiceMonitor will use these tlsConfig settings to make the health check requests
536
tlsConfig: null
537

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.