mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-10-01 19:02:13 +07:00
[fus] Isolate failing state collectors from others
GitOrigin-RevId: a816bbd8416ebd2d067e56ca6415712229b6c10d
This commit is contained in:
committed by
intellij-monorepo-bot
parent
99a65e2167
commit
e1b081a0e7
+8
-6
@@ -61,7 +61,7 @@ class FUStateUsagesLogger private constructor(coroutineScope: CoroutineScope) :
|
||||
project: Project?,
|
||||
recorderLoggers: MutableMap<String, StatisticsEventLogger>,
|
||||
usagesCollector: FeatureUsagesCollector,
|
||||
metrics: Set<MetricEvent>,
|
||||
metrics: suspend () -> Set<MetricEvent>,
|
||||
) {
|
||||
var group = usagesCollector.group
|
||||
if (group == null) {
|
||||
@@ -77,7 +77,9 @@ class FUStateUsagesLogger private constructor(coroutineScope: CoroutineScope) :
|
||||
}
|
||||
|
||||
try {
|
||||
logUsagesAsStateEvents(project = project, group = group, metrics = metrics, logger = logger)
|
||||
val data = metrics.invoke()
|
||||
|
||||
logUsagesAsStateEvents(project = project, group = group, metrics = data, logger = logger)
|
||||
}
|
||||
catch (e: Throwable) {
|
||||
if (project != null && project.isDisposed) {
|
||||
@@ -87,6 +89,8 @@ class FUStateUsagesLogger private constructor(coroutineScope: CoroutineScope) :
|
||||
val data = FeatureUsageData(recorder).addProject(project)
|
||||
@Suppress("UnstableApiUsage")
|
||||
logger.logAsync(group, EventLogSystemEvents.STATE_COLLECTOR_FAILED, data.build(), true).asDeferred().join()
|
||||
|
||||
LOG.error(e)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -182,7 +186,7 @@ class FUStateUsagesLogger private constructor(coroutineScope: CoroutineScope) :
|
||||
project = null,
|
||||
recorderLoggers = recorderLoggers,
|
||||
usagesCollector = usagesCollector,
|
||||
metrics = usagesCollector.getMetricsAsync(),
|
||||
metrics = usagesCollector::getMetricsAsync,
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -225,13 +229,11 @@ class ProjectFUStateUsagesLogger(
|
||||
}
|
||||
|
||||
launch {
|
||||
val metrics = usagesCollector.collect(project)
|
||||
|
||||
FUStateUsagesLogger.logMetricsOrError(
|
||||
project = project,
|
||||
recorderLoggers = recorderLoggers,
|
||||
usagesCollector = usagesCollector,
|
||||
metrics = metrics,
|
||||
metrics = { usagesCollector.collect(project) },
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user