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); }
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); }
/// <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); }