Skip to content

Perseus985/Minimal-Status-Panel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

36 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Minimal Status Panel

Minimal Status Panel Logo

A beautiful Grafana panel plugin that displays service status information with a clean, modern design. Perfect for monitoring your services with an intuitive interface.

CI/CD Pipeline Release License Latest Release Downloads

✨ Features

  • 🎨 Clean Design: Modern, intuitive interface for status monitoring
  • πŸ“Š Two Display Modes:
    • Minimal: Service name, status, and heartbeat bar only
    • Full: Complete view with response times, uptime stats, and certificate info
  • πŸ’« Interactive Heartbeat Bars: Hover to see timestamps for each status check
  • πŸ” Instance Filtering: Filter services using Prometheus query labels
  • πŸ“ˆ Real-time Data: Works with Blackbox Exporter and other Prometheus metrics
  • πŸŒ™ Theme Support: Automatically adapts to Grafana's light/dark themes

πŸ“Έ Display Modes

Minimal View

Clean, compact display showing just the essentials:

Minimal View Example

Full View

Complete monitoring dashboard with detailed statistics:

Full View Example

πŸš€ Quick Start

Prerequisites

  • Grafana 9.0.0 or later
  • Prometheus with Blackbox Exporter (recommended)

Installation

Option 1: Download Pre-built Release (Recommended)

  1. Download the latest release from the Releases page
  2. Extract the ZIP file to your Grafana plugins directory:
    # Extract to Grafana plugins directory
    unzip minimal-status-panel-*.zip -d /var/lib/grafana/plugins/minimal-status-panel/
  3. Restart Grafana and enable the plugin in your configuration

Option 2: Build from Source

  1. Clone the repository:

    git clone https://github.com/Perseus985/Minimal-Status-Panel.git
    cd minimal-status-panel
  2. Build the plugin:

    npm install
    npm run build
  3. Copy to Grafana plugins directory:

    cp -r dist /var/lib/grafana/plugins/minimal-status-panel
  4. Restart Grafana and enable the plugin in your configuration

Development Setup

For development with Docker (includes Prometheus + Blackbox Exporter):

npm install
npm run build
docker-compose up -d

Access Grafana at http://localhost:3001 (admin/admin)

πŸ“– Usage

Creating a Panel

  1. Add a new panel to your dashboard
  2. Select "Minimal Status Panel" as the visualization type
  3. Configure your data source (Prometheus recommended)
  4. Add your query, for example:
    probe_success
    

Instance Filtering

Filter specific services using Prometheus labels:

# Show only GitHub
probe_success{instance="https://github.com"}

# Show multiple services
probe_success{instance=~"https://github.com|https://google.com"}

# Filter by job
probe_success{job="blackbox"}

Panel Options

  • Display Mode: Choose between List, Grid, or Compact layout
  • Display Level:
    • Minimal: Service name, status badge, URL, and heartbeat bar
    • Full: All above plus response times, uptime statistics, and certificate info
  • Show Labels: Toggle service name display
  • Show Last Check: Display last check timestamp
  • Show Response Time: Display response time metrics
  • Max Items: Limit number of services shown (1-100)
  • Refresh Interval: Auto-refresh interval in seconds (5-300)

πŸ› οΈ Configuration

Recommended Prometheus Setup

Use with Blackbox Exporter for HTTP/HTTPS monitoring:

# prometheus.yml
scrape_configs:
  - job_name: 'blackbox'
    metrics_path: /probe
    params:
      module: [http_2xx]
    static_configs:
      - targets:
        - https://google.com
        - https://github.com
        - https://your-website.com
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: blackbox-exporter:9115

Supported Metrics

  • probe_success: Primary metric (1=up, 0=down)
  • probe_duration_seconds: Response time data
  • Any metric with instance label for service identification

🎨 Examples

Minimal View

Shows just the essentials - perfect for overview dashboards:

  • Service name and status badge
  • Clickable URL
  • 50-bar heartbeat timeline with hover timestamps

Full View

Complete monitoring dashboard with:

  • All minimal view features
  • Current and average response times
  • 24-hour, 30-day, and 1-year uptime statistics
  • SSL certificate expiration info

Heartbeat Hover

Hover over any heartbeat bar to see:

  • Status (UP/DOWN)
  • Exact timestamp
  • Visual indication of service health over time

πŸ”§ Development

Build Commands

# Development build with watch
npm run dev

# Production build
npm run build

# Type checking
npm run typecheck

# Linting
npm run lint
npm run lint:fix

# Testing
npm test
npm run test:ci

Project Structure

src/
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ StatusPanel.tsx      # Main panel component
β”‚   └── StatusIndicator.tsx  # Individual service card
β”œβ”€β”€ utils/
β”‚   └── dataUtils.ts         # Data parsing utilities
β”œβ”€β”€ types.ts                 # TypeScript interfaces
β”œβ”€β”€ plugin.ts                # Panel options configuration
└── module.ts                # Plugin entry point

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ› Issues

Found a bug or have a feature request? Please open an issue.

⭐ Show Your Support

If this plugin helped you, please consider giving it a ⭐ on GitHub!

About

A clean, modern Grafana panel plugin for monitoring service status with minimal and full display modes, interactive heartbeat visualization, and custom service naming.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors