void SubscribeTelemetryEvents() { events .Of <object>() .Where(ev => ev.IsBrowsable()) .Subscribe(x => { var ev = x as Event; if (ev == null) { var eventName = x.GetName(); var properties = x.GetProperties(); var metrics = x.GetMetrics(); telemetry.TrackEvent(eventName, properties, metrics); } else { telemetry.TrackEvent(ev.Name, ev.Properties, ev.Metrics); } }); events .Of <TelemetryError> () .Subscribe(err => { telemetry.TrackError(err); }); }