Skip to content

Commit

Permalink
o11y: use envoyalsreceiver (#5440)
Browse files Browse the repository at this point in the history
  • Loading branch information
zirain authored Mar 9, 2025
1 parent 8394b1e commit edf2540
Show file tree
Hide file tree
Showing 19 changed files with 118 additions and 630 deletions.
6 changes: 3 additions & 3 deletions charts/gateway-addons-helm/Chart.lock
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ dependencies:
version: 1.3.1
- name: opentelemetry-collector
repository: https://open-telemetry.github.io/opentelemetry-helm-charts
version: 0.108.0
digest: sha256:bc634c59972bfd4a01e0f4310a4949095752e659a9b5cb1d9c0fbe9a86f37011
generated: "2024-10-25T10:55:26.755739+08:00"
version: 0.117.3
digest: sha256:608111fd3d1ed5e0c0b7c3ae3d8648b5787752ae3326a15d9f6b4424d06fcc71
generated: "2025-03-08T11:22:35.034042+08:00"
2 changes: 1 addition & 1 deletion charts/gateway-addons-helm/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,5 @@ dependencies:
condition: tempo.enabled
- name: opentelemetry-collector
repository: https://open-telemetry.github.io/opentelemetry-helm-charts
version: 0.108.0
version: 0.117.3
condition: opentelemetry-collector.enabled
16 changes: 14 additions & 2 deletions charts/gateway-addons-helm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ An Add-ons Helm chart for Envoy Gateway
| https://grafana.github.io/helm-charts | grafana | 8.0.0 |
| https://grafana.github.io/helm-charts | loki | 4.8.0 |
| https://grafana.github.io/helm-charts | tempo | 1.3.1 |
| https://open-telemetry.github.io/opentelemetry-helm-charts | opentelemetry-collector | 0.108.0 |
| https://open-telemetry.github.io/opentelemetry-helm-charts | opentelemetry-collector | 0.117.3 |
| https://prometheus-community.github.io/helm-charts | prometheus | 25.21.0 |

## Usage
Expand Down Expand Up @@ -118,6 +118,7 @@ To uninstall the chart:
| opentelemetry-collector.config.processors.attributes.actions[0].key | string | `"loki.attribute.labels"` | |
| opentelemetry-collector.config.processors.attributes.actions[0].value | string | `"k8s.pod.name, k8s.namespace.name"` | |
| opentelemetry-collector.config.receivers.datadog.endpoint | string | `"[${env:MY_POD_IP}]:8126"` | |
| opentelemetry-collector.config.receivers.envoyals.endpoint | string | `"[${env:MY_POD_IP}]:9000"` | |
| opentelemetry-collector.config.receivers.jaeger.protocols.grpc.endpoint | string | `"[${env:MY_POD_IP}]:14250"` | |
| opentelemetry-collector.config.receivers.jaeger.protocols.thrift_compact.endpoint | string | `"[${env:MY_POD_IP}]:6831"` | |
| opentelemetry-collector.config.receivers.jaeger.protocols.thrift_http.endpoint | string | `"[${env:MY_POD_IP}]:14268"` | |
Expand All @@ -131,18 +132,29 @@ To uninstall the chart:
| opentelemetry-collector.config.service.pipelines.logs.exporters[0] | string | `"loki"` | |
| opentelemetry-collector.config.service.pipelines.logs.processors[0] | string | `"attributes"` | |
| opentelemetry-collector.config.service.pipelines.logs.receivers[0] | string | `"otlp"` | |
| opentelemetry-collector.config.service.pipelines.logs.receivers[1] | string | `"envoyals"` | |
| opentelemetry-collector.config.service.pipelines.metrics.exporters[0] | string | `"prometheus"` | |
| opentelemetry-collector.config.service.pipelines.metrics.receivers[0] | string | `"datadog"` | |
| opentelemetry-collector.config.service.pipelines.metrics.receivers[1] | string | `"otlp"` | |
| opentelemetry-collector.config.service.pipelines.traces.exporters[0] | string | `"otlp"` | |
| opentelemetry-collector.config.service.pipelines.traces.receivers[0] | string | `"datadog"` | |
| opentelemetry-collector.config.service.pipelines.traces.receivers[1] | string | `"otlp"` | |
| opentelemetry-collector.config.service.pipelines.traces.receivers[2] | string | `"zipkin"` | |
| opentelemetry-collector.config.service.telemetry.metrics.address | string | `"[${env:MY_POD_IP}]:8888"` | |
| opentelemetry-collector.config.service.telemetry.metrics.address | string | `nil` | |
| opentelemetry-collector.config.service.telemetry.metrics.level | string | `"none"` | |
| opentelemetry-collector.config.service.telemetry.metrics.readers[0].pull.exporter.prometheus.host | string | `"localhost"` | |
| opentelemetry-collector.config.service.telemetry.metrics.readers[0].pull.exporter.prometheus.port | int | `8888` | |
| opentelemetry-collector.enabled | bool | `false` | |
| opentelemetry-collector.fullnameOverride | string | `"otel-collector"` | |
| opentelemetry-collector.image.repository | string | `"otel/opentelemetry-collector-contrib"` | |
| opentelemetry-collector.image.tag | string | `"0.121.0"` | |
| opentelemetry-collector.mode | string | `"deployment"` | |
| opentelemetry-collector.ports.envoy-als.appProtocol | string | `"grpc"` | |
| opentelemetry-collector.ports.envoy-als.containerPort | int | `9000` | |
| opentelemetry-collector.ports.envoy-als.enabled | bool | `true` | |
| opentelemetry-collector.ports.envoy-als.hostPort | int | `9000` | |
| opentelemetry-collector.ports.envoy-als.protocol | string | `"TCP"` | |
| opentelemetry-collector.ports.envoy-als.servicePort | int | `9000` | |
| prometheus.alertmanager.enabled | bool | `false` | |
| prometheus.enabled | bool | `true` | |
| prometheus.kube-state-metrics.enabled | bool | `false` | |
Expand Down
64 changes: 39 additions & 25 deletions charts/gateway-addons-helm/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ grafana:
dashboardproviders.yaml:
apiVersion: 1
providers:
- name: 'envoy-gateway'
- name: "envoy-gateway"
orgId: 1
folder: 'envoy-gateway'
folder: "envoy-gateway"
type: file
disableDeletion: false
editable: true
Expand All @@ -32,7 +32,6 @@ grafana:
dashboardsConfigMaps:
envoy-gateway: "grafana-dashboards"


# Values for Prometheus dependency
prometheus:
enabled: true
Expand Down Expand Up @@ -61,7 +60,6 @@ prometheus:
repository: prom/prometheus
securityContext: {}


# Values for Fluent-bit dependency
# TODO: remove fluent-bit dependency
fluent-bit:
Expand Down Expand Up @@ -109,12 +107,12 @@ fluent-bit:
Keep_Log Off
K8S-Logging.Parser On
K8S-Logging.Exclude On
[FILTER]
Name grep
Match kube.*
Regex $kubernetes['container_name'] ^envoy$
[FILTER]
Name parser
Match kube.*
Expand All @@ -131,7 +129,6 @@ fluent-bit:
Port 3100
Labels job=fluentbit, app=$kubernetes['labels']['app'], k8s_namespace_name=$kubernetes['namespace_name'], k8s_pod_name=$kubernetes['pod_name'], k8s_container_name=$kubernetes['container_name']
# Values for Loki dependency
loki:
enabled: true
Expand All @@ -146,7 +143,7 @@ loki:
commonConfig:
replication_factor: 1
storage:
type: 'filesystem'
type: "filesystem"
rulerConfig:
storage:
type: "local"
Expand Down Expand Up @@ -193,40 +190,40 @@ alloy:
discovery.kubernetes "pod" {
role = "pod"
}
// discovery.relabel rewrites the label set of the input targets by applying one or more relabeling rules.
// If no rules are defined, then the input targets are exported as-is.
discovery.relabel "pod_logs" {
targets = discovery.kubernetes.pod.targets
// Label creation - "namespace" field from "__meta_kubernetes_namespace"
rule {
source_labels = ["__meta_kubernetes_namespace"]
action = "replace"
target_label = "namespace"
}
// Label creation - "pod" field from "__meta_kubernetes_pod_name"
rule {
source_labels = ["__meta_kubernetes_pod_name"]
action = "replace"
target_label = "pod"
}
// Label creation - "container" field from "__meta_kubernetes_pod_container_name"
rule {
source_labels = ["__meta_kubernetes_pod_container_name"]
action = "replace"
target_label = "container"
}
// Label creation - "app" field from "__meta_kubernetes_pod_label_app_kubernetes_io_name"
rule {
source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_name"]
action = "replace"
target_label = "app"
}
// Label creation - "job" field from "__meta_kubernetes_namespace" and "__meta_kubernetes_pod_container_name"
// Concatenate values __meta_kubernetes_namespace/__meta_kubernetes_pod_container_name
rule {
Expand All @@ -236,7 +233,7 @@ alloy:
separator = "/"
replacement = "$1"
}
// Label creation - "container" field from "__meta_kubernetes_pod_uid" and "__meta_kubernetes_pod_container_name"
// Concatenate values __meta_kubernetes_pod_uid/__meta_kubernetes_pod_container_name.log
rule {
Expand All @@ -246,7 +243,7 @@ alloy:
separator = "/"
replacement = "/var/log/pods/*$1/*.log"
}
// Label creation - "container_runtime" field from "__meta_kubernetes_pod_container_id"
rule {
source_labels = ["__meta_kubernetes_pod_container_id"]
Expand All @@ -256,7 +253,7 @@ alloy:
replacement = "$1"
}
}
// loki.source.kubernetes tails logs from Kubernetes containers using the Kubernetes API.
loki.source.kubernetes "pod_logs" {
targets = discovery.relabel.pod_logs.output
Expand All @@ -273,7 +270,6 @@ alloy:
forward_to = [loki.write.alloy.receiver]
}

# Values for Tempo dependency
tempo:
Expand All @@ -282,14 +278,22 @@ tempo:
service:
type: LoadBalancer


# Values for OpenTelemetry-Collector dependency
opentelemetry-collector:
enabled: false
ports:
envoy-als:
enabled: true
containerPort: 9000
servicePort: 9000
hostPort: 9000
protocol: TCP
appProtocol: grpc
fullnameOverride: otel-collector
mode: deployment
image:
repository: "otel/opentelemetry-collector-contrib"
tag: "0.121.0"
config:
exporters:
prometheus:
Expand All @@ -314,6 +318,8 @@ opentelemetry-collector:
# Loki will convert this to k8s_pod_name label.
value: k8s.pod.name, k8s.namespace.name
receivers:
envoyals:
endpoint: "[${env:MY_POD_IP}]:9000"
jaeger:
protocols:
grpc:
Expand All @@ -335,15 +341,22 @@ opentelemetry-collector:
prometheus:
config:
scrape_configs:
- job_name: opentelemetry-collector
scrape_interval: 10s
static_configs:
- targets:
- "[${env:MY_POD_IP}]:8888"
- job_name: opentelemetry-collector
scrape_interval: 10s
static_configs:
- targets:
- "[${env:MY_POD_IP}]:8888"
service:
telemetry:
metrics:
address: "[${env:MY_POD_IP}]:8888"
level: none
address: null # Disable the deprecated setting
readers:
- pull:
exporter:
prometheus:
host: "localhost"
port: 8888
extensions:
- health_check
pipelines:
Expand All @@ -360,6 +373,7 @@ opentelemetry-collector:
- attributes
receivers:
- otlp
- envoyals
traces:
exporters:
- otlp
Expand Down
23 changes: 0 additions & 23 deletions examples/envoy-als/Dockerfile

This file was deleted.

8 changes: 0 additions & 8 deletions examples/envoy-als/Makefile

This file was deleted.

27 changes: 0 additions & 27 deletions examples/envoy-als/go.mod

This file was deleted.

Loading

0 comments on commit edf2540

Please sign in to comment.