def test_pretty_dashboards(self): grafanaHelper = GrafanaHelper(grafana_server_address=GRAFANA_ENDPOINT, grafana_token=GRAFANA_TOKEN) dashboards = grafanaHelper.get_dashboards() self.assertTrue(len(dashboards) >= 0) dashboards_md = grafanaHelper.pretty_dashboards(dashboards) self.assertIsNotNone(dashboards_md)
def grafana_render(self, mess, args): """Renders panel to slack""" self.log.info("args %s" % args) helper = GrafanaHelper( grafana_server_address=self.config['server_address'], grafana_token=self.config['token']) if args.parameters == "-": parameters = "" else: parameters = args.parameters self.log.info( "render(slug=%s, tuning_params='%s', period_from=%s, period_to=%s)" % ("{0}:{1}".format(args.dashboard, args.panel), parameters, args.start, args.finish)) graphic = helper.render(slug="{0}:{1}".format(args.dashboard, args.panel), tuning_params=parameters, period_from=args.start, period_to=args.finish) image_pack = helper.get_grafana_image(graphic["imageUrl"]) self.send_stream_request(mess.frm, open(image_pack["path"], 'rb'), name='render.png', stream_type='image/png') os.remove(image_pack["path"]) return graphic
def grafana_dashboards_query(self, mess, query): """Fuzzy find dashboard by string""" helper = GrafanaHelper( grafana_server_address=self.config['server_address'], grafana_token=self.config['token']) result = helper.search_dashboards(query=query) return {'dashboards': result}
def grafana_dashboards_list(self, mess, args): """List of dashboards""" helper = GrafanaHelper( grafana_server_address=self.config['server_address'], grafana_token=self.config['token']) result = helper.get_dashboards() return {'dashboards': result}
def grafana_dashboard(self, mess, slug): """Dashboard details""" helper = GrafanaHelper( grafana_server_address=self.config['server_address'], grafana_token=self.config['token']) self.log.info("Getting %s dashboard details" % slug) result = helper.get_dashboard_details(slug) return {'dashboard': result, 'slug': slug}
def grafana_dashboards_bytag(self, mess, tag): """List of dashboards by tag""" helper = GrafanaHelper( grafana_server_address=self.config['server_address'], grafana_token=self.config['token']) self.log.info("sagrafana: Getting dashboards for tag %s" % tag) result = helper.get_dashboards(tag=tag) return {'dashboards': result}
def test_render_name(self): grafanaHelper = GrafanaHelper(grafana_server_address=GRAFANA_ENDPOINT, grafana_token=GRAFANA_TOKEN) graphic = grafanaHelper.render("vyacheslav-2-node-stats:disk", "server=i-02ed6d01291ce5260") self.assertTrue("imageUrl" in graphic) self.assertTrue("link" in graphic) image_pack = grafanaHelper.get_grafana_image(graphic["imageUrl"]) # image/png self.assertTrue(image_pack["path"] != "")
def grafana_status(self, mess, args): """Check aliveness of solution""" helper = GrafanaHelper( grafana_server_address=self.config['server_address'], grafana_token=self.config['token']) try: result = helper.get_dashboards() return "Seems alive - {0} dashboards found {1}".format( len(result), result) except Exception as err: return "Oops: {0}".format(err)
def test_render(self): grafanaHelper = GrafanaHelper(grafana_server_address=GRAFANA_ENDPOINT, grafana_token=GRAFANA_TOKEN) # render(slug=aws-ec2:0, tuning_params='', period_from=None, period_to=None) graphic = grafanaHelper.render( slug="vyacheslav-2-node-stats:1", tuning_params="server=i-04bb007011e377c88", period_from=None, period_to=None) self.assertTrue("imageUrl" in graphic) self.assertTrue("link" in graphic) image_pack = grafanaHelper.get_grafana_image(graphic["imageUrl"]) # image/png self.assertTrue(image_pack["path"] != "")
def test_get_dashboards(self): grafanaHelper = GrafanaHelper(grafana_server_address=GRAFANA_ENDPOINT, grafana_token=GRAFANA_TOKEN) dashboards = grafanaHelper.get_dashboards() self.assertTrue(len(dashboards) >= 0)
def test_get_dashboard_details(self): grafanaHelper = GrafanaHelper(grafana_server_address=GRAFANA_ENDPOINT, grafana_token=GRAFANA_TOKEN) dashboard = grafanaHelper.get_dashboard_details("aws-ec2") self.assertTrue(dashboard is not None)
def test_grafana_dashboards_search(self): grafanaHelper = GrafanaHelper(grafana_server_address=GRAFANA_ENDPOINT, grafana_token=GRAFANA_TOKEN) dashboards = grafanaHelper.search_dashboards("aws") self.assertTrue(len(dashboards) >= 0)