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 4 weeks 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.Licensing;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Internal.Telemetry;
using Volo.Abp.Internal.Telemetry.Constants;
namespace Volo.Abp.Cli.Commands;
@ -28,6 +30,7 @@ public class McpCommand : IConsoleCommand, ITransientDependency
private readonly McpServerService _mcpServerService;
private readonly McpHttpClientService _mcpHttpClient;
private readonly IMcpLogger _mcpLogger;
private readonly ITelemetryService _telemetryService;
public ILogger<McpCommand> Logger { get; set; }
@ -36,13 +39,15 @@ public class McpCommand : IConsoleCommand, ITransientDependency
AuthService authService,
McpServerService mcpServerService,
McpHttpClientService mcpHttpClient,
IMcpLogger mcpLogger)
IMcpLogger mcpLogger,
ITelemetryService telemetryService)
{
_apiKeyService = apiKeyService;
_authService = authService;
_mcpServerService = mcpServerService;
_mcpHttpClient = mcpHttpClient;
_mcpLogger = mcpLogger;
_telemetryService = telemetryService;
Logger = NullLogger<McpCommand>.Instance;
}
@ -58,6 +63,8 @@ public class McpCommand : IConsoleCommand, ITransientDependency
return;
}
await using var _ = _telemetryService.TrackActivityAsync(ActivityNameConsts.AbpCliCommandsMcp);
// Check server health before starting
_mcpLogger.Info(LogSource, "Checking ABP.IO MCP Server connection...");
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
{
@ -68,6 +68,7 @@ public static class ActivityNameConsts
public const string AbpCliCommandsInstallModule = "AbpCli.Comands.InstallModule";
public const string AbpCliCommandsInstallLocalModule = "AbpCli.Comands.InstallLocalModule";
public const string AbpCliCommandsListModules = "AbpCli.Comands.ListModules";
public const string AbpCliCommandsMcp = "AbpCli.Comands.Mcp";
public const string AbpCliRun = "AbpCli.Run";
public const string AbpCliExit = "AbpCli.Exit";
public const string ApplicationRun = "Application.Run";

Loading…
Cancel
Save