Beispiel #1
0
        public void SendSessionTimingEventAsync_NoActiveSession_MessageDataHasGivenTypeAndNameAndDuration()
        {
            RaygunRUMEventTimingType type = RaygunRUMEventTimingType.ViewLoaded;
            string name     = "page";
            long   duration = 1000;

            RaygunRUMMessage sessionTimingMessage = _rumService.SendSessionTimingEventAsync(type, name, duration).Result;

            Assert.AreEqual(1, sessionTimingMessage.EventData.Length);
            RaygunRUMEventInfo eventInfo = sessionTimingMessage.EventData[0];

            RaygunRUMTimingData[] timingData = JsonConvert.DeserializeObject <RaygunRUMTimingData[]>(eventInfo.Data, HttpService.SERIALIZATION_SETTINGS);
            Assert.AreEqual(1, timingData.Length);
            Assert.AreEqual(type, timingData[0].Timing.Type);
            Assert.AreEqual(name, timingData[0].Name);
            Assert.AreEqual(duration, timingData[0].Timing.Duration);
        }
Beispiel #2
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);
        }
Beispiel #3
0
 /// <summary>
 /// Sends a RUM performance timing event.
 /// If there isn't currently an active session, a new one will be started.
 /// </summary>
 /// <param name="type">Type of event being recorded.</param>
 /// <param name="name">Name of the event (e.g. a page name or a request URL).</param>
 /// <param name="milliseconds">The duration of the event.</param>
 public async void SendSessionTimingEventAsync(RaygunRUMEventTimingType type, string name, long milliseconds)
 {
     await _rumService.SendSessionTimingEventAsync(type, name, milliseconds);
 }