From ec82673c236ff6a759a6a48da66d574f13311b39 Mon Sep 17 00:00:00 2001 From: Emre KARA Date: Wed, 11 Jun 2025 10:23:25 +0300 Subject: [PATCH] Refactor telemetry system: rename classes and interfaces for consistency, add new activity property constants, and adjust activity sender implementation. --- ...xtensions.cs => ActivityEventExtensions.cs} | 2 +- .../Contracts/ITelemetryActivityStorage.cs | 2 +- .../Storage/TelemetryActivityStorage.cs | 2 +- .../Constants/ActivityPropertyNames.cs | 4 +++- ...taSender.cs => ITelemetryActivitySender.cs} | 2 +- ...ataSender.cs => TelemetryActivitySender.cs} | 10 +++++----- .../Volo/Abp/Telemetry/TelemetryService.cs | 18 ++++++++---------- 7 files changed, 20 insertions(+), 20 deletions(-) rename framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/{ActivityDataExtensions.cs => ActivityEventExtensions.cs} (97%) rename framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/{ITelemetryDataSender.cs => ITelemetryActivitySender.cs} (67%) rename framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/{TelemetryDataSender.cs => TelemetryActivitySender.cs} (83%) diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/ActivityDataExtensions.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/ActivityEventExtensions.cs similarity index 97% rename from framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/ActivityDataExtensions.cs rename to framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/ActivityEventExtensions.cs index dedf9de386..b70487c5ff 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/ActivityDataExtensions.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/ActivityEventExtensions.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; namespace Volo.Abp.Telemetry.Activity; -public static class ActivityDataExtensions +public static class ActivityEventExtensions { public static ActivityEvent WithAdditionalProperty(this ActivityEvent activityEvent, string key, object value) { diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Contracts/ITelemetryActivityStorage.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Contracts/ITelemetryActivityStorage.cs index 8dc97dc0ac..a80b8de382 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Contracts/ITelemetryActivityStorage.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Contracts/ITelemetryActivityStorage.cs @@ -6,7 +6,7 @@ namespace Volo.Abp.Telemetry.Activity.Contracts; public interface ITelemetryActivityStorage { - Task GetOrCreateSessionAsync(); + Task InitializeOrGetSessionAsync(); Task MarkActivitiesAsSentAsync(); Task MarkDeviceInfoAsAddedAsync(); Task MarkSolutionInfoAsAddedAsync(Guid 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 4d15d5842c..07ee64e044 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 @@ -50,7 +50,7 @@ public class TelemetryActivityStorage : ITelemetryActivityStorage, ISingletonDep }); } - public async Task GetOrCreateSessionAsync() + public async Task InitializeOrGetSessionAsync() { var state = await GetStateAsync(); diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Constants/ActivityPropertyNames.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Constants/ActivityPropertyNames.cs index e8d57d3ca4..36a6fc439e 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Constants/ActivityPropertyNames.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Constants/ActivityPropertyNames.cs @@ -72,5 +72,7 @@ public static class ActivityPropertyNames public const string HasSolutionInfo = nameof(HasSolutionInfo); public const string HasDeviceInfo = nameof(HasDeviceInfo); public const string HasProjectInfo = nameof(HasProjectInfo); - + public const string ErrorMessage = nameof(ErrorMessage); + public const string FailingActivity = nameof(FailingActivity); + } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/ITelemetryDataSender.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/ITelemetryActivitySender.cs similarity index 67% rename from framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/ITelemetryDataSender.cs rename to framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/ITelemetryActivitySender.cs index 5dfc74e518..f015dd9b03 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/ITelemetryDataSender.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/ITelemetryActivitySender.cs @@ -2,7 +2,7 @@ namespace Volo.Abp.Telemetry; -public interface ITelemetryDataSender +public interface ITelemetryActivitySender { Task SendAsync(); } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryDataSender.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryActivitySender.cs similarity index 83% rename from framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryDataSender.cs rename to framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryActivitySender.cs index b872639e8b..00a1d45ec0 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryDataSender.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryActivitySender.cs @@ -12,13 +12,13 @@ using Volo.Abp.Telemetry.Constants; namespace Volo.Abp.Telemetry; -public class TelemetryDataSender : ITelemetryDataSender, ISingletonDependency +public class TelemetryActivitySender : ITelemetryActivitySender, ISingletonDependency { private readonly ITelemetryActivityStorage _telemetryActivityStorage; - private const int ActivityBatchSize = 50; + private const int ActivitySendBatchSize = 50; - public TelemetryDataSender(ITelemetryActivityStorage telemetryActivityStorage) + public TelemetryActivitySender(ITelemetryActivityStorage telemetryActivityStorage) { _telemetryActivityStorage = telemetryActivityStorage; } @@ -32,9 +32,9 @@ public class TelemetryDataSender : ITelemetryDataSender, ISingletonDependency using var httpClient = new HttpClient(); AddJwtTokenIfAuthenticated(httpClient); - for (var i = 0; i < activities.Count; i += ActivityBatchSize) + for (var i = 0; i < activities.Count; i += ActivitySendBatchSize) { - var activityBatch = activities.Skip(i).Take(ActivityBatchSize).ToList(); + var activityBatch = activities.Skip(i).Take(ActivitySendBatchSize).ToList(); await httpClient.PostAsync($"{AbpPlatformUrls.AbpTelemetryApiUrl}api/telemetry/collect", new StringContent(JsonSerializer.Serialize(activityBatch), Encoding.UTF8, "application/json")); diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryService.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryService.cs index 52debc51a1..9cec908a95 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryService.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryService.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Diagnostics; using System.Threading.Tasks; using Volo.Abp.DependencyInjection; -using Volo.Abp.Telemetry.Activity; using Volo.Abp.Telemetry.Activity.Contracts; using Volo.Abp.Telemetry.Constants; using ActivityEvent = Volo.Abp.Telemetry.Activity.ActivityEvent; @@ -13,14 +12,15 @@ namespace Volo.Abp.Telemetry; public class TelemetryService : ITelemetryService, ISingletonDependency { private readonly ITelemetryActivityStorage _telemetryActivityStorage; - private readonly ITelemetryDataSender _telemetryDataSender; + private readonly ITelemetryActivitySender _telemetryActivitySender; private readonly ITelemetryActivityDataBuilder _telemetryActivityDataBuilder; - public TelemetryService(ITelemetryActivityStorage telemetryActivityStorage, ITelemetryDataSender telemetryDataSender, + public TelemetryService(ITelemetryActivityStorage telemetryActivityStorage, + ITelemetryActivitySender telemetryActivitySender, ITelemetryActivityDataBuilder telemetryActivityDataBuilder) { _telemetryActivityStorage = telemetryActivityStorage; - _telemetryDataSender = telemetryDataSender; + _telemetryActivitySender = telemetryActivitySender; _telemetryActivityDataBuilder = telemetryActivityDataBuilder; } @@ -54,7 +54,6 @@ public class TelemetryService : ITelemetryService, ISingletonDependency } - public Task AddActivityAsync(ActivityEvent @event) { _ = Task.Run(async () => @@ -71,7 +70,7 @@ public class TelemetryService : ITelemetryService, ISingletonDependency if (await _telemetryActivityStorage.ShouldSendActivitiesAsync()) { - await _telemetryDataSender.SendAsync(); + await _telemetryActivitySender.SendAsync(); } } catch @@ -116,7 +115,7 @@ public class TelemetryService : ITelemetryService, ISingletonDependency { AdditionalProperties = new Dictionary { - { "ErrorMessage", errorMessage }, + { ActivityPropertyNames.ErrorMessage, errorMessage }, } }; @@ -129,12 +128,11 @@ public class TelemetryService : ITelemetryService, ISingletonDependency { AdditionalProperties = new Dictionary { - { "ErrorMessage", errorMessage }, - { "FailingActivity", failingActivity }, + { ActivityPropertyNames.ErrorMessage, errorMessage }, + { ActivityPropertyNames.FailingActivity, failingActivity }, } }; await AddActivityAsync(activityData); } - } \ No newline at end of file