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

*: add API concurrency metrics #7541

Merged
merged 28 commits into from
Dec 28, 2023

Conversation

CabinfeverB
Copy link
Member

@CabinfeverB CabinfeverB commented Dec 13, 2023

What problem does this PR solve?

Issue Number: ref #7167
should be merged after #7239

What is changed and how does it work?

Enable concurrency monitoring for all APIs

Check List

Tests

  • Unit test
  • Manual test (add detailed scripts or steps below)
    image

Code changes

Side effects

  • Possible performance regression
  • Increased code complexity
  • Breaking backward compatibility

Related changes

Release note

None.

Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: Cabinfever_B <[email protected]>

address comment

Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: Cabinfever_B <[email protected]>
Copy link
Contributor

ti-chi-bot bot commented Dec 13, 2023

[REVIEW NOTIFICATION]

This pull request has been approved by:

  • disksing
  • rleungx

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.

@CabinfeverB CabinfeverB removed the request for review from disksing December 13, 2023 08:12
@ti-chi-bot ti-chi-bot bot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Dec 13, 2023
"dashLength": 10,
"dashes": false,
"datasource": "${DS_TEST-CLUSTER}",
"description": "The concurrency number ofeach kind of gRPC commands",
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
"description": "The concurrency number ofeach kind of gRPC commands",
"description": "The concurrency number of each kind of gRPC commands",

pkg/ratelimit/concurrency_limiter.go Show resolved Hide resolved
Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: Cabinfever_B <[email protected]>
@@ -678,7 +744,7 @@ func (s *GrpcServer) GetStore(ctx context.Context, request *pdpb.GetStoreRequest
} else if rsp != nil {
return rsp.(*pdpb.GetStoreResponse), err
}

time.Sleep(120 * time.Millisecond)
Copy link
Member

Choose a reason for hiding this comment

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

Why sleep?

Copy link
Member Author

Choose a reason for hiding this comment

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

Sorry, I forgot to delete this when addressing the comment. I can't count concurrency without this during manual testing.

Copy link
Contributor

Choose a reason for hiding this comment

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

need remove it.

label := key.(string)
// Due to not in hot path, no need to save sub Gauge.
if con := limiter.getConcurrencyLimiter(); con != nil {
l.concurrencyGauge.WithLabelValues(l.apiType, label).Set(float64(con.getCurrent()))
Copy link
Member

Choose a reason for hiding this comment

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

Maybe we can find another way to show the statistics, the current implementation only captures the instant value every 15s.

@@ -68,3 +74,13 @@ func (l *concurrencyLimiter) getCurrent() uint64 {

return l.current
}

func (l *concurrencyLimiter) getMaxConcurrency() uint64 {
l.mu.RLock()
Copy link
Member

Choose a reason for hiding this comment

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

Should be Lock?

Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: Cabinfever_B <[email protected]>
@HuSharp
Copy link
Member

HuSharp commented Dec 21, 2023

/retest

@HuSharp
Copy link
Member

HuSharp commented Dec 21, 2023

/test

Copy link
Contributor

ti-chi-bot bot commented Dec 21, 2023

@HuSharp: The /test command needs one or more targets.
The following commands are available to trigger required jobs:

  • /test build

The following commands are available to trigger optional jobs:

  • /test pull-integration-copr-test
  • /test pull-integration-realcluster-test

Use /test all to run the following jobs that were automatically triggered:

  • tikv/pd/ghpr_build

In response to this:

/test

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@HuSharp
Copy link
Member

HuSharp commented Dec 21, 2023

/test build

Copy link

codecov bot commented Dec 21, 2023

Codecov Report

Merging #7541 (c34d2b1) into master (cee6e63) will decrease coverage by 0.08%.
The diff coverage is 54.15%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #7541      +/-   ##
==========================================
- Coverage   74.87%   74.80%   -0.08%     
==========================================
  Files         459      459              
  Lines       50668    50975     +307     
==========================================
+ Hits        37939    38130     +191     
- Misses       9385     9482      +97     
- Partials     3344     3363      +19     
Flag Coverage Δ
unittests 74.80% <54.15%> (-0.08%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: Cabinfever_B <[email protected]>
@ti-chi-bot ti-chi-bot bot added the status/LGT1 Indicates that a PR has LGTM 1. label Dec 26, 2023
Signed-off-by: Cabinfever_B <[email protected]>
Copy link
Contributor

@nolouch nolouch left a comment

Choose a reason for hiding this comment

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

rest lgtm

@@ -678,7 +744,7 @@ func (s *GrpcServer) GetStore(ctx context.Context, request *pdpb.GetStoreRequest
} else if rsp != nil {
return rsp.(*pdpb.GetStoreResponse), err
}

time.Sleep(120 * time.Millisecond)
Copy link
Contributor

Choose a reason for hiding this comment

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

need remove it.

Signed-off-by: Cabinfever_B <[email protected]>
@ti-chi-bot ti-chi-bot bot added status/LGT2 Indicates that a PR has LGTM 2. and removed status/LGT1 Indicates that a PR has LGTM 1. labels Dec 27, 2023
@CabinfeverB
Copy link
Member Author

/merge

Copy link
Contributor

ti-chi-bot bot commented Dec 28, 2023

@CabinfeverB: It seems you want to merge this PR, I will help you trigger all the tests:

/run-all-tests

You only need to trigger /merge once, and if the CI test fails, you just re-trigger the test that failed and the bot will merge the PR for you after the CI passes.

If you have any questions about the PR merge process, please refer to pr process.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository.

Copy link
Contributor

ti-chi-bot bot commented Dec 28, 2023

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

Commit hash: c34d2b1

@ti-chi-bot ti-chi-bot bot added the status/can-merge Indicates a PR has been approved by a committer. label Dec 28, 2023
@ti-chi-bot ti-chi-bot bot merged commit b7b4537 into tikv:master Dec 28, 2023
24 of 26 checks passed
pingandb pushed a commit to pingandb/pd that referenced this pull request Jan 18, 2024
ref tikv#7167

Signed-off-by: Cabinfever_B <[email protected]>
Signed-off-by: pingandb <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release-note-none size/XXL Denotes a PR that changes 1000+ 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.

None yet

5 participants