From c522eb0f2bcd2e40aca704bbcfeafd9a8b17347d Mon Sep 17 00:00:00 2001 From: Vladimir Lagunov Date: Mon, 17 Feb 2025 15:27:23 +0100 Subject: [PATCH] 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 --- .../ijent/community/impl/nio/telemetry/Measurer.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/platform/ijent/impl/src/com/intellij/platform/ijent/community/impl/nio/telemetry/Measurer.kt b/platform/ijent/impl/src/com/intellij/platform/ijent/community/impl/nio/telemetry/Measurer.kt index a521c08dabd0..a60cae6a10d2 100644 --- a/platform/ijent/impl/src/com/intellij/platform/ijent/community/impl/nio/telemetry/Measurer.kt +++ b/platform/ijent/impl/src/com/intellij/platform/ijent/community/impl/nio/telemetry/Measurer.kt @@ -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 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() }