Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzioni di Azure offre l'integrazione predefinita con Azure Application Insights per il monitoraggio delle funzioni. Per i linguaggi diversi da .NET e .NET Core, sono necessari altri ruoli di lavoro/estensioni specifici del linguaggio per ottenere i vantaggi completi della traccia distribuita.
Application Insights raccoglie i dati relativi a log, prestazioni ed errori e rileva automaticamente le anomalie delle prestazioni. Application Insights include strumenti di analisi potenti per diagnosticare i problemi e acquisire informazioni sul modo in cui le funzioni vengono utilizzate. Quando si ha visibilità sui dati dell'applicazione, è possibile migliorare continuamente le prestazioni e l'usabilità. È anche possibile usare Application Insights durante lo sviluppo di un progetto locale di app per le funzioni.
La strumentazione di Application Insights necessaria è incorporata in Funzioni di Azure. L'unico elemento necessario è una stringa di connessione valida per connettere l'app per le funzioni a una risorsa Application Insights. La stringa di connessione deve essere aggiunta alle impostazioni dell'applicazione quando la risorsa dell'app per le funzioni viene creata in Azure. Se l'app per le funzioni non dispone già di questa stringa di connessione, è possibile impostarla manualmente. Per altre informazioni, vedere Monitorare le esecuzioni in Funzioni di Azure e Stringhe di connessione.
Note
Il 31 marzo 2025, il supporto per l'inserimento delle chiavi di strumentazione terminerà. L'inserimento delle chiavi di strumentazione continuerà a funzionare, ma non saranno più garantiti aggiornamenti o supporto per la funzionalità. Eseguire la transizione alle stringhe di connessione per sfruttare le nuove funzionalità.
Per un elenco degli scenari di strumentazione automatica supportati, vedere Ambienti, lingue e provider di risorse supportati.
Traccia distribuita per le applicazioni Java
Note
Questa funzionalità è stata usata per avere un'implicazione di avvio a freddo da 8 a 9 secondi, che è stata ridotta a meno di 1 secondo. Se sei stato un primo utilizzatore di questa funzionalità (ad esempio, prima di febbraio 2023), consultare Tempi di avvio lenti per aggiornare alla versione corrente e trarre vantaggio dal nuovo avvio più veloce.
Per visualizzare più dati dalle applicazioni di Funzioni di Azure basate su Java rispetto a raccolte per impostazione predefinita, abilitare l'agente Java 3.x di Application Insights. Questo agente consente ad Application Insights di raccogliere e correlare automaticamente dipendenze, log e metriche dalle librerie più diffuse e dagli SDK (Software Development Kit) di Azure. Questi dati di telemetria si aggiungono ai dati di telemetria delle richieste già acquisiti da Funzioni.
La mappa delle applicazioni e la visualizzazione più completa delle transazioni end-to-end permettono una migliore diagnosi dei problemi. Si ha una visione topologica del modo in cui i sistemi interagiscono con i dati sulle prestazioni medie e sulle percentuali di errore. Sono disponibili anche altri dati per la diagnostica end-to-end. È possibile utilizzare la mappa delle app per trovare la causa radice dei problemi di affidabilità e dei colli di bottiglia delle prestazioni per le singole richieste.
Per casi d'uso più avanzati, è possibile modificare i dati di telemetria aggiungendo intervalli, aggiornando lo stato dell'intervallo e aggiungendo attributi span. È anche possibile inviare dati di telemetria personalizzati usando le API standard.
Abilitare la traccia distribuita per le app per le funzioni Java
Aprire Application Insights dalla pagina Panoramica dell'app per le funzioni. In Livello di raccolta, selezionare Consigliato.
Configurazione
Per configurare questa funzionalità per un'App per le funzioni di Azure non in un piano a consumo, aggiungere variabili di ambiente nelle impostazioni dell'app. Per visualizzare le configurazioni disponibili, vedere Opzioni di configurazione: Application Insights di Monitoraggio di Azure per Java.
Per Funzioni di Azure in un piano a consumo, le opzioni di configurazione disponibili sono limitate a APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL e APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL. Per creare configurazioni aggiuntive in una funzione del piano a consumo, distribuire il proprio agente, vedere Agente di traccia distribuita personalizzata per Funzioni Java.
La distribuzione del proprio agente comporterà un'implicazione di avvio a freddo più lunga per le Funzioni del piano a consumo.
Risoluzione dei problemi
Per indicazioni sulla risoluzione dei problemi, vedere Problemi con l'app Java in esecuzione in Funzioni di Azure.
Traccia distribuita per le app per le funzioni Node.js
Per visualizzare più dati dell'applicazione Node.js in esecuzione su Funzioni di Azure rispetto a quanto raccolto per impostazione predefinita con la strumentazione automatica, instrumentare manualmente l'applicazione usando la Distribuzione di OpenTelemetry di Monitoraggio di Azure.
Traccia distribuita per le app per le funzioni Python
Per raccogliere dati di telemetria da servizi come Richieste, urllib3, httpx, PsycoPG2 e altro ancora, usare distribuzione OpenTelemetry di Monitoraggio di Azure. Le richieste in ingresso rilevate nell'applicazione Python ospitata in Funzioni di Azure non vengono automaticamente correlate ai dati di telemetria rilevati all'interno di essa. È possibile ottenere la correlazione di traccia manualmente estraendo direttamente TraceContext come indicato di seguito:
import azure.functions as func
from azure.monitor.opentelemetry import configure_azure_monitor
from opentelemetry import trace
from opentelemetry.propagate import extract
# Configure Azure monitor collection telemetry pipeline
configure_azure_monitor()
def main(req: func.HttpRequest, context) -> func.HttpResponse:
...
# Store current TraceContext in dictionary format
carrier = {
"traceparent": context.trace_context.Traceparent,
"tracestate": context.trace_context.Tracestate,
}
tracer = trace.get_tracer(__name__)
# Start a span using the current context
with tracer.start_as_current_span(
"http_trigger_span",
context=extract(carrier),
):
...
Passaggi successivi
- Altre istruzioni e informazioni sul Monitoraggio di Funzioni di Azure
- Panoramica della traccia distribuita.
- Possibilità di utilizzo della Mappa delle applicazioni.
- Informazioni sulle richieste e dipendenze per le app Java.
- Altre informazioni su Monitoraggio di Azure e Application Insights.