private async Task SendRUMMessageAsync(RaygunRUMMessage message) { try { if (ValidateApiKey()) { string payload = JsonConvert.SerializeObject(message, HttpService.SERIALIZATION_SETTINGS); await HttpService.SendRequestAsync(_settings.RealUserMonitoringApiEndpoint, _settings.ApiKey, payload); } } catch (Exception ex) { Debug.WriteLine($"Error sending RUM message to Raygun: {ex.Message}"); } }
public async Task <RaygunRUMMessage> SendSessionStartEventAsync() { RaygunRUMMessage sessionStartMessage = null; try { await SendSessionEndEventAsync(); _sessionId = Guid.NewGuid().ToString(); sessionStartMessage = BuildSessionEventMessage(RaygunRUMEventType.SessionStart, _sessionId); await SendRUMMessageAsync(sessionStartMessage); } catch (Exception ex) { Debug.WriteLine($"Error sending session-start event to Raygun: {ex.Message}"); } return(sessionStartMessage); }
public async Task <RaygunRUMMessage> SendSessionEndEventAsync() { RaygunRUMMessage sessionEndMessage = null; try { if (_sessionId != null) { sessionEndMessage = BuildSessionEventMessage(RaygunRUMEventType.SessionEnd, _sessionId); _sessionId = null; await SendRUMMessageAsync(sessionEndMessage); } } catch (Exception ex) { Debug.WriteLine($"Error sending session-end event to Raygun: {ex.Message}"); } return(sessionEndMessage); }
private RaygunRUMMessage BuildSessionEventMessage(RaygunRUMEventType eventType, string sessionId) { var message = new RaygunRUMMessage { EventData = new RaygunRUMEventInfo[] { new RaygunRUMEventInfo { SessionId = sessionId, Timestamp = DateTime.UtcNow, Type = eventType, User = UserInfo ?? DefaultUserService.DefaultUser, Version = string.IsNullOrWhiteSpace(ApplicationVersion) ? EnvironmentService.PackageVersion : ApplicationVersion, Platform = EnvironmentService.DeviceName, OS = EnvironmentService.OperatingSystem, OSVersion = EnvironmentService.OperatingSystemVersion } } }; return(message); }
public async Task <RaygunRUMMessage> SendSessionTimingEventAsync(RaygunRUMEventTimingType type, string name, long milliseconds) { RaygunRUMMessage sessionTimingMessage = null; try { if (_sessionId == null) { await SendSessionStartEventAsync(); } sessionTimingMessage = BuildSessionEventMessage(RaygunRUMEventType.Timing, _sessionId); var data = new RaygunRUMTimingData[] { new RaygunRUMTimingData { Name = name, Timing = new RaygunRUMTimingInfo { Type = type, Duration = milliseconds } } }; string dataPayload = JsonConvert.SerializeObject(data, HttpService.SERIALIZATION_SETTINGS); sessionTimingMessage.EventData[0].Data = dataPayload; await SendRUMMessageAsync(sessionTimingMessage); } catch (Exception ex) { Debug.WriteLine($"Error sending RUM timing event to Raygun: {ex.Message}"); } return(sessionTimingMessage); }