public void Send(ITelemetry item) { var timer = TimerStrategy(); if (timer == null || MessageBroker == null) { return; } if (item is DependencyTelemetry) { var dependency = item as DependencyTelemetry; var timelineMessage = new DependencyTelemetryTimelineMessage(dependency); timelineMessage.Offset = timer.Point().Offset.Subtract(dependency.Duration); MessageBroker.Publish(timelineMessage); } if (item is TraceTelemetry) { TraceTelemetry t = new TraceTelemetry(); var model = new TraceMessage { Category = "Application Insights", Message = t.SeverityLevel == null ? t.Message : t.SeverityLevel + ": " + t.Message, FromFirst = timer.Point().Offset, FromLast = CalculateFromLast(timer), IndentLevel = 0 }; MessageBroker.Publish(model); } messageBroker.Publish(item); }
private void InternalWrite(string message, string category) { var timer = TimerStrategy(); // Execution in on thread without access to RequestStore if (timer == null || MessageBroker == null) { return; } var model = new TraceMessage { Category = category, Message = message, FromFirst = timer.Point().Offset, FromLast = CalculateFromLast(timer), IndentLevel = IndentLevel }; MessageBroker.Publish(model); }
/// <summary> /// Sends telemetry data item to the configured channel if the instrumentation key /// is not empty. Also publishes the telemetry item to the MessageBroker. Filters /// out the requests to Glimpse handler. /// </summary> /// <param name="item">Item to send.</param> public void Send(ITelemetry item) { var timer = this.TimerStrategy(); if (item == null || timer == null || this.MessageBroker == null) { return; } // Filter the request telemetry to glimpse.axd if (item is RequestTelemetry) { var request = item as RequestTelemetry; if (request.Url != null && request.Url.AbsolutePath != null) { if (request.Url.AbsolutePath.ToLower().EndsWith("glimpse.axd")) { return; } } } if (item is DependencyTelemetry) { var dependency = item as DependencyTelemetry; var timelineMessage = new DependencyTelemetryTimelineMessage(dependency); timelineMessage.Offset = timer.Point().Offset.Subtract(dependency.Duration); this.MessageBroker.Publish(timelineMessage); } if (item is TraceTelemetry) { TraceTelemetry t = new TraceTelemetry(); var model = new TraceMessage { Category = "Application Insights", Message = t.SeverityLevel == null ? t.Message : t.SeverityLevel + ": " + t.Message, FromFirst = timer.Point().Offset, FromLast = this.CalculateFromLast(timer), IndentLevel = 0 }; this.MessageBroker.Publish(model); } // Filter telemetry with empty instrumentation key if (item.Context.InstrumentationKey!=null && !item.Context.InstrumentationKey.Equals("00000000-0000-0000-0000-000000000000")) { this.ApplicationInsightsChannel.Send(item); } this.messageBroker.Publish(item); }