This task tracks configuring envoy to send traces to otel-collector (within k8s).
To reach the jaeger UI before it is available behind SSO:
```
ssh deploy1002.eqiad.wmnet -L16686:localhost:16686
kube-env jaeger aux-k8s-eqiad
kubectl -n jaeger port-forward svc/main-jaeger-query query
```
Navigate on your browser to https://localhost:16686 . There will be HTTPS warnings, on Chrome you have to type "thisisunsafe" in the browser window to get past them.
Immediate TODO (could be done concurrently too)
== Envoy ==
* [ ] Identify which charts we're targeting
* [x] Figure out how to expose/inject the current node address into the envoy config (likely via env variables, obtained via `spec.nodeName` via the k8s downward API)
* [x] Add the otelcol to the envoy(s) above's `clusters` (via flags in `mesh` module `configuration*.tpl`)
```lang=yaml
- name: opentelemetry_collector
type: STRICT_DNS
lb_policy: ROUND_ROBIN
typed_extension_protocol_options:
envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
"@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
explicit_http_config:
http2_protocol_options: {}
load_assignment:
cluster_name: opentelemetry_collector
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: node's address?
port_value: 4317
```
* [x] Instruct envoy's http manager to send traces via said cluster (via flags in `mesh` module `configuration*.tpl`)
```lang=yaml
tracing:
provider:
name: envoy.tracers.opentelemetry
typed_config:
"@type": type.googleapis.com/envoy.config.trace.v3.OpenTelemetryConfig
grpc_service:
envoy_grpc:
cluster_name: opentelemetry_collector
timeout: 0.250s
service_name: XXX
```
== otelcol ==
* [x] While T344253 and T343302 are in progress, we should consider enabling `zpages` extension on otelcol so we can inspect the received traces without requiring jaeger (not needed)