Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

o11y: use envoyalsreceiver #5440

Merged
merged 3 commits into from
Mar 9, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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