mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
[starter] Apply transform also to JSON meter
GitOrigin-RevId: 1d4fdd1ba5289338612c1c86acaab1d82bca8645
This commit is contained in:
committed by
intellij-monorepo-bot
parent
4e4a60f849
commit
c9782abeaa
@@ -26,16 +26,16 @@ open class OpenTelemetryCsvMeterCollector(
|
||||
return metricsCsvFiles
|
||||
}
|
||||
|
||||
fun collect(logsDirPath: Path, transform: (Map.Entry<String, LongPointData>) -> Pair<String, Int>): List<PerformanceMetrics.Metric> {
|
||||
fun collect(logsDirPath: Path, transform: (String, Long) -> Pair<String, Int>): List<PerformanceMetrics.Metric> {
|
||||
val telemetryMetrics: Map<String, LongPointData> =
|
||||
MetricsImporterUtils.fromCsvFile(getOpenTelemetryCsvReportFiles(logsDirPath))
|
||||
.filter(metersFilter)
|
||||
.map { it.key to metricsSelectionStrategy.selectMetric(it.value) }.toMap()
|
||||
|
||||
return telemetryMetrics.map { transform(it) }.map { PerformanceMetrics.newDuration(name = it.first, durationMillis = it.second) }
|
||||
return telemetryMetrics.map { transform(it.key, it.value.value) }.map { PerformanceMetrics.newDuration(name = it.first, durationMillis = it.second) }
|
||||
}
|
||||
|
||||
override fun collect(logsDirPath: Path): List<PerformanceMetrics.Metric> {
|
||||
return collect(logsDirPath) { it.key to it.value.value.toInt() }
|
||||
return collect(logsDirPath) { name, value -> name to value.toInt() }
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@ import kotlin.io.path.name
|
||||
open class OpenTelemetryJsonMeterCollector(val metricsSelectionStrategy: MetricsSelectionStrategy,
|
||||
val meterFilter: (MetricData) -> Boolean) : TelemetryMetricsCollector {
|
||||
|
||||
fun collect(logsDirPath: Path, transform: (Map. Entry<String, LongPointData>) -> Pair<String, Int>): List<PerformanceMetrics.Metric> {
|
||||
fun collect(logsDirPath: Path, transform: (String, Long) -> Pair<String, Int>): List<PerformanceMetrics.Metric> {
|
||||
val metricsFiles = logsDirPath.listDirectoryEntries("*.json").filter { it.name.startsWith("open-telemetry-meter") }
|
||||
|
||||
// fallback to the collecting meters from the .csv files for older IDEs versions (where meters aren't exported to JSON files)
|
||||
@@ -60,12 +60,12 @@ open class OpenTelemetryJsonMeterCollector(val metricsSelectionStrategy: Metrics
|
||||
MetricDataType.DOUBLE_GAUGE -> DoubleGaugeToMetricConverter()
|
||||
MetricDataType.HISTOGRAM -> DoubleHistogramMeterToMetricConverter()
|
||||
else -> TODO("Type ${it.type} isn't supported yet")
|
||||
}.convert(it)
|
||||
}.convert(it, transform)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun collect(logsDirPath: Path): List<PerformanceMetrics.Metric> {
|
||||
return collect(logsDirPath) { it.key to it.value.value.toInt() }
|
||||
return collect(logsDirPath) { name, value -> name to value.toInt() }
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,8 @@ import com.intellij.tools.ide.metrics.collector.metrics.PerformanceMetrics
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData
|
||||
|
||||
class DoubleCounterToMetricConverter : MeterToMetricConverter {
|
||||
override fun convert(metricData: MetricData): List<PerformanceMetrics.Metric> {
|
||||
return listOf(PerformanceMetrics.newDuration(metricData.name, metricData.doubleSumData.points.first().value.toInt()))
|
||||
override fun convert(metricData: MetricData, transform: (String, Long) -> Pair<String, Int>): List<PerformanceMetrics.Metric> {
|
||||
val metric = transform(metricData.name, metricData.doubleSumData.points.first().value.toLong())
|
||||
return listOf(PerformanceMetrics.newDuration(metric.first, metric.second))
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,8 @@ import com.intellij.tools.ide.metrics.collector.metrics.PerformanceMetrics
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData
|
||||
|
||||
class DoubleGaugeToMetricConverter : MeterToMetricConverter {
|
||||
override fun convert(metricData: MetricData): List<PerformanceMetrics.Metric> {
|
||||
return listOf(PerformanceMetrics.newDuration(metricData.name, metricData.doubleGaugeData.points.first().value.toInt()))
|
||||
override fun convert(metricData: MetricData, transform: (String, Long) -> Pair<String, Int>): List<PerformanceMetrics.Metric> {
|
||||
val metric = transform(metricData.name, metricData.doubleGaugeData.points.first().value.toLong())
|
||||
return listOf(PerformanceMetrics.newDuration(metric.first, metric.second))
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,7 @@ class DoubleHistogramMeterToMetricConverter : MeterToMetricConverter {
|
||||
.removeSuffix(".")
|
||||
}
|
||||
|
||||
override fun convert(metricData: MetricData): List<PerformanceMetrics.Metric> {
|
||||
override fun convert(metricData: MetricData, transform: (String, Long) -> Pair<String, Int>): List<PerformanceMetrics.Metric> {
|
||||
val dataPoint: HistogramPointData = metricData.histogramData.points.first()
|
||||
|
||||
val minMetric = PerformanceMetrics.newDuration(metricData.getMetricName("min"),
|
||||
|
||||
@@ -4,7 +4,8 @@ import com.intellij.tools.ide.metrics.collector.metrics.PerformanceMetrics
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData
|
||||
|
||||
class LongCounterToMetricConverter : MeterToMetricConverter {
|
||||
override fun convert(metricData: MetricData): List<PerformanceMetrics.Metric> {
|
||||
return listOf(PerformanceMetrics.newDuration(metricData.name, metricData.longSumData.points.first().value.toInt()))
|
||||
override fun convert(metricData: MetricData, transform: (String, Long) -> Pair<String, Int>): List<PerformanceMetrics.Metric> {
|
||||
val metric = transform(metricData.name, metricData.longSumData.points.first().value)
|
||||
return listOf(PerformanceMetrics.newDuration(metric.first, metric.second))
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,8 @@ import com.intellij.tools.ide.metrics.collector.metrics.PerformanceMetrics
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData
|
||||
|
||||
class LongGaugeToMetricConverter : MeterToMetricConverter {
|
||||
override fun convert(metricData: MetricData): List<PerformanceMetrics.Metric> {
|
||||
return listOf(PerformanceMetrics.newDuration(metricData.name, metricData.longGaugeData.points.first().value.toInt()))
|
||||
override fun convert(metricData: MetricData, transform: (String, Long) -> Pair<String, Int>): List<PerformanceMetrics.Metric> {
|
||||
val metric = transform(metricData.name, metricData.longGaugeData.points.first().value)
|
||||
return listOf(PerformanceMetrics.newDuration(metric.first, metric.second))
|
||||
}
|
||||
}
|
||||
@@ -4,5 +4,5 @@ import com.intellij.tools.ide.metrics.collector.metrics.PerformanceMetrics
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData
|
||||
|
||||
interface MeterToMetricConverter {
|
||||
fun convert(metricData: MetricData): List<PerformanceMetrics.Metric>
|
||||
fun convert(metricData: MetricData, transform: (String, Long) -> Pair<String, Int>): List<PerformanceMetrics.Metric>
|
||||
}
|
||||
Reference in New Issue
Block a user