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

metric: add some metric by database #41477

Conversation

srstack
Copy link
Contributor

@srstack srstack commented Feb 16, 2023

What problem does this PR solve?

Issue Number: close #37892

Problem Summary: add some metric by database

What is changed and how it works?

This pr is based on a modification of #38261
(We need to add a switch to control whether the db label is added to the metric or not.)

Reasons for not adding table labels: https://prometheus.io/docs/practices/naming/#labels

Add additional information about database name to the current metric
tidb_server_handle_query_duration_seconds
image

tidb_executor_statement_total
image

tidb_server_execute_error_total
image

Added a switch to control whether to add database labels

[status]
record-db-label = true // default false

Check List

Tests

  • Unit test
  • Integration test
  • Manual test (add detailed scripts or steps below)
  • No code

Side effects

  • Performance regression: Consumes more CPU
  • Performance regression: Consumes more Memory
  • Breaking backward compatibility

Documentation

  • Affects user behaviors
  • Contains syntax changes
  • Contains variable changes
  • Contains experimental features
  • Changes MySQL compatibility

Release note

Please refer to Release Notes Language Style Guide to write a quality release note.

None

@srstack srstack requested a review from a team as a code owner February 16, 2023 05:13
@ti-chi-bot
Copy link
Member

ti-chi-bot commented Feb 16, 2023

[REVIEW NOTIFICATION]

This pull request has been approved by:

  • bb7133
  • jackysp

To complete the pull request process, please ask the reviewers in the list to review by filling /cc @reviewer in the comment.
After your PR has acquired the required number of LGTMs, you can assign this pull request to the committer in the list by filling /assign @committer in the comment to help you merge this pull request.

The full list of commands accepted by this bot can be found here.

Reviewer can indicate their review by submitting an approval review.
Reviewer can cancel approval by submitting a request changes review.

@ti-chi-bot ti-chi-bot added do-not-merge/invalid-title release-note-none Denotes a PR that doesn't merit a release note. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Feb 16, 2023
@sre-bot
Copy link
Contributor

sre-bot commented Feb 16, 2023

CLA assistant check
All committers have signed the CLA.

@hawkingrei hawkingrei changed the title metric:add some metric by database metric: add some metric by database Feb 16, 2023
@jackysp
Copy link
Member

jackysp commented Feb 17, 2023

/run-monitor-test

metrics/session.go Outdated Show resolved Hide resolved
metrics/session.go Outdated Show resolved Hide resolved
@srstack srstack requested a review from jackysp February 17, 2023 03:32
Copy link
Member

@jackysp jackysp left a comment

Choose a reason for hiding this comment

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

LGTM

@ti-chi-bot ti-chi-bot added the status/LGT1 Indicates that a PR has LGTM 1. label Feb 17, 2023
dbLabels := getStmtDbLabel(stmtNode)
for dbLabel := range dbLabels {
metrics.DbStmtNodeCounter.WithLabelValues(dbLabel, typeLabel).Inc()
if config.GetGlobalConfig().Status.RecordQPSbyDB || config.GetGlobalConfig().Status.RecordDBLabel {
Copy link
Member

Choose a reason for hiding this comment

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

Why do we need both RecordQPSbyDB and RecordDBLabel, it's confusing IMO.

Copy link
Contributor Author

@srstack srstack Feb 17, 2023

Choose a reason for hiding this comment

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

cc #9151

Copy link
Member

Choose a reason for hiding this comment

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

I would prefer to deprecate RecordQPSbyDB and remove DbStmtNodeCounter. Users could use RecordDBLabel and DbStmtNodeCounter instead.

But we don't have to make it in this PR.

Copy link
Member

@bb7133 bb7133 left a comment

Choose a reason for hiding this comment

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

LGTM

@ti-chi-bot ti-chi-bot added status/LGT2 Indicates that a PR has LGTM 2. and removed status/LGT1 Indicates that a PR has LGTM 1. labels Feb 17, 2023
@bb7133
Copy link
Member

bb7133 commented Feb 17, 2023

/merge

@ti-chi-bot
Copy link
Member

This pull request has been accepted and is ready to merge.

Commit hash: 28935ee

@ti-chi-bot ti-chi-bot added the status/can-merge Indicates a PR has been approved by a committer. label Feb 17, 2023
@ti-chi-bot ti-chi-bot removed the status/can-merge Indicates a PR has been approved by a committer. label Feb 17, 2023
@srstack srstack requested review from bb7133 and jackysp and removed request for bb7133 and jackysp February 17, 2023 16:48
@hawkingrei
Copy link
Member

/merge

@ti-chi-bot
Copy link
Member

This pull request has been accepted and is ready to merge.

Commit hash: 3091c94

@ti-chi-bot ti-chi-bot added the status/can-merge Indicates a PR has been approved by a committer. label Feb 18, 2023
@ti-chi-bot ti-chi-bot merged commit 79558c0 into pingcap:master Feb 18, 2023
@srstack srstack deleted the metric--add--handle_query_duration-by-database/table branch February 28, 2023 12:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release-note-none Denotes a PR that doesn't merit a release note. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. status/can-merge Indicates a PR has been approved by a committer. status/LGT2 Indicates that a PR has LGTM 2.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Adding schema level information to tidb_server_handle_query_duration_seconds_sum
6 participants