Filtering App Insights Successful server-side dependencies

Application Insights can record the performance of your dependencies – so things like requests to SQL server, MongoDB, etc.. That’s great – but it can become VERY verbose. I find frequently that most of my allocation of data is spent tracking every damn SQL statement run – and there could be hundreds in a single page load.

You can just turn on Dependency tracking completely – but that seems a bit of nuclear option. What if there IS a problem? I want to know about it!

Well, you can create your own Telemetry filter instead:

public class SuccessfulDependencyFilter : ITelemetryProcessor
{
	private readonly ITelemetryProcessor _nextProcessor;

	public SuccessfulDependencyFilter(ITelemetryProcessor nextProcessor)
	{
		_nextProcessor = nextProcessor;
	}

	public void Process(ITelemetry telemetry)
	{
		DependencyTelemetry dependencyTelemetry = telemetry as DependencyTelemetry;
		if (dependencyTelemetry != null)
		{
			if (dependencyTelemetry.Success == true )
			{
				return;					
			}
		}

		_nextProcessor.Process(telemetry);
	}
}

This ITelemetryProcessor will check if the telemetry is a successful Dependency, and if it is, end processing (i.e. don’t write anything to App Insights).

To use it, add it to the ApplicationInsights.config in the TelemetryProcessors section:

Obviously, this means that if you have problems like a slow dependency that is still eventually successful then you won’t have any telemetry to show you that – but it VASTLY reduces the data being captured.

Filtering App Insights Successful server-side dependencies

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.