mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-13 15:52:01 +07:00
Metrics Collector
This modules provides OpenTelemetry metrics collection.
There are 2 types of OpenTelemetry metrics that can be collected: spans
and meters.
Spans are exported to opentelemetry.json file (usually located in log directory) by registered span exporters in com.intellij.platform.diagnostic.telemetry.TelemetryManager.
To enable span exports provide system property idea.diagnostic.opentelemetry.file (basically it should be ide_log_directory/opentelemetry.json)
Meters will be exported to *.csv files in log directory by meter exporters (also via TelemetryManager).
- Spans:
To get reported spans usecom.intellij.tools.ide.metrics.collector.OpenTelemetrySpanCollectorand pass the span name you're interested in.
Default span name for all commands from performance test isperformance_test.
All the child spans under your provided span will be collected too.
To visualize spans you can use Jaeger.
- Meters:
To get reported meters use
com.intellij.tools.ide.metrics.collector.OpenTelemetryJsonMeterCollector.
You can provide filter for metrics to narrow down scope of collected metrics.
Also, you should provide metrics selection strategy (SUM, LATEST, etc.), since OpenTelemetry reports, for example, counters and gauges in different manner.
Metrics publishing
You may create/use metrics publisher similar to Starter - com.intellij.tools.ide.metrics.collector.starter.publishing.MetricsPublisher.
Adding dependency
repositories {
maven { url = "https://cache-redirector.jetbrains.com/maven-central" }
maven { url = "https://cache-redirector.jetbrains.com/intellij-dependencies" }
maven { url = "https://www.jetbrains.com/intellij-repository/releases" }
maven { url = "https://www.jetbrains.com/intellij-repository/snapshots" }
maven { url = "https://www.jetbrains.com/intellij-repository/nightly" }
}
testImplementation("com.jetbrains.intellij.tools:ide-metrics-collector:LATEST-EAP-SNAPSHOT")