diff --git a/docs/generated/logging.md b/docs/generated/logging.md index 648e1c3a8713..cb1086159728 100644 --- a/docs/generated/logging.md +++ b/docs/generated/logging.md @@ -163,3 +163,9 @@ helping developers of CockroachDB itself. It exists as a separate channel so as to not pollute the `SQL_PERF` logging output with internal troubleshooting details. +### `TELEMETRY` + +The `TELEMETRY` channel reports telemetry events. Telemetry events describe +feature usage within CockroachDB and anonymizes any application- +specific data. + diff --git a/pkg/cli/log_flags.go b/pkg/cli/log_flags.go index 8a81a8bfc86c..1cc2369b2cc6 100644 --- a/pkg/cli/log_flags.go +++ b/pkg/cli/log_flags.go @@ -434,7 +434,8 @@ func addPredefinedLogFiles(c *logconfig.Config) { if prefix == "sql-audit" && cliCtx.deprecatedLogOverrides.sqlAuditLogDir.isSet { dir = &cliCtx.deprecatedLogOverrides.sqlAuditLogDir.s } - m[prefix] = &logconfig.FileSinkConfig{ + + sinkConfig := &logconfig.FileSinkConfig{ Channels: logconfig.ChannelList{Channels: []logpb.Channel{ch}}, FileDefaults: logconfig.FileDefaults{ Dir: dir, @@ -443,6 +444,20 @@ func addPredefinedLogFiles(c *logconfig.Config) { }, }, } + + if ch == channel.TELEMETRY { + // Keep less data for telemetry. + // + // This is the default configuration; as usual, this can be + // customized by adding an explicit file-group specification in + // the logging configuration. + sz := logconfig.ByteSize(100 * 1024) // 100KiB + groupSize := logconfig.ByteSize(1 * 1024 * 1024) // 1MiB + sinkConfig.MaxFileSize = &sz + sinkConfig.MaxGroupSize = &groupSize + } + + m[prefix] = sinkConfig } } @@ -455,6 +470,7 @@ var predefinedLogFiles = map[logpb.Channel]string{ channel.SQL_EXEC: "sql-exec", channel.SQL_PERF: "sql-slow", channel.SQL_INTERNAL_PERF: "sql-slow-internal-only", + channel.TELEMETRY: "telemetry", } // predefinedAuditFiles indicate which channel-specific files are diff --git a/pkg/cli/testdata/logflags b/pkg/cli/testdata/logflags index d84ee4b68025..0072d721bce3 100644 --- a/pkg/cli/testdata/logflags +++ b/pkg/cli/testdata/logflags @@ -25,7 +25,15 @@ sql-audit: ,false,crdb-v2)>, sql-auth: ,false,crdb-v2)>, sql-exec: ,true,crdb-v2)>, sql-slow: ,true,crdb-v2)>, -sql-slow-internal-only: ,true,crdb-v2)>}, +sql-slow-internal-only: ,true,crdb-v2)>, +telemetry: {channels: [TELEMETRY], +dir: , +max-file-size: 100KiB, +max-group-size: 1.0MiB, +buffered-writes: true, +filter: INFO, +format: crdb-v2, +redactable: true}}, }, )>} @@ -46,7 +54,15 @@ sql-audit: ,false,crdb-v2)>, sql-auth: ,false,crdb-v2)>, sql-exec: ,true,crdb-v2)>, sql-slow: ,true,crdb-v2)>, -sql-slow-internal-only: ,true,crdb-v2)>}, +sql-slow-internal-only: ,true,crdb-v2)>, +telemetry: {channels: [TELEMETRY], +dir: , +max-file-size: 100KiB, +max-group-size: 1.0MiB, +buffered-writes: true, +filter: INFO, +format: crdb-v2, +redactable: true}}, }, )>} @@ -127,7 +143,15 @@ sql-audit: , sql-auth: , sql-exec: , sql-slow: , -sql-slow-internal-only: }, +sql-slow-internal-only: , +telemetry: {channels: [TELEMETRY], +dir: /pathA/logs, +max-file-size: 100KiB, +max-group-size: 1.0MiB, +buffered-writes: true, +filter: INFO, +format: crdb-v2, +redactable: true}}, }, } @@ -150,7 +174,15 @@ sql-audit: , sql-auth: , sql-exec: , sql-slow: , -sql-slow-internal-only: }, +sql-slow-internal-only: , +telemetry: {channels: [ TELEMETRY], +dir: /mypath, +max-file-size: 100KiB, +max-group-size: 1.0MiB, +buffered-writes: true, +filter: INFO, +format: crdb-v2, +redactable: true}}, }, } @@ -174,7 +206,15 @@ sql-audit: , sql-auth: , sql-exec: , sql-slow: , -sql-slow-internal-only: }, +sql-slow-internal-only: , +telemetry: {channels: [TELEMETRY], +dir: /pathA/logs, +max-file-size: 100KiB, +max-group-size: 1.0MiB, +buffered-writes: true, +filter: INFO, +format: crdb-v2, +redactable: true}}, }, } @@ -203,7 +243,15 @@ sql-audit: , sql-auth: , sql-exec: , sql-slow: , -sql-slow-internal-only: }, +sql-slow-internal-only: , +telemetry: {channels: [ TELEMETRY], +dir: /mypath, +max-file-size: 100KiB, +max-group-size: 1.0MiB, +buffered-writes: true, +filter: INFO, +format: crdb-v2, +redactable: true}}, }, } @@ -225,7 +273,15 @@ sql-audit: ,false,crdb-v2)>, sql-auth: ,false,crdb-v2)>, sql-exec: ,true,crdb-v2)>, sql-slow: ,true,crdb-v2)>, -sql-slow-internal-only: ,true,crdb-v2)>}, +sql-slow-internal-only: ,true,crdb-v2)>, +telemetry: {channels: [TELEMETRY], +dir: , +max-file-size: 100KiB, +max-group-size: 1.0MiB, +buffered-writes: true, +filter: INFO, +format: crdb-v2, +redactable: true}}, }, )>} @@ -248,7 +304,15 @@ sql-audit: ,false,crdb-v2)>, sql-auth: ,false,crdb-v2)>, sql-exec: ,true,crdb-v2)>, sql-slow: ,true,crdb-v2)>, -sql-slow-internal-only: ,true,crdb-v2)>}, +sql-slow-internal-only: ,true,crdb-v2)>, +telemetry: {channels: [TELEMETRY], +dir: , +max-file-size: 100KiB, +max-group-size: 1.0MiB, +buffered-writes: true, +filter: INFO, +format: crdb-v2, +redactable: true}}, }} # Logging to stderr without stderr capture causes an error in the default config. @@ -302,7 +366,15 @@ sql-audit: , sql-auth: , sql-exec: , sql-slow: , -sql-slow-internal-only: }, +sql-slow-internal-only: , +telemetry: {channels: [ TELEMETRY], +dir: /mypath, +max-file-size: 100KiB, +max-group-size: 1.0MiB, +buffered-writes: true, +filter: INFO, +format: crdb-v2, +redactable: true}}, }, } @@ -326,7 +398,15 @@ sql-audit: , sql-auth: , sql-exec: , sql-slow: , -sql-slow-internal-only: }, +sql-slow-internal-only: , +telemetry: {channels: [ TELEMETRY], +dir: /pathA, +max-file-size: 100KiB, +max-group-size: 1.0MiB, +buffered-writes: true, +filter: INFO, +format: crdb-v2, +redactable: true}}, }, } @@ -366,7 +446,15 @@ sql-audit: ,false,crdb-v2)>, sql-auth: ,false,crdb-v2)>, sql-exec: ,true,crdb-v2)>, sql-slow: ,true,crdb-v2)>, -sql-slow-internal-only: ,true,crdb-v2)>}, +sql-slow-internal-only: ,true,crdb-v2)>, +telemetry: {channels: [TELEMETRY], +dir: , +max-file-size: 100KiB, +max-group-size: 1.0MiB, +buffered-writes: true, +filter: INFO, +format: crdb-v2, +redactable: true}}, }, )>} @@ -388,7 +476,15 @@ sql-audit: ,false,crdb-v2)>, sql-auth: ,false,crdb-v2)>, sql-exec: ,true,crdb-v2)>, sql-slow: ,true,crdb-v2)>, -sql-slow-internal-only: ,true,crdb-v2)>}, +sql-slow-internal-only: ,true,crdb-v2)>, +telemetry: {channels: [TELEMETRY], +dir: , +max-file-size: 100KiB, +max-group-size: 1.0MiB, +buffered-writes: true, +filter: INFO, +format: crdb-v2, +redactable: true}}, }, )>} diff --git a/pkg/cmd/roachtest/test_runner.go b/pkg/cmd/roachtest/test_runner.go index 51d68fa74943..cd20583f1f23 100644 --- a/pkg/cmd/roachtest/test_runner.go +++ b/pkg/cmd/roachtest/test_runner.go @@ -928,8 +928,13 @@ func (r *testRunner) maybePostGithubIssue( Artifacts: artifacts, ExtraLabels: labels, ReproductionCommand: fmt.Sprintf( - `# From https://go.crdb.dev/p/roachstress, perhaps edited lightly. -caffeinate ./roachstress.sh %s + `## Simple repro (linux-only): + $ make cockroachshort bin/worklaod bin/roachprod bin/roachtest + $ PATH=$PWD/bin:$PATH roachtest run %[1]s --local + +## Proper repro probably needs more roachtest flags, or running +## the programs remotely on GCE. For more details, refer to +## pkg/cmd/roachtest/README.md. `, t.Name()), } if err := issues.Post( diff --git a/pkg/util/log/channel/channel_generated.go b/pkg/util/log/channel/channel_generated.go index 8af5932ba437..95a7bcc6883a 100644 --- a/pkg/util/log/channel/channel_generated.go +++ b/pkg/util/log/channel/channel_generated.go @@ -129,3 +129,8 @@ const SQL_PERF = logpb.Channel_SQL_PERF // channel so as to not pollute the `SQL_PERF` logging output with // internal troubleshooting details. const SQL_INTERNAL_PERF = logpb.Channel_SQL_INTERNAL_PERF + +// TELEMETRY reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +const TELEMETRY = logpb.Channel_TELEMETRY diff --git a/pkg/util/log/log_channels_generated.go b/pkg/util/log/log_channels_generated.go index 7329113e5070..a965c4601fba 100644 --- a/pkg/util/log/log_channels_generated.go +++ b/pkg/util/log/log_channels_generated.go @@ -5271,3 +5271,293 @@ func (loggerSqlInternalPerf) Shout(ctx context.Context, sev Severity, msg string func (loggerSqlInternalPerf) Shoutf(ctx context.Context, sev Severity, format string, args ...interface{}) { shoutfDepth(ctx, 1, sev, channel.SQL_INTERNAL_PERF, format, args...) } + +// loggerTelemetry is the logger type for the TELEMETRY channel. +type loggerTelemetry struct{} + +// Telemetry is a logger that logs to the TELEMETRY channel. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +var Telemetry loggerTelemetry + +// Telemetry and loggerTelemetry implement ChannelLogger. +// +// We do not force use of ChannelLogger when instantiating the logger +// object above (e.g. by giving it the interface type), to ensure +// the calls to the API methods remain inlinable in the common case. +var _ ChannelLogger = Telemetry + +// Infof logs to the TELEMETRY channel with severity INFO. +// It extracts log tags from the context and logs them along with the given +// message. Arguments are handled in the manner of fmt.Printf. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `INFO` severity is used for informational messages that do not +// require action. +func (loggerTelemetry) Infof(ctx context.Context, format string, args ...interface{}) { + logfDepth(ctx, 1, severity.INFO, channel.TELEMETRY, format, args...) +} + +// VInfof logs to the TELEMETRY channel with severity INFO, +// if logging has been enabled for the source file where the call is +// performed at the provided verbosity level, via the vmodule setting. +// It extracts log tags from the context and logs them along with the given +// message. Arguments are handled in the manner of fmt.Printf. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `INFO` severity is used for informational messages that do not +// require action. +func (loggerTelemetry) VInfof(ctx context.Context, level Level, format string, args ...interface{}) { + if VDepth(level, 1) { + logfDepth(ctx, 1, severity.INFO, channel.TELEMETRY, format, args...) + } +} + +// Info logs to the TELEMETRY channel with severity INFO. +// It extracts log tags from the context and logs them along with the given +// message. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `INFO` severity is used for informational messages that do not +// require action. +func (loggerTelemetry) Info(ctx context.Context, msg string) { + logfDepth(ctx, 1, severity.INFO, channel.TELEMETRY, msg) +} + +// InfofDepth logs to the TELEMETRY channel with severity INFO, +// offsetting the caller's stack frame by 'depth'. +// It extracts log tags from the context and logs them along with the given +// message. Arguments are handled in the manner of fmt.Printf. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `INFO` severity is used for informational messages that do not +// require action. +func (loggerTelemetry) InfofDepth(ctx context.Context, depth int, format string, args ...interface{}) { + logfDepth(ctx, depth+1, severity.INFO, channel.TELEMETRY, format, args...) +} + +// Warningf logs to the TELEMETRY channel with severity WARNING. +// It extracts log tags from the context and logs them along with the given +// message. Arguments are handled in the manner of fmt.Printf. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `WARNING` severity is used for situations which may require special handling, +// where normal operation is expected to resume automatically. +func (loggerTelemetry) Warningf(ctx context.Context, format string, args ...interface{}) { + logfDepth(ctx, 1, severity.WARNING, channel.TELEMETRY, format, args...) +} + +// VWarningf logs to the TELEMETRY channel with severity WARNING, +// if logging has been enabled for the source file where the call is +// performed at the provided verbosity level, via the vmodule setting. +// It extracts log tags from the context and logs them along with the given +// message. Arguments are handled in the manner of fmt.Printf. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `WARNING` severity is used for situations which may require special handling, +// where normal operation is expected to resume automatically. +func (loggerTelemetry) VWarningf(ctx context.Context, level Level, format string, args ...interface{}) { + if VDepth(level, 1) { + logfDepth(ctx, 1, severity.WARNING, channel.TELEMETRY, format, args...) + } +} + +// Warning logs to the TELEMETRY channel with severity WARNING. +// It extracts log tags from the context and logs them along with the given +// message. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `WARNING` severity is used for situations which may require special handling, +// where normal operation is expected to resume automatically. +func (loggerTelemetry) Warning(ctx context.Context, msg string) { + logfDepth(ctx, 1, severity.WARNING, channel.TELEMETRY, msg) +} + +// WarningfDepth logs to the TELEMETRY channel with severity WARNING, +// offsetting the caller's stack frame by 'depth'. +// It extracts log tags from the context and logs them along with the given +// message. Arguments are handled in the manner of fmt.Printf. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `WARNING` severity is used for situations which may require special handling, +// where normal operation is expected to resume automatically. +func (loggerTelemetry) WarningfDepth(ctx context.Context, depth int, format string, args ...interface{}) { + logfDepth(ctx, depth+1, severity.WARNING, channel.TELEMETRY, format, args...) +} + +// Errorf logs to the TELEMETRY channel with severity ERROR. +// It extracts log tags from the context and logs them along with the given +// message. Arguments are handled in the manner of fmt.Printf. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `ERROR` severity is used for situations that require special handling, +// where normal operation could not proceed as expected. +// Other operations can continue mostly unaffected. +func (loggerTelemetry) Errorf(ctx context.Context, format string, args ...interface{}) { + logfDepth(ctx, 1, severity.ERROR, channel.TELEMETRY, format, args...) +} + +// VErrorf logs to the TELEMETRY channel with severity ERROR, +// if logging has been enabled for the source file where the call is +// performed at the provided verbosity level, via the vmodule setting. +// It extracts log tags from the context and logs them along with the given +// message. Arguments are handled in the manner of fmt.Printf. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `ERROR` severity is used for situations that require special handling, +// where normal operation could not proceed as expected. +// Other operations can continue mostly unaffected. +func (loggerTelemetry) VErrorf(ctx context.Context, level Level, format string, args ...interface{}) { + if VDepth(level, 1) { + logfDepth(ctx, 1, severity.ERROR, channel.TELEMETRY, format, args...) + } +} + +// Error logs to the TELEMETRY channel with severity ERROR. +// It extracts log tags from the context and logs them along with the given +// message. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `ERROR` severity is used for situations that require special handling, +// where normal operation could not proceed as expected. +// Other operations can continue mostly unaffected. +func (loggerTelemetry) Error(ctx context.Context, msg string) { + logfDepth(ctx, 1, severity.ERROR, channel.TELEMETRY, msg) +} + +// ErrorfDepth logs to the TELEMETRY channel with severity ERROR, +// offsetting the caller's stack frame by 'depth'. +// It extracts log tags from the context and logs them along with the given +// message. Arguments are handled in the manner of fmt.Printf. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `ERROR` severity is used for situations that require special handling, +// where normal operation could not proceed as expected. +// Other operations can continue mostly unaffected. +func (loggerTelemetry) ErrorfDepth(ctx context.Context, depth int, format string, args ...interface{}) { + logfDepth(ctx, depth+1, severity.ERROR, channel.TELEMETRY, format, args...) +} + +// Fatalf logs to the TELEMETRY channel with severity FATAL. +// It extracts log tags from the context and logs them along with the given +// message. Arguments are handled in the manner of fmt.Printf. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `FATAL` severity is used for situations that require an immedate, hard +// server shutdown. A report is also sent to telemetry if telemetry +// is enabled. +func (loggerTelemetry) Fatalf(ctx context.Context, format string, args ...interface{}) { + logfDepth(ctx, 1, severity.FATAL, channel.TELEMETRY, format, args...) +} + +// VFatalf logs to the TELEMETRY channel with severity FATAL, +// if logging has been enabled for the source file where the call is +// performed at the provided verbosity level, via the vmodule setting. +// It extracts log tags from the context and logs them along with the given +// message. Arguments are handled in the manner of fmt.Printf. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `FATAL` severity is used for situations that require an immedate, hard +// server shutdown. A report is also sent to telemetry if telemetry +// is enabled. +func (loggerTelemetry) VFatalf(ctx context.Context, level Level, format string, args ...interface{}) { + if VDepth(level, 1) { + logfDepth(ctx, 1, severity.FATAL, channel.TELEMETRY, format, args...) + } +} + +// Fatal logs to the TELEMETRY channel with severity FATAL. +// It extracts log tags from the context and logs them along with the given +// message. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `FATAL` severity is used for situations that require an immedate, hard +// server shutdown. A report is also sent to telemetry if telemetry +// is enabled. +func (loggerTelemetry) Fatal(ctx context.Context, msg string) { + logfDepth(ctx, 1, severity.FATAL, channel.TELEMETRY, msg) +} + +// FatalfDepth logs to the TELEMETRY channel with severity FATAL, +// offsetting the caller's stack frame by 'depth'. +// It extracts log tags from the context and logs them along with the given +// message. Arguments are handled in the manner of fmt.Printf. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +// +// The `FATAL` severity is used for situations that require an immedate, hard +// server shutdown. A report is also sent to telemetry if telemetry +// is enabled. +func (loggerTelemetry) FatalfDepth(ctx context.Context, depth int, format string, args ...interface{}) { + logfDepth(ctx, depth+1, severity.FATAL, channel.TELEMETRY, format, args...) +} + +// Shout logs to channel TELEMETRY, and also to the real stderr if logging +// is currently redirected to a file. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +func (loggerTelemetry) Shout(ctx context.Context, sev Severity, msg string) { + shoutfDepth(ctx, 1, sev, channel.TELEMETRY, msg) +} + +// Shoutf logs to channel TELEMETRY, and also to the real stderr if +// logging is currently redirected to a file. Arguments are handled in +// the manner of fmt.Printf. +// +// The `TELEMETRY` channel reports telemetry events. Telemetry events describe +// feature usage within CockroachDB and anonymizes any application- +// specific data. +func (loggerTelemetry) Shoutf(ctx context.Context, sev Severity, format string, args ...interface{}) { + shoutfDepth(ctx, 1, sev, channel.TELEMETRY, format, args...) +} diff --git a/pkg/util/log/logconfig/testdata/export b/pkg/util/log/logconfig/testdata/export index 270192671ac6..4a1b3a1d7497 100644 --- a/pkg/util/log/logconfig/testdata/export +++ b/pkg/util/log/logconfig/testdata/export @@ -16,6 +16,7 @@ component sources { () SQL_EXEC () SQL_PERF () SQL_INTERNAL_PERF +() TELEMETRY cloud stray as "stray\nerrors" } queue stderr @@ -39,11 +40,12 @@ SENSITIVE_ACCESS --> p__1 SQL_EXEC --> p__1 SQL_PERF --> p__1 SQL_INTERNAL_PERF --> p__1 +TELEMETRY --> p__1 p__1 --> buffer2 buffer2 --> f1 stray --> stderrfile @enduml -# http://www.plantuml.com/plantuml/uml/L99FZvim4CNl_XGZJks1Lhl77gf5oNI3b2KfJb4FbP3NVtPH2TuEfb9LvRklR4CSJdxlpSEoviV3w0IvwTopNXi7pW9rBwyEL4TQkiuEJDhpcntqu62q4qazmd_suIDiiV77uSZziSDYVzfvnK-7kdZ4897pyb250l--R_bcXq-5TpyurcsnVIehxuvrsPHxVCJOn8gNfxB1jjXia5-_nf-uMVGHws-BBgiJrbKnXxAtauBHaVW7OeGig5-39h8qPkp2_anwqZ0wfOcO5AJWUJ96qtseHvt5mLlRteNKM3eBzqMIUix_tcTCaEkCa0vCruTzWB6zqWJPPwMDc7gNguuoFmWLCF4UQULliaA-VkhjIxOCurk2N9NoE9Yx5tPXMsmWpx-6Xx73aISJzv_yJE4cc5dS95SYAKjSKfRetDwsPhI-rPDQ9nxDEbbHIwEmSkzcA6o1upDpno9ORzBMs8CUbF-3tmC00F__ +# http://www.plantuml.com/plantuml/uml/L99FYzim4CNl-XI3J-t1BRl77igQPBen94vgkQ65Wj7gpwwfOwLZkL1AldkH54VnIU-zUHw4VduQdI0tdNhMQ-F0MQ3kzSs1waXBrzc1INiwsq4F3aOxaTGZ_6FltiCQZ_xO7xW_DbXicurNlDdNnJC6YPoN-oeK-DTjorSRt1NUVUDOjyLwLrRU7UhoM6xn6MCJArusvH7ROhL2VliQl-DgrWUilyowh1gigoA53MvnXqtzWydUJWf6H-8lY16oe7uEciZIcB4B-ptfISFeb2PYKf22byaOJO-X7dKM1-UsVGYfiNGIxfCazPB_USoO8DSP8HsOhW-F0yRsIXDa7vKsOkfThZhA_21KmCGzqifVP8Ly-z3RrsmUnhi4kIZbSN3jNjY5hV48UVuvN8pj3poP22FvAvAxu0hcBhdXILc2bBA4wdxR4jXogyUsJ3odPR90c4Ota2aA5BoxSc8pBv-P1nPPUvCUaZtfGVa__7y0003__m00 # Capture everything to one file with sync and warnings only to stderr. yaml only-channels=DEV,SESSIONS diff --git a/pkg/util/log/logconfig/testdata/yaml b/pkg/util/log/logconfig/testdata/yaml index 53050ccdd485..366462e71eaf 100644 --- a/pkg/util/log/logconfig/testdata/yaml +++ b/pkg/util/log/logconfig/testdata/yaml @@ -110,7 +110,7 @@ sinks: { stderr: { channels: 'all except DEV ,sessions' } } sinks: stderr: channels: [OPS, HEALTH, STORAGE, SQL_SCHEMA, USER_ADMIN, PRIVILEGES, SENSITIVE_ACCESS, - SQL_EXEC, SQL_PERF, SQL_INTERNAL_PERF] + SQL_EXEC, SQL_PERF, SQL_INTERNAL_PERF, TELEMETRY] yaml sinks: { stderr: { channels: 'all except [DEV, sessions]' } } @@ -118,7 +118,7 @@ sinks: { stderr: { channels: 'all except [DEV, sessions]' } } sinks: stderr: channels: [OPS, HEALTH, STORAGE, SQL_SCHEMA, USER_ADMIN, PRIVILEGES, SENSITIVE_ACCESS, - SQL_EXEC, SQL_PERF, SQL_INTERNAL_PERF] + SQL_EXEC, SQL_PERF, SQL_INTERNAL_PERF, TELEMETRY] # Try populating all the fields. yaml diff --git a/pkg/util/log/logpb/log.pb.go b/pkg/util/log/logpb/log.pb.go index 102153e1e07c..d187db0d47a4 100644 --- a/pkg/util/log/logpb/log.pb.go +++ b/pkg/util/log/logpb/log.pb.go @@ -209,6 +209,10 @@ const ( // channel so as to not pollute the `SQL_PERF` logging output with // internal troubleshooting details. Channel_SQL_INTERNAL_PERF Channel = 11 + // TELEMETRY reports telemetry events. Telemetry events describe + // feature usage within CockroachDB and anonymizes any application- + // specific data. + Channel_TELEMETRY Channel = 12 ) var Channel_name = map[int32]string{ @@ -224,6 +228,7 @@ var Channel_name = map[int32]string{ 9: "SQL_EXEC", 10: "SQL_PERF", 11: "SQL_INTERNAL_PERF", + 12: "TELEMETRY", } var Channel_value = map[string]int32{ @@ -239,6 +244,7 @@ var Channel_value = map[string]int32{ "SQL_EXEC": 9, "SQL_PERF": 10, "SQL_INTERNAL_PERF": 11, + "TELEMETRY": 12, } func (x Channel) String() string { @@ -425,55 +431,55 @@ func init() { func init() { proto.RegisterFile("util/log/logpb/log.proto", fileDescriptor_84e824ab4ae60f77) } var fileDescriptor_84e824ab4ae60f77 = []byte{ - // 753 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x94, 0xd1, 0x6e, 0xdb, 0x36, - 0x14, 0x86, 0xad, 0x48, 0xb6, 0xa4, 0xe3, 0x24, 0x63, 0x89, 0x0e, 0xd0, 0xd6, 0x4e, 0x31, 0x82, - 0x0d, 0xf3, 0x72, 0xe1, 0x02, 0x1d, 0x06, 0xec, 0x6e, 0x50, 0x6c, 0x3a, 0xd1, 0xe6, 0xca, 0x29, - 0xe9, 0xa4, 0xc3, 0x76, 0x21, 0x28, 0x32, 0xeb, 0x08, 0x91, 0xc4, 0x40, 0xa2, 0x07, 0x64, 0xef, - 0x30, 0x60, 0x0f, 0xb1, 0x87, 0x18, 0xb0, 0x17, 0xc8, 0x65, 0x2f, 0x7b, 0x55, 0x6c, 0xce, 0x8b, - 0x0c, 0xa4, 0xad, 0xc6, 0x40, 0x7b, 0x61, 0xe3, 0x3f, 0xbf, 0x3e, 0x1e, 0xf2, 0xf0, 0x1c, 0x10, - 0xbc, 0xa5, 0xcc, 0xf2, 0x67, 0xb9, 0x58, 0xa8, 0xdf, 0xcd, 0xa5, 0xfa, 0x1f, 0xdc, 0x54, 0x42, - 0x0a, 0x8c, 0x53, 0x91, 0x5e, 0x57, 0x22, 0x49, 0xaf, 0x06, 0x8a, 0x19, 0xe4, 0x62, 0xf1, 0xf9, - 0xe3, 0x85, 0x58, 0x08, 0xfd, 0xf9, 0x99, 0x52, 0x6b, 0xf2, 0xf0, 0x6f, 0x13, 0xda, 0xa4, 0x94, - 0xd5, 0x2d, 0xfe, 0x1e, 0x9c, 0x9a, 0xff, 0xc6, 0xab, 0x4c, 0xde, 0x7a, 0x46, 0xcf, 0xe8, 0xef, - 0x3f, 0x7f, 0x3a, 0xf8, 0x30, 0xcd, 0x80, 0x6d, 0x18, 0xfa, 0x9e, 0xc6, 0x18, 0x2c, 0x99, 0x15, - 0xdc, 0xdb, 0xe9, 0x19, 0x7d, 0x93, 0x6a, 0x8d, 0x9f, 0x82, 0xbb, 0x10, 0x95, 0x58, 0xca, 0xac, - 0xe4, 0x5e, 0x47, 0x7f, 0x78, 0x30, 0xd4, 0x8a, 0xd7, 0x59, 0xce, 0x3d, 0xb3, 0x67, 0xf4, 0x5d, - 0xaa, 0xb5, 0xf2, 0x72, 0x05, 0x5b, 0xeb, 0x2c, 0x4a, 0x63, 0x0f, 0xec, 0x82, 0xd7, 0x75, 0xb2, - 0xe0, 0x5e, 0x5b, 0xa3, 0x4d, 0xa8, 0xf7, 0x4c, 0x16, 0xb5, 0x67, 0xaf, 0x33, 0x28, 0xad, 0xe8, - 0x54, 0x2c, 0x4b, 0xc9, 0x2b, 0xcf, 0xe9, 0x19, 0x7d, 0x8b, 0x36, 0x21, 0xf6, 0x01, 0x2a, 0x3e, - 0x4f, 0x52, 0x99, 0x5c, 0xe6, 0xdc, 0x73, 0x7b, 0x46, 0xdf, 0xa1, 0x5b, 0x0e, 0xfe, 0x0e, 0xec, - 0xf4, 0x2a, 0x29, 0x4b, 0x9e, 0x7b, 0xa0, 0x4b, 0x7f, 0xf2, 0xb1, 0xd2, 0x87, 0x6b, 0x84, 0x36, - 0x2c, 0xfe, 0x0a, 0xf6, 0x6b, 0x59, 0x2d, 0x53, 0xb9, 0xac, 0xf8, 0x3c, 0xe6, 0xe5, 0xdc, 0xeb, - 0xf6, 0x8c, 0xfe, 0x1e, 0xdd, 0x7b, 0x70, 0x49, 0x39, 0xc7, 0xdf, 0x00, 0xda, 0xc2, 0x6a, 0x99, - 0x54, 0xd2, 0xdb, 0xd5, 0xe0, 0x27, 0x0f, 0x3e, 0x53, 0x36, 0x3e, 0x82, 0x47, 0xb5, 0x4c, 0xd2, - 0xeb, 0x58, 0x56, 0x49, 0xca, 0x37, 0xec, 0x5e, 0xc3, 0x26, 0xe9, 0xf5, 0x4c, 0xf9, 0x9a, 0x3d, - 0xfc, 0xc3, 0x80, 0xee, 0x38, 0xcb, 0xf9, 0x88, 0xcb, 0x24, 0xcb, 0x75, 0xf9, 0x37, 0x95, 0x58, - 0x54, 0x49, 0xa1, 0xfb, 0xe7, 0xd2, 0x26, 0x54, 0x97, 0x75, 0x25, 0x6a, 0xa9, 0x1b, 0xe4, 0x52, - 0xad, 0xf1, 0x13, 0x70, 0x97, 0x35, 0xaf, 0xe2, 0x32, 0x29, 0x9a, 0x3e, 0x38, 0xca, 0x88, 0x92, - 0x82, 0xbf, 0xef, 0x68, 0x7b, 0xab, 0xa3, 0x9f, 0x81, 0x79, 0x93, 0xcd, 0xd7, 0xbd, 0x3c, 0xb6, - 0x57, 0xef, 0x0e, 0xcc, 0xb3, 0x70, 0x44, 0x95, 0xf7, 0xa3, 0xe5, 0x58, 0xa8, 0x7d, 0xf8, 0x97, - 0x01, 0x8e, 0x3a, 0x4f, 0x58, 0xbe, 0x16, 0x2a, 0x83, 0xce, 0xbc, 0x3e, 0x89, 0xd6, 0xf8, 0x0b, - 0x80, 0x3a, 0xfb, 0x9d, 0xc7, 0x97, 0xb7, 0x92, 0xd7, 0x9b, 0x69, 0x71, 0x95, 0x73, 0xac, 0x0c, - 0xfc, 0x25, 0xec, 0x17, 0x62, 0x1e, 0xab, 0xcd, 0xe2, 0x32, 0x29, 0x45, 0xad, 0x8f, 0x65, 0xd2, - 0xdd, 0x42, 0xcc, 0x67, 0x59, 0xc1, 0x23, 0xe5, 0xe1, 0x1f, 0xc0, 0x9e, 0xaf, 0x0b, 0xd6, 0x93, - 0xd2, 0x7d, 0x7e, 0xf0, 0xb1, 0x56, 0x6d, 0xdd, 0xcb, 0xb1, 0x75, 0xf7, 0xee, 0xa0, 0x45, 0x9b, - 0x55, 0x47, 0xbf, 0x82, 0xd3, 0xcc, 0x30, 0xee, 0x82, 0x7d, 0x1e, 0xfd, 0x14, 0x4d, 0x5f, 0x45, - 0xa8, 0x85, 0x1d, 0xb0, 0xc2, 0x68, 0x3c, 0x45, 0x86, 0xb2, 0x5f, 0x05, 0x34, 0x0a, 0xa3, 0x13, - 0xb4, 0x83, 0x5d, 0x68, 0x13, 0x4a, 0xa7, 0x14, 0x99, 0x4a, 0x8e, 0x83, 0x59, 0x30, 0x41, 0x96, - 0x82, 0xa3, 0x69, 0x44, 0x50, 0x5b, 0xc1, 0x23, 0x32, 0x0e, 0xce, 0x27, 0x33, 0xd4, 0x39, 0xfa, - 0xc7, 0x00, 0x7b, 0x33, 0x26, 0xd8, 0x06, 0x73, 0x44, 0x2e, 0x50, 0x4b, 0x89, 0xe9, 0x19, 0x43, - 0x06, 0x06, 0xe8, 0x9c, 0x92, 0x60, 0x32, 0x3b, 0x45, 0x3b, 0x6a, 0x19, 0x9b, 0x4d, 0x69, 0x70, - 0x42, 0x90, 0x89, 0x77, 0xc1, 0x61, 0x84, 0xb1, 0x70, 0x1a, 0x31, 0x64, 0xe1, 0x7d, 0x00, 0xf6, - 0x72, 0x12, 0xb3, 0xe1, 0x29, 0x79, 0x11, 0xa0, 0xb6, 0x8a, 0xcf, 0x19, 0xa1, 0x71, 0x30, 0x7a, - 0x11, 0x46, 0xa8, 0xa3, 0xe2, 0x33, 0x1a, 0x5e, 0x84, 0x13, 0x72, 0x42, 0x18, 0xb2, 0xf1, 0x63, - 0x40, 0x8c, 0x44, 0x2c, 0x9c, 0x85, 0x17, 0x24, 0x0e, 0x86, 0x43, 0xc2, 0x18, 0x72, 0x74, 0xce, - 0x97, 0x93, 0x98, 0xfc, 0x4c, 0x86, 0xc8, 0x6d, 0xa2, 0x33, 0x42, 0xc7, 0x08, 0xf0, 0xa7, 0xf0, - 0x48, 0x45, 0x61, 0x34, 0x23, 0x34, 0x0a, 0x36, 0x76, 0xf7, 0xf8, 0xeb, 0xbb, 0xff, 0xfc, 0xd6, - 0xdd, 0xca, 0x37, 0xde, 0xac, 0x7c, 0xe3, 0xed, 0xca, 0x37, 0xfe, 0x5d, 0xf9, 0xc6, 0x9f, 0xf7, - 0x7e, 0xeb, 0xcd, 0xbd, 0xdf, 0x7a, 0x7b, 0xef, 0xb7, 0x7e, 0x69, 0xeb, 0x97, 0xe6, 0xb2, 0xa3, - 0x1f, 0x8f, 0x6f, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xc5, 0x77, 0x0c, 0x15, 0x82, 0x04, 0x00, - 0x00, + // 765 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x94, 0xdf, 0x6e, 0xdb, 0x36, + 0x14, 0xc6, 0xad, 0x48, 0xb6, 0xa4, 0xe3, 0x24, 0x63, 0x89, 0x0e, 0xd0, 0xd6, 0x4e, 0x31, 0x82, + 0x0d, 0xf3, 0x72, 0xe1, 0x02, 0x1d, 0x06, 0xec, 0x6e, 0x50, 0x6c, 0x3a, 0xd1, 0xe6, 0xc8, 0x29, + 0xa9, 0xa4, 0xfb, 0x73, 0x21, 0x28, 0x32, 0xeb, 0x08, 0x91, 0xc5, 0x40, 0xa2, 0x07, 0x64, 0xef, + 0x30, 0x60, 0x0f, 0xb1, 0x87, 0xd8, 0x23, 0x04, 0xbb, 0xea, 0x65, 0xaf, 0x8a, 0xcd, 0x79, 0x91, + 0x81, 0xb4, 0xd5, 0x04, 0x58, 0x2e, 0x6c, 0x7c, 0xe7, 0xd3, 0x8f, 0x87, 0x3c, 0x3c, 0x07, 0x04, + 0x6f, 0x29, 0xf3, 0xe2, 0x45, 0x21, 0xe6, 0xea, 0x77, 0x7d, 0xa1, 0xfe, 0x07, 0xd7, 0x95, 0x90, + 0x02, 0xe3, 0x4c, 0x64, 0x57, 0x95, 0x48, 0xb3, 0xcb, 0x81, 0x62, 0x06, 0x85, 0x98, 0x7f, 0xfa, + 0x74, 0x2e, 0xe6, 0x42, 0x7f, 0x7e, 0xa1, 0xd4, 0x9a, 0xdc, 0xff, 0xcb, 0x84, 0x36, 0x29, 0x65, + 0x75, 0x83, 0xbf, 0x05, 0xa7, 0xe6, 0xbf, 0xf2, 0x2a, 0x97, 0x37, 0x9e, 0xd1, 0x33, 0xfa, 0xbb, + 0x2f, 0x9f, 0x0f, 0xfe, 0x9f, 0x66, 0xc0, 0x36, 0x0c, 0xfd, 0x40, 0x63, 0x0c, 0x96, 0xcc, 0x17, + 0xdc, 0xdb, 0xea, 0x19, 0x7d, 0x93, 0x6a, 0x8d, 0x9f, 0x83, 0x3b, 0x17, 0x95, 0x58, 0xca, 0xbc, + 0xe4, 0x5e, 0x47, 0x7f, 0xb8, 0x37, 0xd4, 0x8a, 0x37, 0x79, 0xc1, 0x3d, 0xb3, 0x67, 0xf4, 0x5d, + 0xaa, 0xb5, 0xf2, 0x0a, 0x05, 0x5b, 0xeb, 0x2c, 0x4a, 0x63, 0x0f, 0xec, 0x05, 0xaf, 0xeb, 0x74, + 0xce, 0xbd, 0xb6, 0x46, 0x9b, 0x50, 0xef, 0x99, 0xce, 0x6b, 0xcf, 0x5e, 0x67, 0x50, 0x5a, 0xd1, + 0x99, 0x58, 0x96, 0x92, 0x57, 0x9e, 0xd3, 0x33, 0xfa, 0x16, 0x6d, 0x42, 0xec, 0x03, 0x54, 0x7c, + 0x96, 0x66, 0x32, 0xbd, 0x28, 0xb8, 0xe7, 0xf6, 0x8c, 0xbe, 0x43, 0x1f, 0x38, 0xf8, 0x1b, 0xb0, + 0xb3, 0xcb, 0xb4, 0x2c, 0x79, 0xe1, 0x81, 0x2e, 0xfd, 0xd9, 0x63, 0xa5, 0x0f, 0xd7, 0x08, 0x6d, + 0x58, 0xfc, 0x05, 0xec, 0xd6, 0xb2, 0x5a, 0x66, 0x72, 0x59, 0xf1, 0x59, 0xc2, 0xcb, 0x99, 0xd7, + 0xed, 0x19, 0xfd, 0x1d, 0xba, 0x73, 0xef, 0x92, 0x72, 0x86, 0xbf, 0x02, 0xf4, 0x00, 0xab, 0x65, + 0x5a, 0x49, 0x6f, 0x5b, 0x83, 0x1f, 0xdd, 0xfb, 0x4c, 0xd9, 0xf8, 0x00, 0x9e, 0xd4, 0x32, 0xcd, + 0xae, 0x12, 0x59, 0xa5, 0x19, 0xdf, 0xb0, 0x3b, 0x0d, 0x9b, 0x66, 0x57, 0xb1, 0xf2, 0x35, 0xbb, + 0xff, 0xbb, 0x01, 0xdd, 0x71, 0x5e, 0xf0, 0x11, 0x97, 0x69, 0x5e, 0xe8, 0xf2, 0xaf, 0x2b, 0x31, + 0xaf, 0xd2, 0x85, 0xee, 0x9f, 0x4b, 0x9b, 0x50, 0x5d, 0xd6, 0xa5, 0xa8, 0xa5, 0x6e, 0x90, 0x4b, + 0xb5, 0xc6, 0xcf, 0xc0, 0x5d, 0xd6, 0xbc, 0x4a, 0xca, 0x74, 0xd1, 0xf4, 0xc1, 0x51, 0x46, 0x94, + 0x2e, 0xf8, 0x87, 0x8e, 0xb6, 0x1f, 0x74, 0xf4, 0x13, 0x30, 0xaf, 0xf3, 0xd9, 0xba, 0x97, 0x87, + 0xf6, 0xea, 0xfd, 0x9e, 0x79, 0x1a, 0x8e, 0xa8, 0xf2, 0xbe, 0xb7, 0x1c, 0x0b, 0xb5, 0xf7, 0xff, + 0x34, 0xc0, 0x51, 0xe7, 0x09, 0xcb, 0x37, 0x42, 0x65, 0xd0, 0x99, 0xd7, 0x27, 0xd1, 0x1a, 0x7f, + 0x06, 0x50, 0xe7, 0xbf, 0xf1, 0xe4, 0xe2, 0x46, 0xf2, 0x7a, 0x33, 0x2d, 0xae, 0x72, 0x0e, 0x95, + 0x81, 0x3f, 0x87, 0xdd, 0x85, 0x98, 0x25, 0x6a, 0xb3, 0xa4, 0x4c, 0x4b, 0x51, 0xeb, 0x63, 0x99, + 0x74, 0x7b, 0x21, 0x66, 0x71, 0xbe, 0xe0, 0x91, 0xf2, 0xf0, 0x77, 0x60, 0xcf, 0xd6, 0x05, 0xeb, + 0x49, 0xe9, 0xbe, 0xdc, 0x7b, 0xac, 0x55, 0x0f, 0xee, 0xe5, 0xd0, 0xba, 0x7d, 0xbf, 0xd7, 0xa2, + 0xcd, 0xaa, 0x83, 0x5f, 0xc0, 0x69, 0x66, 0x18, 0x77, 0xc1, 0x3e, 0x8b, 0x7e, 0x88, 0xa6, 0xaf, + 0x23, 0xd4, 0xc2, 0x0e, 0x58, 0x61, 0x34, 0x9e, 0x22, 0x43, 0xd9, 0xaf, 0x03, 0x1a, 0x85, 0xd1, + 0x11, 0xda, 0xc2, 0x2e, 0xb4, 0x09, 0xa5, 0x53, 0x8a, 0x4c, 0x25, 0xc7, 0x41, 0x1c, 0x4c, 0x90, + 0xa5, 0xe0, 0x68, 0x1a, 0x11, 0xd4, 0x56, 0xf0, 0x88, 0x8c, 0x83, 0xb3, 0x49, 0x8c, 0x3a, 0x07, + 0x7f, 0x1b, 0x60, 0x6f, 0xc6, 0x04, 0xdb, 0x60, 0x8e, 0xc8, 0x39, 0x6a, 0x29, 0x31, 0x3d, 0x65, + 0xc8, 0xc0, 0x00, 0x9d, 0x63, 0x12, 0x4c, 0xe2, 0x63, 0xb4, 0xa5, 0x96, 0xb1, 0x78, 0x4a, 0x83, + 0x23, 0x82, 0x4c, 0xbc, 0x0d, 0x0e, 0x23, 0x8c, 0x85, 0xd3, 0x88, 0x21, 0x0b, 0xef, 0x02, 0xb0, + 0x57, 0x93, 0x84, 0x0d, 0x8f, 0xc9, 0x49, 0x80, 0xda, 0x2a, 0x3e, 0x63, 0x84, 0x26, 0xc1, 0xe8, + 0x24, 0x8c, 0x50, 0x47, 0xc5, 0xa7, 0x34, 0x3c, 0x0f, 0x27, 0xe4, 0x88, 0x30, 0x64, 0xe3, 0xa7, + 0x80, 0x18, 0x89, 0x58, 0x18, 0x87, 0xe7, 0x24, 0x09, 0x86, 0x43, 0xc2, 0x18, 0x72, 0x74, 0xce, + 0x57, 0x93, 0x84, 0xfc, 0x48, 0x86, 0xc8, 0x6d, 0xa2, 0x53, 0x42, 0xc7, 0x08, 0xf0, 0xc7, 0xf0, + 0x44, 0x45, 0x61, 0x14, 0x13, 0x1a, 0x05, 0x1b, 0xbb, 0x8b, 0x77, 0xc0, 0x8d, 0xc9, 0x84, 0x9c, + 0x90, 0x98, 0xfe, 0x84, 0xb6, 0x0f, 0xbf, 0xbc, 0xfd, 0xd7, 0x6f, 0xdd, 0xae, 0x7c, 0xe3, 0xed, + 0xca, 0x37, 0xde, 0xad, 0x7c, 0xe3, 0x9f, 0x95, 0x6f, 0xfc, 0x71, 0xe7, 0xb7, 0xde, 0xde, 0xf9, + 0xad, 0x77, 0x77, 0x7e, 0xeb, 0xe7, 0xb6, 0x7e, 0x78, 0x2e, 0x3a, 0xfa, 0x2d, 0xf9, 0xfa, 0xbf, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x8c, 0x9e, 0x4c, 0xb7, 0x91, 0x04, 0x00, 0x00, } func (m *Entry) Marshal() (dAtA []byte, err error) { diff --git a/pkg/util/log/logpb/log.proto b/pkg/util/log/logpb/log.proto index 83f460125009..a60dec7dcdff 100644 --- a/pkg/util/log/logpb/log.proto +++ b/pkg/util/log/logpb/log.proto @@ -179,6 +179,11 @@ enum Channel { // channel so as to not pollute the `SQL_PERF` logging output with // internal troubleshooting details. SQL_INTERNAL_PERF = 11; + + // TELEMETRY reports telemetry events. Telemetry events describe + // feature usage within CockroachDB and anonymizes any application- + // specific data. + TELEMETRY = 12; } // Entry represents a cockroach log entry in the following two cases: