2016-09-08 3 views
2

Ich implementiere die Azure Application Insights und die API, die ich gefunden habe, kann ich nur dort Wörterbuch des Typs string und string senden. Auch wenn ich TraceTelemetry verwende, hat es Eigenschaften, die wieder Wörterbuch von string und string ist.So senden Sie Json zu Azure Appinsights mit C# library

Wenn ich jedoch ein Feld zu den benutzerdefinierten Eigenschaften hinzufügen (Autos in meinem Fall), die Wert von serialisierten JSON hat, wird dies dazu führen, dass eine solche Nutzlast an die Application Insights gesendet wird.

"baseData": { 
     "ver": 2, 
     "message": "Test Message", 
     "properties": { 
      "cars": "[{\"Id\":0,\"Price\":{\"Value\":12.32,\"Currency\":..... 
     } 
    } 

beachten Sie den Backslash machen es einen Json-Wert.

Aber das Appinsight-Portal wird es verstehen - und analysieren.

Appinsight parsing string as json

So Ich kann Microsoft verwenden, sofern C# API, aber es sieht einfach hässlich und scheint, wie die API JSON sowieso, also warum ist API beschränkt sich auf Dictionary<string, string>?

+1

Ich bin mir nicht sicher, dass dies das richtige Forum für eine solche Frage ist, da Sie tatsächlich nach einer neuen Funktion in der API fragen, nicht für Hilfe bei einem bestimmten Problem. Ich schlage vor, einen Vorschlag in UserVoice zu posten: https://visualstudio.uservoice.com/forums/357324-application-insights – EranG

+0

Vielleicht könnten Sie ein Problem hier öffnen: https://github.com/Microsoft/ApplicationInsights-dotnet/issues . –

Antwort

-1

Es ist wegen der Filterung in Azure Portal. Der Hauptzweck der Eigenschaften (Dictionary<string, string>) ist bieten die Möglichkeit, bestimmte Anfragen, Ausnahmen usw. zu finden. Sie sind auch durch die Anzahl der Eigenschaften begrenzt (es war etwa 200). Die typischen Eigenschaften sind: "Benutzername", "isAuthenticated", "Rolle", "Score", "isAnonymous", "PortalName", "Gruppe", "Produkt" atc. In der Regel globale Eigenschaften. Wenn Sie das gesamte Objekt/json senden möchten, können Sie TrackTrace() verwenden. Sie können alle Spuren bezüglich konkreter Anfrage im Portal finden.

+0

Ich spreche nur über TrackTrace() .. – vmachacek