Skip to content

Commit 79f535b

Browse files
committed
fix: disable telemetry without init issues
Signed-off-by: Sam Gammon <sam@elide.dev>
1 parent 72fc929 commit 79f535b

File tree

3 files changed

+18
-8
lines changed

3 files changed

+18
-8
lines changed

packages/cli/src/main/kotlin/elide/tool/cli/AbstractSubcommand.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import elide.runtime.core.PolyglotContext
4343
import elide.runtime.core.PolyglotEngine
4444
import elide.runtime.core.PolyglotEngineConfiguration
4545
import elide.runtime.telemetry.RunEvent
46+
import elide.runtime.telemetry.TelemetryConfig
4647
import elide.tool.cli.err.AbstractToolError
4748
import elide.tool.cli.options.CommonOptions
4849
import elide.tool.cli.options.TelemetryOptions
@@ -535,8 +536,11 @@ fun AbstractTool.EmbeddedToolError.render(logging: Logger, ctx: AbstractSubcomma
535536
}
536537

537538
// Send a telemetry event if configured.
538-
@Suppress("TooGenericExceptionCaught")
539+
@Suppress("TooGenericExceptionCaught", "KotlinConstantConditions")
539540
private fun sendRunEvent(start: TimeSource.Monotonic.ValueTimeMark) {
541+
if (!TelemetryConfig.ENABLED) {
542+
return
543+
}
540544
try {
541545
telemetry.sendRunEvent(
542546
mode = RunEvent.ExecutionMode.Run,
@@ -580,9 +584,6 @@ fun AbstractTool.EmbeddedToolError.render(logging: Logger, ctx: AbstractSubcomma
580584
override suspend fun Context.invoke(state: CommandState): CommandResult = use {
581585
val start = TimeSource.Monotonic.markNow()
582586

583-
// if the user has disabled telemetry in any way, we need to neuter it early
584-
telemetry.manager().disableTelemetry()
585-
586587
// allow the subclass to register its own shared resources
587588
sharedResources.addAll(initialize())
588589

packages/telemetry/api/telemetry.api

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,14 @@ public final class elide/runtime/telemetry/RunEvent$ExecutionMode : java/lang/En
165165
public static fun values ()[Lelide/runtime/telemetry/RunEvent$ExecutionMode;
166166
}
167167

168+
public final class elide/runtime/telemetry/TelemetryConfig {
169+
public static final field ENABLED Z
170+
public static final field ENDPOINT Ljava/lang/String;
171+
public static final field HOSTNAME Ljava/lang/String;
172+
public static final field INSTANCE Lelide/runtime/telemetry/TelemetryConfig;
173+
public static final field PATH Ljava/lang/String;
174+
}
175+
168176
public synthetic class elide/runtime/telemetry/client/$DefaultTelemetryClient$Definition : io/micronaut/context/AbstractInitializableBeanDefinitionAndReference {
169177
public static final field $ANNOTATION_METADATA Lio/micronaut/core/annotation/AnnotationMetadata;
170178
public fun <init> ()V

packages/telemetry/src/main/kotlin/elide/runtime/telemetry/TelemetryConfig.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ package elide.runtime.telemetry
1515
/**
1616
* Provides access to static telemetry service configuration.
1717
*/
18-
internal object TelemetryConfig {
19-
const val HOSTNAME: String = "telemetry.elide.dev"
20-
const val PATH: String = "/v1/event:submit"
21-
const val ENDPOINT: String = "https://$HOSTNAME$PATH"
18+
public object TelemetryConfig {
19+
public const val ENABLED: Boolean = false
20+
public const val HOSTNAME: String = "telemetry.elide.dev"
21+
public const val PATH: String = "/v1/event:submit"
22+
public const val ENDPOINT: String = "https://$HOSTNAME$PATH"
2223
}

0 commit comments

Comments
 (0)