Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Frontend & Querier query statistics instrumentation. #1661

Merged
merged 8 commits into from
Feb 10, 2020

Conversation

cyriltovena
Copy link
Contributor

@cyriltovena cyriltovena commented Feb 7, 2020

This add a new middleware that will recompute the correct execution time (currently it's the sum of all sub queries).

Then it logs and records metrics such as:

  • logql_querystats_bytes_processed_per_seconds
  • logql_querystats_latency_seconds
  • logql_querystats_chunk_download_latency_seconds
  • etc...

Metrics are tagger with type such as:

  • range type =>instant, range
  • query type = > filter, metric,limited
  • status => fail/success

This also instrument statistics at the querier level. I've also update Cortex to latest to log in the current span without creating a child span which I don't think we need.

Once this is merged, I'll start working on adding a grafana dashboard via our mixin.

Signed-off-by: Cyril Tovena <cyril.tovena@gmail.com>
Signed-off-by: Cyril Tovena <cyril.tovena@gmail.com>
Signed-off-by: Cyril Tovena <cyril.tovena@gmail.com>
Signed-off-by: Cyril Tovena <cyril.tovena@gmail.com>
Signed-off-by: Cyril Tovena <cyril.tovena@gmail.com>
Signed-off-by: Cyril Tovena <cyril.tovena@gmail.com>
@codecov-io
Copy link

Codecov Report

Merging #1661 into master will increase coverage by 0.19%.
The diff coverage is 86.58%.

Impacted file tree graph

@@            Coverage Diff            @@
##           master   #1661      +/-   ##
=========================================
+ Coverage    61.8%     62%   +0.19%     
=========================================
  Files         109     111       +2     
  Lines        8308    8377      +69     
=========================================
+ Hits         5135    5194      +59     
- Misses       2780    2789       +9     
- Partials      393     394       +1
Impacted Files Coverage Δ
pkg/loghttp/query.go 47.36% <ø> (ø) ⬆️
pkg/querier/queryrange/stats.go 100% <100%> (ø)
pkg/querier/queryrange/roundtrip.go 80.43% <100%> (ø) ⬆️
pkg/logql/evaluator.go 92.85% <100%> (+0.07%) ⬆️
pkg/querier/queryrange/codec.go 93.52% <60%> (-2.17%) ⬇️
pkg/logql/engine.go 86.76% <62.5%> (-1.48%) ⬇️
pkg/logql/metrics.go 92.59% <92.59%> (ø)

Copy link
Member

@owen-d owen-d left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couple of nits, but lgtm

pkg/querier/queryrange/stats.go Outdated Show resolved Hide resolved
pkg/querier/queryrange/stats.go Show resolved Hide resolved
pkg/querier/queryrange/stats_test.go Outdated Show resolved Hide resolved
Copy link
Member

@owen-d owen-d left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

small mutability bit then lgtm

pkg/querier/queryrange/stats.go Outdated Show resolved Hide resolved
Signed-off-by: Cyril Tovena <cyril.tovena@gmail.com>
…ics.

Signed-off-by: Cyril Tovena <cyril.tovena@gmail.com>
@cyriltovena cyriltovena merged commit 2af69cb into grafana:master Feb 10, 2020
billimek added a commit to billimek/loki that referenced this pull request Feb 13, 2020
* 'extraPorts' of github.com:billimek/loki: (25 commits)
  Ensure status codes are set correctly in the frontend. (grafana#1684)
  --dry-run Promtail. (grafana#1652)
  Fix logcli --quiet parameter parsing issue (grafana#1682)
  This improves the log ouput for statistics in the logcli. (grafana#1644)
  Loki stack helm chart can deploy datasources without Grafana (grafana#1688)
  Automatically prune metrics from the /metrics output of the promtail metrics pipeline stage after an idle period.
  Allow a metric defined as a counter to match all lines, useful for creating line count metrics which include all your labels. Found a bug in the the test runner where it didn't fail if the actual error was nil but the test expected an error Added some tests to the counters to test valid configs
  maintainer links & usernames (grafana#1675)
  Binary operators in LogQL (grafana#1662)
  Pipe data to Promtail (grafana#1649)
  Add Owen to the maintainer team. (grafana#1673)
  Update tanka.md so that promtail.yml is in the correct format (grafana#1671)
  Correcte syntax of rate example (grafana#1641)
  Frontend & Querier query statistics instrumentation. (grafana#1661)
  loki-canary: fix indent of DaemonSet manifest written in .md file (grafana#1648)
  Query frontend service should be headless. (grafana#1665)
  Support custom prefix name in metrics stage (grafana#1664)
  pkg/promtail/positions: handle empty positions file (grafana#1660)
  Convert second(Integer class) to nanosecond precision (grafana#1656)
  Unite docs for fluentd plugin (grafana#1634)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants