2017-01-17 1 views
3

Ich habe festgestellt, dass App Insights ein Feld namens appName (und appId) bei der Abfrage im Analyse-Tool (siehe unten) hat, aber ich sehe keine Möglichkeit, dies in der Client-Bibliothek zu setzen. Kann das eingestellt werden?Gibt es eine Möglichkeit, AppName in benutzerdefinierten Ereignissen von Application Insights festzulegen?

Ich versuche, verwandte Elemente mit App Insights zu protokollieren, obwohl die Log-Quelle möglicherweise anders ist. Die Verwendung dieses Felds scheint eine gute Möglichkeit zu sein, dieses Szenario zu bewältigen, obwohl ich für verschiedene Szenarien offen bin.


screen shot of analytics tool

Antwort

5

Diese Werte im Backend aufgefüllt werden, und geben Sie Details Ressourcen Praktische Anwendung und somit nicht verändert werden kann.

Was Sie suchen, ist custom dimensions.

Zum Beispiel die Telemetrie zu senden:

EventTelemetry telemetry = new EventTelemetry("my custom event"); 
telemetry.Properties.Add("MyApp", "HelloWorld"); 
telemetryClient.TrackEvent(telemetry); 

Um diese benutzerdefinierten Dimensionen abfragen:

customEvents 
| where customDimensions['MyApp'] == "HelloWorld" 
+0

Ihnen danken. Ich weiß über benutzerdefinierte Dimensionen Bescheid, aber ich dachte, diese Out-of-the-Box-Felder könnten stattdessen verwendet werden. –

+0

Sie können heute nützlich sein, wenn Sie beispielsweise Application Insights-Daten von allen Application Insights-Ressourcen an StreamAnalytics oder SQL usw. exportieren. Auch wenn/Wenn Application Insights Abfragefunktionen für verschiedene Apps bereitstellt, sind sie nützlich. – ManishKG

1

Es gibt eine Vorschau in dem Sie den Namen der Anwendung einstellen. Dies wird in der folgenden Weise:

  • ermöglichen, die Vorschau Anwendungs ​​Map
  • die ITelemetry.Context.Cloud.RoleName gesetzt (dies ist der Name der Anwendung)

Vorschau aktivieren: auf die Go Portal -> die Anwendung Einblicke -> Vorschauen -> enable Multi-Rolle Anwendungs ​​Karte

den Namen der Anwendung Set:

Dies wird durch das Hinzufügen eines interc getan eptor:

public class ServiceNameInitializer : ITelemetryInitializer 
{ 
    public void Initialize(ITelemetry telemetry) 
    { 
        telemetry.Context.Cloud.RoleName = "MyProcessName"; 
    } 
} 

Fügen Sie den Interceptor auf die Anwendung Einblicke Konfiguration in startup.cs:

private void ConfigureAppInsights(IServiceCollection services) 
{ 
    services.AddApplicationInsightsTelemetry(Configuration); 
    TelemetryConfiguration.Active.TelemetryInitializers 
       .Add(new ServiceNameInitializer()); 
} 

Lesen Sie mehr auf: cross-process-application-insights-with-multi-role-application-map

+0

Die Frage wird nach dem Festlegen von 'appName' und nicht nach' cloud_RoleName' gestellt. Sie können 'appName' nicht anpassen. –

Verwandte Themen