1404 lines
38 KiB
YAML
1404 lines
38 KiB
YAML
---
|
|
# Source: pyroscope/templates/deployments-statefulsets.yaml
|
|
apiVersion: policy/v1
|
|
kind: PodDisruptionBudget
|
|
metadata:
|
|
name: pyroscope-dev
|
|
namespace: default
|
|
labels:
|
|
helm.sh/chart: pyroscope-1.19.1
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "1.19.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/component: "all"
|
|
spec:
|
|
maxUnavailable: 1
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/component: "all"
|
|
---
|
|
# Source: pyroscope/charts/alloy/templates/serviceaccount.yaml
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
automountServiceAccountToken: true
|
|
metadata:
|
|
name: pyroscope-dev-alloy
|
|
namespace: default
|
|
labels:
|
|
helm.sh/chart: alloy-1.5.2
|
|
app.kubernetes.io/name: alloy
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "v1.12.2"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/part-of: alloy
|
|
app.kubernetes.io/component: rbac
|
|
---
|
|
# Source: pyroscope/templates/serviceaccount.yaml
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: pyroscope-dev
|
|
namespace: default
|
|
labels:
|
|
helm.sh/chart: pyroscope-1.19.1
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "1.19.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
---
|
|
# Source: pyroscope/templates/configmap-alloy.yaml
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: alloy-config-pyroscope
|
|
namespace: default
|
|
labels:
|
|
helm.sh/chart: pyroscope-1.19.1
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "1.19.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
data:
|
|
config.alloy: |
|
|
logging {
|
|
level = "info"
|
|
format = "logfmt"
|
|
}
|
|
|
|
discovery.kubernetes "pyroscope_kubernetes" {
|
|
role = "pod"
|
|
}
|
|
|
|
// The default scrape config allows to define annotations based scraping.
|
|
//
|
|
// For example the following annotations:
|
|
//
|
|
// ```
|
|
// profiles.grafana.com/memory.scrape: "true"
|
|
// profiles.grafana.com/memory.port: "8080"
|
|
// profiles.grafana.com/cpu.scrape: "true"
|
|
// profiles.grafana.com/cpu.port: "8080"
|
|
// profiles.grafana.com/goroutine.scrape: "true"
|
|
// profiles.grafana.com/goroutine.port: "8080"
|
|
// ```
|
|
//
|
|
// will scrape the `memory`, `cpu` and `goroutine` profiles from the `8080` port of the pod.
|
|
//
|
|
// For more information see https://grafana.com/docs/pyroscope/latest/deploy-kubernetes/helm/#optional-scrape-your-own-workloads-profiles
|
|
discovery.relabel "kubernetes_pods" {
|
|
targets = concat(discovery.kubernetes.pyroscope_kubernetes.targets)
|
|
|
|
rule {
|
|
action = "drop"
|
|
source_labels = ["__meta_kubernetes_pod_phase"]
|
|
regex = "Pending|Succeeded|Failed|Completed"
|
|
}
|
|
|
|
rule {
|
|
action = "labelmap"
|
|
regex = "__meta_kubernetes_pod_label_(.+)"
|
|
}
|
|
|
|
rule {
|
|
action = "replace"
|
|
source_labels = ["__meta_kubernetes_namespace"]
|
|
target_label = "namespace"
|
|
}
|
|
|
|
rule {
|
|
action = "replace"
|
|
source_labels = ["__meta_kubernetes_pod_name"]
|
|
target_label = "pod"
|
|
}
|
|
|
|
rule {
|
|
action = "replace"
|
|
source_labels = ["__meta_kubernetes_pod_container_name"]
|
|
target_label = "container"
|
|
}
|
|
|
|
rule {
|
|
action = "replace"
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_service_repository"]
|
|
target_label = "service_repository"
|
|
}
|
|
|
|
rule {
|
|
action = "replace"
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_service_git_ref"]
|
|
target_label = "service_git_ref"
|
|
}
|
|
|
|
rule {
|
|
action = "replace"
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_service_root_path"]
|
|
target_label = "service_root_path"
|
|
}
|
|
}
|
|
|
|
discovery.relabel "kubernetes_pods_memory_default_name" {
|
|
targets = concat(discovery.relabel.kubernetes_pods.output)
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_scrape"]
|
|
action = "keep"
|
|
regex = "true"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_port_name"]
|
|
action = "keep"
|
|
regex = ""
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_container_port_number"]
|
|
target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_port"
|
|
action = "keepequal"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_scheme"]
|
|
action = "replace"
|
|
regex = "(https?)"
|
|
target_label = "__scheme__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_path"]
|
|
action = "replace"
|
|
regex = "(.+)"
|
|
target_label = "__profile_path__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_port"]
|
|
action = "replace"
|
|
regex = "(.+?)(?::\\d+)?;(\\d+)"
|
|
target_label = "__address__"
|
|
replacement = "$1:$2"
|
|
}
|
|
}
|
|
|
|
discovery.relabel "kubernetes_pods_memory_custom_name" {
|
|
targets = concat(discovery.relabel.kubernetes_pods.output)
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_scrape"]
|
|
action = "keep"
|
|
regex = "true"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_port_name"]
|
|
action = "drop"
|
|
regex = ""
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_container_port_name"]
|
|
target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_port_name"
|
|
action = "keepequal"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_scheme"]
|
|
action = "replace"
|
|
regex = "(https?)"
|
|
target_label = "__scheme__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_path"]
|
|
action = "replace"
|
|
regex = "(.+)"
|
|
target_label = "__profile_path__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_port"]
|
|
action = "replace"
|
|
regex = "(.+?)(?::\\d+)?;(\\d+)"
|
|
target_label = "__address__"
|
|
replacement = "$1:$2"
|
|
}
|
|
}
|
|
|
|
pyroscope.scrape "pyroscope_scrape_memory" {
|
|
clustering {
|
|
enabled = true
|
|
}
|
|
|
|
targets = concat(discovery.relabel.kubernetes_pods_memory_default_name.output, discovery.relabel.kubernetes_pods_memory_custom_name.output)
|
|
forward_to = [pyroscope.write.pyroscope_write.receiver]
|
|
|
|
profiling_config {
|
|
profile.memory {
|
|
enabled = true
|
|
}
|
|
|
|
profile.process_cpu {
|
|
enabled = false
|
|
}
|
|
|
|
profile.goroutine {
|
|
enabled = false
|
|
}
|
|
|
|
profile.block {
|
|
enabled = false
|
|
}
|
|
|
|
profile.mutex {
|
|
enabled = false
|
|
}
|
|
|
|
profile.fgprof {
|
|
enabled = false
|
|
}
|
|
}
|
|
}
|
|
|
|
discovery.relabel "kubernetes_pods_cpu_default_name" {
|
|
targets = concat(discovery.relabel.kubernetes_pods.output)
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_scrape"]
|
|
action = "keep"
|
|
regex = "true"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_port_name"]
|
|
action = "keep"
|
|
regex = ""
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_container_port_number"]
|
|
target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_port"
|
|
action = "keepequal"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_scheme"]
|
|
action = "replace"
|
|
regex = "(https?)"
|
|
target_label = "__scheme__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_path"]
|
|
action = "replace"
|
|
regex = "(.+)"
|
|
target_label = "__profile_path__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_port"]
|
|
action = "replace"
|
|
regex = "(.+?)(?::\\d+)?;(\\d+)"
|
|
target_label = "__address__"
|
|
replacement = "$1:$2"
|
|
}
|
|
}
|
|
|
|
discovery.relabel "kubernetes_pods_cpu_custom_name" {
|
|
targets = concat(discovery.relabel.kubernetes_pods.output)
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_scrape"]
|
|
action = "keep"
|
|
regex = "true"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_port_name"]
|
|
action = "drop"
|
|
regex = ""
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_container_port_name"]
|
|
target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_port_name"
|
|
action = "keepequal"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_scheme"]
|
|
action = "replace"
|
|
regex = "(https?)"
|
|
target_label = "__scheme__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_path"]
|
|
action = "replace"
|
|
regex = "(.+)"
|
|
target_label = "__profile_path__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_port"]
|
|
action = "replace"
|
|
regex = "(.+?)(?::\\d+)?;(\\d+)"
|
|
target_label = "__address__"
|
|
replacement = "$1:$2"
|
|
}
|
|
}
|
|
|
|
pyroscope.scrape "pyroscope_scrape_cpu" {
|
|
clustering {
|
|
enabled = true
|
|
}
|
|
|
|
targets = concat(discovery.relabel.kubernetes_pods_cpu_default_name.output, discovery.relabel.kubernetes_pods_cpu_custom_name.output)
|
|
forward_to = [pyroscope.write.pyroscope_write.receiver]
|
|
|
|
profiling_config {
|
|
profile.memory {
|
|
enabled = false
|
|
}
|
|
|
|
profile.process_cpu {
|
|
enabled = true
|
|
}
|
|
|
|
profile.goroutine {
|
|
enabled = false
|
|
}
|
|
|
|
profile.block {
|
|
enabled = false
|
|
}
|
|
|
|
profile.mutex {
|
|
enabled = false
|
|
}
|
|
|
|
profile.fgprof {
|
|
enabled = false
|
|
}
|
|
}
|
|
}
|
|
|
|
discovery.relabel "kubernetes_pods_goroutine_default_name" {
|
|
targets = concat(discovery.relabel.kubernetes_pods.output)
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_scrape"]
|
|
action = "keep"
|
|
regex = "true"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_port_name"]
|
|
action = "keep"
|
|
regex = ""
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_container_port_number"]
|
|
target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_port"
|
|
action = "keepequal"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_scheme"]
|
|
action = "replace"
|
|
regex = "(https?)"
|
|
target_label = "__scheme__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_path"]
|
|
action = "replace"
|
|
regex = "(.+)"
|
|
target_label = "__profile_path__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_port"]
|
|
action = "replace"
|
|
regex = "(.+?)(?::\\d+)?;(\\d+)"
|
|
target_label = "__address__"
|
|
replacement = "$1:$2"
|
|
}
|
|
}
|
|
|
|
discovery.relabel "kubernetes_pods_goroutine_custom_name" {
|
|
targets = concat(discovery.relabel.kubernetes_pods.output)
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_scrape"]
|
|
action = "keep"
|
|
regex = "true"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_port_name"]
|
|
action = "drop"
|
|
regex = ""
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_container_port_name"]
|
|
target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_port_name"
|
|
action = "keepequal"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_scheme"]
|
|
action = "replace"
|
|
regex = "(https?)"
|
|
target_label = "__scheme__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_path"]
|
|
action = "replace"
|
|
regex = "(.+)"
|
|
target_label = "__profile_path__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_port"]
|
|
action = "replace"
|
|
regex = "(.+?)(?::\\d+)?;(\\d+)"
|
|
target_label = "__address__"
|
|
replacement = "$1:$2"
|
|
}
|
|
}
|
|
|
|
pyroscope.scrape "pyroscope_scrape_goroutine" {
|
|
clustering {
|
|
enabled = true
|
|
}
|
|
|
|
targets = concat(discovery.relabel.kubernetes_pods_goroutine_default_name.output, discovery.relabel.kubernetes_pods_goroutine_custom_name.output)
|
|
forward_to = [pyroscope.write.pyroscope_write.receiver]
|
|
|
|
profiling_config {
|
|
profile.memory {
|
|
enabled = false
|
|
}
|
|
|
|
profile.process_cpu {
|
|
enabled = false
|
|
}
|
|
|
|
profile.goroutine {
|
|
enabled = true
|
|
}
|
|
|
|
profile.block {
|
|
enabled = false
|
|
}
|
|
|
|
profile.mutex {
|
|
enabled = false
|
|
}
|
|
|
|
profile.fgprof {
|
|
enabled = false
|
|
}
|
|
}
|
|
}
|
|
|
|
discovery.relabel "kubernetes_pods_block_default_name" {
|
|
targets = concat(discovery.relabel.kubernetes_pods.output)
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_scrape"]
|
|
action = "keep"
|
|
regex = "true"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_port_name"]
|
|
action = "keep"
|
|
regex = ""
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_container_port_number"]
|
|
target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_block_port"
|
|
action = "keepequal"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_scheme"]
|
|
action = "replace"
|
|
regex = "(https?)"
|
|
target_label = "__scheme__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_path"]
|
|
action = "replace"
|
|
regex = "(.+)"
|
|
target_label = "__profile_path__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_block_port"]
|
|
action = "replace"
|
|
regex = "(.+?)(?::\\d+)?;(\\d+)"
|
|
target_label = "__address__"
|
|
replacement = "$1:$2"
|
|
}
|
|
}
|
|
|
|
discovery.relabel "kubernetes_pods_block_custom_name" {
|
|
targets = concat(discovery.relabel.kubernetes_pods.output)
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_scrape"]
|
|
action = "keep"
|
|
regex = "true"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_port_name"]
|
|
action = "drop"
|
|
regex = ""
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_container_port_name"]
|
|
target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_block_port_name"
|
|
action = "keepequal"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_scheme"]
|
|
action = "replace"
|
|
regex = "(https?)"
|
|
target_label = "__scheme__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_path"]
|
|
action = "replace"
|
|
regex = "(.+)"
|
|
target_label = "__profile_path__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_block_port"]
|
|
action = "replace"
|
|
regex = "(.+?)(?::\\d+)?;(\\d+)"
|
|
target_label = "__address__"
|
|
replacement = "$1:$2"
|
|
}
|
|
}
|
|
|
|
pyroscope.scrape "pyroscope_scrape_block" {
|
|
clustering {
|
|
enabled = true
|
|
}
|
|
|
|
targets = concat(discovery.relabel.kubernetes_pods_block_default_name.output, discovery.relabel.kubernetes_pods_block_custom_name.output)
|
|
forward_to = [pyroscope.write.pyroscope_write.receiver]
|
|
|
|
profiling_config {
|
|
profile.memory {
|
|
enabled = false
|
|
}
|
|
|
|
profile.process_cpu {
|
|
enabled = false
|
|
}
|
|
|
|
profile.goroutine {
|
|
enabled = false
|
|
}
|
|
|
|
profile.block {
|
|
enabled = true
|
|
}
|
|
|
|
profile.mutex {
|
|
enabled = false
|
|
}
|
|
|
|
profile.fgprof {
|
|
enabled = false
|
|
}
|
|
}
|
|
}
|
|
|
|
discovery.relabel "kubernetes_pods_mutex_default_name" {
|
|
targets = concat(discovery.relabel.kubernetes_pods.output)
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_scrape"]
|
|
action = "keep"
|
|
regex = "true"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_port_name"]
|
|
action = "keep"
|
|
regex = ""
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_container_port_number"]
|
|
target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_port"
|
|
action = "keepequal"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_scheme"]
|
|
action = "replace"
|
|
regex = "(https?)"
|
|
target_label = "__scheme__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_path"]
|
|
action = "replace"
|
|
regex = "(.+)"
|
|
target_label = "__profile_path__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_port"]
|
|
action = "replace"
|
|
regex = "(.+?)(?::\\d+)?;(\\d+)"
|
|
target_label = "__address__"
|
|
replacement = "$1:$2"
|
|
}
|
|
}
|
|
|
|
discovery.relabel "kubernetes_pods_mutex_custom_name" {
|
|
targets = concat(discovery.relabel.kubernetes_pods.output)
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_scrape"]
|
|
action = "keep"
|
|
regex = "true"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_port_name"]
|
|
action = "drop"
|
|
regex = ""
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_container_port_name"]
|
|
target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_port_name"
|
|
action = "keepequal"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_scheme"]
|
|
action = "replace"
|
|
regex = "(https?)"
|
|
target_label = "__scheme__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_path"]
|
|
action = "replace"
|
|
regex = "(.+)"
|
|
target_label = "__profile_path__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_port"]
|
|
action = "replace"
|
|
regex = "(.+?)(?::\\d+)?;(\\d+)"
|
|
target_label = "__address__"
|
|
replacement = "$1:$2"
|
|
}
|
|
}
|
|
|
|
pyroscope.scrape "pyroscope_scrape_mutex" {
|
|
clustering {
|
|
enabled = true
|
|
}
|
|
|
|
targets = concat(discovery.relabel.kubernetes_pods_mutex_default_name.output, discovery.relabel.kubernetes_pods_mutex_custom_name.output)
|
|
forward_to = [pyroscope.write.pyroscope_write.receiver]
|
|
|
|
profiling_config {
|
|
profile.memory {
|
|
enabled = false
|
|
}
|
|
|
|
profile.process_cpu {
|
|
enabled = false
|
|
}
|
|
|
|
profile.goroutine {
|
|
enabled = false
|
|
}
|
|
|
|
profile.block {
|
|
enabled = false
|
|
}
|
|
|
|
profile.mutex {
|
|
enabled = true
|
|
}
|
|
|
|
profile.fgprof {
|
|
enabled = false
|
|
}
|
|
}
|
|
}
|
|
|
|
discovery.relabel "kubernetes_pods_fgprof_default_name" {
|
|
targets = concat(discovery.relabel.kubernetes_pods.output)
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_scrape"]
|
|
action = "keep"
|
|
regex = "true"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_port_name"]
|
|
action = "keep"
|
|
regex = ""
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_container_port_number"]
|
|
target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_port"
|
|
action = "keepequal"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_scheme"]
|
|
action = "replace"
|
|
regex = "(https?)"
|
|
target_label = "__scheme__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_path"]
|
|
action = "replace"
|
|
regex = "(.+)"
|
|
target_label = "__profile_path__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_port"]
|
|
action = "replace"
|
|
regex = "(.+?)(?::\\d+)?;(\\d+)"
|
|
target_label = "__address__"
|
|
replacement = "$1:$2"
|
|
}
|
|
}
|
|
|
|
discovery.relabel "kubernetes_pods_fgprof_custom_name" {
|
|
targets = concat(discovery.relabel.kubernetes_pods.output)
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_scrape"]
|
|
action = "keep"
|
|
regex = "true"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_port_name"]
|
|
action = "drop"
|
|
regex = ""
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_container_port_name"]
|
|
target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_port_name"
|
|
action = "keepequal"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_scheme"]
|
|
action = "replace"
|
|
regex = "(https?)"
|
|
target_label = "__scheme__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_path"]
|
|
action = "replace"
|
|
regex = "(.+)"
|
|
target_label = "__profile_path__"
|
|
replacement = "$1"
|
|
}
|
|
|
|
rule {
|
|
source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_port"]
|
|
action = "replace"
|
|
regex = "(.+?)(?::\\d+)?;(\\d+)"
|
|
target_label = "__address__"
|
|
replacement = "$1:$2"
|
|
}
|
|
}
|
|
|
|
pyroscope.scrape "pyroscope_scrape_fgprof" {
|
|
clustering {
|
|
enabled = true
|
|
}
|
|
|
|
targets = concat(discovery.relabel.kubernetes_pods_fgprof_default_name.output, discovery.relabel.kubernetes_pods_fgprof_custom_name.output)
|
|
forward_to = [pyroscope.write.pyroscope_write.receiver]
|
|
|
|
profiling_config {
|
|
profile.memory {
|
|
enabled = false
|
|
}
|
|
|
|
profile.process_cpu {
|
|
enabled = false
|
|
}
|
|
|
|
profile.goroutine {
|
|
enabled = false
|
|
}
|
|
|
|
profile.block {
|
|
enabled = false
|
|
}
|
|
|
|
profile.mutex {
|
|
enabled = false
|
|
}
|
|
|
|
profile.fgprof {
|
|
enabled = true
|
|
}
|
|
}
|
|
}
|
|
|
|
pyroscope.write "pyroscope_write" {
|
|
endpoint {
|
|
url = "http://pyroscope-dev.default.svc.cluster.local.:4040"
|
|
}
|
|
}
|
|
---
|
|
# Source: pyroscope/templates/configmap-overrides.yaml
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: pyroscope-dev-overrides-config
|
|
namespace: default
|
|
labels:
|
|
helm.sh/chart: pyroscope-1.19.1
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "1.19.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
data:
|
|
overrides.yaml: |
|
|
overrides:
|
|
{}
|
|
---
|
|
# Source: pyroscope/templates/configmap.yaml
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: pyroscope-dev-config
|
|
namespace: default
|
|
labels:
|
|
helm.sh/chart: pyroscope-1.19.1
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "1.19.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
data:
|
|
config.yaml: |
|
|
{}
|
|
---
|
|
# Source: pyroscope/charts/alloy/templates/rbac.yaml
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: pyroscope-dev-alloy
|
|
labels:
|
|
helm.sh/chart: alloy-1.5.2
|
|
app.kubernetes.io/name: alloy
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "v1.12.2"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/part-of: alloy
|
|
app.kubernetes.io/component: rbac
|
|
rules:
|
|
- apiGroups:
|
|
- ""
|
|
- discovery.k8s.io
|
|
- networking.k8s.io
|
|
resources:
|
|
- endpoints
|
|
- endpointslices
|
|
- ingresses
|
|
- pods
|
|
- services
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- pods
|
|
- pods/log
|
|
- namespaces
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- monitoring.grafana.com
|
|
resources:
|
|
- podlogs
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- monitoring.coreos.com
|
|
resources:
|
|
- prometheusrules
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- monitoring.coreos.com
|
|
resources:
|
|
- alertmanagerconfigs
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- monitoring.coreos.com
|
|
resources:
|
|
- podmonitors
|
|
- servicemonitors
|
|
- probes
|
|
- scrapeconfigs
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- events
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- configmaps
|
|
- secrets
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- apps
|
|
- extensions
|
|
resources:
|
|
- replicasets
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- nodes
|
|
- nodes/proxy
|
|
- nodes/metrics
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- nonResourceURLs:
|
|
- /metrics
|
|
verbs:
|
|
- get
|
|
---
|
|
# Source: pyroscope/charts/alloy/templates/rbac.yaml
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: pyroscope-dev-alloy
|
|
labels:
|
|
helm.sh/chart: alloy-1.5.2
|
|
app.kubernetes.io/name: alloy
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "v1.12.2"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/part-of: alloy
|
|
app.kubernetes.io/component: rbac
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: pyroscope-dev-alloy
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: pyroscope-dev-alloy
|
|
namespace: default
|
|
---
|
|
# Source: pyroscope/charts/alloy/templates/cluster_service.yaml
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: pyroscope-dev-alloy-cluster
|
|
namespace: default
|
|
labels:
|
|
helm.sh/chart: alloy-1.5.2
|
|
app.kubernetes.io/name: alloy
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "v1.12.2"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/part-of: alloy
|
|
app.kubernetes.io/component: networking
|
|
spec:
|
|
type: ClusterIP
|
|
clusterIP: 'None'
|
|
publishNotReadyAddresses: true
|
|
selector:
|
|
app.kubernetes.io/name: alloy
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
ports:
|
|
# Do not include the -metrics suffix in the port name, otherwise metrics
|
|
# can be double-collected with the non-headless Service if it's also
|
|
# enabled.
|
|
#
|
|
# This service should only be used for clustering, and not metric
|
|
# collection.
|
|
- name: http
|
|
port: 12345
|
|
targetPort: 12345
|
|
protocol: "TCP"
|
|
---
|
|
# Source: pyroscope/charts/alloy/templates/service.yaml
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: pyroscope-dev-alloy
|
|
namespace: default
|
|
labels:
|
|
helm.sh/chart: alloy-1.5.2
|
|
app.kubernetes.io/name: alloy
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "v1.12.2"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/part-of: alloy
|
|
app.kubernetes.io/component: networking
|
|
spec:
|
|
type: ClusterIP
|
|
selector:
|
|
app.kubernetes.io/name: alloy
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
ports:
|
|
- name: http-metrics
|
|
port: 12345
|
|
targetPort: 12345
|
|
protocol: "TCP"
|
|
---
|
|
# Source: pyroscope/templates/memberlist-service.yaml
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: pyroscope-dev-memberlist
|
|
namespace: default
|
|
labels:
|
|
helm.sh/chart: pyroscope-1.19.1
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "1.19.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
spec:
|
|
type: ClusterIP
|
|
clusterIP: None
|
|
ports:
|
|
- name: memberlist
|
|
port: 7946
|
|
protocol: TCP
|
|
targetPort: 7946
|
|
publishNotReadyAddresses: true
|
|
selector:
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
# TODO: Ensure only services that offer memberlist register
|
|
# pyroscope.grafana.com/memberlist: "true"
|
|
---
|
|
# Source: pyroscope/templates/services.yaml
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: pyroscope-dev
|
|
namespace: default
|
|
labels:
|
|
helm.sh/chart: pyroscope-1.19.1
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "1.19.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/component: "all"
|
|
spec:
|
|
type: ClusterIP
|
|
ports:
|
|
- port: 4040
|
|
targetPort: http2
|
|
protocol: TCP
|
|
name: http2
|
|
selector:
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/component: "all"
|
|
---
|
|
# Source: pyroscope/templates/services.yaml
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: pyroscope-dev-headless
|
|
namespace: default
|
|
labels:
|
|
helm.sh/chart: pyroscope-1.19.1
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "1.19.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/component: "all"
|
|
spec:
|
|
type: ClusterIP
|
|
clusterIP: None
|
|
ports:
|
|
- port: 4040
|
|
targetPort: http2
|
|
protocol: TCP
|
|
name: http2
|
|
selector:
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/component: "all"
|
|
---
|
|
# Source: pyroscope/charts/alloy/templates/controllers/statefulset.yaml
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
name: pyroscope-dev-alloy
|
|
namespace: default
|
|
labels:
|
|
helm.sh/chart: alloy-1.5.2
|
|
app.kubernetes.io/name: alloy
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "v1.12.2"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/part-of: alloy
|
|
spec:
|
|
replicas: 1
|
|
podManagementPolicy: Parallel
|
|
minReadySeconds: 10
|
|
serviceName: pyroscope-dev-alloy
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: alloy
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
template:
|
|
metadata:
|
|
annotations:
|
|
kubectl.kubernetes.io/default-container: alloy
|
|
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
|
|
labels:
|
|
app.kubernetes.io/name: alloy
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
spec:
|
|
serviceAccountName: pyroscope-dev-alloy
|
|
containers:
|
|
- name: alloy
|
|
image: docker.io/grafana/alloy:v1.12.2
|
|
imagePullPolicy: IfNotPresent
|
|
args:
|
|
- run
|
|
- /etc/alloy/config.alloy
|
|
- --storage.path=/tmp/alloy
|
|
- --server.http.listen-addr=0.0.0.0:12345
|
|
- --server.http.ui-path-prefix=/
|
|
- --cluster.enabled=true
|
|
- --cluster.join-addresses=pyroscope-dev-alloy-cluster
|
|
- --stability.level=public-preview
|
|
env:
|
|
- name: ALLOY_DEPLOY_MODE
|
|
value: "helm"
|
|
- name: HOSTNAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
ports:
|
|
- containerPort: 12345
|
|
name: http-metrics
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /-/ready
|
|
port: 12345
|
|
scheme: HTTP
|
|
initialDelaySeconds: 10
|
|
timeoutSeconds: 1
|
|
volumeMounts:
|
|
- name: config
|
|
mountPath: /etc/alloy
|
|
- name: config-reloader
|
|
image: quay.io/prometheus-operator/prometheus-config-reloader:v0.81.0
|
|
args:
|
|
- --watched-dir=/etc/alloy
|
|
- --reload-url=http://localhost:12345/-/reload
|
|
volumeMounts:
|
|
- name: config
|
|
mountPath: /etc/alloy
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
dnsPolicy: ClusterFirst
|
|
volumes:
|
|
- name: config
|
|
configMap:
|
|
name: alloy-config-pyroscope
|
|
---
|
|
# Source: pyroscope/templates/deployments-statefulsets.yaml
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
name: pyroscope-dev
|
|
namespace: default
|
|
labels:
|
|
helm.sh/chart: pyroscope-1.19.1
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/version: "1.19.0"
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/component: "all"
|
|
spec:
|
|
serviceName: pyroscope-dev-headless
|
|
podManagementPolicy: Parallel
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/component: "all"
|
|
template:
|
|
metadata:
|
|
annotations:
|
|
checksum/config: 8e13b03787d98f732345114a954e05d00244276036fe3e003c1e8d3a5f7e8aeb
|
|
profiles.grafana.com/service_repository: "https://github.com/grafana/pyroscope"
|
|
profiles.grafana.com/service_git_ref: "v1.19.0"
|
|
profiles.grafana.com/cpu.port_name: http2
|
|
profiles.grafana.com/cpu.scrape: "true"
|
|
profiles.grafana.com/goroutine.port_name: http2
|
|
profiles.grafana.com/goroutine.scrape: "true"
|
|
profiles.grafana.com/memory.port_name: http2
|
|
profiles.grafana.com/memory.scrape: "true"
|
|
labels:
|
|
app.kubernetes.io/name: pyroscope
|
|
app.kubernetes.io/instance: pyroscope-dev
|
|
app.kubernetes.io/component: "all"
|
|
name: "pyroscope"
|
|
spec:
|
|
serviceAccountName: pyroscope-dev
|
|
securityContext:
|
|
fsGroup: 10001
|
|
runAsNonRoot: true
|
|
runAsUser: 10001
|
|
dnsPolicy: ClusterFirst
|
|
containers:
|
|
- name: "pyroscope"
|
|
securityContext:
|
|
{}
|
|
image: "grafana/pyroscope:1.19.0"
|
|
imagePullPolicy: IfNotPresent
|
|
args:
|
|
- "-target=all"
|
|
- "-self-profiling.disable-push=true"
|
|
- "-server.http-listen-port=4040"
|
|
- "-memberlist.cluster-label=default-pyroscope-dev"
|
|
- "-memberlist.join=dns+pyroscope-dev-memberlist.default.svc.cluster.local.:7946"
|
|
- "-config.file=/etc/pyroscope/config.yaml"
|
|
- "-runtime-config.file=/etc/pyroscope/overrides/overrides.yaml"
|
|
- "-log.level=debug"
|
|
env:
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: NAMESPACE_FQDN
|
|
value: "default.svc.cluster.local."
|
|
ports:
|
|
- name: http2
|
|
containerPort: 4040
|
|
protocol: TCP
|
|
- name: memberlist
|
|
containerPort: 7946
|
|
protocol: TCP
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /ready
|
|
port: http2
|
|
scheme: HTTP
|
|
volumeMounts:
|
|
- name: config
|
|
mountPath: /etc/pyroscope/config.yaml
|
|
subPath: config.yaml
|
|
- name: overrides-config
|
|
mountPath: /etc/pyroscope/overrides/
|
|
- name: data
|
|
mountPath: /data
|
|
resources:
|
|
{}
|
|
volumes:
|
|
- name: config
|
|
configMap:
|
|
name: pyroscope-dev-config
|
|
- name: overrides-config
|
|
configMap:
|
|
name: pyroscope-dev-overrides-config
|
|
- name: data
|
|
emptyDir: {}
|