mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Index diagnostic: use system tyme zone for times in the diagnostic reports.
GitOrigin-RevId: ca77484bd2d7b40f02aa8b9c18871b522a8e9a96
This commit is contained in:
committed by
intellij-monorepo-bot
parent
e91501eaa4
commit
c02ca05a5e
@@ -2,9 +2,7 @@
|
||||
package com.intellij.util.indexing.diagnostic.dto
|
||||
|
||||
import com.intellij.util.indexing.diagnostic.*
|
||||
import com.intellij.util.text.DateFormatUtil
|
||||
import java.time.Duration
|
||||
import java.time.Instant
|
||||
|
||||
fun TimeNano.toMillis(): TimeMillis = this / 1_000_000
|
||||
|
||||
@@ -12,8 +10,6 @@ fun TimeNano.toMillis(): TimeMillis = this / 1_000_000
|
||||
// Can be used to skip int value from JSON if it is equal to 0 (to not pollute the JSON report).
|
||||
typealias PositiveInt = Int?
|
||||
|
||||
typealias PresentableTime = String
|
||||
|
||||
fun Int.toPositiveInt() = takeIf { it > 0 }
|
||||
|
||||
fun FileProviderIndexStatistics.toJson(): JsonFileProviderIndexStatistics {
|
||||
@@ -71,23 +67,20 @@ private fun FileProviderIndexStatistics.aggregateStatsPerIndexer(): List<JsonFil
|
||||
}
|
||||
}
|
||||
|
||||
private fun Instant.toPresentableTime(): PresentableTime =
|
||||
DateFormatUtil.getIso8601Format().format(this.toEpochMilli())
|
||||
|
||||
fun ProjectIndexingHistory.IndexingTimes.toJson() =
|
||||
JsonProjectIndexingHistoryTimes(
|
||||
JsonDuration(Duration.between(indexingStart, indexingEnd).toNanos()),
|
||||
JsonDuration(Duration.between(scanFilesStart, scanFilesEnd).toNanos()),
|
||||
JsonDuration(Duration.between(pushPropertiesStart, pushPropertiesEnd).toNanos()),
|
||||
JsonDuration(Duration.between(indexExtensionsStart, indexExtensionsEnd).toNanos()),
|
||||
indexingStart!!.toPresentableTime(),
|
||||
indexingEnd!!.toPresentableTime(),
|
||||
pushPropertiesStart!!.toPresentableTime(),
|
||||
pushPropertiesEnd!!.toPresentableTime(),
|
||||
indexExtensionsStart!!.toPresentableTime(),
|
||||
indexExtensionsEnd!!.toPresentableTime(),
|
||||
scanFilesStart!!.toPresentableTime(),
|
||||
scanFilesEnd!!.toPresentableTime()
|
||||
JsonDateTime(pushPropertiesStart!!),
|
||||
JsonDateTime(pushPropertiesEnd!!),
|
||||
JsonDateTime(scanFilesStart!!),
|
||||
JsonDateTime(scanFilesEnd!!),
|
||||
JsonDateTime(indexExtensionsStart!!),
|
||||
JsonDateTime(indexExtensionsEnd!!),
|
||||
JsonDateTime(indexingStart!!),
|
||||
JsonDateTime(indexingEnd!!)
|
||||
)
|
||||
|
||||
private fun calculatePercentages(part: Long, total: Long): JsonPercentages =
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.util.indexing.diagnostic.dto
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.fasterxml.jackson.databind.JsonSerializer
|
||||
import com.fasterxml.jackson.databind.SerializerProvider
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize
|
||||
import java.time.Instant
|
||||
import java.time.ZoneId
|
||||
import java.time.ZonedDateTime
|
||||
import java.time.format.DateTimeFormatter
|
||||
|
||||
@JsonSerialize(using = JsonDateTime.Companion::class)
|
||||
data class JsonDateTime(val instant: Instant) {
|
||||
companion object : JsonSerializer<JsonDateTime>() {
|
||||
override fun serialize(value: JsonDateTime, gen: JsonGenerator, serializers: SerializerProvider?) {
|
||||
gen.writeString(value.presentableDateTime())
|
||||
}
|
||||
}
|
||||
|
||||
fun presentableDateTime(): String =
|
||||
ZonedDateTime.ofInstant(instant, ZoneId.systemDefault()).format(DateTimeFormatter.RFC_1123_DATE_TIME)
|
||||
}
|
||||
+5
-10
@@ -3,15 +3,13 @@ package com.intellij.util.indexing.diagnostic.dto
|
||||
|
||||
import com.intellij.openapi.application.ApplicationInfo
|
||||
import com.intellij.openapi.util.SystemInfo
|
||||
import java.time.ZoneId
|
||||
import java.time.ZonedDateTime
|
||||
import java.time.format.DateTimeFormatter
|
||||
import java.time.Instant
|
||||
|
||||
data class JsonIndexDiagnosticAppInfo(
|
||||
val build: String,
|
||||
val buildDate: String,
|
||||
val buildDate: JsonDateTime,
|
||||
val productCode: String,
|
||||
val generated: String,
|
||||
val generated: JsonDateTime,
|
||||
val os: String,
|
||||
val runtime: String
|
||||
) {
|
||||
@@ -20,12 +18,9 @@ data class JsonIndexDiagnosticAppInfo(
|
||||
val appInfo = ApplicationInfo.getInstance()
|
||||
return JsonIndexDiagnosticAppInfo(
|
||||
build = appInfo.build.asStringWithoutProductCode(),
|
||||
buildDate = ZonedDateTime.ofInstant(
|
||||
appInfo.buildDate.toInstant(), ZoneId.systemDefault()
|
||||
).format(DateTimeFormatter.RFC_1123_DATE_TIME),
|
||||
buildDate = JsonDateTime(appInfo.buildDate.toInstant()),
|
||||
productCode = appInfo.build.productCode,
|
||||
generated = ZonedDateTime.now().format(
|
||||
DateTimeFormatter.RFC_1123_DATE_TIME),
|
||||
generated = JsonDateTime(Instant.now()),
|
||||
os = SystemInfo.getOsNameAndVersion(),
|
||||
runtime = SystemInfo.JAVA_VENDOR + " " + SystemInfo.JAVA_VERSION + " " + SystemInfo.JAVA_RUNTIME_VERSION
|
||||
)
|
||||
|
||||
+8
-8
@@ -8,12 +8,12 @@ data class JsonProjectIndexingHistoryTimes(
|
||||
val pushPropertiesTime: JsonDuration,
|
||||
val indexExtensionsTime: JsonDuration,
|
||||
|
||||
val indexingStart: PresentableTime,
|
||||
val indexingEnd: PresentableTime,
|
||||
val pushPropertiesStart: PresentableTime,
|
||||
val pushPropertiesEnd: PresentableTime,
|
||||
val indexExtensionsStart: PresentableTime,
|
||||
val indexExtensionsEnd: PresentableTime,
|
||||
val scanFilesStart: PresentableTime,
|
||||
val scanFilesEnd: PresentableTime
|
||||
val pushPropertiesStart: JsonDateTime,
|
||||
val pushPropertiesEnd: JsonDateTime,
|
||||
val scanFilesStart: JsonDateTime,
|
||||
val scanFilesEnd: JsonDateTime,
|
||||
val indexExtensionsStart: JsonDateTime,
|
||||
val indexExtensionsEnd: JsonDateTime,
|
||||
val indexingStart: JsonDateTime,
|
||||
val indexingEnd: JsonDateTime
|
||||
)
|
||||
Reference in New Issue
Block a user