C#C
C#2y ago
Denis

✅ Setting up WPF logging to OTLP collector

My docker compose:
version: '3'

services:
  loki:
    container_name: "loki"
    image: grafana/loki:latest
    ports:
      - "3100:3100"
    networks:
      - telemetry

  grafana:
    container_name: "grafana"
    image: grafana/grafana:latest
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin
    networks:
      - telemetry
    depends_on:
      - loki

  collector:
    container_name: "collector"
    hostname: "collector"
    image: otel/opentelemetry-collector:latest
    command: '--config=/etc/otelcol/otel-collector-config.yml'
    volumes:
      - ./configs:/etc/otelcol
    ports:
      - "8888:8888"
      - "8889:8889"
      - "4317:4317"
      - "4318:4318"
    networks:
      - telemetry

networks:
  telemetry:
    driver: bridge
    external: true


My otel config:
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: localhost:4317
      http:
        endpoint: localhost:4318
processors:
  batch:
    send_batch_size: 4
    timeout: 10s
exporters:
  otlphttp:
    endpoint: "http://loki:3100/otlp/v1/logs"
service:
  pipelines:
    logs:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlphttp]


My WPF app config
services.AddLogging(builder =>
  builder.AddOpenTelemetry(options =>
    options.SetResourceBuilder(
      ResourceBuilder
        .CreateDefault()
        .AddService(APP_NAME))
      .AddConsoleExporter()
      .AddOtlpExporter(o =>
      {
        o.Endpoint = new Uri("http://localhost:4318/v1/logs");
        o.Protocol = OtlpExportProtocol.HttpProtobuf;
      })));


But... no logs are received by the collector. Why and how do I fix it?

Or at least the running collector instance isn't logging anything when my app is producing logs.
Was this page helpful?