Occasionally, when working with StreamInsight queries an unusual result will crop up, leading to asking the rather blunt question “where did that come from?”. Luckily the StreamInsight Event Flow Debugger has a great feature (Root Cause Analysis) that will let us examine how certain results were generated.
If you’ve never used the Event Flow Debugger, or are having trouble working with it, please have a look through StreamInsight: Getting started with using the (Event Flow) debugger, viewing diagnostics, and exposing the management service.
We’ll start by creating a system that produces “questionable” results, then examining it with the Event Flow Debugger. This system will:
If you haven’t installed LINQPad with the StreamInsight driver, the step-by-step instructions may be found at StreamInsight LINQPad Driver on the StreamInsight team blog. This tool combination makes ad-hoc querying drastically simpler, and I highly recommend dropping down the $30 for autocompletion. Well worth it!
With the system up and running, we’ll use the offline trace file capabilities of StreamInsight to capture events flowing through the system, then analyze the results to see if it “makes sense”. The details of using LINQPad to pull an OData stream from the internet and query it with StreamInsight are covered StreamInsight: Reading from other data contexts into StreamInsight with LINQPad. The trace file that I use in this blog post was generated by running the LINQ statement from that blog post.
We’ll use the offline trace capability of StreamInsight to figure out some root cause analysis of output events. From the previous post, let’s track down what went into producing this output event:
7/12/1996 7:00:00 AM +00:00