mirror of https://github.com/abpframework/abp.git
committed by
GitHub
10 changed files with 188 additions and 12 deletions
@ -0,0 +1,39 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp.Internal.Telemetry; |
||||
|
using Volo.Abp.Internal.Telemetry.Activity; |
||||
|
|
||||
|
namespace Volo.Abp.Cli.Telemetry; |
||||
|
|
||||
|
public class NullTelemetryService : ITelemetryService |
||||
|
{ |
||||
|
public IAsyncDisposable TrackActivity(ActivityEvent activityData) |
||||
|
{ |
||||
|
return NullAsyncDisposable.Instance; |
||||
|
} |
||||
|
public IAsyncDisposable TrackActivityAsync(string activityName, Action<Dictionary<string, object>>? additionalProperties = null) |
||||
|
{ |
||||
|
return NullAsyncDisposable.Instance; |
||||
|
} |
||||
|
|
||||
|
public Task AddActivityAsync(string activityName, Action<Dictionary<string, object>>? additionalProperties = null) |
||||
|
{ |
||||
|
return Task.CompletedTask; |
||||
|
} |
||||
|
|
||||
|
public Task AddErrorActivityAsync(Action<Dictionary<string, object>> additionalProperties) |
||||
|
{ |
||||
|
return Task.CompletedTask; |
||||
|
} |
||||
|
|
||||
|
public Task AddErrorActivityAsync(string errorMessage) |
||||
|
{ |
||||
|
return Task.CompletedTask; |
||||
|
} |
||||
|
|
||||
|
public Task AddErrorForActivityAsync(string failingActivity, string errorMessage) |
||||
|
{ |
||||
|
return Task.CompletedTask; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,44 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.IO; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp.DependencyInjection; |
||||
|
using Volo.Abp.Internal.Telemetry.Activity; |
||||
|
using Volo.Abp.Internal.Telemetry.Activity.Contracts; |
||||
|
using Volo.Abp.Internal.Telemetry.Activity.Providers; |
||||
|
using Volo.Abp.Internal.Telemetry.Constants; |
||||
|
using Volo.Abp.Internal.Telemetry.Constants.Enums; |
||||
|
|
||||
|
namespace Volo.Abp.Cli.Telemetry; |
||||
|
|
||||
|
[ExposeServices(typeof(ITelemetryActivityEventEnricher))] |
||||
|
public class TelemetryCliSessionProvider : TelemetryActivityEventEnricher |
||||
|
{ |
||||
|
public TelemetryCliSessionProvider(IServiceProvider serviceProvider) : base(serviceProvider) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
public override int ExecutionOrder { get; set; } = 10; |
||||
|
|
||||
|
protected override Task ExecuteAsync(ActivityContext context) |
||||
|
{ |
||||
|
context.Current[ActivityPropertyNames.SessionType] = SessionType.AbpCli; |
||||
|
context.Current[ActivityPropertyNames.SessionId] = Guid.NewGuid(); |
||||
|
context.Current[ActivityPropertyNames.IsFirstSession] = !File.Exists(TelemetryPaths.ActivityStorage); |
||||
|
context.Current["OldCli"] = true; |
||||
|
|
||||
|
if(context.Current.TryGetValue<Dictionary<string, object>>(ActivityPropertyNames.AdditionalProperties, out var additionalProperties)) |
||||
|
{ |
||||
|
additionalProperties["OldCli"] = true; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
context.Current[ActivityPropertyNames.AdditionalProperties] = new Dictionary<string, object> |
||||
|
{ |
||||
|
{ "OldCli", true } |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
return Task.CompletedTask; |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue