diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index 44fd748f76..c06589aa7b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -721,9 +721,9 @@ "Menu:TelemetryReports": "Telemetry Reports", "TelemetryReports:DailyStudioOpen": "Daily Studio Opens", "TelemetryReports:MonthlyStudioOpen": "Monthly Studio Opens", - "TelemetryReports:AverageDailyUsage": "Average Daily Usage", - "TelemetryReports:UsageFrequency": "Usage Frequency", - "TelemetryReports:FeatureUsage": "Feature Usage", + "TelemetryReports:AverageDailyUsage": "Studio Daily Usage Duration Distribution", + "TelemetryReports:UsageFrequency": "Studio Usage Frequency", + "TelemetryReports:FeatureUsage": "Studio Feature Usage", "TelemetryReports:Load": "Load", "TelemetryReports:MinLaunchCount": "Min Launch", "TelemetryReports:MaxLaunchCount": "Max Launch", @@ -733,10 +733,11 @@ "TelemetryReports:Year": "Year", "TelemetryReports:ChartTitles:Daily": "Daily Studio Opens", "TelemetryReports:ChartTitles:Monthly": "Monthly Studio Opens", - "TelemetryReports:ChartTitles:AverageDuration": "Daily Average Usage Duration", + "TelemetryReports:ChartTitles:AverageDuration": "Daily Studio Average Usage Duration", "TelemetryReports:ChartTitles:Frequency": "Studio Usage Frequency", - "TelemetryReports:ChartTitles:FeatureUsage": "Feature Usage Stats", - "TelemetryReports:ChartLabels:AverageUsage": "Average Usage", + "TelemetryReports:ChartTitles:FeatureUsage": "Studio Feature Usage Stats", + "TelemetryReports:ChartTitles:UsageDurationDistribution": "Studio Usage Time (Daily Avg)", + "TelemetryReports:ChartLabels:AverageUsage": "Studio Average Usage", "TelemetryReports:ChartLabels:MinutesPerDay": "Minutes Per Day", "TelemetryReports:ChartLabels:FirstTime": "First Time", "TelemetryReports:ChartLabels:Returning": "Returning", @@ -745,6 +746,7 @@ "TelemetryReports:ChartLabels:UniqueUsers": "Unique Users", "TelemetryReports:ChartLabels:Total": "Total", "TelemetryReports:ChartLabels:Daily": "Daily", - "TelemetryReports:ChartLabels:Monthly": "Monthly" + "TelemetryReports:ChartLabels:Monthly": "Monthly", + "TelemetryReports:ChartLabels:Users" : "Users" } } diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Providers/TelemetryActivityDataProvider.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Providers/TelemetryActivityDataProvider.cs index e8e2ee547b..7e809205a0 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Providers/TelemetryActivityDataProvider.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Providers/TelemetryActivityDataProvider.cs @@ -57,9 +57,8 @@ public class TelemetryActivityDataProvider : ITelemetryActivityDataProvider, ISi activity.Remove(ActivityPropertyName.Assembly); } - if (activity.TryGetValue(ActivityPropertyName.SolutionId, out var rawSolutionId)) + if (activity.TryGetValue(ActivityPropertyName.SolutionId, out var rawSolutionId) && Guid.TryParse(rawSolutionId?.ToString(), out var solutionId)) { - var solutionId = Guid.Parse(rawSolutionId!.ToString()!); if (await activityStorage.ShouldAddSolutionInformation(solutionId)) { diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Storage/TelemetryActivityStorage.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Storage/TelemetryActivityStorage.cs index f02fa82136..8bd41cfbab 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Storage/TelemetryActivityStorage.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Storage/TelemetryActivityStorage.cs @@ -66,10 +66,9 @@ public class TelemetryActivityStorage : ITelemetryActivityStorage, ISingletonDep public async Task<(bool isFirstSession, Guid sessionId)> GetOrCreateSessionInfoAsync() { var state = await GetStateAsync(); - state.IsFirstSession ??= true; state.SessionId ??= Guid.NewGuid(); await SaveAsync(); - return (state.IsFirstSession.Value, state.SessionId.Value); + return (!File.Exists(TelemetryPaths.ActivityStorage), state.SessionId.Value); } public async Task MarkActivitiesAsSentAsync() @@ -78,7 +77,6 @@ public class TelemetryActivityStorage : ITelemetryActivityStorage, ISingletonDep state.ActivitySendTime = DateTimeOffset.UtcNow; state.Activities.Clear(); state.SessionId = null; - state.IsFirstSession = false; await SaveAsync(); } diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Storage/TelemetryActivityStorageState.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Storage/TelemetryActivityStorageState.cs index 653974f83d..0065b29502 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Storage/TelemetryActivityStorageState.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Storage/TelemetryActivityStorageState.cs @@ -8,7 +8,6 @@ public class TelemetryActivityStorageState public DateTimeOffset? ActivitySendTime { get; set; } public DateTimeOffset? LastDeviceInfoSendTime { get; set; } public Guid? SessionId { get; set; } - public bool? IsFirstSession { get; set; } public List Activities { get; set; } = new(); public Dictionary Solutions { get; set; } = new();