2017-01-27 7 views
3

Ich habe Legacy-Code in einem Azure WebJob (.exe) gehostet, der viele ETW-Ereignisse für die Protokollierung an einen benutzerdefinierten Ereignisanbieter generiert.ETW-Ereignisse an Application Insights senden?

Wie kann ich diese ETW-Ereignisse auf einfache Weise zu Application Insights bringen? Ich möchte, dass sie in derselben KI-Instanz erscheinen wie meine Website, die den WebJob hostet.

Antwort

2

Hier ist ein einfaches Beispiel für das Tracking-Modul für die Ereignisquelle. https://github.com/AlexBulankou/ai-samples/blob/master/ETWTrackingModule.cs

Das Modul umschließt den ETW-Listener, der konfigurierte Ereignisquellen abonniert. Sie können angeben, welche Ereignisquellen Sie abonnieren möchten und ob Ihre ETW-Ereignisse nachverfolgte Ereignisse und/oder Spuren sein sollen. Registrieren Sie dieses Modul in Ihrer ApplicationInsights.config wie folgt:

<Add Type="Microsoft.ApplicationInsights.Samples.ETWTrackingModule, YourAssemblyName"> 
    <TrackEvent>True</TrackEvent> 
    <TrackTrace>True</TrackTrace> 
    <EventSources> 
    <Add Name="System.Collections.Concurrent.ConcurrentCollectionsEventSource" EventLevel="LogAlways"/> 
    <Add Name="System.Diagnostics.Eventing.FrameworkEventSource" EventLevel="LogAlways"/> 
    </EventSources> 
</Add> 
+0

Wie kann ich die ApplicationInsights.config und die NuGets zu meinem WebJob hinzufügen? Es ist nur eine .exe in meinem WebJob, ich habe keinen Zugriff auf die Änderung des Codes. Wie kann ich den ETW-Provider angeben, der bei Application Insights protokolliert werden soll? –

+0

Ich nahm mit meiner Antwort an, dass Sie Application Insights aktivieren können, indem Sie Nuget-Pakete installieren und Ihre Konsolenanwendung als Azure-Web-Job erneut bereitstellen. Ist das nicht so? –

+0

Da ich den ursprünglichen Code für die EXE nicht ändern kann, kann ich wirklich nicht sehen, wie man das funktioniert. Danke für die Hilfe trotzdem. –

Verwandte Themen