Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

Docker Compose Deployment

This directory contains Docker Compose configuration for local development and testing of Thyme.

Architecture

loggen (500 lines/sec)
    ↓ (writes to shared volume)
/var/log/app/app.log
    ↓ (filelog receiver)
thyme collector
    ↓ (OTLP exporter → nop-collector:4317)
nop-collector
    ↓ (nop exporter - discards data)
   ∅

Both collectors send internal telemetry → LGTM

Components

  • loggen: Generates 500 log lines/sec to /var/log/app/app.log on shared volume
  • thyme: Reads logs via filelog receiver, processes (batch, memory_limiter, resource), exports via OTLP to nop-collector
  • nop-collector: Receives OTLP, processes, exports to nop (discard)
  • LGTM: Collects internal telemetry (metrics, traces) from both collectors

Usage

Start the stack:

docker-compose up

Start in detached mode:

docker-compose up -d

View logs:

docker-compose logs -f thyme
docker-compose logs -f nop-collector
docker-compose logs -f loggen

Stop the stack:

docker-compose down

Clean up volumes:

docker-compose down -v

Exposed Ports

  • 3000 - Grafana (LGTM)
  • 8080 - loggen metrics endpoint
  • 55679 - nop-collector zpages
  • 55680 - thyme zpages
  • 1777 - nop-collector pprof
  • 1778 - thyme pprof

Accessing Services

Grafana (LGTM)

Open http://localhost:3000 to view collector internal telemetry:

  • Navigate to ExplorePrometheus datasource
  • Query collector metrics like otelcol_receiver_accepted_log_records

Zpages

Access collector zpages for debugging:

Pprof

Profile collectors:

# Thyme CPU profile
go tool pprof http://localhost:1778/debug/pprof/profile

# nop-collector CPU profile
go tool pprof http://localhost:1777/debug/pprof/profile

Loggen Metrics

View log generator metrics:

curl http://localhost:8080/metrics

Configuration

Adjusting Log Generation Rate

Edit docker-compose.yaml and modify the loggen service:

  • --lines-per-second=500 - Adjust throughput
  • --duration=0 - Set to 0 for continuous operation

Modifying Collector Configs

  • thyme: Edit ../../distributions/thyme/config.yaml
  • nop-collector: Edit nop-collector-config.yaml

After modifying configs, restart containers:

docker-compose restart thyme
docker-compose restart nop-collector

Troubleshooting

Check if logs are being generated

docker-compose exec loggen ls -lh /var/log/app/

Check if thyme is reading logs

docker-compose logs thyme | grep -i "filelog"

Verify OTLP communication

docker-compose logs thyme | grep -i "otlp"
docker-compose logs nop-collector | grep -i "otlp"

Check resource usage

docker stats