Skip to content

Commit

Permalink
update prometheus nad add pyroscope
Browse files Browse the repository at this point in the history
Signed-off-by: bvolovat <borisv@armosec.io>
  • Loading branch information
bvolovat committed Dec 22, 2024
1 parent b24c358 commit 238f09a
Show file tree
Hide file tree
Showing 31 changed files with 10,030 additions and 0 deletions.
23 changes: 23 additions & 0 deletions Monitoring/pyroscope/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
12 changes: 12 additions & 0 deletions Monitoring/pyroscope/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
dependencies:
- name: grafana-agent
repository: https://grafana.github.io/helm-charts
version: 0.25.0
- name: alloy
repository: https://grafana.github.io/helm-charts
version: 0.3.2
- name: minio
repository: https://charts.min.io/
version: 4.0.12
digest: sha256:8219331a0958f700ac918d7ebc18f15ad6086feb6299d27d3592c95ffd65a725
generated: "2024-06-21T15:57:39.754373+01:00"
26 changes: 26 additions & 0 deletions Monitoring/pyroscope/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apiVersion: v2
name: pyroscope
description: 🔥 horizontally-scalable, highly-available, multi-tenant continuous profiling aggregation system
home: https://grafana.com/oss/pyroscope/
type: application
version: 1.10.0
appVersion: 1.10.0
dependencies:
- name: grafana-agent
alias: agent
version: "0.25.0"
repository: https://grafana.github.io/helm-charts
condition: agent.enabled
- name: alloy
alias: alloy
version: "0.3.2"
repository: https://grafana.github.io/helm-charts
condition: alloy.enabled
- name: minio
alias: minio
version: 4.0.12
repository: https://charts.min.io/
condition: minio.enabled
sources:
- https://github.com/grafana/pyroscope
- https://github.com/grafana/pyroscope/tree/main/operations/pyroscope/helm/pyroscope
97 changes: 97 additions & 0 deletions Monitoring/pyroscope/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# pyroscope

![Version: 1.10.0](https://img.shields.io/badge/Version-1.10.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.10.0](https://img.shields.io/badge/AppVersion-1.10.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.0.12 |
| https://grafana.github.io/helm-charts | alloy(alloy) | 0.3.2 |
| https://grafana.github.io/helm-charts | agent(grafana-agent) | 0.25.0 |

## 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"},"replicas":1,"type":"statefulset"},"enabled":true}` | ----------------------------------- |
| ingress.className | string | `""` | |
| ingress.enabled | bool | `false` | |
| 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 Phlare's configuration as a string. |
| pyroscope.dnsPolicy | string | `"ClusterFirst"` | |
| pyroscope.extraArgs."log.level" | string | `"debug"` | |
| 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.image.pullPolicy | string | `"IfNotPresent"` | |
| 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.nameOverride | string | `""` | |
| pyroscope.nodeSelector | object | `{}` | |
| pyroscope.persistence.accessModes[0] | string | `"ReadWriteOnce"` | |
| pyroscope.persistence.annotations | object | `{}` | |
| pyroscope.persistence.enabled | bool | `false` | |
| 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.rbac.create | bool | `true` | |
| pyroscope.replicaCount | int | `1` | |
| pyroscope.resources | object | `{}` | |
| pyroscope.securityContext | object | `{}` | |
| pyroscope.service.annotations | 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 Phlare'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 |

----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.8.1](https://github.com/norwoodj/helm-docs/releases/v1.8.1)
Binary file added Monitoring/pyroscope/charts/alloy-0.3.2.tgz
Binary file not shown.
Binary file not shown.
Binary file added Monitoring/pyroscope/charts/minio-4.0.12.tgz
Binary file not shown.
88 changes: 88 additions & 0 deletions Monitoring/pyroscope/ci/micro-services-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Default values for pyroscope.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

pyroscope:
components:
querier:
kind: Deployment
replicaCount: 3
resources:
limits:
memory: 1Gi
requests:
memory: 32Mi
cpu: 10m
query-frontend:
kind: Deployment
replicaCount: 2
resources:
limits:
memory: 1Gi
requests:
memory: 32Mi
cpu: 10m
query-scheduler:
kind: Deployment
replicaCount: 2
resources:
limits:
memory: 1Gi
requests:
memory: 32Mi
cpu: 10m
distributor:
kind: Deployment
replicaCount: 2
resources:
limits:
memory: 1Gi
requests:
memory: 32Mi
cpu: 50m
ingester:
kind: StatefulSet
replicaCount: 3
resources:
limits:
memory: 4Gi
requests:
memory: 256Mi
cpu: 100m
store-gateway:
kind: StatefulSet
replicaCount: 3
persistence:
# The store-gateway needs not need persistent storage, but we still run it as a StatefulSet
# This is to avoid having blocks of data being
enabled: false
resources:
limits:
memory: 4Gi
requests:
memory: 64Mi
cpu: 20m
initContainers:
- name: create-bucket
image: minio/mc
command:
- /bin/sh
- -c
- |
export MC_CONFIG_DIR="/tmp/mc"
mkdir -p "$MC_CONFIG_DIR"
until mc config host add myminio http://$MINIO_ENDPOINT:9000 grafana-pyroscope supersecret; do
echo "Waiting for Minio to be available..."
sleep 5
done
mc mb myminio/grafana-pyroscope-data --ignore-existing
env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: MINIO_ENDPOINT
value: $(POD_NAMESPACE)-minio

minio:
enabled: true
1 change: 1 addition & 0 deletions Monitoring/pyroscope/ci/single-binary-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
---
88 changes: 88 additions & 0 deletions Monitoring/pyroscope/dev-env-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Default values for pyroscope.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

pyroscope:
extraArgs:
store-gateway.sharding-ring.replication-factor: "1"
components:
querier:
kind: Deployment
replicaCount: 1
resources:
limits:
memory: 1Gi
requests:
memory: 256Mi
cpu: 1
query-frontend:
kind: Deployment
replicaCount: 1
resources:
limits:
memory: 1Gi
requests:
memory: 256Mi
cpu: 100m
query-scheduler:
kind: Deployment
replicaCount: 2
resources:
limits:
memory: 1Gi
requests:
memory: 256Mi
cpu: 100m
distributor:
kind: Deployment
replicaCount: 2
resources:
limits:
memory: 1Gi
requests:
memory: 256Mi
cpu: 500m
ingester:
kind: StatefulSet
replicaCount: 1
terminationGracePeriodSeconds: 600
resources:
limits:
memory: 16Gi
requests:
memory: 8Gi
cpu: 1
compactor:
kind: StatefulSet
replicaCount: 1
terminationGracePeriodSeconds: 1200
persistence:
enabled: false
resources:
limits:
memory: 16Gi
requests:
memory: 8Gi
cpu: 1
store-gateway:
kind: StatefulSet
replicaCount: 1
persistence:
# The store-gateway needs not need persistent storage, but we still run it as a StatefulSet
# This is to avoid having blocks of data being
enabled: false
resources:
limits:
memory: 16Gi
requests:
memory: 8Gi
cpu: 1
readinessProbe:
# The store gateway can be configured to wait on startup for ring stability to be reached before it becomes
# ready. See the `store-gateway.sharding-ring.wait-stability-min-duration` server argument for more information.
#
# Depending on this flag and the number of tenants + blocks that need to be synced on startup, pods can take
# some time to become ready. This value can be used to ensure Kubernetes waits long enough and reduce errors.
initialDelaySeconds: 60
minio:
enabled: true
Loading

0 comments on commit 238f09a

Please sign in to comment.