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

session: Do not run telemetry loops when it's disabled in config (#40156) #41150

Merged
merged 3 commits into from
Mar 30, 2023
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions session/session.go
Original file line number Diff line number Diff line change
Expand Up @@ -2928,8 +2928,14 @@ func BootstrapSession(store kv.Storage) (*domain.Domain, error) {
if dom.GetEtcdClient() != nil {
// We only want telemetry data in production-like clusters. When TiDB is deployed over other engines,
// for example, unistore engine (used for local tests), we just skip it. Its etcd client is nil.
dom.TelemetryReportLoop(ses[5])
dom.TelemetryRotateSubWindowLoop(ses[5])
if config.GetGlobalConfig().EnableTelemetry {
// There is no way to turn telemetry on with global variable `tidb_enable_telemetry`
// when it is disabled in config. See IsTelemetryEnabled function in telemetry/telemetry.go
go func() {
Copy link
Contributor

Choose a reason for hiding this comment

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

Is adding go func() here like this not changing the behaviour? Is this ok for a bugfix release?

Copy link
Contributor Author

@sunxiaoguang sunxiaoguang Feb 7, 2023

Choose a reason for hiding this comment

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

Hm, it shouldn't affect any feature but just make initialization synchronous and speed up startup when connecting to telemetry server is blocked by network policy.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The reason to add go here was I realized that starting tidb-server takes about 20 seconds when the hosting environment doesn't have internet access.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

But I think you are right. We should keep changes as small as possible for back port. I have reverted this according to the behavior in 6.1. PTAL

dom.TelemetryReportLoop(ses[5])
dom.TelemetryRotateSubWindowLoop(ses[5])
}()
}
}

// A sub context for update table stats, and other contexts for concurrent stats loading.
Expand Down