From 5b86a85281233a92f225f9a0c14b14cd8fde1e2d Mon Sep 17 00:00:00 2001 From: Mansur Besleney Date: Thu, 8 Jan 2026 13:45:15 +0300 Subject: [PATCH] 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. --- .../Volo/Abp/Cli/Commands/McpCommand.cs | 9 ++++++++- .../Internal/Telemetry/Constants/ActivityNameConsts.cs | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/McpCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/McpCommand.cs index ca448e7da9..95500c17e0 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/McpCommand.cs +++ b/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 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.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(); diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/Constants/ActivityNameConsts.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/Constants/ActivityNameConsts.cs index 64b22ef78f..aabbf142e3 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Internal/Telemetry/Constants/ActivityNameConsts.cs +++ b/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";