Release Notes: Auto-Discovery, Configuration Generation & Enhanced Logs Support
🚀 Overview
This release introduces powerful auto-discovery and configuration generation capabilities to Telescope, along with comprehensive Docker container log collection support. These features significantly simplify the deployment and configuration of Telescope for blockchain infrastructure monitoring.
✨ New Features
1. Auto-Discovery and Configuration Generation
Telescope now automatically generates complete monitoring configurations based on simple command-line flags, eliminating the need for manual YAML configuration files.
Key Capabilities:
- Network-Based Auto-Discovery: Automatically configures appropriate scrape targets based on the selected blockchain network
- Intelligent Target Generation: Creates properly labeled scrape configs with network-specific ports and endpoints
- Zero-Config Deployment: Run Telescope with just a few flags and get a complete monitoring setup
Supported Networks:
Network | Targets Discovered | Default Ports |
---|---|---|
ethereum
| Execution + Consensus nodes | 6060, 8008 |
polkadot
| Relay chain + Parachains | 30333, 9933 |
hyperbridge
| Hyperbridge node | 8080 |
ssv
| Execution + Consensus + MEV-Boost + SSV-DKG + SSV node | 6060, 8008, 18550, 3030, 13000 |
2. Enhanced Logs Collection
Basic Log Collection
- Send application logs to Loki with automatic configuration
- Simple flag-based enablement:
--enable-logs=true
- Automatic Loki client configuration with authentication
Docker Container Log Scraping
- NEW: Comprehensive Docker container log collection
- Automatic discovery of all running containers
- Rich metadata extraction through relabeling
- Zero-configuration Docker integration
3. Docker Logs Features
When enabled with --enable-docker-logs=true
, Telescope automatically:
- Connects to Docker daemon for container discovery
- Configures comprehensive relabel rules to extract:
- Container name and log stream
- Custom Docker labels (network, client_name, group, host_type)
- Project identification labels
- Instance and location labels
- Generates complete scrape configurations for all containers
🛠️ Technical Changes
CLI Enhancements
- Added
--enable-docker-logs
flag for Docker log collection - Added
--docker-host
flag (defaults tounix:///var/run/docker.sock
) - Fixed pprof handler conflicts by updating pyroscope-go to v0.1.8
- Resolved build issues with conflicting pprof imports
Code Improvements
- Added new data structures for log scraping configuration:
LogScrapeConfig
DockerSDConfig
RelabelConfig
- Enhanced
generateFullConfig()
to support Docker log scraping - Extended configuration validation for logs settings
📝 Usage Examples
Basic Metrics with Auto-Discovery
telescope \
--network=ethereum \
--project-id=my-project \
--project-name=my-project \
--telescope-username=user \
--telescope-password=pass \
--remote-write-url=https://prometheus.example.com/api/v1/write
Metrics + Basic Logs
telescope \
--network=polkadot \
--project-id=my-project \
--project-name=my-project \
--telescope-username=user \
--telescope-password=pass \
--remote-write-url=https://prometheus.example.com/api/v1/write \
--enable-logs=true \
--logs-sink-url=https://loki.example.com/loki/api/v1/push \
--telescope-loki-username=user \
--telescope-loki-password=pass
Full Stack with Docker Logs
telescope \
--network=ssv \
--project-id=my-project \
--project-name=my-project \
--telescope-username=user \
--telescope-password=pass \
--remote-write-url=https://prometheus.example.com/api/v1/write \
--enable-logs=true \
--enable-docker-logs=true \
--logs-sink-url=https://loki.example.com/loki/api/v1/push \
--telescope-loki-username=user \
--telescope-loki-password=pass
🔧 Configuration Output
The auto-generated telescope_config.yaml
includes:
For Metrics:
metrics:
configs:
- name: project_network_metrics
scrape_configs:
- job_name: project_network_node_type_0
static_configs:
- targets: [localhost:port]
For Docker Logs:
logs:
configs:
- name: telescope_logs
clients:
- url: https://loki.example.com/loki/api/v1/push
basic_auth:
username: user
password: pass
scrape_configs:
- job_name: project_docker_logs
docker_sd_configs:
- host: unix:///var/run/docker.sock
refresh_interval: 5s
relabel_configs:
# Comprehensive metadata extraction
🐛 Bug Fixes
- Fixed pprof handler conflicts preventing telescope binary from running
- Resolved duplicate pprof imports in server files
- Updated pyroscope-go dependency to match Grafana Agent's working version
📚 Documentation
- Added comprehensive "Auto-Discovery and Configuration Generation" section to README
- Added detailed "Logs Collection" section with Docker examples
- Updated all usage examples to reflect new capabilities
- Added complete flag reference tables
🔄 Migration Guide
For existing users:
- Remove manual YAML configuration files
- Use command-line flags for configuration
- Enable Docker logs with
--enable-docker-logs=true
if using containers - The generated
telescope_config.yaml
will be created automatically
Full Changelog: [Previous Release]...v0.3.0
What's Changed
- build(deps): bump golang.org/x/time from 0.5.0 to 0.12.0 by @dependabot in #40
Full Changelog: v0.2.0...v0.2.1