Exemplo n.º 1
0
        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}");
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }