✅ Setting up WPF logging to OTLP collector
My docker compose:
My otel config:
My WPF app config
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.
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: trueversion: '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: trueMy 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]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;
})));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.