Nello script #208 abbiamo visto come creare una web app per Azure usando ARM, il motore di deployment delle risorse della piattaforma. Intorno ad una web app ruotano molti servizi che possono essere utili, tra questi Application Insights. Associandolo possiamo automaticamente, senza toccare il codice, monitorare gli errori e le prestazioni delle richieste. Questo passaggio può essere fatto normalmente manualmente, ma come ci si può aspettare, può essere fatto in maniera totalmente automatizzata con ARM.
Nel nostro template JSON procediamo prima di tutto alla definizione base del componente Application Insights.
{ "type": "microsoft.insights/components", "apiVersion": "2020-02-02-preview", "name": "[variables('siteName')]", "location": "[variables('location')]", "kind": "web", "properties": { "Application_Type": "web" } }
Diamo per scontato la definizione di un paio di variabili per indicare rispettivamente il nome del sito e la location, usati per allineare i nomi delle risorse che andiamo a creare, anche se non necessario. Per collegare l'istanza di Application Insights alla Web App occorre impostare un paio di chiavi speciali che permettano anche al portale stesso di vedere le due risorse accoppiate, come nell'esempio seguente.
{ "type": "Microsoft.Web/sites", "apiVersion": "2018-11-01", "name": "[variables('siteName')]", "location": "[variables('location')]", "kind": "app", "dependsOn": [ "[variables('servicePlanId')]" ], "properties": { "serverFarmId": "[variables('servicePlanId')]", "siteConfig": { "appSettings": [ { "name": "APPINSIGHTS_INSTRUMENTATIONKEY", "value": "[reference(concat('microsoft.insights/components/', variables('siteName')), '2015-05-01').InstrumentationKey]" }, { "name": "APPLICATIONINSIGHTS_CONNECTION_STRING", "value": "[reference(concat('microsoft.insights/components/', variables('siteName')), '2015-05-01').ConnectionString]" }, { "name": "ApplicationInsightsAgent_EXTENSION_VERSION", "value": "~2" } ] } }
Nell'esempio usiamo la funzione speciale reference che ci permette di ottenere il riferimento ad una specifica risorsa ed interrogare le proprietà da essa esposte, come la chiave e la stringa di connessione. Importante inoltre specificare la chiave ApplicationInsightsAgent_EXTENSION_VERSION per indicare l'ultima versione disponibile attualmente del motore. Segnaliamo infine le chiavi InstrumentationEngine_EXTENSION_VERSION e XDT_MicrosoftApplicationInsights_BaseExtensions che se impostate a ~1 abilitano anche il tracciamento dei comandi SQL.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare l'effetto floating label per gli input con Bootstrap 5
Creare un'istanza di Azure Service Bus con ARM
Creare Azure Function con supporto a OpenAPI
Scaling per app con Azure App Service
Indicizzare e ricercare i blob di Azure Storage
Gestire il polimorfismo delle proprietà durante la serializzazione con System.Text.Json
Avviare e arrestare programmaticamente un Hosted Service di ASP.NET Core
Creare velocemente microservice grazie a minimal API di ASP.NET Core 6
Effettuare una chiamata HTTP in Angular usando le promise e RxJs 7
Minimal API con .NET
Le novità di Angular 13 e del suo ecosistema
Aggiungere temi custom a Blazor
I più letti di oggi
- Tracciare gli eventi tramite i DevTools di Chrome
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Accedere alla console di una Azure Container App
- devConf 2022 - Online
- Utilizzare i metodi Linq MinBy e MaxBy per semplificare le ricerche degli elementi minimi e massimi in liste di oggetti complessi con LINQ
- Track 1: @marcominerva ci parla di DateOnly e TimeOnly in #dotnetTrack 2: @raffaeler su come monitorare e prevenire problemi in produzione (parte 2)Track 3: live show (ultimo segmento live della giornata) Seguici live su #aspilive: https://aspit.co/devconf-22
- Track 1: @sm15455 con le novità di #angular 14Track 2: @CristianCivera su come sviluppare applicazioni #serverless con #azure #containerappsTrack 3: live show Seguici su #aspilive: https://aspit.co/devconf-22