private static void DoMathHomework(TimeSpan forHowLong) { //Track work as span SimpleTracer.TrackWork("Do Math Homework", () => { Thread.Sleep(forHowLong); }); }
private static void CallMyBestFriend(TimeSpan forHowLong) { //Track work as span SimpleTracer.TrackWork("Call My Bestie", () => { throw new Exception("Get back to work!!!"); }); }
private static void DoComputerScienceHomework(TimeSpan forHowLong) { //Track work as span SimpleTracer.TrackWork("Do Computer Science Homework", () => { SimpleTracer.CurrentSpan(s => s.WithAttribute("Method", "DoComputerScienceHomework")); Thread.Sleep(forHowLong); }); }
/// <summary> /// This method will be tracked as a span. Since this is a topmost span, when this work is complete, the SpanBatch /// consisting of this span and all of its children will be sentt to New Relic. /// </summary> private static void DoHomework() { //Track work as span SimpleTracer.TrackWork("Do Homework", () => { DoMathHomework(TimeSpan.FromSeconds(2)); TakeABreak(TimeSpan.FromSeconds(1)); DoScienceHomework(); }); }
private static void DoScienceHomework() { //Track work as span SimpleTracer.TrackWork("Do Science Homework", () => { DoComputerScienceHomework(TimeSpan.FromSeconds(1)); TakeABreak(TimeSpan.FromSeconds(2)); try { CallMyBestFriend(TimeSpan.FromSeconds(20)); } catch (Exception ex) { Console.Error.WriteLine($"Captured Expected Exception - {ex.Message}"); } DoBiologyHomework(TimeSpan.FromSeconds(1)); }); }