private void InitializeTelemetry() { var _logger = new SIM.Core.Logging.SitecoreLogger(Microsoft.Extensions.Logging.LogLevel.Debug); var kbProviderConfiguration = new KBProviderConfiguration() { BaseAddress = Constants.KBProviderBaseAddress }; var kbTelemetryProvider = new KnowledgeBaseProvider(kbProviderConfiguration, true, _logger); Telemetry.Analytics.RegisterProvider(kbTelemetryProvider); try { string appVersion = string.IsNullOrEmpty(ApplicationManager.AppVersion) ? "0.0.0.0" : ApplicationManager.AppVersion; var telemetryEventContext = new TelemetryEventContext( Constants.SitecoreInstanceManagerAppId, AnalyticsHelper.GetDeviceId(ApplicationManager.TempFolder, _logger), appVersion, _logger ); Telemetry.Analytics.Initialize(telemetryEventContext, WindowsSettings.AppTelemetryEnabled.Value, _logger); } catch (Exception ex) { Log.Error($"'TelemetryEventContext' error occurred.{Environment.NewLine}" + $"Message: {ex.Message}{Environment.NewLine}," + $"{ex.StackTrace}"); return; } }
public static void Initialize([CanBeNull] TelemetryEventContext telemetryEventContext, bool trackingEnabled, [CanBeNull] ILogger logger) { if (telemetryEventContext == null) { throw new ArgumentNullException(nameof(telemetryEventContext)); } if (logger == null) { throw new ArgumentNullException(nameof(logger)); } EventContext = telemetryEventContext; IsTrackingEnabled = trackingEnabled; _logger = logger; if (telemetryEventContext.DeviceId != Guid.Empty) { IsInitialized = true; } else { IsInitialized = false; _logger.LogDebug($"'Telemetry.Analytics' initialization failed. 'DeviceId' is empty."); } _logger.LogInformation("'Telemetry.Analytics' has been initialized successfully"); }
public void Ctor_ShouldNotThrow_ArgumentNullOrEmpty(string version) { // Arrange var app = Guid.NewGuid(); var device = Guid.NewGuid(); ILogger logger = Substitute.For <ILogger>(); // Act var context = new TelemetryEventContext(app, device, version, logger); // Assert Assert.NotNull(context); }
public abstract void TrackEvent(string telemetryEvent, Dictionary <string, string> customEventData, TelemetryEventContext telemetryEventContext);
public override void TrackEvent(string telemetryEvent, Dictionary <string, string> customEventData, TelemetryEventContext eventContext) { var appUtilizationModel = eventContext.ToAppUtilizationModel(telemetryEvent, customEventData); try { var utilizationModelJson = JsonConvert.SerializeObject(appUtilizationModel); var stringContent = new StringContent(utilizationModelJson, Encoding.UTF8, "application/json"); var response = Client.PutAsync(this.BaseAddress, stringContent).Result; response.EnsureSuccessStatusCode(); } catch (HttpRequestException e) { var errorMessage = $"KnowledgeBaseProvider: telemetry tracking failed."; _logger.LogDebug(e, errorMessage); } }