Browse Source

Remove TelemetryActivityStorageOptions and handle settings internally.

pull/23059/head
Emre KARA 1 year ago
parent
commit
0021eae00b
  1. 25
      framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Storage/TelemetryActivityStorage.cs
  2. 10
      framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Storage/TelemetryActivityStorageOptions.cs

25
framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Storage/TelemetryActivityStorage.cs

@ -7,7 +7,6 @@ using System.Text;
using System.Text.Json;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Telemetry.Activity.Contracts;
using Volo.Abp.Telemetry.Constants;
@ -22,14 +21,20 @@ public class TelemetryActivityStorage : ITelemetryActivityStorage, ISingletonDep
private const string MutexName = "Global\\TelemetryActivityStorage";
private const string EncryptionKey = "AbpTelemetryStorageKey";
private readonly TelemetryActivityStorageOptions _options;
private static TimeSpan _infoExpirationPeriod = TimeSpan.FromDays(7);
private static TimeSpan _activitySendPeriod = TimeSpan.FromDays(1);
private TelemetryActivityStorageState? _cachedState;
public TelemetryActivityStorage(IOptions<TelemetryActivityStorageOptions> options)
public TelemetryActivityStorage()
{
_options = options?.Value ?? new TelemetryActivityStorageOptions();
var enableTelemetryEnvironmentVariable = Environment.GetEnvironmentVariable("ABP_STUDIO_ENABLE_TELEMETRY" , EnvironmentVariableTarget.User);
if (bool.TryParse(enableTelemetryEnvironmentVariable, out var enableTelemetry) && enableTelemetry)
{
_infoExpirationPeriod = TimeSpan.FromMinutes(1);
_activitySendPeriod = TimeSpan.FromSeconds(5);
}
}
public async Task BufferActivityAsync(ActivityData activityData)
@ -52,7 +57,7 @@ public class TelemetryActivityStorage : ITelemetryActivityStorage, ISingletonDep
await SaveAsync();
}
public async Task<DateTimeOffset?> GetLastActivitySendTimeAsync()
private async Task<DateTimeOffset?> GetLastActivitySendTimeAsync()
{
var state = await GetStateAsync();
return state.ActivitySendTime;
@ -121,7 +126,7 @@ public class TelemetryActivityStorage : ITelemetryActivityStorage, ISingletonDep
public virtual async Task<bool> ShouldSendActivitiesAsync()
{
var lastActivitySendTime = await GetLastActivitySendTimeAsync();
return lastActivitySendTime is null || DateTimeOffset.UtcNow - lastActivitySendTime > _options.ActivitySendPeriod;
return lastActivitySendTime is null || DateTimeOffset.UtcNow - lastActivitySendTime > _activitySendPeriod;
}
private async Task<DateTimeOffset?> GetLastSolutionInfoSendTimeAsync(Guid solutionId)
@ -278,9 +283,9 @@ public class TelemetryActivityStorage : ITelemetryActivityStorage, ISingletonDep
{
var directory = Path.GetDirectoryName(TelemetryPaths.ActivityStorage);
if (!Directory.Exists(directory) && !directory.IsNullOrEmpty())
if (!Directory.Exists(directory))
{
Directory.CreateDirectory(directory);
Directory.CreateDirectory(directory!);
}
if (!File.Exists(TelemetryPaths.ActivityStorage))
@ -309,7 +314,7 @@ public class TelemetryActivityStorage : ITelemetryActivityStorage, ISingletonDep
private bool ShouldAddInfo(DateTimeOffset? lastSend)
{
return lastSend is null || DateTimeOffset.UtcNow - lastSend > _options.InfoExpirationPeriod;
return lastSend is null || DateTimeOffset.UtcNow - lastSend > _infoExpirationPeriod;
}
private static string Encrypt(string plainText)

10
framework/src/Volo.Abp.Core/Volo/Abp/Telemetry/Activity/Storage/TelemetryActivityStorageOptions.cs

@ -1,10 +0,0 @@
using System;
namespace Volo.Abp.Telemetry.Activity.Storage;
public class TelemetryActivityStorageOptions
{
public TimeSpan InfoExpirationPeriod { get; set; } = TimeSpan.FromDays(7);
public TimeSpan ActivitySendPeriod { get; set; } = TimeSpan.FromDays(1);
}
Loading…
Cancel
Save