[fus] Add toString() for EventIds to help with debug

GitOrigin-RevId: 9ad4c679e0933411bedc61ccb2e8a0cc93c0c804
This commit is contained in:
Yuriy Artamonov
2024-05-14 14:39:56 +02:00
committed by intellij-monorepo-bot
parent 0122b9f4e0
commit 4e26888d95
4 changed files with 35 additions and 15 deletions

View File

@@ -87,6 +87,7 @@ f:com.intellij.internal.statistic.eventLog.EventLogGroup
- f:registerVarargEvent(java.lang.String,java.lang.String,com.intellij.internal.statistic.eventLog.events.EventField[]):com.intellij.internal.statistic.eventLog.events.VarargEventId
- f:registerVarargEvent(java.lang.String,com.intellij.internal.statistic.eventLog.events.EventField[]):com.intellij.internal.statistic.eventLog.events.VarargEventId
- bs:registerVarargEvent$default(com.intellij.internal.statistic.eventLog.EventLogGroup,java.lang.String,java.lang.String,com.intellij.internal.statistic.eventLog.events.EventField[],I,java.lang.Object):com.intellij.internal.statistic.eventLog.events.VarargEventId
- toString():java.lang.String
a:com.intellij.internal.statistic.eventLog.EventLogRecorderConfigOptionsListener
- com.intellij.internal.statistic.eventLog.EventLogConfigOptionsListener
- p:<init>(java.lang.String):V

View File

