• This repository has been archived on 02/Aug/2022
  • Stars
    star
    109
  • Rank 317,215 (Top 7 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Yet another Python library for Grafana API

This project is not supported anymore. Prefer using other options.


grafana_api Github Actions Test GitHub license Codecov

PyPI Conda

What is this library for?

Yet another Grafana API library for Python. Support Python 3 only.

Requirements

You need Python 3 and only the requests library installed.

Quick start

Install the pip package:

pip install -U grafana_api

And then connect to your Grafana API endpoint:

from grafana_api.grafana_face import GrafanaFace

grafana_api = GrafanaFace(auth='abcde....', host='api.my-grafana-host.com')

# Create user
user = grafana_api.admin.create_user({"name": "User", "email": "[email protected]", "login": "user", "password": "userpassword", "OrgId": 1})

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

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

# Find a user by email
user = grafana_api.users.find_user('[email protected]')

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

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

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

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

Authentication

There are two ways to autheticate to grafana api. Either use api token or basic auth.

To use admin API you need to use basic auth as stated here

# Use basic authentication:

grafana_api = GrafanaFace(
          auth=("username","password"),
          host='api.my-grafana-host.com'
          )

# Use token
grafana_api = GrafanaFace(
          auth='abcdetoken...',
          host='api.my-grafana-host.com'
          )

Status of REST API realization

Work on API implementation still in progress.

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

Issue tracker

Please report any bugs and enhancement ideas using the grafana_api issue tracker:

https://github.com/m0nhawk/grafana_api/issues

Feel free to also ask questions on the tracker.

License

grafana_api is licensed under the terms of the MIT License (see the file LICENSE).