mirror of
https://github.com/ProtonMail/protoncore_android.git
synced 2026-05-15 09:50:41 +00:00
chore(observability): Add account type for signup observability metrics.
This commit is contained in:
@@ -77,7 +77,7 @@ class PerformLoginTest {
|
||||
tested.invoke(
|
||||
username = "test-username",
|
||||
password = "encrypted-test-password",
|
||||
loginMetricData = { SignupLoginTotal(it.toHttpApiStatus()) }
|
||||
loginMetricData = { SignupLoginTotal(it.toHttpApiStatus(), SignupLoginTotal.Type.internal) }
|
||||
)
|
||||
|
||||
// THEN
|
||||
|
||||
+7
-1
@@ -53,6 +53,7 @@ import me.proton.core.observability.domain.metrics.SignupLoginTotal
|
||||
import me.proton.core.observability.domain.metrics.SignupUnlockUserTotalV1
|
||||
import me.proton.core.observability.domain.metrics.SignupUserCheckTotalV1
|
||||
import me.proton.core.observability.domain.metrics.common.toHttpApiStatus
|
||||
import me.proton.core.observability.domain.metrics.toObservabilityAccountType
|
||||
import me.proton.core.payment.domain.entity.ProtonPaymentToken
|
||||
import me.proton.core.payment.presentation.entity.BillingResult
|
||||
import me.proton.core.plan.presentation.entity.PlanInput
|
||||
@@ -212,7 +213,12 @@ class SignupActivity : AuthActivity<ActivitySignupBinding>(ActivitySignupBinding
|
||||
state.password,
|
||||
signUpViewModel.currentAccountType,
|
||||
billingDetails,
|
||||
loginMetricData = { SignupLoginTotal(it.toHttpApiStatus()) },
|
||||
loginMetricData = {
|
||||
SignupLoginTotal(
|
||||
it.toHttpApiStatus(),
|
||||
signUpViewModel.currentAccountType.toObservabilityAccountType()
|
||||
)
|
||||
},
|
||||
unlockUserMetricData = { SignupUnlockUserTotalV1(it.toUnlockUserStatus()) },
|
||||
userCheckMetricData = { SignupUserCheckTotalV1(it.toUserCheckStatus()) }
|
||||
)
|
||||
|
||||
+2
-2
@@ -195,7 +195,7 @@ internal class SignupViewModel @Inject constructor(
|
||||
username = username, password = encryptedPassword,
|
||||
recoveryEmail = recoveryEmail, recoveryPhone = recoveryPhone,
|
||||
referrer = null, type = currentAccountType.createUserType(), domain = domain,
|
||||
metricData = { SignupAccountCreationTotal(it) }
|
||||
metricData = { SignupAccountCreationTotal(it, SignupAccountCreationTotal.Type.proton) }
|
||||
)
|
||||
emit(State.CreateUserSuccess(result.id, username, encryptedPassword))
|
||||
}.catchWhen(Throwable::userAlreadyExists) {
|
||||
@@ -208,7 +208,7 @@ internal class SignupViewModel @Inject constructor(
|
||||
email = externalEmail,
|
||||
password = encryptedPassword,
|
||||
referrer = null,
|
||||
metricData = { SignupAccountCreationTotal(it) }
|
||||
metricData = { SignupAccountCreationTotal(it, SignupAccountCreationTotal.Type.external) }
|
||||
)
|
||||
emit(State.CreateUserSuccess(userId.id, externalEmail, encryptedPassword))
|
||||
}.catchWhen(Throwable::userAlreadyExists) {
|
||||
|
||||
@@ -1904,8 +1904,8 @@ public final class me/proton/core/observability/domain/metrics/SessionRefreshTok
|
||||
public final class me/proton/core/observability/domain/metrics/SignupAccountCreationTotal : me/proton/core/observability/domain/metrics/ObservabilityData {
|
||||
public static final field Companion Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Companion;
|
||||
public synthetic fun <init> (ILme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$LabelsData;JLkotlinx/serialization/internal/SerializationConstructorMarker;)V
|
||||
public fun <init> (Ljava/lang/Object;)V
|
||||
public fun <init> (Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$ApiStatus;)V
|
||||
public fun <init> (Ljava/lang/Object;Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Type;)V
|
||||
public fun <init> (Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$ApiStatus;Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Type;)V
|
||||
public fun <init> (Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$LabelsData;J)V
|
||||
public synthetic fun <init> (Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$LabelsData;JILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun component1 ()Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$LabelsData;
|
||||
@@ -1954,12 +1954,14 @@ public final class me/proton/core/observability/domain/metrics/SignupAccountCrea
|
||||
|
||||
public final class me/proton/core/observability/domain/metrics/SignupAccountCreationTotal$LabelsData {
|
||||
public static final field Companion Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$LabelsData$Companion;
|
||||
public synthetic fun <init> (ILme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$ApiStatus;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V
|
||||
public fun <init> (Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$ApiStatus;)V
|
||||
public synthetic fun <init> (ILme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$ApiStatus;Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Type;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V
|
||||
public fun <init> (Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$ApiStatus;Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Type;)V
|
||||
public final fun component1 ()Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$ApiStatus;
|
||||
public final fun copy (Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$ApiStatus;)Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$LabelsData;
|
||||
public static synthetic fun copy$default (Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$LabelsData;Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$ApiStatus;ILjava/lang/Object;)Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$LabelsData;
|
||||
public final fun component2 ()Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Type;
|
||||
public final fun copy (Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$ApiStatus;Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Type;)Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$LabelsData;
|
||||
public static synthetic fun copy$default (Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$LabelsData;Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$ApiStatus;Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Type;ILjava/lang/Object;)Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$LabelsData;
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public final fun getAccountType ()Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Type;
|
||||
public final fun getStatus ()Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$ApiStatus;
|
||||
public fun hashCode ()I
|
||||
public fun toString ()Ljava/lang/String;
|
||||
@@ -1982,6 +1984,13 @@ public final class me/proton/core/observability/domain/metrics/SignupAccountCrea
|
||||
public final fun serializer ()Lkotlinx/serialization/KSerializer;
|
||||
}
|
||||
|
||||
public final class me/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Type : java/lang/Enum {
|
||||
public static final field external Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Type;
|
||||
public static final field proton Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Type;
|
||||
public static fun valueOf (Ljava/lang/String;)Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Type;
|
||||
public static fun values ()[Lme/proton/core/observability/domain/metrics/SignupAccountCreationTotal$Type;
|
||||
}
|
||||
|
||||
public final class me/proton/core/observability/domain/metrics/SignupEmailAvailabilityTotal : me/proton/core/observability/domain/metrics/ObservabilityData {
|
||||
public static final field Companion Lme/proton/core/observability/domain/metrics/SignupEmailAvailabilityTotal$Companion;
|
||||
public synthetic fun <init> (ILme/proton/core/observability/domain/metrics/common/HttpStatusLabels;JLkotlinx/serialization/internal/SerializationConstructorMarker;)V
|
||||
@@ -2054,17 +2063,17 @@ public final class me/proton/core/observability/domain/metrics/SignupFetchDomain
|
||||
|
||||
public final class me/proton/core/observability/domain/metrics/SignupLoginTotal : me/proton/core/observability/domain/metrics/ObservabilityData {
|
||||
public static final field Companion Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Companion;
|
||||
public synthetic fun <init> (ILme/proton/core/observability/domain/metrics/common/HttpStatusLabels;JLkotlinx/serialization/internal/SerializationConstructorMarker;)V
|
||||
public fun <init> (Lme/proton/core/observability/domain/metrics/common/HttpApiStatus;)V
|
||||
public fun <init> (Lme/proton/core/observability/domain/metrics/common/HttpStatusLabels;J)V
|
||||
public synthetic fun <init> (Lme/proton/core/observability/domain/metrics/common/HttpStatusLabels;JILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun component1 ()Lme/proton/core/observability/domain/metrics/common/HttpStatusLabels;
|
||||
public synthetic fun <init> (ILme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData;JLkotlinx/serialization/internal/SerializationConstructorMarker;)V
|
||||
public fun <init> (Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData;J)V
|
||||
public synthetic fun <init> (Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData;JILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Lme/proton/core/observability/domain/metrics/common/HttpApiStatus;Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Type;)V
|
||||
public final fun component1 ()Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData;
|
||||
public final fun component2 ()J
|
||||
public final fun copy (Lme/proton/core/observability/domain/metrics/common/HttpStatusLabels;J)Lme/proton/core/observability/domain/metrics/SignupLoginTotal;
|
||||
public static synthetic fun copy$default (Lme/proton/core/observability/domain/metrics/SignupLoginTotal;Lme/proton/core/observability/domain/metrics/common/HttpStatusLabels;JILjava/lang/Object;)Lme/proton/core/observability/domain/metrics/SignupLoginTotal;
|
||||
public final fun copy (Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData;J)Lme/proton/core/observability/domain/metrics/SignupLoginTotal;
|
||||
public static synthetic fun copy$default (Lme/proton/core/observability/domain/metrics/SignupLoginTotal;Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData;JILjava/lang/Object;)Lme/proton/core/observability/domain/metrics/SignupLoginTotal;
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public synthetic fun getLabels ()Ljava/lang/Object;
|
||||
public fun getLabels ()Lme/proton/core/observability/domain/metrics/common/HttpStatusLabels;
|
||||
public fun getLabels ()Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData;
|
||||
public fun getValue ()J
|
||||
public fun hashCode ()I
|
||||
public fun toString ()Ljava/lang/String;
|
||||
@@ -2087,6 +2096,50 @@ public final class me/proton/core/observability/domain/metrics/SignupLoginTotal$
|
||||
public final fun serializer ()Lkotlinx/serialization/KSerializer;
|
||||
}
|
||||
|
||||
public final class me/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData {
|
||||
public static final field Companion Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData$Companion;
|
||||
public synthetic fun <init> (ILme/proton/core/observability/domain/metrics/common/HttpApiStatus;Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Type;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V
|
||||
public fun <init> (Lme/proton/core/observability/domain/metrics/common/HttpApiStatus;Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Type;)V
|
||||
public final fun component1 ()Lme/proton/core/observability/domain/metrics/common/HttpApiStatus;
|
||||
public final fun component2 ()Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Type;
|
||||
public final fun copy (Lme/proton/core/observability/domain/metrics/common/HttpApiStatus;Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Type;)Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData;
|
||||
public static synthetic fun copy$default (Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData;Lme/proton/core/observability/domain/metrics/common/HttpApiStatus;Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Type;ILjava/lang/Object;)Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData;
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public final fun getAccountType ()Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Type;
|
||||
public final fun getStatus ()Lme/proton/core/observability/domain/metrics/common/HttpApiStatus;
|
||||
public fun hashCode ()I
|
||||
public fun toString ()Ljava/lang/String;
|
||||
public static final fun write$Self (Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V
|
||||
}
|
||||
|
||||
public final class me/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
|
||||
public static final field INSTANCE Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData$$serializer;
|
||||
public static final synthetic field descriptor Lkotlinx/serialization/descriptors/SerialDescriptor;
|
||||
public fun childSerializers ()[Lkotlinx/serialization/KSerializer;
|
||||
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
|
||||
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData;
|
||||
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
|
||||
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
|
||||
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData;)V
|
||||
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
|
||||
}
|
||||
|
||||
public final class me/proton/core/observability/domain/metrics/SignupLoginTotal$LabelsData$Companion {
|
||||
public final fun serializer ()Lkotlinx/serialization/KSerializer;
|
||||
}
|
||||
|
||||
public final class me/proton/core/observability/domain/metrics/SignupLoginTotal$Type : java/lang/Enum {
|
||||
public static final field external Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Type;
|
||||
public static final field internal Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Type;
|
||||
public static final field username Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Type;
|
||||
public static fun valueOf (Ljava/lang/String;)Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Type;
|
||||
public static fun values ()[Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Type;
|
||||
}
|
||||
|
||||
public final class me/proton/core/observability/domain/metrics/SignupLoginTotalKt {
|
||||
public static final fun toObservabilityAccountType (Lme/proton/core/account/domain/entity/AccountType;)Lme/proton/core/observability/domain/metrics/SignupLoginTotal$Type;
|
||||
}
|
||||
|
||||
public final class me/proton/core/observability/domain/metrics/SignupScreenViewTotalV1 : me/proton/core/observability/domain/metrics/ObservabilityData {
|
||||
public static final field Companion Lme/proton/core/observability/domain/metrics/SignupScreenViewTotalV1$Companion;
|
||||
public synthetic fun <init> (ILme/proton/core/observability/domain/metrics/SignupScreenViewTotalV1$LabelsData;JLkotlinx/serialization/internal/SerializationConstructorMarker;)V
|
||||
|
||||
@@ -51,6 +51,7 @@ dependencies {
|
||||
implementation(`serialization-json`)
|
||||
implementation(project(Module.kotlinUtil))
|
||||
implementation(project(Module.networkDomain))
|
||||
implementation(project(Module.accountDomain))
|
||||
testImplementation(`coroutines-test`)
|
||||
testImplementation(junit)
|
||||
testImplementation(`kotlin-test`)
|
||||
|
||||
+13
-4
@@ -31,21 +31,30 @@ import me.proton.core.observability.domain.metrics.common.toHttpApiStatus
|
||||
|
||||
@Serializable
|
||||
@Schema(description = "Account creation.")
|
||||
@SchemaId("https://proton.me/android_core_signup_accountCreation_total_v2.schema.json")
|
||||
@SchemaId("https://proton.me/android_core_signup_accountCreation_total_v3.schema.json")
|
||||
public data class SignupAccountCreationTotal(
|
||||
override val Labels: LabelsData,
|
||||
@Required override val Value: Long = 1,
|
||||
) : ObservabilityData() {
|
||||
public constructor(status: ApiStatus) : this(LabelsData(status))
|
||||
public constructor(status: ApiStatus, accountType: Type) : this(LabelsData(status, accountType))
|
||||
|
||||
public constructor(result: Result<*>) : this(result.toApiStatus())
|
||||
public constructor(result: Result<*>, accountType: Type) : this(result.toApiStatus(), accountType)
|
||||
|
||||
@Serializable
|
||||
public data class LabelsData constructor(
|
||||
@get:Schema(required = true)
|
||||
val status: ApiStatus
|
||||
val status: ApiStatus,
|
||||
|
||||
@get:Schema(required = true)
|
||||
val accountType: Type
|
||||
)
|
||||
|
||||
@Suppress("EnumEntryName", "EnumNaming")
|
||||
public enum class Type {
|
||||
proton,
|
||||
external
|
||||
}
|
||||
|
||||
@Suppress("EnumNaming", "EnumEntryName")
|
||||
public enum class ApiStatus {
|
||||
http2xx,
|
||||
|
||||
+27
-4
@@ -21,16 +21,39 @@ package me.proton.core.observability.domain.metrics
|
||||
import io.swagger.v3.oas.annotations.media.Schema
|
||||
import kotlinx.serialization.Required
|
||||
import kotlinx.serialization.Serializable
|
||||
import me.proton.core.account.domain.entity.AccountType
|
||||
import me.proton.core.observability.domain.entity.SchemaId
|
||||
import me.proton.core.observability.domain.metrics.common.HttpApiStatus
|
||||
import me.proton.core.observability.domain.metrics.common.HttpStatusLabels
|
||||
|
||||
@Serializable
|
||||
@Schema(description = "Logging in just after the signup.")
|
||||
@SchemaId("https://proton.me/android_core_signup_login_total_v2.schema.json")
|
||||
@SchemaId("https://proton.me/android_core_signup_login_total_v3.schema.json")
|
||||
public data class SignupLoginTotal(
|
||||
override val Labels: HttpStatusLabels,
|
||||
override val Labels: LabelsData,
|
||||
@Required override val Value: Long = 1
|
||||
) : ObservabilityData() {
|
||||
public constructor(status: HttpApiStatus) : this(HttpStatusLabels(status))
|
||||
public constructor(status: HttpApiStatus, type: Type) : this(LabelsData(status, type))
|
||||
|
||||
@Serializable
|
||||
public data class LabelsData constructor(
|
||||
@get:Schema(required = true)
|
||||
val status: HttpApiStatus,
|
||||
|
||||
@get:Schema(required = true)
|
||||
val accountType: Type
|
||||
)
|
||||
|
||||
@Suppress("EnumEntryName", "EnumNaming")
|
||||
public enum class Type {
|
||||
internal,
|
||||
external,
|
||||
username
|
||||
}
|
||||
}
|
||||
|
||||
public fun AccountType.toObservabilityAccountType(): SignupLoginTotal.Type = when (this) {
|
||||
AccountType.Internal -> SignupLoginTotal.Type.internal
|
||||
AccountType.Username -> SignupLoginTotal.Type.username
|
||||
AccountType.External -> SignupLoginTotal.Type.external
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user