Le Azure Function pongono al centro il nostro codice scaricandoci dalla responsabilità di gestire l'hosting e la scalabilità del nostro codice. Tra le tante caratteristiche che abbiamo a disposizione vi è anche la possibilità di agganciare Application Insights (AI) e monitorare le nostre funzioni. Indipendentemente dal linguaggio che utilizziamo, è sufficiente abilitare il motore direttamente sul portale per ottenere il tracciamento delle funzioni, il logging personalizzato e tutte le dipendenze che utilizziamo.
Il comportamento predefinito, però, include alcune informazioni delle quali non sempre necessitiamo, come per esempio le dipendenze su SQL o HTTP, le quali vanno ad ampliare notevolmente la quantità di dati salvati e di conseguenza il costo di AI.
Fortunatamente è possibile personalizzare il motore degli Application Insights agendo tramite il file host.json. Il file è disponibile nei progetti creati automaticamente tramite SDK o è visibile direttamente nel portale entrando nella funzione e alla voce Function app settings.

Nella sezione logging è disponibile una voce applicationInsights con il quale è possibile impostare:
- isEnabled: abilita il sampling, cioè la collezione degli eventi più significati, invece che di tutti gli eventi indistamente. Default è attivo;
- maxTelemetryItemsPerSecond: numero massimo di elementi al secondo. Default è 20;
- EnableLiveMetrics: abilita la metrica live consultabile su AI. Default è attivo;
- EnableDependencyTracking: abilita il tracciamento delle dipendenze. Default è attivo;
- EnablePerformanceCountersCollection[i/]: abilita i contatori e le prestazioni Kudu. Default è attivo.
E' sufficiente apportare la modifica al file o pubblicarlo nuovamente per ottenere i cambiamenti desiderati.
Per maggiori dettagli sul sampling rimandiamo alla documentazione https://docs.microsoft.com/en-us/azure/azure-monitor/app/sampling
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Il nuovo controllo Range di Blazor 9
Utilizzare QuickGrid di Blazor con Entity Framework
Configurare e gestire sidecar container in Azure App Service
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Creare un webhook in Azure DevOps
Supportare la sessione affinity di Azure App Service con Application Gateway
Estrarre dati randomici da una lista di oggetti in C#
Migliorare la sicurezza dei prompt con Azure AI Studio
Utilizzare Copilot con Azure Cosmos DB
Ottimizzazione dei block template in Angular 17