@@ -10,8 +10,6 @@ import org.jetbrains.annotations.NonNls
* - Prefer a bigger group with many (related) event types to many small groups of 1-2 events each
* - Prefer shorter group names; avoid common prefixes (such as "statistics.")
*/
class EventLogGroup(@NonNls @EventIdName val id: String,
val version: Int,
val recorder: String,
@@ -33,7 +31,7 @@ class EventLogGroup(@NonNls @EventIdName val id: String,
}
/**
* New style API to record IDE events (e.g. invoked action, opened dialog) or state.
* New style API to record IDE events (e.g., invoked action, opened dialog) or state.
*
* For events with more than 3 fields use EventLogGroup.registerVarargEvent
*
@@ -44,7 +42,7 @@ class EventLogGroup(@NonNls @EventIdName val id: String,
* - Otherwise, create a YT issue in FUS project with group data scheme and descriptions to register it on the statistics metadata server
*
* To test collector:
* - If group is not registered on the server, add it to events test scheme with "Add Group to Events Test Scheme" action.
* - If a group is not registered on the server, add it to an events test scheme with "Add Group to Events Test Scheme" action.
* (com.intellij.internal.statistic.actions.scheme.AddGroupToTestSchemeAction)
*
* @see registerVarargEvent
@@ -128,4 +126,8 @@ class EventLogGroup(@NonNls @EventIdName val id: String,
if (EventLogSystemEvents.SYSTEM_EVENTS.contains(eventId)) return true
return registeredEventIds.isEmpty() || eventId in registeredEventIds
}
override fun toString(): String {
return "EventLogGroup(id='$id')"
}
}

View File

@@ -12,7 +12,7 @@ import org.jetbrains.annotations.NonNls
import java.security.InvalidParameterException
import kotlin.reflect.KProperty
// region Base low level fields
// region Base low-level fields
sealed class EventField<T> {
abstract val name: String
@@ -31,7 +31,7 @@ abstract class PrimitiveEventField<T>(@NonNls override val description: String?
abstract val validationRule: List<String>
}
abstract class ListEventField<T>() : EventField<List<T>>() {
abstract class ListEventField<T> : EventField<List<T>>() {
abstract val validationRule: List<String>
}
@@ -39,7 +39,7 @@ data class EventPair<T>(val field: EventField<T>, val data: T) {
fun addData(featureUsageData: FeatureUsageData): Unit = field.addData(featureUsageData, data)
}
// endregion Base low level fields
// endregion Base low-level fields
abstract class StringEventField(override val name: String) : PrimitiveEventField<String?>() {
override fun addData(fuData: FeatureUsageData, value: String?) {
@@ -292,7 +292,6 @@ data class AnonymizedListEventField @JvmOverloads constructor(@NonNls @EventFiel
get() = listOf("{regexp#hash}")
}
internal data class ShortAnonymizedEventField(@NonNls @EventFieldName override val name: String,
@NonNls override val description: String? = null) : PrimitiveEventField<String?>() {
override val shouldBeAnonymized: Boolean = true
@@ -420,7 +419,7 @@ abstract class StringListEventField(@NonNls @EventFieldName override val name: S
}
}
val classCheckAndTransform: (Class<*>) -> String = {
private val classCheckAndTransform: (Class<*>) -> String = {
if (getPluginInfo(it).isSafeToReport()) StringUtil.substringBeforeLast(it.name, "$\$Lambda$", true) else "third.party"
}
@@ -441,8 +440,8 @@ data class ClassEventField @JvmOverloads constructor(@NonNls @EventFieldName ove
data class ClassListEventField @JvmOverloads constructor(override val name: String,
@NonNls override val description: String? = null) : ListEventField<Class<*>?>() {
override fun addData(fuData: FeatureUsageData, values: List<Class<*>?>) {
val classList = values.filterNotNull()
override fun addData(fuData: FeatureUsageData, value: List<Class<*>?>) {
val classList = value.filterNotNull()
if (classList.isEmpty()) {
return
}
@@ -531,6 +530,10 @@ class ObjectEventData(private val values: List<EventPair<*>>) {
return values == other.values
}
override fun hashCode(): Int {
return values.hashCode()
}
}
class EventFieldDelegate<T>(val eventField: EventField<T>) {
@@ -553,7 +556,6 @@ class EventFieldDelegate<T>(val eventField: EventField<T>) {
}
}
class ObjectListEventField @JvmOverloads constructor(@NonNls @EventFieldName override val name: String,
vararg val fields: EventField<*>,
@NonNls override val description: String? = null) : EventField<List<ObjectEventData>>() {

View File

@@ -6,7 +6,6 @@ import com.intellij.internal.statistic.eventLog.EventLogGroup
import com.intellij.internal.statistic.eventLog.FeatureUsageData
import com.intellij.internal.statistic.eventLog.StatisticsEventLogProviderUtil
import com.intellij.internal.statistic.eventLog.StatisticsEventLogger
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.project.Project
import org.jetbrains.annotations.NonNls
import java.util.function.Consumer
@@ -39,6 +38,10 @@ class EventId(
}
override fun getFields(): List<EventField<*>> = emptyList()
override fun toString(): String {
return "EventId(eventId='$eventId')"
}
}
class EventId1<in T>(
@@ -67,6 +70,10 @@ class EventId1<in T>(
}
override fun getFields(): List<EventField<*>> = listOf(field1)
override fun toString(): String {
return "EventId1(eventId='$eventId')"
}
}
class EventId2<in T1, in T2>(
@@ -97,6 +104,10 @@ class EventId2<in T1, in T2>(
}
override fun getFields(): List<EventField<*>> = listOf(field1, field2)
override fun toString(): String {
return "EventId2(eventId='$eventId')"
}
}
class EventId3<in T1, in T2, in T3>(
@@ -129,6 +140,10 @@ class EventId3<in T1, in T2, in T3>(
}
override fun getFields(): List<EventField<*>> = listOf(field1, field2, field3)
override fun toString(): String {
return "EventId3(eventId='$eventId')"
}
}
class EventDataCollector : ArrayList<EventPair<*>>() {
@@ -208,7 +223,7 @@ class VarargEventId internal constructor(
override fun getFields(): List<EventField<*>> = fields.toList()
companion object {
val LOG = Logger.getInstance(VarargEventId::class.java)
override fun toString(): String {
return "VarargEventId(eventId='$eventId')"
}
}