File: Telemetry\TelemetryConstants.cs
Web Access
Project: src\src\Aspire.Cli\Aspire.Cli.Tool.csproj (aspire)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace Aspire.Cli.Telemetry;
 
/// <summary>
/// Contains constants for telemetry tag names and event names used by the Aspire CLI.
/// </summary>
internal static class TelemetryConstants
{
    /// <summary>
    /// Tag names for telemetry data.
    /// </summary>
    internal static class Tags
    {
        /// <summary>
        /// Tag for the hashed MAC address of the machine.
        /// </summary>
        public const string MacAddressHash = "machine.mac_address_hash";
 
        /// <summary>
        /// Tag for the unique device identifier.
        /// </summary>
        public const string DeviceId = "machine.device_id";
 
        /// <summary>
        /// Tag for the exception type.
        /// </summary>
        public const string ExceptionType = "exception.type";
 
        /// <summary>
        /// Tag for the exception message.
        /// </summary>
        public const string ExceptionMessage = "exception.message";
 
        /// <summary>
        /// Tag for the exception stack trace.
        /// </summary>
        public const string ExceptionStackTrace = "exception.stacktrace";
 
        /// <summary>
        /// Tag for the process ID.
        /// </summary>
        public const string ProcessPid = "process.pid";
 
        /// <summary>
        /// Tag for the process executable name.
        /// </summary>
        public const string ProcessExecutableName = "process.executable.name";
 
        /// <summary>
        /// Tag for the process exit code.
        /// </summary>
        public const string ProcessExitCode = "process.exit.code";
 
        /// <summary>
        /// Tag for the CLI command name.
        /// </summary>
        public const string CommandName = "aspire.cli.command.name";
 
        /// <summary>
        /// Tag for the CLI version.
        /// </summary>
        public const string CliVersion = "aspire.cli.version";
 
        /// <summary>
        /// Tag for the CLI build identifier, such as the file version or build ID.
        /// </summary>
        public const string CliBuildId = "aspire.cli.build_id";
 
        /// <summary>
        /// Tag for the deployment environment name ("ci" or "local").
        /// </summary>
        public const string DeploymentEnvironmentName = "deployment.environment.name";
 
        /// <summary>
        /// Tag for the detected SDK version.
        /// </summary>
        public const string SdkDetectedVersion = "aspire.cli.sdk.detected_version";
 
        /// <summary>
        /// Tag for the minimum required SDK version.
        /// </summary>
        public const string SdkMinimumRequiredVersion = "aspire.cli.sdk.minimum_required_version";
 
        /// <summary>
        /// Tag indicating the result of the SDK installation attempt.
        /// </summary>
        public const string SdkInstallResult = "aspire.cli.sdk.install_result";
 
        /// <summary>
        /// Tag indicating the result of the SDK check operation.
        /// </summary>
        public const string SdkCheckResult = "aspire.cli.sdk.check_result";
    }
 
    /// <summary>
    /// Activity names for telemetry.
    /// </summary>
    internal static class Activities
    {
        /// <summary>
        /// Activity name for the main CLI entry point.
        /// </summary>
        public const string Main = "aspire/cli/main";
 
        /// <summary>
        /// Activity name for ensuring the SDK is installed.
        /// </summary>
        public const string EnsureSdkInstalled = "aspire/cli/ensure_sdk_installed";
    }
 
    /// <summary>
    /// Event names for telemetry activities.
    /// </summary>
    internal static class Events
    {
        /// <summary>
        /// Event name for recording errors in the CLI.
        /// </summary>
        public const string Error = "aspire/cli/error";
    }
}