A real-time log observer for Tableau Server. Tails log files, parses structured log formats (log4j, log4j2, httpd), and outputs unified JSON logs suitable for ingestion into log aggregation systems.
- Real-time log tailing with automatic discovery of new log files
- Parses multiple log formats:
- log4j XML configuration
- log4j2 XML configuration
- Apache httpd custom log formats
- JSON logs (passthrough)
- Outputs structured JSON logs via zerolog
- Exposes Prometheus metrics endpoint
- Graceful shutdown handling
- Docker support with minimal distroless image
go install github.com/highperformance-tech/ts-olly/cmd/ts-olly@latestgit clone https://github.com/highperformance-tech/ts-olly.git
cd ts-olly
make builddocker pull ghcr.io/highperformance-tech/ts-olly:latestts-olly [flags]| Flag | Default | Description |
|---|---|---|
-port |
2112 |
Port for metrics endpoint |
-env |
development |
Environment (development|staging|production) |
-node |
Tableau cluster node ID (e.g., node1, node2) | |
-logsdir |
Path to Tableau Server logs directory | |
-configdir |
Path to Tableau Server config directory | |
-parse |
false |
Parse recognizable log lines into structured JSON |
-read-existing-logs |
false |
Read existing log content on startup |
ts-olly \
-node node1 \
-logsdir /var/opt/tableau/tableau_server/data/tabsvc/logs \
-configdir /var/opt/tableau/tableau_server/data/tabsvc/config \
-port 2112docker run -d \
-v /var/opt/tableau/tableau_server/data/tabsvc/logs:/logs:ro \
-v /var/opt/tableau/tableau_server/data/tabsvc/config:/config:ro \
-p 2112:2112 \
ghcr.io/highperformance-tech/ts-olly:latest \
-node node1 \
-logsdir /logs \
-configdir /configts-olly outputs JSON-formatted log lines to stdout. Each line includes:
filename- Source log file pathfileid- Unique file identifierprocess- Tableau process nameprocessid- Process instance IDline- Line number in source fileoffset- Byte offset in source filelevel- Log level (when parseable)component- Log component/logger namemessage- Log message contentnode- Cluster node identifierts- Timestamp
Prometheus metrics are exposed at http://localhost:<port>/metrics.
MIT License - see LICENSE for details.