Browse Source

Refactor telemetry services for async support and scope updates

pull/23059/head
Emre KARA 1 year 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;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Telemetry.Activity.Contracts; using Volo.Abp.Telemetry.Activity.Contracts;
using Volo.Abp.Telemetry.Constants;
using Volo.Abp.Telemetry.Constants.Enums;
namespace Volo.Abp.Telemetry.Activity.Providers; namespace Volo.Abp.Telemetry.Activity.Providers;
@ -24,7 +21,7 @@ public class TelemetryActivityDataBuilder : ITelemetryActivityDataBuilder, ISing
var sessionProvider = _serviceProvider.GetRequiredService<ITelemetrySessionProvider>(); var sessionProvider = _serviceProvider.GetRequiredService<ITelemetrySessionProvider>();
sessionProvider.AddSessionInfo(activity); await sessionProvider.AddSessionInfoAsync(activity);
var activityDataEnrichers = _serviceProvider.GetRequiredService<IEnumerable<ITelemetryActivityDataEnricher>>(); 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; namespace Volo.Abp.Telemetry;
public interface ITelemetrySessionProvider 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; namespace Volo.Abp.Telemetry;
public class TelemetryDataSender : ITelemetryDataSender, IScopedDependency public class TelemetryDataSender : ITelemetryDataSender, ISingletonDependency
{ {
private readonly ITelemetryActivityStorage _telemetryActivityStorage; private readonly ITelemetryActivityStorage _telemetryActivityStorage;
private const int ActivityBatchSize = 50; private const int ActivityBatchSize = 50;

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

@ -1,5 +1,6 @@
using System; using System;
using System.IO; using System.IO;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Telemetry.Activity; using Volo.Abp.Telemetry.Activity;
using Volo.Abp.Telemetry.Constants; using Volo.Abp.Telemetry.Constants;
@ -10,12 +11,11 @@ namespace Volo.Abp.Telemetry;
[ExposeServices(typeof(ITelemetrySessionProvider))] [ExposeServices(typeof(ITelemetrySessionProvider))]
public class TelemetryRuntimeSessionProvider : ITelemetrySessionProvider, ISingletonDependency public class TelemetryRuntimeSessionProvider : ITelemetrySessionProvider, ISingletonDependency
{ {
public void AddSessionInfo(ActivityData activity) public Task AddSessionInfoAsync(ActivityData activity)
{ {
activity[ActivityPropertyNames.SessionType] = SessionType.ApplicationRuntime; activity[ActivityPropertyNames.SessionType] = SessionType.ApplicationRuntime;
activity[ActivityPropertyNames.SessionId] = Guid.NewGuid(); activity[ActivityPropertyNames.SessionId] = Guid.NewGuid();
activity[ActivityPropertyNames.IsFirstSession] = !File.Exists(TelemetryPaths.ActivityStorage); 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; namespace Volo.Abp.Telemetry;
public class TelemetryService : ITelemetryService, IScopedDependency public class TelemetryService : ITelemetryService, ISingletonDependency
{ {
private readonly ITelemetryActivityStorage _telemetryActivityStorage; private readonly ITelemetryActivityStorage _telemetryActivityStorage;
private readonly ITelemetryDataSender _telemetryDataSender; private readonly ITelemetryDataSender _telemetryDataSender;

Loading…
Cancel
Save