Skip to content

dfinity/dre

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Decentralized Reliability Engineering (DRE)

License Rust Python Bazel

A comprehensive suite of tools and services for managing and monitoring Internet Computer (IC) infrastructure.

📚 Table of Contents

📖 Documentation

Comprehensive, searchable documentation is available at dfinity.github.io/dre

The documentation includes:

  • Detailed API references
  • Usage examples
  • Best practices
  • Troubleshooting guides

🚀 Features

DRE provides a powerful set of tools and services:

Core Components

  • DRE CLI Tool: Command-line interface for interacting with IC infrastructure

  • DRE Dashboard: Comprehensive monitoring and management interface

    • Frontend and backend components
    • Real-time infrastructure insights
    • Interactive management capabilities

Monitoring & Logging

  • Service Discovery: Automated IC target discovery for logs and metrics
  • Log Fetchers:
    • Host node logs
    • Guest node logs
    • Boundary node logs
    • Canister logs

Infrastructure Management

  • Node Provider Notifications: Health monitoring system for IC nodes
    • Automated alerts for node health issues
    • Note: Currently in maintenance mode

🛠 Installation

  1. Check the prerequisites
  2. Follow our detailed getting started guide
  3. Verify your installation

💻 Usage

The DRE CLI tool (version 0.5.9) provides various commands for managing IC infrastructure:

# View all available commands
dre --help

# Common commands:
dre network        # Network-wide management operations, such as healing all subnets
dre subnet         # Subnet management, such as replacing nodes in a subnet
dre governance     # Commands and actions related to the IC NNS governance, such as submitting NNS motion proposals
dre proposals      # Listing or analyzing submitted NNS proposals
dre nodes          # Node operations, such as removing nodes from the IC
dre registry       # Registry reading
dre get            # Wrapper around ic-admin get-* commands
dre propose        # Wrapper around ic-admin propose-* commands
dre firewall       # Submitting proposals for firewall updates
dre node-metrics   # Getting the trustworthy node metrics
dre update-authorized-subnets  # Automatically updating the list of public IC subnets, based on subnet utilization
dre neuron         # Neuron topping up and checking balance

Authentication Options

  • --private-key-pem: Path to private key file (PEM format)
  • --neuron-id: Explicitly setting the Neuron ID for governance operations, overriding the autodetection
  • --network: Target network (mainnet, staging, or testnet)
  • --ic-admin: Custom path to ic-admin
  • --hsm-*: Hardware Security Module configurations

Additional Options

  • --verbose: Print detailed information
  • --dry-run: Simulate operations without execution
  • --offline: Run operations offline when possible
  • -y, --yes: Skip confirmation prompts

For more examples and detailed usage instructions:

🤝 Contributing

We welcome contributions! Please see our contributing guide for details on:

  • Code style and standards
  • Development setup
  • Testing requirements
  • Pull request process

📄 License

This project is licensed under the Apache License 2.0.


Built with ❤️ by the DFINITY Foundation