Browse Source

Refactor telemetry services for async support and scope updates

data-collection-code-review-2
Emre KARA 8 months ago
parent
commit
a58db4e524
  1. 5
      framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Providers/TelemetryActivityDataBuilder.cs
  2. 5
      framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/ITelemetrySessionProvider.cs
  3. 2
      framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryDataSender.cs
  4. 6
      framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryRuntimeSessionProvider.cs
  5. 2
      framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryService.cs

5
framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Providers/TelemetryActivityDataBuilder.cs

@ -1,12 +1,9 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Telemetry.Activity.Contracts;
using Volo.Abp.Telemetry.Constants;
using Volo.Abp.Telemetry.Constants.Enums;
namespace Volo.Abp.Telemetry.Activity.Providers;
@ -24,7 +21,7 @@ public class TelemetryActivityDataBuilder : ITelemetryActivityDataBuilder, ISing
var sessionProvider = _serviceProvider.GetRequiredService<ITelemetrySessionProvider>();
sessionProvider.AddSessionInfo(activity);
await sessionProvider.AddSessionInfoAsync(activity);
var activityDataEnrichers = _serviceProvider.GetRequiredService<IEnumerable<ITelemetryActivityDataEnricher>>();

5
framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/ITelemetrySessionProvider.cs

@ -1,8 +1,9 @@
using Volo.Abp.Telemetry.Activity;
using System.Threading.Tasks;
using Volo.Abp.Telemetry.Activity;
namespace Volo.Abp.Telemetry;
public interface ITelemetrySessionProvider
{
void AddSessionInfo(ActivityData activity);
Task AddSessionInfoAsync(ActivityData activity);
}

2
framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryDataSender.cs

@ -12,7 +12,7 @@ using Volo.Abp.Telemetry.Constants;
namespace Volo.Abp.Telemetry;
public class TelemetryDataSender : ITelemetryDataSender, IScopedDependency
public class TelemetryDataSender : ITelemetryDataSender, ISingletonDependency
{
private readonly ITelemetryActivityStorage _telemetryActivityStorage;
private const int ActivityBatchSize = 50;

6
framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryRuntimeSessionProvider.cs

@ -1,5 +1,6 @@
using System;
using System.IO;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Telemetry.Activity;
using Volo.Abp.Telemetry.Constants;
@ -10,12 +11,11 @@ namespace Volo.Abp.Telemetry;
[ExposeServices(typeof(ITelemetrySessionProvider))]
public class TelemetryRuntimeSessionProvider : ITelemetrySessionProvider, ISingletonDependency
{
public void AddSessionInfo(ActivityData activity)
public Task AddSessionInfoAsync(ActivityData activity)
{
activity[ActivityPropertyNames.SessionType] = SessionType.ApplicationRuntime;
activity[ActivityPropertyNames.SessionId] = Guid.NewGuid();
activity[ActivityPropertyNames.IsFirstSession] = !File.Exists(TelemetryPaths.ActivityStorage);
return Task.CompletedTask;
}
}

2
framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/TelemetryService.cs

@ -9,7 +9,7 @@ using Volo.Abp.Telemetry.Constants;
namespace Volo.Abp.Telemetry;
public class TelemetryService : ITelemetryService, IScopedDependency
public class TelemetryService : ITelemetryService, ISingletonDependency
{
private readonly ITelemetryActivityStorage _telemetryActivityStorage;
private readonly ITelemetryDataSender _telemetryDataSender;

Loading…
Cancel
Save