Skip to content

Conversation

@tiancaiamao
Copy link
Contributor

What problem does this PR solve?

Issue Number: ref #64008

Problem Summary:

What changed and how does it work?

Support flight recorder sink trace events to log.
A new SQL variable @@tidb_trace_event_control is introduced.
Update @@tidb_trace_event to support json config

Here is how to use it:

All events:

select  json_object('enabled_categories', json_array('*'), 'dump_trigger', json_object('type', 'sampling', 'sampling', 10));
+---------------------------------------------------------------------------------------------------------------------+
| json_object('enabled_categories', json_array('*'), 'dump_trigger', json_object('type', 'sampling', 'sampling', 10)) |
+---------------------------------------------------------------------------------------------------------------------+
| {"dump_trigger": {"sampling": 10, "type": "sampling"}, "enabled_categories": ["*"]}                                 |
+---------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

mysql> set @@global.tidb_trace_event_control = json_object('enabled_categories', json_array('*'), 'dump_trigger', json_object('type', 'sampling', 'sampling', 1));
Query OK, 0 rows affected (0.03 sec)

1/1000 Sampling:

set @@global.tidb_trace_event_control = json_object('enabled_categories', json_array('*'), 'dump_trigger', json_object('type', 'sampling', 'sampling', 1000));

Filter by categories:

set @@global.tidb_trace_event_control = json_object('enabled_categories', json_array('txn_2pc', 'stmt_lifecycle'), 'dump_trigger', json_object('type', 'sampling', 'sampling', 1));

Filter by user command, like sql regexp, plan digest, login user etc, here is example of plan_digest:

set @@global.tidb_trace_event_control = json_object('enabled_categories',  json_array('*'),
	'dump_trigger',  json_object('type', 'user_command', 'user_command', json_object('type', 'plan_digest', 'plan_digest', '42a1c8aae6f133e934d4bf0147491709a8812ea05ff8819ec522780fe657b772')));

Filter by suspicious_event, like query fail, resolve lock, slow query etc:

set @@global.tidb_trace_event_control = json_object('enabled_categories',  json_array('*'),
	'dump_trigger',  json_object('type', 'suspicious_event', 'suspicious_event', json_object('type', 'resolve_lock')));

Check List

Tests

  • Unit test
  • Integration test
  • Manual test (add detailed scripts or steps below)
  • No need to test
    • I checked and no code files have been changed.

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

@ti-chi-bot ti-chi-bot bot added release-note-none Denotes a PR that doesn't merit a release note. do-not-merge/needs-tests-checked labels Nov 7, 2025
@ti-chi-bot
Copy link

ti-chi-bot bot commented Nov 7, 2025

[FORMAT CHECKER NOTIFICATION]

Notice: To remove the do-not-merge/needs-tests-checked label, please finished the tests then check the finished items in description.

For example:

Tests

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

📖 For more info, you can check the "Contribute Code" section in the development guide.

@ti-chi-bot ti-chi-bot bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Nov 7, 2025
@ti-chi-bot
Copy link

ti-chi-bot bot commented Nov 7, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign benmeadowcroft, qw4990 for approval. For more information see the Code Review Process.
Please ensure that each of them provides their approval before proceeding.

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

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@tiancaiamao tiancaiamao added nextgen Indicates that the Issue or PR belongs to the nextgen kernel architecture. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Nov 7, 2025
@tiprow
Copy link

tiprow bot commented Nov 7, 2025

Hi @tiancaiamao. Thanks for your PR.

PRs from untrusted users cannot be marked as trusted with /ok-to-test in this repo meaning untrusted PR authors can never trigger tests themselves. Collaborators can still trigger tests on the PR using /test all.

I understand the commands that are listed here.

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-sigs/prow repository.

@codecov
Copy link

codecov bot commented Nov 7, 2025

Codecov Report

❌ Patch coverage is 62.50000% with 15 lines in your changes missing coverage. Please review.
✅ Project coverage is 73.1941%. Comparing base (61bbb07) to head (32fa04b).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@               Coverage Diff                @@
##             master     #64362        +/-   ##
================================================
+ Coverage   72.7353%   73.1941%   +0.4588%     
================================================
  Files          1862       1862                
  Lines        505221     505338       +117     
================================================
+ Hits         367474     369878      +2404     
+ Misses       115427     113234      -2193     
+ Partials      22320      22226        -94     
Flag Coverage Δ
integration 41.7598% <10.0000%> (?)
unit 72.3157% <62.5000%> (+0.0107%) ⬆️

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

Components Coverage Δ
dumpling 52.8700% <ø> (ø)
parser ∅ <ø> (∅)
br 46.1964% <ø> (-0.0076%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ti-chi-bot
Copy link

ti-chi-bot bot commented Nov 7, 2025

@tiancaiamao: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-unit-test-next-gen 32fa04b link true /test pull-unit-test-next-gen

Full PR test history. Your PR dashboard.

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-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/needs-tests-checked nextgen Indicates that the Issue or PR belongs to the nextgen kernel architecture. release-note-none Denotes a PR that doesn't merit a release note.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant