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

stats: make quantile tolerated error configurable #281

Merged
merged 1 commit into from
May 6, 2022

Conversation

DifferentialOrange
Copy link
Member

@DifferentialOrange DifferentialOrange commented May 6, 2022

Make metrics quantile collector tolerated error [1] configurable. Change
metrics quantile collector default tolerated error from 1e-2 to 1e-3.

The motivation of this patch is a tarantool/metrics bug [2]. Sometimes
quantile values turn to -Inf under high load when observations are
small. It was reproduced in process of developing Grafana dashboard
panels for CRUD stats [3].

Quantile tolerated error could be changed with crud.cfg:

  crud.cfg{stats_quantile_tolerated_error = 1e-4}
  1. https://www.tarantool.io/ru/doc/latest/book/monitoring/api_reference/#summary
  2. Summary counter breaks under high load metrics#189
  3. https://github.com/tarantool/grafana-dashboard/tree/DifferentialOrange/crud-report
  • Tests
  • Changelog
  • Documentation

@DifferentialOrange DifferentialOrange force-pushed the DifferentialOrange/crud-metrics-params branch from e4c58c8 to ee11410 Compare May 6, 2022 14:18
Base automatically changed from DifferentialOrange/gh-278-sharding-mismatch to master May 6, 2022 15:01
@DifferentialOrange DifferentialOrange force-pushed the DifferentialOrange/crud-metrics-params branch from ee11410 to 6ef442d Compare May 6, 2022 15:04
Copy link
Member

@Totktonada Totktonada left a comment

Choose a reason for hiding this comment

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

No objections from me.

CHANGELOG.md Outdated Show resolved Hide resolved
Make metrics quantile collector tolerated error [1] configurable. Change
metrics quantile collector default tolerated error from 1e-2 to 1e-3.

The motivation of this patch is a tarantool/metrics bug [2]. Sometimes
quantile values turn to `-Inf` under high load when observations are
small. It was reproduced in process of developing Grafana dashboard
panels for CRUD stats [3].

Quantile tolerated error could be changed with crud.cfg:

  crud.cfg{stats_quantile_tolerated_error = 1e-4}

1. https://www.tarantool.io/ru/doc/latest/book/monitoring/api_reference/#summary
2. tarantool/metrics#189
3. https://github.com/tarantool/grafana-dashboard/tree/DifferentialOrange/crud-report
@DifferentialOrange DifferentialOrange force-pushed the DifferentialOrange/crud-metrics-params branch from 6ef442d to 42ca02a Compare May 6, 2022 15:38
@DifferentialOrange DifferentialOrange merged commit f4d44a7 into master May 6, 2022
@DifferentialOrange DifferentialOrange deleted the DifferentialOrange/crud-metrics-params branch May 6, 2022 15:38
DifferentialOrange added a commit that referenced this pull request May 6, 2022
CRUD 0.11.1 fixes critical bug found in #278, so it is recommended
to use it instead of 0.11.0.

Added:
* Make metrics quantile collector tolerated error configurable (#281).

Changed:
* Change metrics quantile collector default tolerated error
  from 1e-2 to 1e-3 (#281).

Fixed:
* Requests no more fail with "Sharding hash mismatch" error
  if ddl set and bucket_id is explicitly specified (#278).
@DifferentialOrange DifferentialOrange mentioned this pull request May 6, 2022
1 task
DifferentialOrange added a commit that referenced this pull request May 6, 2022
Overview

    This release fixes critical bug introduced in 0.11.0. It is
    recommended to use 0.11.1 instead of 0.11.0.

    It also adds an ability to configure quantile collector tolerated
    error and changes its default value.

Breaking changes

    There are no breaking changes in the release.

New features

    Set quantile collector tolerated error with crud.cfg (#281):

    crud.cfg{ stats_quantile_tolerated_error = 1e-4 }

    Decreasing tolerated error may fix getting `-Inf` values in
    quantiles. Increasing tolerated error may improve performance a bit.

Bugfixes

    Requests no more fail with "Sharding hash mismatch" error
    if ddl set and bucket_id is explicitly specified (#278).
DifferentialOrange added a commit that referenced this pull request May 6, 2022
Overview

    This release fixes critical bug introduced in 0.11.0. It is
    recommended to use 0.11.1 instead of 0.11.0.

    It also adds an ability to configure quantile collector tolerated
    error and changes its default value.

Breaking changes

    There are no breaking changes in the release.

New features

    Set quantile collector tolerated error with crud.cfg (#281):

    crud.cfg{ stats_quantile_tolerated_error = 1e-4 }

    Decreasing tolerated error may fix getting `-Inf` values in
    quantiles. Increasing tolerated error may improve performance a bit.

Bugfixes

    Requests no more fail with "Sharding hash mismatch" error
    if ddl set and bucket_id is explicitly specified (#278).
DifferentialOrange added a commit that referenced this pull request May 17, 2022
Before this patch, stats_quantile_tolerated_error configuration
parameter value could be lost in the following sequence of separate
crud.cfg calls:
1. Set up stats_quantile_tolerated_error (maybe together with other
   parameters).
2. Set up any other cfg parameter, do not set
   stats_quantile_tolerated_error in call explicitly.

It was expected that stats_quantile_tolerated_error from the first step
will be preserved after the second one, but it was lost. This patch
fixes the behavior.

Follows up PR #281, closes #284
DifferentialOrange added a commit that referenced this pull request May 18, 2022
Before this patch, stats_quantile_tolerated_error configuration
parameter value could be lost in the following sequence of separate
crud.cfg calls:
1. Set up stats_quantile_tolerated_error (maybe together with other
   parameters).
2. Set up any other cfg parameter, do not set
   stats_quantile_tolerated_error in call explicitly.

It was expected that stats_quantile_tolerated_error from the first step
will be preserved after the second one, but it was lost. This patch
fixes the behavior.

Follows up PR #281, closes #284
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.

2 participants