Browse Source

Add telemetry tracking to McpCommand execution

Introduced ITelemetryService to McpCommand and added activity tracking using ActivityNameConsts.AbpCliCommandsMcp. Also updated ActivityNameConsts to include the new activity name constant for MCP command telemetry.
pull/24677/head
Mansur Besleney 9 months ago
parent
commit
5b86a85281
  1. 9
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/McpCommand.cs
  2. 3
      framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/Constants/ActivityNameConsts.cs

9
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/McpCommand.cs

@ -15,6 +15,8 @@ using Volo.Abp.Cli.Commands.Models;
using Volo.Abp.Cli.Commands.Services; using Volo.Abp.Cli.Commands.Services;
using Volo.Abp.Cli.Licensing; using Volo.Abp.Cli.Licensing;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Internal.Telemetry;
using Volo.Abp.Internal.Telemetry.Constants;
namespace Volo.Abp.Cli.Commands; namespace Volo.Abp.Cli.Commands;
@ -28,6 +30,7 @@ public class McpCommand : IConsoleCommand, ITransientDependency
private readonly McpServerService _mcpServerService; private readonly McpServerService _mcpServerService;
private readonly McpHttpClientService _mcpHttpClient; private readonly McpHttpClientService _mcpHttpClient;
private readonly IMcpLogger _mcpLogger; private readonly IMcpLogger _mcpLogger;
private readonly ITelemetryService _telemetryService;
public ILogger<McpCommand> Logger { get; set; } public ILogger<McpCommand> Logger { get; set; }
@ -36,13 +39,15 @@ public class McpCommand : IConsoleCommand, ITransientDependency
AuthService authService, AuthService authService,
McpServerService mcpServerService, McpServerService mcpServerService,
McpHttpClientService mcpHttpClient, McpHttpClientService mcpHttpClient,
IMcpLogger mcpLogger) IMcpLogger mcpLogger,
ITelemetryService telemetryService)
{ {
_apiKeyService = apiKeyService; _apiKeyService = apiKeyService;
_authService = authService; _authService = authService;
_mcpServerService = mcpServerService; _mcpServerService = mcpServerService;
_mcpHttpClient = mcpHttpClient; _mcpHttpClient = mcpHttpClient;
_mcpLogger = mcpLogger; _mcpLogger = mcpLogger;
_telemetryService = telemetryService;
Logger = NullLogger<McpCommand>.Instance; Logger = NullLogger<McpCommand>.Instance;
} }
@ -58,6 +63,8 @@ public class McpCommand : IConsoleCommand, ITransientDependency
return; return;
} }
await using var _ = _telemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsMcp);
// Check server health before starting // Check server health before starting
_mcpLogger.Info(LogSource, "Checking ABP.IO MCP Server connection..."); _mcpLogger.Info(LogSource, "Checking ABP.IO MCP Server connection...");
var isHealthy = await _mcpHttpClient.CheckServerHealthAsync(); var isHealthy = await _mcpHttpClient.CheckServerHealthAsync();

3
framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/Constants/ActivityNameConsts.cs

@ -1,4 +1,4 @@
namespace Volo.Abp.Internal.Telemetry.Constants; namespace Volo.Abp.Internal.Telemetry.Constants;
public static class ActivityNameConsts public static class ActivityNameConsts
{ {
@ -68,6 +68,7 @@ public static class ActivityNameConsts
public const string AbpCliCommandsInstallModule = "AbpCli.Comands.InstallModule"; public const string AbpCliCommandsInstallModule = "AbpCli.Comands.InstallModule";
public const string AbpCliCommandsInstallLocalModule = "AbpCli.Comands.InstallLocalModule"; public const string AbpCliCommandsInstallLocalModule = "AbpCli.Comands.InstallLocalModule";
public const string AbpCliCommandsListModules = "AbpCli.Comands.ListModules"; public const string AbpCliCommandsListModules = "AbpCli.Comands.ListModules";
public const string AbpCliCommandsMcp = "AbpCli.Comands.Mcp";
public const string AbpCliRun = "AbpCli.Run"; public const string AbpCliRun = "AbpCli.Run";
public const string AbpCliExit = "AbpCli.Exit"; public const string AbpCliExit = "AbpCli.Exit";
public const string ApplicationRun = "Application.Run"; public const string ApplicationRun = "Application.Run";

Loading…
Cancel
Save