CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-grafana-client

A client library for accessing the Grafana HTTP API, written in Python

Pending
Overview
Eval results
Files

plugin-management.mddocs/

Plugin Management

Plugin lifecycle management for Grafana instances. This includes installing and uninstalling plugins from the Grafana plugin store, listing installed plugins, health checks, and metrics collection.

Capabilities

Plugin Listing

List all installed plugins on the Grafana instance, with options to filter and retrieve detailed plugin information.

def list(self):
    """
    Return list of all installed plugins.
    
    Returns:
        list: List of plugin objects with metadata
    """

def by_id(self, plugin_id: str):
    """
    Return single plugin item selected by plugin identifier.
    
    Parameters:
        plugin_id (str): The plugin identifier
        
    Returns:
        dict: Plugin object with metadata
        
    Raises:
        KeyError: If plugin with specified ID is not found
    """

Plugin Installation

Install and uninstall plugins from the Grafana plugin store with error handling options.

def install(self, plugin_id: str, version: Optional[str] = None, errors: str = "raise"):
    """
    Install a 3rd-party plugin from the plugin store.
    
    Parameters:
        plugin_id (str): The plugin identifier to install
        version (str, optional): Specific version to install. Defaults to latest
        errors (str): Error handling mode - "raise" or "ignore"
        
    Returns:
        dict or None: Installation result or None if ignored
        
    Raises:
        GrafanaClientError: If installation fails and errors="raise"
        ValueError: If errors parameter is invalid
    """

def uninstall(self, plugin_id: str, errors: str = "raise"):
    """
    Uninstall a 3rd-party plugin from the Grafana instance.
    
    Parameters:
        plugin_id (str): The plugin identifier to uninstall
        errors (str): Error handling mode - "raise" or "ignore"
        
    Returns:
        dict or None: Uninstallation result or None if ignored
        
    Raises:
        GrafanaClientError: If uninstallation fails and errors="raise"
        ValueError: If errors parameter is invalid
    """

Plugin Health and Metrics

Monitor plugin health and collect metrics for operational insights.

def health(self, plugin_id: str):
    """
    Run a health check probe on the designated plugin.
    
    Parameters:
        plugin_id (str): The plugin identifier to check
        
    Returns:
        dict: Health check results
    """

def metrics(self, plugin_id: str):
    """
    Inquire metrics of the designated plugin.
    
    Parameters:
        plugin_id (str): The plugin identifier to get metrics for
        
    Returns:
        dict: Plugin metrics data
    """

Usage Examples

Basic Plugin Management

from grafana_client import GrafanaApi, TokenAuth

# Create API client
auth = TokenAuth(token="your-grafana-api-token")
api = GrafanaApi(auth=auth, host="your-grafana-host")

# List all installed plugins
plugins = api.plugin.list()
for plugin in plugins:
    print(f"Plugin: {plugin['id']} - {plugin['name']} v{plugin['info']['version']}")

# Get specific plugin details
try:
    plugin_info = api.plugin.by_id("grafana-clock-panel")
    print(f"Found plugin: {plugin_info['name']}")
except KeyError:
    print("Plugin not found")

# Install a plugin
try:
    result = api.plugin.install("grafana-clock-panel")
    print(f"Plugin installed: {result}")
except Exception as e:
    print(f"Installation failed: {e}")

# Check plugin health
health_status = api.plugin.health("grafana-clock-panel")
print(f"Plugin health: {health_status}")

# Get plugin metrics
metrics = api.plugin.metrics("grafana-clock-panel")
print(f"Plugin metrics: {metrics}")

# Uninstall a plugin
api.plugin.uninstall("grafana-clock-panel")
print("Plugin uninstalled")

Error Handling

# Install plugin with error ignoring
result = api.plugin.install("some-plugin", errors="ignore")
if result is None:
    print("Installation was skipped or failed silently")

# Install specific version
api.plugin.install("grafana-clock-panel", version="1.3.0")

Install with Tessl CLI

npx tessl i tessl/pypi-grafana-client@5.0.1

docs

admin-and-rbac.md

alerting.md

authentication.md

client-management.md

dashboards.md

data-models.md

datasources.md

index.md

library-elements.md

plugin-management.md

snapshot-management.md

users-and-orgs.md

tile.json