0.0
No release in over 3 years
Used to connect Legion to Grafana
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

 Project Readme

lex-grafana

Grafana integration for LegionIO. Query and manage dashboards, alerts, and datasources via the Grafana HTTP API from within Legion task chains or as a standalone client library.

Installation

gem install lex-grafana

Or add to your Gemfile:

gem 'lex-grafana'

Standalone Usage

require 'legion/extensions/grafana'

client = Legion::Extensions::Grafana::Client.new(
  url: 'https://grafana.example.com',
  api_key: 'glsa_xxxxxxxxxxxx'
)

# Dashboards
client.list_dashboards
client.get_dashboard(uid: 'abc123')
client.create_dashboard(dashboard: { title: 'My Board', panels: [] }, overwrite: false)
client.delete_dashboard(uid: 'abc123')

# Alerts
client.list_alerts
client.list_alert_rules
client.pause_alert(alert_id: 1, paused: true)

# Datasources
client.list_datasources
client.get_datasource(id: 1)
client.create_datasource(name: 'Prometheus', type: 'prometheus', url: 'http://prometheus:9090')

Runners

Dashboards

Method Parameters Description
list_dashboards List all dashboards
get_dashboard uid: Get dashboard by UID
create_dashboard dashboard:, overwrite: Create or update a dashboard
delete_dashboard uid: Delete a dashboard

Alerts

Method Parameters Description
list_alerts List legacy alerts
list_alert_rules List Grafana-managed alert rules
pause_alert alert_id:, paused: Pause or unpause an alert

Datasources

Method Parameters Description
list_datasources List all datasources
get_datasource id: Get datasource by ID
create_datasource name:, type:, url:, ... Create a datasource

Configuration

{
  "lex-grafana": {
    "url": "https://grafana.example.com",
    "api_key": "vault://secret/grafana#api_key"
  }
}

Requirements

  • Ruby >= 3.4
  • Grafana >= 8.0 (for alert rules API)
  • faraday >= 2.0

License

MIT