mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-13 15:52:01 +07:00
[starter] Fix naming of SpanFilter to make it more clear and add a new filter
GitOrigin-RevId: 35c7627da1ceb34a088d29ef85e2e8cab2460f14
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d41f745ce8
commit
7239413e00
@@ -19,14 +19,23 @@ class SpanFilter internal constructor(
|
||||
return SpanFilter(filter = { spanData -> spanData.name == name }, rawFilter = { it.operationName == name })
|
||||
}
|
||||
|
||||
fun containsNameIn(names: List<String>): SpanFilter {
|
||||
fun nameInList(names: List<String>): SpanFilter {
|
||||
return SpanFilter(filter = { names.contains(it.name) }, rawFilter = { names.contains(it.operationName) })
|
||||
}
|
||||
|
||||
fun containsNameIn(vararg names: String): SpanFilter {
|
||||
return SpanFilter(filter = { names.contains(it.name) }, rawFilter = { names.contains(it.operationName) })
|
||||
fun nameInList(vararg names: String): SpanFilter {
|
||||
return nameInList(names.toList())
|
||||
}
|
||||
|
||||
fun nameContainsAny(names: List<String>): SpanFilter {
|
||||
return SpanFilter(filter = { span -> names.any { span.name.contains(it) } }, rawFilter = { span -> names.any { span.operationName.contains(it) } })
|
||||
}
|
||||
|
||||
fun nameContainsAny(vararg names: String): SpanFilter {
|
||||
return nameContainsAny(names.toList())
|
||||
}
|
||||
|
||||
|
||||
fun nameContains(substring: String): SpanFilter {
|
||||
return SpanFilter(filter = { it.name.contains(substring) }, rawFilter = { it.operationName.contains(substring) })
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ private val logger = logger<OpentelemetrySpanJsonParser>()
|
||||
*/
|
||||
fun getMetricsBasedOnDiffBetweenSpans(name: String, file: Path, fromSpanName: String, toSpanName: String): List<Metric> {
|
||||
val betweenSpanProcessor = SpanInfoProcessor()
|
||||
val spanElements = OpentelemetrySpanJsonParser(SpanFilter.containsNameIn(listOf(fromSpanName, toSpanName))).getSpanElements(file)
|
||||
val spanElements = OpentelemetrySpanJsonParser(SpanFilter.nameInList(listOf(fromSpanName, toSpanName))).getSpanElements(file)
|
||||
val spanToMetricMap = spanElements
|
||||
.mapNotNull { betweenSpanProcessor.process(it) }
|
||||
.groupBy { it.name }
|
||||
@@ -78,7 +78,7 @@ fun getStartupTimestampMs(file: Path): Long {
|
||||
fun getMetricsForStartup(file: Path): List<Metric> {
|
||||
val spansToPublish = listOf("bootstrap", "startApplication", "ProjectImpl container")
|
||||
val spansSuffixesToIgnore = listOf(": scheduled", ": completing")
|
||||
val filter = SpanFilter.containsNameIn(spansToPublish)
|
||||
val filter = SpanFilter.nameInList(spansToPublish)
|
||||
val childFilter = SpanFilter(
|
||||
filter = { span -> spansSuffixesToIgnore.none { span.name.endsWith(it) } },
|
||||
rawFilter = { span -> spansSuffixesToIgnore.none { span.operationName.endsWith(it) } },
|
||||
|
||||
@@ -49,7 +49,7 @@ class OpenTelemetrySpanExtractionTest {
|
||||
OpenTelemetrySpanCollector(SpanFilter.nameEquals(spanName)).collect(file)
|
||||
}.flatten()
|
||||
|
||||
val result = OpenTelemetrySpanCollector(SpanFilter.containsNameIn(spanNames))
|
||||
val result = OpenTelemetrySpanCollector(SpanFilter.nameInList(spanNames))
|
||||
.collect(file)
|
||||
|
||||
result.shouldContainExactlyInAnyOrder(expected)
|
||||
|
||||
Reference in New Issue
Block a user