Loki: include the component in metrics.go log line (#5379)

* add a component key to our metrics.go line

Signed-off-by: Edward Welch <edward.welch@grafana.com>

* new computer... who dis

Signed-off-by: Edward Welch <edward.welch@grafana.com>

* one more lint

Signed-off-by: Edward Welch <edward.welch@grafana.com>
pull/5306/merge
Ed Welch 4 years ago committed by GitHub
parent ec1ae42083
commit b3af2dbeef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      pkg/logql/engine.go
  2. 5
      pkg/logql/metrics.go
  3. 2
      pkg/logql/metrics_test.go
  4. 3
      pkg/loki/modules.go
  5. 5
      pkg/querier/querier.go
  6. 4
      pkg/querier/queryrange/stats.go

@ -144,7 +144,7 @@ func (q *query) Exec(ctx context.Context) (logqlmodel.Result, error) {
}
if q.record {
RecordMetrics(ctx, q.params, status, statResult, data)
RecordMetrics(ctx, q.logger, q.params, status, statResult, data)
}
return logqlmodel.Result{

@ -5,6 +5,7 @@ import (
"strings"
"github.com/dustin/go-humanize"
"github.com/go-kit/log"
"github.com/go-kit/log/level"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
@ -72,9 +73,9 @@ var (
linePerSecondLogUsage = usagestats.NewStatistics("query_log_lines_per_second")
)
func RecordMetrics(ctx context.Context, p Params, status string, stats logql_stats.Result, result promql_parser.Value) {
func RecordMetrics(ctx context.Context, log log.Logger, p Params, status string, stats logql_stats.Result, result promql_parser.Value) {
var (
logger = util_log.WithContext(ctx, util_log.Logger)
logger = util_log.WithContext(ctx, log)
rt = string(GetRangeType(p))
latencyType = latencyTypeFast
returnedLines = 0

@ -66,7 +66,7 @@ func TestLogSlowQuery(t *testing.T) {
ctx = context.WithValue(ctx, httpreq.QueryTagsHTTPHeader, "Source=logvolhist,Feature=Beta")
RecordMetrics(ctx, LiteralParams{
RecordMetrics(ctx, util_log.Logger, LiteralParams{
qs: `{foo="bar"} |= "buzz"`,
direction: logproto.BACKWARD,
end: now,

@ -11,6 +11,7 @@ import (
"time"
"github.com/NYTimes/gziphandler"
"github.com/go-kit/log"
"github.com/go-kit/log/level"
"github.com/grafana/dskit/kv/codec"
"github.com/grafana/dskit/kv/memberlist"
@ -621,7 +622,7 @@ func (t *Loki) initRuler() (_ services.Service, err error) {
return nil, err
}
engine := logql.NewEngine(t.Cfg.Querier.Engine, q, t.overrides, util_log.Logger)
engine := logql.NewEngine(t.Cfg.Querier.Engine, q, t.overrides, log.With(util_log.Logger, "component", "ruler"))
t.ruler, err = ruler.NewRuler(
t.Cfg.Ruler,

@ -6,6 +6,7 @@ import (
"net/http"
"time"
"github.com/go-kit/log"
"github.com/go-kit/log/level"
"github.com/pkg/errors"
"github.com/prometheus/common/model"
@ -89,13 +90,13 @@ func New(cfg Config, store storage.Store, ingesterQuerier *IngesterQuerier, limi
limits: limits,
}
querier.engine = logql.NewEngine(cfg.Engine, &querier, limits, util_log.Logger)
querier.engine = logql.NewEngine(cfg.Engine, &querier, limits, log.With(util_log.Logger, "component", "querier"))
return &querier, nil
}
func (q *Querier) SetQueryable(queryable logql.Querier) {
q.engine = logql.NewEngine(q.cfg.Engine, queryable, q.limits, util_log.Logger)
q.engine = logql.NewEngine(q.cfg.Engine, queryable, q.limits, log.With(util_log.Logger, "component", "querier"))
}
// Select Implements logql.Querier which select logs via matchers and regex filters.

@ -9,6 +9,7 @@ import (
"strconv"
"time"
"github.com/go-kit/log"
"github.com/go-kit/log/level"
promql_parser "github.com/prometheus/prometheus/promql/parser"
"github.com/weaveworks/common/middleware"
@ -17,6 +18,7 @@ import (
"github.com/grafana/loki/pkg/logqlmodel"
"github.com/grafana/loki/pkg/logqlmodel/stats"
"github.com/grafana/loki/pkg/querier/queryrange/queryrangebase"
util_log "github.com/grafana/loki/pkg/util/log"
"github.com/grafana/loki/pkg/util/spanlogger"
)
@ -26,7 +28,7 @@ const ctxKey ctxKeyType = "stats"
var (
defaultMetricRecorder = metricRecorderFn(func(data *queryData) {
logql.RecordMetrics(data.ctx, data.params, data.status, *data.statistics, data.result)
logql.RecordMetrics(data.ctx, log.With(util_log.Logger, "component", "frontend"), data.params, data.status, *data.statistics, data.result)
})
// StatsHTTPMiddleware is an http middleware to record stats for query_range filter.
StatsHTTPMiddleware = statsHTTPMiddleware(defaultMetricRecorder)

Loading…
Cancel
Save