I am collecting Docker container logs using OpenTelemetry Collector and exporting them to Velodb, viewing them in Grafana.
The issue is:
Stdout logs are visible in Grafana, but I cannot filter them by service_name or container_id.
The only way to find stdout logs is by searching text in the log body.
Method 1- filelog recevier
I used the filelog receiver to tail Docker json-file logs from:
/var/lib/docker/containers//-json.log
Collector config:
receivers:
filelog:
include:
- /var/lib/docker/containers/*/*-json.log
start_at: beginning
stdout logs are visible in grafana but cannot be filtered by container_id or service_name.
Method 2 - fluentbit -> fluentforward
Fluentbit config:
[INPUT]
Name tail
Path /var/lib/docker/containers/*/*-json.log
Tag docker.*
[OUTPUT]
Name forward
Match *
Host opentelemetry-collector
Port 24225
Collector config:
receivers:
fluentforward:
endpoint: 0.0.0.0:24225
again stdout logs are visible but cannot be filtered by container_id or service_name.
I want stdout logs to be filterable per container (either by container_id or mapped to service.name), similar to how container logs are separated in CloudWatch.
Any suggestions, if possible any working example will be helpful .