Skip to main content

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

Project description

grafana-client

Tests Test coverage License

PyPI Python versions Status Downloads

About

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

History

The library was originally conceived by Andrew Prokhorenkov and contributors as grafana_api. Thank you very much for your efforts!

At future maintenance of grafana_api, we discussed the need for a fork because the repository stopped receiving updates since more than a year.

While forking it, we renamed the package to grafana-client and slightly trimmed the module namespace.

Getting started

Install the package from PyPI.

pip install grafana-client --upgrade

Connect to your Grafana API endpoint using the GrafanaApi class.

from grafana_client import GrafanaApi

grafana = GrafanaApi(auth='eyJrIjoiWHg...dGJpZCI6MX0=', host='grafana.example.org')

# Create user
user = grafana.admin.create_user(
    {"name": "User", "email": "user@example.org", "login": "user", "password": "userpassword", "OrgId": 1})

# Change user password
user = grafana.admin.change_user_password(2, "newpassword")

# Search dashboards based on tag
grafana.search.search_dashboards(tag='applications')

# Find a user by email
user = grafana.users.find_user('test@example.org')

# Add user to team 2
grafana.teams.add_team_member(2, user["id"])

# Create or update a dashboard
grafana.dashboard.update_dashboard(dashboard={'dashboard': {...}, 'folderId': 0, 'overwrite': True})

# Delete a dashboard by UID
grafana.dashboard.delete_dashboard(dashboard_uid='abcdefgh')

# Create organization
grafana.organization.create_organization({"name": "new_organization"})

Authentication

There are two ways to authenticate to the Grafana API. Either use an API token, or HTTP basic auth.

To use the admin API, you need to use HTTP basic auth, as stated at the Grafana Admin API documentation.

from grafana_client import GrafanaApi

# Use HTTP basic authentication
grafana = GrafanaApi(
    auth=("username", "password"),
    host='grafana.example.org'
)

# Use Grafana API token
grafana = GrafanaApi(
    auth='eyJrIjoiWHg...dGJpZCI6MX0=',
    host='grafana.example.org'
)

Status

This table outlines which parts of Grafana's HTTP API are covered by grafana-client, see also Grafana HTTP API reference.

API Status
Admin +
Alerting -
Alerting Notification Channels +
Annotations +
Authentication +-
Dashboard +
Dashboard Versions -
Dashboard Permissions +
Data Source +
Folder +
Folder Permissions +
Folder/Dashboard Search +-
Health +
Organisation +
Other +
Preferences +
Snapshot +
Teams +
User +

Software tests

python3 -m venv .venv
source .venv/bin/activate
pip install --editable=.[test]
python -m unittest -vvv

Acknowledgements

Thanks to all the contributors who helped to co-create and conceive this software in one way or another. You know who you are.

Contributing

Any kind of contribution and feedback are very much welcome! Just create an issue or submit a patch if you think we should include a new feature, or to report or fix a bug.

The issue tracker URL is: https://github.com/panodata/grafana-client/issues

License

grafana-client is licensed under the terms of the MIT License, see LICENSE file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

grafana-client-2.3.0.tar.gz (29.3 kB view details)

Uploaded Source

Built Distribution

grafana_client-2.3.0-py2.py3-none-any.whl (30.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file grafana-client-2.3.0.tar.gz.

File metadata

  • Download URL: grafana-client-2.3.0.tar.gz
  • Upload date:
  • Size: 29.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.13

File hashes

Hashes for grafana-client-2.3.0.tar.gz
Algorithm Hash digest
SHA256 cb4fa9d2661660e499c60db6200061698a1b6a00d9c0fd23ccb64350457d87b7
MD5 3b9e4aa0e0934d8da22001cb26b7c32e
BLAKE2b-256 e7a8dc3ecb033e87264bf82104107c997ccf64234f7db16873a6399f61b084b8

See more details on using hashes here.

Provenance

File details

Details for the file grafana_client-2.3.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for grafana_client-2.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 66c8fca1bd1d9b55e7f442d764ba7bbaf810b843d0d43e1d9ce06a23d77cce3b
MD5 93444633f9a57ca11db8add1bceb5d28
BLAKE2b-256 2fd5fb197d13e8e00d23c4567e5886ef6cd27baa49fd69662c07457854dc9d6d

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page