kumahq / kuma

🐻 The multi-zone service mesh for containers, Kubernetes and VMs. Built with Envoy. CNCF Sandbox Project.
https://kuma.io/install
Apache License 2.0
3.66k stars 333 forks source link

Support for HTTP/HTTPS Otel Collector Endpoints in observability policies #9459

Open motaparthipavankumar opened 8 months ago

motaparthipavankumar commented 8 months ago

Description

When otel-collector is deployed with below receiver configuration and MeshTrace policy is configured to use grpc endpoint we can see spans in the otel collector logs and works fine. Would also like to have support for HTTP/HTTPS as well, right now when we use http endpoints we don't see any connection established as spans are not received.

  collector.yaml: |
    receivers:
      otlp:
        protocols: 
          grpc:
            endpoint: ${env:MY_POD_IP}:4317
    processors:
    exporters:
      logging:
    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: []
          exporters: [logging]

Following works currently

type: MeshTrace
name: default
mesh: default
spec:
 targetRef:
   kind: Mesh
 default:
   backends:
     - type: OpenTelemetry
       openTelemetry:
         endpoint: opentelemetrycollector.otel.svc.cluster.local:4317

Would also like to have this working

type: MeshTrace
name: default
mesh: default
spec:
 targetRef:
   kind: Mesh
 default:
   backends:
     - type: OpenTelemetry
       openTelemetry:
         endpoint: http://opentelemetrycollector.otel.svc.cluster.local:4318/
jakubdyszkiewicz commented 8 months ago

Triage: there are multiple things in this ticket 1) support for HTTP, not gRPC 2) TLS support (provide CA, client certs?) 3) potentially: provide HTTP header with auth

lahabana commented 8 months ago

xref:

lahabana commented 6 months ago

One thing that would also be useful is using nodeIP in some ways... As it's common to deploy otel-collectors as a daemonSet related: