github blockopsnetwork/telescope v0.2.1

latest releases: v0.2.2, v0.2.3
2 months ago

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 to unix:///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:

  1. Remove manual YAML configuration files
  2. Use command-line flags for configuration
  3. Enable Docker logs with --enable-docker-logs=true if using containers
  4. 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

Don't miss a new telescope release

NewReleases is sending notifications on new releases.