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

Compitable with different TiDB versions for conprof and non-root-login features #1047

Merged
merged 13 commits into from
Nov 10, 2021

Conversation

baurine
Copy link
Collaborator

@baurine baurine commented Nov 4, 2021

What did:

  • Move conprof codes out of profiling
  • Check whether conprof and nonrootlogin features are supported in the current version
  • Make frontend adjustment for frontend when feature is not enabled

Screenshots:

  • Hide "Continuous Profiling" menu if it is not enabled
    image

@ti-chi-bot
Copy link
Member

ti-chi-bot commented Nov 4, 2021

[REVIEW NOTIFICATION]

This pull request has been approved by:

  • shhdgit

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.

@baurine baurine marked this pull request as draft November 4, 2021 11:34
@baurine baurine marked this pull request as ready for review November 5, 2021 07:20
@baurine
Copy link
Collaborator Author

baurine commented Nov 5, 2021

The CI says build frontend failed and need to run yarn fmt, I did it and it changed much code, a little strange why this happen, will check it later.

@baurine baurine changed the title [WIP] Compitable different TiDB versions Compitable different TiDB versions Nov 5, 2021
@baurine baurine changed the title Compitable different TiDB versions Compitable with different TiDB versions for conprof and non-root-login features Nov 5, 2021
Copy link
Member

@breezewish breezewish left a comment

Choose a reason for hiding this comment

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

@shhdgit PTAL

pkg/apiserver/info/info.go Outdated Show resolved Hide resolved
@breezewish
Copy link
Member

The CI says build frontend failed and need to run yarn fmt, I did it and it changed much code, a little strange why this happen, will check it later.

prettier version has been updated in c33af34 you can run yarn to update your local prettier. Then you should get the same format results as in CI.

@@ -38,7 +38,7 @@ type Config struct {

EnableTelemetry bool
EnableExperimental bool
EnableNonRootLogin bool
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

After removing this config item, the code in the PD side (PR: https://github.com/tikv/pd/pull/4141/files) doesn't work anymore. So when we submit a new release to PD, we need to remove that line code in PD. Just a reminder.

pkg/apiserver/apiserver.go Outdated Show resolved Hide resolved
featureEnabled *bool
)

func IsFeatureEnable(config *config.Config) (enabled bool) {
Copy link
Member

@shhdgit shhdgit Nov 7, 2021

Choose a reason for hiding this comment

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

Considering that there are many features that require a feature flag, how about abstracting this into a util. e.g.

type FeatureFlag struct {
	supportedTiDBVersions []string
	enabled               *bool
}

func (ff *FeatureFlag) IsEnable(targetVersion string) bool
func (ff *FeatureFlag) Middleware(targetVersion string) gin.HandlerFunc

And we can declare feature flags in module.go/mod.go(in the future)

var FeatureFlag = util.NewFeatureFlag([]string{">= 5.3.0"})
var Module = fx...

Copy link
Member

@shhdgit shhdgit Nov 8, 2021

Choose a reason for hiding this comment

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

LGTM, and I will do this refinement in #1035 later.

@baurine
Copy link
Collaborator Author

baurine commented Nov 8, 2021

All comments are addressed, PTAL, thanks! @breeswish @shhdgit

@baurine baurine merged commit 17fba18 into pingcap:master Nov 10, 2021
@baurine baurine deleted the compitable_different_tidb_versions branch November 10, 2021 03:18
baurine added a commit to baurine/tidb-dashboard that referenced this pull request Dec 30, 2021
…n features (pingcap#1047)

* make conprof independent

* check feature enable

* add check feature enable middleware

* hide menu if feature is not enabled

* refactor non root login switch by new design

* i18n

* yarn fmt

* renaming

* adjust fe code

* refine

* remove unused log
baurine added a commit that referenced this pull request Dec 30, 2021
* Revert "Release v2021.12.06.1 (#1084)"

This reverts commit bcc43a0.

* Compitable with different TiDB versions for conprof and non-root-login features (#1047)

* make conprof independent

* check feature enable

* add check feature enable middleware

* hide menu if feature is not enabled

* refactor non root login switch by new design

* i18n

* yarn fmt

* renaming

* adjust fe code

* refine

* remove unused log

* build(deps): bump ws from 5.2.2 to 5.2.3 in /ui (#1055)

* CICD: Update the release pipeline for recent PD format policies (#1054)

* fix i18n wording (#1056)

* Refactor: Change util module to util package (#1052)

* Refactor: Fix godot incorrectly add dot suffix to annotations (#1059)

* lint: Add goheader for copyright lints (#1062)

* Refactor: Migrate to use the `rest` package in util/ (#1060)

* fix(*): globally delete/update data by GORM (#1065)

* ui: bump dependencies (#1066)

* refactor: Switch to use ziputil, netutil, reflectutil and fileswap (#1067)

* Fix request header being pinned after pd profiling (#1069)

* Integrate speedscope (#1064)

* fix potential panic when GetPDInstances (#1075)

Signed-off-by: crazycs <chen.two.cs@gmail.com>

* Refactor: a new httpclient (#1073)

* Refactor: Switch to use util/distro in all places (#1078)

* chore: support import relative file URL (#1082)

* Refactor: Move tools into a standalone module (#1079)

* Fix script to embed the ui (#1088)

* Fix script to embed the ui

* Hack write_strings

* Refactor feature flag to support more modules (#1057)

* Drop sysutil dependency (#1093)

* chore: add graph generation (#1085)

* Refactor: Add TopologyProvider (#1098)

* esbuild: i18n + dep (#1101)

* script: Add a script to generate version matrix (#1104)

* distro: support dynamic config (#1094)

* chore: support multiple profiling types (#1095)

* fix(distro): check distro_strings.json fmt by prettier (#1106)

* script: fix generate assets (#1107)

* Add integration test (#1083)

* debug_api: Switch to use the new util (#1103)

* refactor(ui): auto refresh button (#1105)

* refactor(ui): auto refresh button

* chore: update translation

* fix: remain seconds

* refine: refresh button

* fix: onRefresh

* fix: auto refresh

* fix: continue tick

* chore: add some comments

* tweak: remaining refresh seconds

* chore: clean code

Co-authored-by: Wenxuan <breezewish@pingcap.com>

* ui: refine conprof (#1102)

* update wording

* not check prom any more

* replace time range component

* i18n

* support view profile by diffrent ways

* extract ActionsButton

* change download data format

* refine

* comments

* Revert "comments"

This reverts commit 3b03fdb.

* fix view cpu profile fail

* update state

* hide action button if disable

* address feedback

* update release-version

* sync with master

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wenxuan <breezewish@pingcap.com>
Co-authored-by: Suhaha <jklopsdfw@gmail.com>
Co-authored-by: Yini Xu <34967660+YiniXu9506@users.noreply.github.com>
Co-authored-by: crazycs <crazycs520@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants