Idera SQL XEvent Profiler – a free tool for XEvent monitoring

The Extended Events technology added to SQL Server in SQL 2008 and expanded upon greatly in SQL 2012 is a powerful mechanism for monitoring activity in SQL Server. It has huge implications for tools like SQL Diagnostic Manager, which switched over to XEvent technology for wait monitoring, and for users of all stripes who need to see what is happening on their servers.

Unfortunately, in SQL 2008, the XEvent technology was not quite fully ready for the average user. It offered a reduced set of events and could only be manipulated through TSQL. In SQL 2012 the number of events went up dramatically and Microsoft released an XEvent GUI as part of Management Studio. However, what we’ve heard from users is that the XEvent tool is a bit overkill for a lot of purposes. Therefore, a lot of users continue to use SQL Server Profiler, which uses trace technology. It’s easy to see why – it’s familiar, it’s easy to use, and it takes only a few clicks to get a diagnostic session started.

With that in mind, we’ve put together a new free tool called SQL XEvent Profiler, which offers the simplicity of Profiler but uses the powerful and lightweight XEvent technology on the back end. The idea was to provide the simple 2 click behavior that users were looking for, along with the familiar SQL Profiler templates that users are already accustomed to using.

XEvent Profiler Template

The application has the familiar start, stop, and pause buttons, the ability to turn auto-scroll on and off, and the ability to clear the grid. While we were at it, we added some nice grouping functionality to the event grid, along with text searching and export.

XEvent Profiler Events

Working on this tool was fun and interesting for the team and we hope you find it useful. It’s available to download for free at the Idera website.

Thoughts, comments? Ideas for another free tool? Let us know!

8 thoughts on “Idera SQL XEvent Profiler – a free tool for XEvent monitoring

  1. Just tried it out and got this Inner Exception error.

    System.NullReferenceException was unhandled
    HResult=-2147467261
    Message=Object reference not set to an instance of an object.
    Source=SQLXEventProfiler
    StackTrace:
    at XEventsProfiler.MainWindow.backgroundEventStreamFetcher_ProgressChanged(Object sender, ProgressChangedEventArgs e)
    at System.ComponentModel.BackgroundWorker.OnProgressChanged(ProgressChangedEventArgs e)
    at System.ComponentModel.BackgroundWorker.ProgressReporter(Object arg)
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
    at System.Windows.Threading.DispatcherOperation.InvokeImpl()
    at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    at System.Windows.Threading.DispatcherOperation.Invoke()
    at System.Windows.Threading.Dispatcher.ProcessQueue()
    at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
    at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
    at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
    at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
    at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
    at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
    at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
    at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
    at System.Windows.Threading.Dispatcher.Run()
    at System.Windows.Application.RunDispatcher(Object ignore)
    at System.Windows.Application.RunInternal(Window window)
    at System.Windows.Application.Run(Window window)
    at XEventsProfiler.App.Main()
    InnerException:

  2. Hi Vicky,
    XEvent Profiler can not be installed in SQL 2014, Windows 8.1。
    Where can I find the log?

    Thanks.
    Rainmaker.

  3. Hi,
    I’ve tried to install XEvent Profiler as add-in and just simply have not found it in MS.
    When installed as standalone, it works fine.
    (Windows Server 2012R2, SQL Server 2014 12.0.2370).
    Cheers,
    Sergey

  4. When installing XEvents Profiler on Win7, installation aborts and the MSIExec log contains the following lines:

    ERROR in custom action CopyLinqAssembly System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    bei InstallerCA.CustomActions.checkForLinq()
    bei InstallerCA.CustomActions.CopyLinq()
    bei InstallerCA.CustomActions.CopyLinqAssembly(Session session)
    MSI (s) (84!6C) [13:00:07:357]: Closing MSIHANDLE (15) of type 790531 for thread 5996
    CustomAction CopyLinqAssembly returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)

    Any ideas?

    Regards, Franz

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>