Skip to content

Instantly share code, notes, and snippets.

View patkleef's full-sized avatar

Patrick van Kleef patkleef

View GitHub Profile
@patkleef
patkleef / ApplicationInsightsTelemetryProcessorsGlobal.asax
Last active March 13, 2017 19:26
Application Insights Blog - ApplicationInsightsTelemetryProcessorsGlobal.asax
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
TelemetryConfiguration.Active.TelemetryInitializers.Add(new ClientIpHeaderTelemetryInitializer());
var builder = TelemetryConfiguration.Active.TelemetryProcessorChainBuilder;
@patkleef
patkleef / ApplicationInsightsTelemetryProcessors.config
Created March 13, 2017 19:22
Application Insights Blog - ApplicationInsightsTelemetryProcessors.config
<TelemetryProcessors>
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector" />
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
</Add>
<Add Type="ApplicationInsightDemoSite.NotFoundFilter, ApplicationInsightDemoSite" />
</TelemetryProcessors>
@patkleef
patkleef / ApplicationInsightsNotFoundFilter.cs
Last active March 13, 2017 19:27
Application Insights Blog - ApplicationInsightsNotFoundFilter.cs
public class NotFoundFilter : ITelemetryProcessor
{
private ITelemetryProcessor Next { get; set; }
public NotFoundFilter(ITelemetryProcessor next)
{
this.Next = next;
}
public void Process(ITelemetry item)
@patkleef
patkleef / ApplicationInsightsGlobal.asax
Created March 13, 2017 19:19
Application Insights Blog - ApplicationInsightsGlobal.asax
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
TelemetryConfiguration.Active.TelemetryInitializers.Add(new ClientIpHeaderTelemetryInitializer());
}
@patkleef
patkleef / ApplicationInsightsTelemetryInitializers.config
Last active March 13, 2017 19:20
Application Insights Blog - ApplicationInsightsTelemetryInitializers.config
<TelemetryInitializers>
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.HttpDependenciesParsingTelemetryInitializer, Microsoft.AI.DependencyCollector" />
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer" />
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureWebAppRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer" />
<Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer" />
<Add Type="Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer, Microsoft.AI.Web" />
<Add Type="Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer, Microsoft.AI.Web">
<Filters>search|spider|crawl|Bot|Monitor|AlwaysOn</Filters>
</Add>
<Add Type="Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web" />
@patkleef
patkleef / ApplicationInsightsClientIpHeaderTelemetryInitializer.cs
Last active March 13, 2017 19:27
Application Insights Blog - ApplicationInsightsClientIpHeaderTelemetryInitializer.cs
/// <summary>
/// Implements initialization logic.
/// </summary>
/// <param name="platformContext">Http context.</param>
/// <param name="requestTelemetry">Request telemetry object associated with the current request.</param>
/// <param name="telemetry">Telemetry item to initialize.</param>
protected override void OnInitializeTelemetry(HttpContext platformContext, RequestTelemetry requestTelemetry, ITelemetry telemetry)
{
if (string.IsNullOrEmpty(telemetry.Context.Location.Ip))
{