diff --git a/cli/exp_scaletest.go b/cli/exp_scaletest.go index 5f0dc34bf68bc..7b0ffeacdb04a 100644 --- a/cli/exp_scaletest.go +++ b/cli/exp_scaletest.go @@ -105,7 +105,6 @@ func (s *scaletestTracingFlags) provider(ctx context.Context) (trace.TracerProvi tracerProvider, closeTracing, err := tracing.TracerProvider(ctx, scaletestTracerName, tracing.TracerOpts{ Default: s.traceEnable, - Coder: s.traceCoder, Honeycomb: s.traceHoneycombAPIKey, }) if err != nil { diff --git a/cli/root.go b/cli/root.go index 2da35c2f9832a..c8103540df31c 100644 --- a/cli/root.go +++ b/cli/root.go @@ -7,7 +7,6 @@ import ( "encoding/base64" "encoding/json" "errors" - "flag" "fmt" "io" "math/rand" @@ -436,10 +435,6 @@ func LoggerFromContext(ctx context.Context) (slog.Logger, bool) { return l, ok } -func isTest() bool { - return flag.Lookup("test.v") != nil -} - // RootCmd contains parameters and helpers useful to all commands. type RootCmd struct { clientURL *url.URL diff --git a/cli/server.go b/cli/server.go index ee6c5878aca27..589937001e04b 100644 --- a/cli/server.go +++ b/cli/server.go @@ -408,7 +408,7 @@ func (r *RootCmd) Server(newAPI func(context.Context, *coderd.Options) (*coderd. // which is caught by goleaks. defer http.DefaultClient.CloseIdleConnections() - tracerProvider, sqlDriver, closeTracing := ConfigureTraceProvider(ctx, logger, inv, vals) + tracerProvider, sqlDriver, closeTracing := ConfigureTraceProvider(ctx, logger, vals) defer func() { logger.Debug(ctx, "closing tracing") traceCloseErr := shutdownWithTimeout(closeTracing, 5*time.Second) @@ -2087,7 +2087,6 @@ func (s *HTTPServers) Close() { func ConfigureTraceProvider( ctx context.Context, logger slog.Logger, - inv *clibase.Invocation, cfg *codersdk.DeploymentValues, ) (trace.TracerProvider, string, func(context.Context) error) { var ( @@ -2095,19 +2094,10 @@ func ConfigureTraceProvider( closeTracing = func(context.Context) error { return nil } sqlDriver = "postgres" ) - // Coder tracing should be disabled if telemetry is disabled unless - // --telemetry-trace was explicitly provided. - shouldCoderTrace := cfg.Telemetry.Enable.Value() && !isTest() - // Only override if telemetryTraceEnable was specifically set. - // By default we want it to be controlled by telemetryEnable. - if inv.ParsedFlags().Changed("telemetry-trace") { - shouldCoderTrace = cfg.Telemetry.Trace.Value() - } - if cfg.Trace.Enable.Value() || shouldCoderTrace || cfg.Trace.HoneycombAPIKey != "" { + if cfg.Trace.Enable.Value() || cfg.Trace.DataDog.Value() || cfg.Trace.HoneycombAPIKey != "" { sdkTracerProvider, _closeTracing, err := tracing.TracerProvider(ctx, "coderd", tracing.TracerOpts{ Default: cfg.Trace.Enable.Value(), - Coder: shouldCoderTrace, DataDog: cfg.Trace.DataDog.Value(), Honeycomb: cfg.Trace.HoneycombAPIKey.String(), }) diff --git a/cli/testdata/coder_server_--help.golden b/cli/testdata/coder_server_--help.golden index f5912c2fed42d..e015027e12b46 100644 --- a/cli/testdata/coder_server_--help.golden +++ b/cli/testdata/coder_server_--help.golden @@ -415,11 +415,6 @@ telemetrywhen required by your organization's security policy. Whether telemetry is enabled or not. Coder collects anonymized usage data to help improve our product. - --telemetry-trace bool, $CODER_TELEMETRY_TRACE (default: false) - Whether Opentelemetry traces are sent to Coder. Coder collects - anonymized application tracing to help improve our product. Disabling - telemetry also disables this option. - USER QUIET HOURS SCHEDULE OPTIONS: Allow users to set quiet hours schedules each day for workspaces to avoid workspaces stopping during the day due to template max TTL. diff --git a/cli/testdata/server-config.yaml.golden b/cli/testdata/server-config.yaml.golden index 6e2f599224602..78ec76dfa8d04 100644 --- a/cli/testdata/server-config.yaml.golden +++ b/cli/testdata/server-config.yaml.golden @@ -334,11 +334,6 @@ telemetry: # help improve our product. # (default: false, type: bool) enable: false - # Whether Opentelemetry traces are sent to Coder. Coder collects anonymized - # application tracing to help improve our product. Disabling telemetry also - # disables this option. - # (default: false, type: bool) - trace: false # URL to send telemetry. # (default: https://telemetry.coder.com, type: url) url: https://telemetry.coder.com diff --git a/coderd/tracing/exporter.go b/coderd/tracing/exporter.go index 3fb0e722e5e48..37b50f09cfa7b 100644 --- a/coderd/tracing/exporter.go +++ b/coderd/tracing/exporter.go @@ -8,7 +8,6 @@ import ( "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/exporters/otlp/otlptrace" "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" - "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp" "go.opentelemetry.io/otel/propagation" "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" @@ -26,9 +25,6 @@ type TracerOpts struct { // Default exports to a backend configured by environment variables. See: // https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md Default bool - // Coder exports traces to Coder's public tracing ingest service and is used - // to improve the product. It is disabled when opting out of telemetry. - Coder bool // DataDog exports traces and profiles to the local DataDog daemon. DataDog bool // Exports traces to Honeycomb.io with the provided API key. @@ -88,14 +84,6 @@ func TracerProvider(ctx context.Context, service string, opts TracerOpts) (*sdkt closers = append(closers, exporter.Shutdown) tracerOpts = append(tracerOpts, sdktrace.WithBatcher(exporter)) } - if opts.Coder { - exporter, err := CoderExporter(ctx) - if err != nil { - return nil, nil, xerrors.Errorf("coder exporter: %w", err) - } - closers = append(closers, exporter.Shutdown) - tracerOpts = append(tracerOpts, sdktrace.WithBatcher(exporter)) - } if opts.Honeycomb != "" { exporter, err := HoneycombExporter(ctx, opts.Honeycomb) if err != nil { @@ -147,20 +135,6 @@ func DefaultExporter(ctx context.Context) (*otlptrace.Exporter, error) { return exporter, nil } -func CoderExporter(ctx context.Context) (*otlptrace.Exporter, error) { - opts := []otlptracehttp.Option{ - otlptracehttp.WithEndpoint("oss-otel-ingest-http.coder.app:443"), - otlptracehttp.WithCompression(otlptracehttp.GzipCompression), - } - - exporter, err := otlptrace.New(ctx, otlptracehttp.NewClient(opts...)) - if err != nil { - return nil, xerrors.Errorf("create otlp exporter: %w", err) - } - - return exporter, nil -} - func HoneycombExporter(ctx context.Context, apiKey string) (*otlptrace.Exporter, error) { opts := []otlptracegrpc.Option{ otlptracegrpc.WithEndpoint("api.honeycomb.io:443"), diff --git a/codersdk/deployment.go b/codersdk/deployment.go index 46fab26685082..214053b203203 100644 --- a/codersdk/deployment.go +++ b/codersdk/deployment.go @@ -1190,16 +1190,6 @@ when required by your organization's security policy.`, Group: &deploymentGroupTelemetry, YAML: "enable", }, - { - Name: "Telemetry Trace", - Description: "Whether Opentelemetry traces are sent to Coder. Coder collects anonymized application tracing to help improve our product. Disabling telemetry also disables this option.", - Flag: "telemetry-trace", - Env: "CODER_TELEMETRY_TRACE", - Default: strconv.FormatBool(flag.Lookup("test.v") == nil), - Value: &c.Telemetry.Trace, - Group: &deploymentGroupTelemetry, - YAML: "trace", - }, { Name: "Telemetry URL", Description: "URL to send telemetry.", diff --git a/docs/cli/server.md b/docs/cli/server.md index 47da792c0d5ea..76e8b84ebef70 100644 --- a/docs/cli/server.md +++ b/docs/cli/server.md @@ -967,17 +967,6 @@ Minimum supported version of TLS. Accepted values are "tls10", "tls11", "tls12" Whether telemetry is enabled or not. Coder collects anonymized usage data to help improve our product. -### --telemetry-trace - -| | | -| ----------- | ----------------------------------- | -| Type | bool | -| Environment | $CODER_TELEMETRY_TRACE | -| YAML | telemetry.trace | -| Default | true | - -Whether Opentelemetry traces are sent to Coder. Coder collects anonymized application tracing to help improve our product. Disabling telemetry also disables this option. - ### --trace | | | diff --git a/enterprise/cli/proxyserver.go b/enterprise/cli/proxyserver.go index b3608d1500faf..6829b155eb2fd 100644 --- a/enterprise/cli/proxyserver.go +++ b/enterprise/cli/proxyserver.go @@ -151,7 +151,7 @@ func (*RootCmd) proxyServer() *clibase.Cmd { defer http.DefaultClient.CloseIdleConnections() closers.Add(http.DefaultClient.CloseIdleConnections) - tracer, _, closeTracing := cli.ConfigureTraceProvider(ctx, logger, inv, cfg) + tracer, _, closeTracing := cli.ConfigureTraceProvider(ctx, logger, cfg) defer func() { logger.Debug(ctx, "closing tracing") traceCloseErr := shutdownWithTimeout(closeTracing, 5*time.Second) diff --git a/enterprise/cli/testdata/coder_server_--help.golden b/enterprise/cli/testdata/coder_server_--help.golden index 8ec2c0fd93207..3bc6766a94a1a 100644 --- a/enterprise/cli/testdata/coder_server_--help.golden +++ b/enterprise/cli/testdata/coder_server_--help.golden @@ -416,11 +416,6 @@ telemetrywhen required by your organization's security policy. Whether telemetry is enabled or not. Coder collects anonymized usage data to help improve our product. - --telemetry-trace bool, $CODER_TELEMETRY_TRACE (default: false) - Whether Opentelemetry traces are sent to Coder. Coder collects - anonymized application tracing to help improve our product. Disabling - telemetry also disables this option. - USER QUIET HOURS SCHEDULE OPTIONS: Allow users to set quiet hours schedules each day for workspaces to avoid workspaces stopping during the day due to template max TTL. diff --git a/go.mod b/go.mod index a1a609d89ce3f..603e9fb763290 100644 --- a/go.mod +++ b/go.mod @@ -165,7 +165,6 @@ require ( go.opentelemetry.io/otel v1.17.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.17.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.17.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.17.0 go.opentelemetry.io/otel/sdk v1.17.0 go.opentelemetry.io/otel/trace v1.17.0 go.uber.org/atomic v1.11.0 diff --git a/go.sum b/go.sum index 01d9736a6973b..50cfbe6e7997f 100644 --- a/go.sum +++ b/go.sum @@ -923,8 +923,6 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.17.0 h1:U5GYackKpVKlPrd/5gK go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.17.0/go.mod h1:aFsJfCEnLzEu9vRRAcUiB/cpRTbVsNdF3OHSPpdjxZQ= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.17.0 h1:iGeIsSYwpYSvh5UGzWrJfTDJvPjrXtxl3GUppj6IXQU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.17.0/go.mod h1:1j3H3G1SBYpZFti6OI4P0uRQCW20MXkG5v4UWXppLLE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.17.0 h1:kvWMtSUNVylLVrOE4WLUmBtgziYoCIYUNSpTYtMzVJI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.17.0/go.mod h1:SExUrRYIXhDgEKG4tkiQovd2HTaELiHUsuK08s5Nqx4= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.40.0 h1:hf7JSONqAuXT1PDYYlVhKNMPLe4060d+4RFREcv7X2c= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.17.0 h1:Ut6hgtYcASHwCzRHkXEtSsM251cXJPW+Z9DyLwEn6iI= go.opentelemetry.io/otel/metric v1.17.0 h1:iG6LGVz5Gh+IuO0jmgvpTB6YVrCGngi8QGm+pMd8Pdc=