Jump to content

User:CGoubert-WMF/otelcol

From Wikitech

Otelcol Minikube

Add upstream repo

helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts

# Was necessary for me to hit my local docker registry, now the image is on the public repo so probably not necessary
export DOCKER_TLS_VERIFY=0
export NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.49.0/24,192.168.39.0/24,$(minikube ip),192.168.122.0/24 minikube restart

Install the gateway

values.otelcol-gw.yaml

nameOverride: ""
fullnameOverride: ""

mode: deployment

replicaCount: 1
podDisruptionBudget:
  enabled: true
  minAvailable: 1

image:
  repository: docker-registry.wikimedia.org/otelcol
  tag: "0.66.0-1"
  pullPolicy: Never

command:
  name: /usr/bin/otelcol-contrib

ports:
  otlp:
    enabled: true
    containerPort: 4317
    servicePort: 4317
    hostPort: 4317
    protocol: TCP
  otlp-http:
    enabled: false
  jaeger-compact:
    enabled: false
  jaeger-thrift:
    enabled: false
  jaeger-grpc:
    enabled: false
  zipkin:
    enabled: false

config:
  extensions:
    health_check: {}
    memory_ballast: {}
  receivers:
    otlp: # https://github.com/open-telemetry/opentelemetry-collector/blob/main/receiver/otlpreceiver/README.md
      protocols:
        grpc:
          endpoint: "0.0.0.0:4317"
        http: null
    jaeger: null
    prometheus: null
    zipkin: null
  processors:
    batch: {}
  exporters:
    logging: {}
  service:
    pipelines:
      traces:
        receivers: [otlp]
        processors: [batch]
        exporters: [logging]
      logs: null
      metrics: null
    extensions: [health_check]
    telemetry: null

Install otelcol chart with the gw values

helm install --values values.otelcol-gw.yaml otelcol-gw open-telemetry/opentelemetry-collector
kubectl get services

Note service for next file

Install the agent

values.otelcol.yaml

nameOverride: ""
fullnameOverride: ""

mode: deployment

replicaCount: 1
podDisruptionBudget:
  enabled: true
  minAvailable: 1

image:
  repository: docker-registry.wikimedia.org/otelcol
  tag: "0.66.0-1"
  pullPolicy: Never

command:
  name: /usr/bin/otelcol-contrib

ports:
  otlp:
    enabled: true
    containerPort: 4318
    servicePort: 30080
    hostPort: 4318
    protocol: TCP
  otlp-http:
    enabled: false
  jaeger-compact:
    enabled: false
  jaeger-thrift:
    enabled: false
  jaeger-grpc:
    enabled: false
  zipkin:
    enabled: false

config:
  extensions:
    health_check: {}
    memory_ballast: {}
  receivers:
    otlp: # https://github.com/open-telemetry/opentelemetry-collector/blob/main/receiver/otlpreceiver/README.md
      protocols:
        grpc:
          endpoint: "0.0.0.0:4318"
        http: null
    jaeger: null
    prometheus: null
    zipkin: null
  processors:
    batch: {}
  exporters:
    otlp:
      endpoint: "10.100.38.92:4317"
      tls:
        insecure: true
  service:
    pipelines:
      traces:
        receivers: [otlp]
        processors: [batch]
        exporters: [logging,otlp]
      logs: null
      metrics: null
    extensions: [health_check]
    telemetry: null

Install and port-forward

helm install --values values.otelcol.yaml otelcol-agent open-telemetry/opentelemetry-collector

kubectl port-forward svc/otelcol-agent-opentelemetry-collector 30080:30080

Test the pipeline

Get the pods for the gw

kubectl get pods | grep otelcol-gw

kubectl get logs -f otelcol-gw-opentelemetry-collector-f8c7774c9-pd7d4

Get and run the otel demo app

git clone https://github.com/open-telemetry/opentelemetry-go
cd opentelemetry-go/example/otel-collector
go run main.go