IJPL-178297 Eel/IJent: enable tracing of MultiRoutingFileSystem only in benchmarks

The queue inside `com.intellij.platform.diagnostic.telemetry.exporters.BatchSpanProcessor` is unlimited, so tracing of file system request can require an additional couple of gigabytes RAM.

This commit disables the tracing of MultiRoutingFileSystem in production and enables it explicitly in benchmark tests.

GitOrigin-RevId: 73b91162642dec57ecfe9c758df5854cd4ed531f
This commit is contained in:
Vladimir Lagunov
2025-02-17 15:27:23 +01:00
committed by intellij-monorepo-bot
parent b5cac17266
commit c522eb0f2b

View File

@@ -1,15 +1,16 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.platform.ijent.community.impl.nio.telemetry
import com.intellij.platform.diagnostic.telemetry.PlatformMetrics
import com.intellij.platform.diagnostic.telemetry.Scope
import com.intellij.platform.diagnostic.telemetry.TelemetryManager
import com.intellij.platform.diagnostic.telemetry.TracerLevel
import com.intellij.platform.diagnostic.telemetry.helpers.use
import java.util.concurrent.atomic.AtomicLong
private val eventsCounter: AtomicLong = AtomicLong()
internal val ijentMetricsScope = Scope("ijent", PlatformMetrics)
internal val ijentMetricsScope = Scope("ijent", PlatformMetrics, verbose = true)
internal val ijentTracer by lazy { TelemetryManager.getTracer(ijentMetricsScope) }
internal val ijentMeter = TelemetryManager.getMeter(ijentMetricsScope)
@@ -57,7 +58,7 @@ object Measurer {
}
internal inline fun <T> Measurer.measure(operation: Measurer.Operation, body: () -> T): T {
return ijentTracer.spanBuilder("ijent.${operation.name}").use {
return ijentTracer.spanBuilder("ijent.${operation.name}", TracerLevel.DETAILED).use {
eventsCounter.incrementAndGet()
body()
}