grafana-client
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.
Metadata
Release files for grafana-client 2.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| grafana-client-2.2.1.tar.gz | 28.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| grafana_client-2.2.1-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 59.4 kB
Release files / grafana-client-2.2.1.tar.gz
| Download URL | grafana-client-2.2.1.tar.gz |
|---|---|
| Size | 28.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
683573ba11699e9df63c755a2fd140cbca1d31ed3aedc98366fcde8e6e4014d4
|
|
BLAKE2b-256 checksum How to use checksums |
0b6403f769ee69a36a8817b313e983e95343dd1a3a3e1306061347903ed06054
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.9.13
|
Release files / grafana_client-2.2.1-py2.py3-none-any.whl
| Download URL | grafana_client-2.2.1-py2.py3-none-any.whl |
|---|---|
| Size | 30.5 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
bce1d2621acacf5153b9fa370e57b652fa1a56c2fcb73d26534dbb5fa41df4dd
|
|
BLAKE2b-256 checksum How to use checksums |
da384915e5a723e68f5334fc8b22ec2bd6bdb57c894055b1908c549bb6184a8f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.9.13
|
Security for grafana-client 2.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.