From 4334d79d7626548855c30b2c49770c166855c2f1 Mon Sep 17 00:00:00 2001 From: Sakshi Sharma <57200045+SakshiS-harma@users.noreply.github.com> Date: Tue, 27 Jun 2023 14:25:18 -0700 Subject: [PATCH] Add "Open XEL file" support to profiler in sqltoolsservice (#2091) * Open XEL file changes * placeholders for openxel * add observable xe reader * md format tweaks * implement localfile as a new session type * add ErrorMessage to session stopped notice * fix flaky test * handle already running session * fix stopped session event send on file completion * fix flaky unit test * Update XElite and dependent versions * Fix errors after merge and remove failing tests for now * Fix main merge mess-up. Address comments. Add one more relevant test. * Remove extra namespace. * Remove unnecessary import * Fix build error * Address comments. * Remove disabiling JSON002 compiler warning * Address comments and update json handling * Fix build error * Fix integration test (emerged due to Main merge mess up) * Clean up code (no functional changes) --------- Co-authored-by: Karl Burtram Co-authored-by: shueybubbles --- Packages.props | 1 + README.md | 14 +- docs/guide/toc.md | 16 +- docs/guide/using_the_jsonrpc_api.md | 7 +- .../Microsoft.SqlTools.ServiceLayer.csproj | 1 + .../Contracts/GetXEventSessionsRequest.cs | 2 +- .../ProfilerEventsAvailableNotification.cs | 3 + .../ProfilerSessionCreatedNotification.cs | 3 + .../ProfilerSessionStoppedNotification.cs | 16 ++ .../Contracts/StartProfilingRequest.cs | 31 ++- .../Profiler/IProfilerSessionListener.cs | 2 +- .../Profiler/IXEventSession.cs | 48 ++++- .../Profiler/IXEventSessionFactory.cs | 7 + .../Profiler/ObservableXEventSession.cs | 170 ++++++++++++++++ .../Profiler/ProfilerException.cs | 19 ++ .../Profiler/ProfilerService.cs | 78 ++++--- .../Profiler/ProfilerSession.cs | 163 +++++++++++++-- .../Profiler/ProfilerSessionMonitor.cs | 124 ++++-------- .../Profiler/XEventSession.cs | 17 +- .../Connection/ConnectionServiceTests.cs | 2 +- .../Profiler/ProfilerServiceTests.cs | 139 +++++++++---- ...oft.SqlTools.ServiceLayer.UnitTests.csproj | 5 + .../Profiler/ProfilerServiceTests.cs | 191 +++++++++++++----- .../Profiler/ProfilerSessionTests.cs | 8 +- .../Profiler/ProfilerTestObjects.cs | 31 ++- .../Profiler/TestXel_0.xel | Bin 0 -> 215040 bytes .../Profiler/XeStreamObservableTests.cs | 113 +++++++++++ 27 files changed, 952 insertions(+), 259 deletions(-) create mode 100644 src/Microsoft.SqlTools.ServiceLayer/Profiler/ObservableXEventSession.cs create mode 100644 src/Microsoft.SqlTools.ServiceLayer/Profiler/ProfilerException.cs create mode 100644 test/Microsoft.SqlTools.ServiceLayer.UnitTests/Profiler/TestXel_0.xel create mode 100644 test/Microsoft.SqlTools.ServiceLayer.UnitTests/Profiler/XeStreamObservableTests.cs diff --git a/Packages.props b/Packages.props index a792e2b9..2ebf51b9 100644 --- a/Packages.props +++ b/Packages.props @@ -48,6 +48,7 @@ +