filelog receiver reads Docker’s json-file logs, while docker_stats reads CPU, memory, network, block-I/O, and container-status metrics from the Docker API.
Prerequisites
- A Bronto account and API key (how to create one)
- Docker using the default
json-filelogging driver (logs at/var/lib/docker/containers/*/*-json.log) - An OpenTelemetry Collector (recommended) or Fluent Bit — run it as a container alongside your services
Run the Collector
Add the Collector to yourdocker-compose.yml and give it read access to Docker’s container log directory and API socket:
docker-compose.yml
otel-config.yaml
<REGION> to eu or us.
For receiver options and the full measurement list, see the Collector Contrib Docker Stats receiver.
What you will see in Bronto
Logs appear in Search. Docker’sjson-file driver wraps each line as {"log": "...", "stream": "stdout|stderr", "time": "..."}; the json_parser operator promotes those into fields. Runtime measurements appear in the Metric Explorer.
Exponential histograms are not supported, and the Metric Explorer does not currently provide a Rate function.
Troubleshooting
- No logs? Confirm the driver is
json-file(docker inspect -f '{{.HostConfig.LogConfig.Type}}' <container>) and that the Collector mounts/var/lib/docker/containersread-only. - No metrics? Confirm the Collector mounts
/var/run/docker.sockand its user can read the socket. - Per-service datasets? Run one Collector centrally with a
service.nameper environment, or route by container labels with anattributesprocessor. - For general issues, see OTel Collector troubleshooting.
Alternative: Fluent Bit
If you already run Fluent Bit, tail the container log files and forward them over HTTP. Thedocker multiline parser reassembles partial lines from the json-file driver:
fluent-bit.conf
json_lines, not json. You can also point Docker’s native fluentd logging driver at Fluent Bit. See Connect Fluent Bit to Bronto for installation.
