/// <summary> /// Sends the telemetry with the suggestion returned to the user. /// </summary> private void SendTelemetry(GetSuggestionTelemetryData telemetryData) { var suggestions = telemetryData.Suggestion?.PredictiveSuggestions; var suggestionSource = telemetryData.Suggestion?.SuggestionSources; var sourceTexts = telemetryData.Suggestion?.SourceTexts; var maskedUserInput = CommandLineUtilities.MaskCommandLine(telemetryData.UserInput?.FindAll((ast) => ast is CommandAst, true).LastOrDefault() as CommandAst); if ((suggestions != null) && (sourceTexts != null)) { for (int i = 0; i < suggestions.Count; ++i) { _userAcceptedAndSuggestion[suggestions[i].SuggestionText] = sourceTexts[i]; } } var properties = CreateProperties(telemetryData); properties.Add("ClientId", telemetryData.ClientId); properties.Add("SuggestionSessionId", telemetryData != null ? telemetryData.SuggestionSessionId.ToString(CultureInfo.InvariantCulture) : string.Empty); properties.Add("UserInput", maskedUserInput ?? string.Empty); properties.Add("Suggestion", sourceTexts != null ? JsonSerializer.Serialize(sourceTexts.Zip(suggestionSource).Select((s) => Tuple.Create(s.First, s.Second)), JsonUtilities.TelemetrySerializerOptions) : string.Empty); properties.Add("IsCancelled", telemetryData.IsCancellationRequested.ToString(CultureInfo.InvariantCulture)); properties.Add("Exception", AzPredictorTelemetryClient.FormatException(telemetryData.Exception)); SendTelemetry($"{AzPredictorTelemetryClient.TelemetryEventPrefix}/GetSuggestion", properties); }
/// <inheritdoc/> public virtual void OnGetSuggestion(GetSuggestionTelemetryData telemetryData) { PostTelemetryData(telemetryData); #if TELEMETRY_TRACE && DEBUG System.Diagnostics.Trace.WriteLine("Recording GetSuggestion"); #endif }
/// <inheritdoc/> public void OnGetSuggestion(GetSuggestionTelemetryData telemetryData) { if (!IsDataCollectionAllowed()) { return; } telemetryData.SessionId = SessionId; telemetryData.CorrelationId = CorrelationId; _telemetryDispatcher.Post(telemetryData); #if TELEMETRY_TRACE && DEBUG System.Diagnostics.Trace.WriteLine("Recording GetSuggestion"); #endif }