From 6c843e76c1ccb7717743a4bbfddd2875381a8ea3 Mon Sep 17 00:00:00 2001 From: Kyle Brandt Date: Thu, 14 Apr 2016 10:43:35 -0400 Subject: [PATCH] cmd/bosun: support png on egraph api route --- cmd/bosun/web/chart.go | 12 ++++++++++-- cmd/bosun/web/web.go | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/cmd/bosun/web/chart.go b/cmd/bosun/web/chart.go index 804988beb1..7520d8f36b 100644 --- a/cmd/bosun/web/chart.go +++ b/cmd/bosun/web/chart.go @@ -204,6 +204,7 @@ func Graph(t miniprofiler.Timer, w http.ResponseWriter, r *http.Request) (interf func ExprGraph(t miniprofiler.Timer, w http.ResponseWriter, r *http.Request) (interface{}, error) { vars := mux.Vars(r) bs := vars["bs"] + format := vars["format"] b, err := base64.StdEncoding.DecodeString(bs) if err != nil { return nil, err @@ -244,8 +245,15 @@ func ExprGraph(t miniprofiler.Timer, w http.ResponseWriter, r *http.Request) (in if err != nil { return nil, err } - if err := schedule.ExprSVG(t, w, 800, 600, "", res.Results); err != nil { - return nil, err + switch format { + case "svg": + if err := schedule.ExprSVG(t, w, 800, 600, "", res.Results); err != nil { + return nil, err + } + case "png": + if err := schedule.ExprPNG(t, w, 800, 600, "", res.Results); err != nil { + return nil, err + } } return nil, nil } diff --git a/cmd/bosun/web/web.go b/cmd/bosun/web/web.go index 95c95f4fec..89c6526788 100644 --- a/cmd/bosun/web/web.go +++ b/cmd/bosun/web/web.go @@ -97,7 +97,7 @@ func Listen(listenAddr string, devMode bool, tsdbHost string) error { router.Handle("/api/alerts", JSON(Alerts)) router.Handle("/api/config", miniprofiler.NewHandler(Config)) router.Handle("/api/config_test", miniprofiler.NewHandler(ConfigTest)) - router.Handle("/api/egraph/{bs}.svg", JSON(ExprGraph)) + router.Handle("/api/egraph/{bs}.{format:svg|png}", JSON(ExprGraph)) router.Handle("/api/errors", JSON(ErrorHistory)) router.Handle("/api/expr", JSON(Expr)) router.Handle("/api/graph", JSON(Graph))