diff --git a/grafana_api/api/__init__.py b/grafana_api/api/__init__.py index 91e15d8..840075e 100644 --- a/grafana_api/api/__init__.py +++ b/grafana_api/api/__init__.py @@ -10,4 +10,4 @@ from .annotations import Annotations from .snapshots import Snapshots from .notifications import Notifications - +from .health import Health diff --git a/grafana_api/api/datasource.py b/grafana_api/api/datasource.py index a96549a..7b613ce 100644 --- a/grafana_api/api/datasource.py +++ b/grafana_api/api/datasource.py @@ -95,3 +95,33 @@ def delete_datasource_by_name(self, datasource_name): delete_datasource = "/datasources/name/%s" % datasource_name r = self.api.DELETE(delete_datasource) return r + + def get_datasource_proxy_data(self, datasource_id + , query_type='query' + , version='v1' + , expr=None + , time=None + , start=None + , end=None + , step=None + ): + """ + + :param datasource_id: + :param version: api_version currently v1 + :param query_type: query_range |query + :param expr: expr to query + + :return: + """ + get_datasource_path = "/datasources/proxy/{}" \ + '/api/{}/{}?query={}'.format( datasource_id, version, query_type, expr) + if query_type == 'query_range': + get_datasource_path = get_datasource_path + '&start={}&end={}&step={}'.format( + start, end, step) + else: + get_datasource_path = get_datasource_path + '&time={}'.format(time) + r = self.api.GET(get_datasource_path) + return r + + diff --git a/grafana_api/api/health.py b/grafana_api/api/health.py new file mode 100644 index 0000000..d0831ca --- /dev/null +++ b/grafana_api/api/health.py @@ -0,0 +1,18 @@ +from .base import Base + + +class Health(Base): + def __init__(self, api): + super(Health, self).__init__(api) + self.api = api + + def check(self): + """ + + :return: + """ + path = "/health" + r = self.api.GET(path) + return r + + diff --git a/grafana_api/grafana_face.py b/grafana_api/grafana_face.py index 8662af7..7271364 100644 --- a/grafana_api/grafana_face.py +++ b/grafana_api/grafana_face.py @@ -12,7 +12,8 @@ Teams, Snapshots, Annotations, - Notifications + Notifications, + Health ) @@ -49,3 +50,4 @@ def __init__( self.annotations = Annotations(self.api) self.snapshots = Snapshots(self.api) self.notifications = Notifications(self.api) + self.health = Health(self.api)