mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-25 13:44:05 -08:00
Handle a bunch of unchecked errors (#4461)
There are many more (mostly finalizers like Close/Stop/etc.), but most of the others seemed like one couldn't do much about them anyway. Signed-off-by: Julius Volz <julius.volz@gmail.com>
This commit is contained in:
parent
d4eae8cc0c
commit
8fbe1b5133
|
@ -16,6 +16,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
"github.com/gogo/protobuf/proto"
|
"github.com/gogo/protobuf/proto"
|
||||||
|
@ -58,5 +59,5 @@ func main() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
http.ListenAndServe(":1234", nil)
|
log.Fatal(http.ListenAndServe(":1234", nil))
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,11 +100,16 @@ func main() {
|
||||||
http.Handle(cfg.telemetryPath, prometheus.Handler())
|
http.Handle(cfg.telemetryPath, prometheus.Handler())
|
||||||
|
|
||||||
logLevel := promlog.AllowedLevel{}
|
logLevel := promlog.AllowedLevel{}
|
||||||
logLevel.Set(cfg.logLevel)
|
if err := logLevel.Set(cfg.logLevel); err != nil {
|
||||||
|
panic(fmt.Sprintf("Error setting log level: %v", err))
|
||||||
|
}
|
||||||
logger := promlog.New(logLevel)
|
logger := promlog.New(logLevel)
|
||||||
|
|
||||||
writers, readers := buildClients(logger, cfg)
|
writers, readers := buildClients(logger, cfg)
|
||||||
serve(logger, cfg.listenAddr, writers, readers)
|
if err := serve(logger, cfg.listenAddr, writers, readers); err != nil {
|
||||||
|
level.Error(logger).Log("msg", "Failed to listen", "addr", cfg.listenAddr, "err", err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseFlags() *config {
|
func parseFlags() *config {
|
||||||
|
|
|
@ -433,7 +433,10 @@ func (t *Test) exec(tc testCommand) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
case *evalCmd:
|
case *evalCmd:
|
||||||
q, _ := t.queryEngine.NewInstantQuery(t.storage, cmd.expr, cmd.start)
|
q, err := t.queryEngine.NewInstantQuery(t.storage, cmd.expr, cmd.start)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
res := q.Exec(t.context)
|
res := q.Exec(t.context)
|
||||||
if res.Err != nil {
|
if res.Err != nil {
|
||||||
if cmd.fail {
|
if cmd.fail {
|
||||||
|
@ -446,14 +449,17 @@ func (t *Test) exec(tc testCommand) error {
|
||||||
return fmt.Errorf("expected error evaluating query %q (line %d) but got none", cmd.expr, cmd.line)
|
return fmt.Errorf("expected error evaluating query %q (line %d) but got none", cmd.expr, cmd.line)
|
||||||
}
|
}
|
||||||
|
|
||||||
err := cmd.compareResult(res.Value)
|
err = cmd.compareResult(res.Value)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error in %s %s: %s", cmd, cmd.expr, err)
|
return fmt.Errorf("error in %s %s: %s", cmd, cmd.expr, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check query returns same result in range mode,
|
// Check query returns same result in range mode,
|
||||||
/// by checking against the middle step.
|
/// by checking against the middle step.
|
||||||
q, _ = t.queryEngine.NewRangeQuery(t.storage, cmd.expr, cmd.start.Add(-time.Minute), cmd.start.Add(time.Minute), time.Minute)
|
q, err = t.queryEngine.NewRangeQuery(t.storage, cmd.expr, cmd.start.Add(-time.Minute), cmd.start.Add(time.Minute), time.Minute)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
rangeRes := q.Exec(t.context)
|
rangeRes := q.Exec(t.context)
|
||||||
if rangeRes.Err != nil {
|
if rangeRes.Err != nil {
|
||||||
return fmt.Errorf("error evaluating query %q (line %d) in range mode: %s", cmd.expr, cmd.line, rangeRes.Err)
|
return fmt.Errorf("error evaluating query %q (line %d) in range mode: %s", cmd.expr, cmd.line, rangeRes.Err)
|
||||||
|
|
|
@ -485,7 +485,10 @@ func (g *Group) RestoreForState(ts time.Time) {
|
||||||
smpl := alertRule.forStateSample(a, time.Now(), 0)
|
smpl := alertRule.forStateSample(a, time.Now(), 0)
|
||||||
var matchers []*labels.Matcher
|
var matchers []*labels.Matcher
|
||||||
for _, l := range smpl.Metric {
|
for _, l := range smpl.Metric {
|
||||||
mt, _ := labels.NewMatcher(labels.MatchEqual, l.Name, l.Value)
|
mt, err := labels.NewMatcher(labels.MatchEqual, l.Name, l.Value)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
matchers = append(matchers, mt)
|
matchers = append(matchers, mt)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -482,7 +482,9 @@ func (s *targetScraper) scrape(ctx context.Context, w io.Writer) error {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
s.buf.Reset(resp.Body)
|
s.buf.Reset(resp.Body)
|
||||||
s.gzipr.Reset(s.buf)
|
if err = s.gzipr.Reset(s.buf); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = io.Copy(w, s.gzipr)
|
_, err = io.Copy(w, s.gzipr)
|
||||||
|
@ -813,7 +815,9 @@ mainLoop:
|
||||||
scrapeErr = appErr
|
scrapeErr = appErr
|
||||||
}
|
}
|
||||||
|
|
||||||
sl.report(start, time.Since(start), total, added, scrapeErr)
|
if err := sl.report(start, time.Since(start), total, added, scrapeErr); err != nil {
|
||||||
|
level.Warn(sl.l).Log("msg", "appending scrape report failed", "err", err)
|
||||||
|
}
|
||||||
last = start
|
last = start
|
||||||
|
|
||||||
select {
|
select {
|
||||||
|
|
|
@ -29,11 +29,13 @@ func (s *Storage) Add(l labels.Labels, t int64, v float64) (uint64, error) {
|
||||||
s.mtx.RLock()
|
s.mtx.RLock()
|
||||||
defer s.mtx.RUnlock()
|
defer s.mtx.RUnlock()
|
||||||
for _, q := range s.queues {
|
for _, q := range s.queues {
|
||||||
q.Append(&model.Sample{
|
if err := q.Append(&model.Sample{
|
||||||
Metric: labelsToMetric(l),
|
Metric: labelsToMetric(l),
|
||||||
Timestamp: model.Time(t),
|
Timestamp: model.Time(t),
|
||||||
Value: model.SampleValue(v),
|
Value: model.SampleValue(v),
|
||||||
})
|
}); err != nil {
|
||||||
|
panic(err) // QueueManager.Append() should always return nil as per doc string.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -380,7 +380,9 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
func (api *API) series(r *http.Request) (interface{}, *apiError, func()) {
|
func (api *API) series(r *http.Request) (interface{}, *apiError, func()) {
|
||||||
r.ParseForm()
|
if err := r.ParseForm(); err != nil {
|
||||||
|
return nil, &apiError{errorBadData, fmt.Errorf("error parsing form values: %v", err)}, nil
|
||||||
|
}
|
||||||
if len(r.Form["match[]"]) == 0 {
|
if len(r.Form["match[]"]) == 0 {
|
||||||
return nil, &apiError{errorBadData, fmt.Errorf("no match[] parameter provided")}, nil
|
return nil, &apiError{errorBadData, fmt.Errorf("no match[] parameter provided")}, nil
|
||||||
}
|
}
|
||||||
|
@ -816,7 +818,9 @@ func (api *API) deleteSeries(r *http.Request) (interface{}, *apiError, func()) {
|
||||||
return nil, &apiError{errorUnavailable, errors.New("TSDB not ready")}, nil
|
return nil, &apiError{errorUnavailable, errors.New("TSDB not ready")}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
r.ParseForm()
|
if err := r.ParseForm(); err != nil {
|
||||||
|
return nil, &apiError{errorBadData, fmt.Errorf("error parsing form values: %v", err)}, nil
|
||||||
|
}
|
||||||
if len(r.Form["match[]"]) == 0 {
|
if len(r.Form["match[]"]) == 0 {
|
||||||
return nil, &apiError{errorBadData, fmt.Errorf("no match[] parameter provided")}, nil
|
return nil, &apiError{errorBadData, fmt.Errorf("no match[] parameter provided")}, nil
|
||||||
}
|
}
|
||||||
|
@ -866,7 +870,10 @@ func (api *API) snapshot(r *http.Request) (interface{}, *apiError, func()) {
|
||||||
if !api.enableAdmin {
|
if !api.enableAdmin {
|
||||||
return nil, &apiError{errorUnavailable, errors.New("Admin APIs disabled")}, nil
|
return nil, &apiError{errorUnavailable, errors.New("Admin APIs disabled")}, nil
|
||||||
}
|
}
|
||||||
skipHead, _ := strconv.ParseBool(r.FormValue("skip_head"))
|
skipHead, err := strconv.ParseBool(r.FormValue("skip_head"))
|
||||||
|
if err != nil {
|
||||||
|
return nil, &apiError{errorUnavailable, fmt.Errorf("unable to parse boolean 'skip_head' argument: %v", err)}, nil
|
||||||
|
}
|
||||||
|
|
||||||
db := api.db()
|
db := api.db()
|
||||||
if db == nil {
|
if db == nil {
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
package web
|
package web
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
|
@ -42,7 +43,10 @@ func (h *Handler) federation(w http.ResponseWriter, req *http.Request) {
|
||||||
h.mtx.RLock()
|
h.mtx.RLock()
|
||||||
defer h.mtx.RUnlock()
|
defer h.mtx.RUnlock()
|
||||||
|
|
||||||
req.ParseForm()
|
if err := req.ParseForm(); err != nil {
|
||||||
|
http.Error(w, fmt.Sprintf("error parsing form values: %v", err), http.StatusBadRequest)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var matcherSets [][]*labels.Matcher
|
var matcherSets [][]*labels.Matcher
|
||||||
for _, s := range req.Form["match[]"] {
|
for _, s := range req.Form["match[]"] {
|
||||||
|
|
Loading…
Reference in a new issue