Monitoraggio del servizio " Azure Functions "
Per visualizzare le metriche relative al servizio " Azure Functions " nell'interfaccia utente di Instana, è necessario installare l'agente host Instana e quindi abilitare il sensore Azure come descritto nella sezione "Configurazione del sensore". Il sensore " Azure Functions " viene attivato automaticamente dopo l'installazione dell'agente host " Instana ".
Per ulteriori informazioni, consultare la sezione "Agente host" e "Configurazione del sensore".
Per visualizzare le tracce di Azure Functions nell'interfaccia utente di Instana, è necessario aggiungere un tracer Instana Azure Functions alle applicazioni Azure Functions, come descritto nella sezione Installazione dei tracer Instana Azure Functions.
Configurazione
Configurazione del sensore
Devi abilitare il sensore Azure nel file configuration.yaml dell'agent < agentinstall_dir>/etc/instana/configuration.yaml`. Una configurazione minima del sensore è simile alla seguente:
com.instana.plugin.azure:
enabled: true
subscription: "[Your-Subscription-Id]"
tenant: "[Your-Tenant-Id]"
principals:
- id: "[Your-Service-Principal-Account-Id]"
secret: "[Your-Service-Principal-Secret]"
Il sensore del servizio " Azure Functions " è abilitato per impostazione predefinita.
Configurazione opzionale
È possibile disattivare il sensore " Azure Functions " e filtrarlo in base ai tag e ai gruppi di risorse. È possibile configurare il sensore Azure Functions utilizzando la configurazione dell'agente in <agentinstall_dir>/etc/instana/configuration.yaml :
com.instana.plugin.azure.functionapp:
# Valid values: true, false
enabled: false # enabled (true) by default
# Comma separated list of tags in key:value format
include_tags:
# Comma separated list of tags in key:value format
exclude_tags:
# Comma separated list of resource groups
include_resource_groups:
# Comma separated list of resource groups
exclude_resource_groups:
Per disabilitare il monitoraggio dei servizi Azure Functions, utilizzare la seguente configurazione:
com.instana.plugin.azure.functionapp:
enabled: false
È possibile definire più tag e gruppi di risorse, separati da una virgola. I tag devono essere forniti come coppia chiave-valore, separati da due punti (:). Per semplificare la configurazione, è possibile definire quali tag e gruppi di risorse si desidera includere nella scoperta o escludere dalla scoperta. Quando si definisce un tag o un gruppo di risorse in entrambi gli elenchi (includere ed escludere), l'elenco di esclusione ha una priorità maggiore. Se il filtraggio dei servizi non è necessario, non è necessario definire la configurazione. Non è obbligatorio definire tutti i valori per abilitare il filtro.
Per includere i servizi per tag nel rilevamento, utilizzare la seguente configurazione:
com.instana.plugin.azure.functionapp:
include_tags: # Comma separated list of tags in key:value format (e.g. env:prod,env:staging)
Per escludere i servizi per tag dal rilevamento, utilizzare la seguente configurazione:
com.instana.plugin.azure.functionapp:
exclude_tags: # Comma separated list of tags in key:value format (e.g. env:dev,env:test)
Per includere i servizi per gruppi di risorse nel rilevamento, utilizzare la seguente configurazione:
com.instana.plugin.azure.functionapp:
include_resource_groups: # Comma separated list of resource groups (e.g. rg_prod,rg_staging)
Per escludere i servizi dal rilevamento dei gruppi di risorse, utilizzare la seguente configurazione:
com.instana.plugin.azure.functionapp:
exclude_resource_groups: # Comma separated list of resource groups (e.g. rg_dev,rg_test)
Il filtro di rilevamento può essere configurato a livello globale per tutti i servizi Azure . Quando si definiscono dei filtri per un servizio di " Azure Functions ", i filtri globali vengono sovrascritti. Per ulteriori informazioni sul filtraggio globale del servizio Azure, vedere Azure.
Installazione dei tracciatori Instana Azure Functions
È possibile abilitare la strumentazione di un'istanza di ` Azure Functions ` distribuita come ` AppService ` in esecuzione su container ` Windows ` o ` Docker `. Per abilitare la strumentazione per.NET Framework,.NET Core e.NET, assicurarsi che l'agente di monitoraggio dell'infrastruttura ( Instana ) sia in esecuzione nell'ambiente in cui si intende monitorare Azure Functions. Per configurare l'agente Instana per il monitoraggio di Azure, consultare la sezione Monitoraggio e strumentazione di Microsoft Azure.
Installazione dei tracciatori Instana Azure Functions su Windows
Azure Functions si basa su App Service. La procedura di installazione e configurazione per Azure Functions e Azure App Services è la stessa.
Per installare i tracciatori Instana Azure Functions su Windows, procedere come segue:
Accedere al portale Microsoft Azure.
Individuare la funzione Azure che si desidera strumentare.
- Fai clic su "Estensioni" nel pannello "Strumenti di sviluppo".
Figura 1. Menu "Estensioni" nel portale Azure per una determinata funzione Azure 
Nella pagina "Estensioni", aggiungi l 'estensione " Instana Tracing AppService ". Una volta installata l'estensione "Tracing AppService " di Instana, configurala per poterla utilizzare.
- Go alla pagina "Estensioni", quindi fare clic su " URL " sull'estensione " Instana Tracing AppService ". Viene visualizzata la finestra di dialogo "Tracciamento per App Services" in " Instana ".
Figura 2. Configurazione della strumentazione delle funzioni Azure Instana 
Nella finestra " Instana : Tracing for AppServices ", impostare "Enable Tracing" su "On".
Facoltativo: impostare Abilita 64 bit su on.
Nel campo " Chiave agente ", inserisci la chiave di licenza del tuo agente host di Instana.
Nel campo " URL " dell'endpoint, eseguire una delle seguenti operazioni:
- SaaS: Inserisci l 'endpoint URL per il monitoraggio serverless.
- Autogestito: Inserire l'endpoint nel formato
https://<IP address of the Instana backend>/serverlesse impostare il parametroINSTANA_DISABLE_CA_CHECKsutrueo1.
Nel campo Livello log , immettere uno dei seguenti livelli di log che si desidera utilizzare:
- NESSUNA
- DEBUG
- INFO
- WARN
- ERRORE
Le informazioni di log vengono generate nella cartella root dell'applicazione Funzione Azure .
Fare clic su Aggiorna configurazione. Le informazioni vengono memorizzate per la funzione Azure .
Riavviare la funzione Azure facendo clic su Riavvia. Quando si esegue la funzione ` Azure `, un rewriter ` Instana ` viene associato all'applicazione e ` Instana ` inizia a raccogliere le tracce.
Per visualizzare le tracce nell'interfaccia utente di Instana, apri la dashboard dell'entità " Azure Function" e fai clic su "Upstream/Downstream". Quindi, si possono vedere le tracce raccolte per questa entità. Per ulteriori informazioni sulla visualizzazione delle tracce, consultare la sezione "Analisi delle tracce e delle chiamate ".
Installazione dei tracciatori Instana Azure Functions su Docker
Per far funzionare " Instana " nella tua applicazione " Azure Function", aggiungi le seguenti righe al tuo Dockerfile:
DOTNET_STARTUP_HOOKS="[AzureWebJobsScriptRoot]/bin/Instana.Tracing.Core.dll" \
CORECLR_ENABLE_PROFILING=1 \
CORECLR_PROFILER="{cf0d821e-299b-5307-a3d8-b283c03916dd}" \
CORECLR_PROFILER_PATH="[AzureWebJobsScriptRoot]/bin/instana_tracing/CoreProfiler.so" \
INSTANA_ENDPOINT_URL="[Serverless-ingress-URL-for-your-region]" \
INSTANA_AGENT_KEY="[Your-Instana-agent-key]"
Il valore di INSTANA_ENDPOINT_URL dipende dalla regione. Per ulteriori informazioni, consulta la documentazione relativa agli endpoint per il monitoraggio serverless.
Per ulteriori informazioni sulla configurazione di " Instana " in ".NET Core ", consultare la documentazione di ".NET Core ".
Quando si distribuisce un'applicazione con la funzione " Azure " su Azure utilizzando Docker Container l'opzione, non è necessario installare e utilizzare i pacchetti NuGet di Instana. È invece necessario copiare tutti i pacchetti NuGet di Instana nella cartella "release" in cui è distribuita l'applicazione su Azure.
Per ulteriori informazioni sui nostri pacchetti, consultare la documentazione relativa al tracciamento di .NET.
Assicurati di utilizzare la versione più recente scaricando i pacchetti più recenti da Instana.Tracing.Core, Instana.Tracing.Core.Sdk e Instana.Tracing.Core.Rewriter.Linux.
Una volta terminato il processo di scaricamento, copiare i seguenti file in alcune cartelle dell'applicazione della funzione Azure , facilmente accessibile da Dockerfile:
Instana.Tracing.Core.dllInstana.Tracing.Core.Common.dllInstana.Tracing.Core.Instrumentation.dllInstana.Tracing.Core.Transport.dllInstana.Tracing.Api.dllCoreProfiler.soinstrumentation.json
Quindi, copiare questi file nella cartella delle release in Azure nel modo seguente:
COPY "/[path-to-your-patch-folder]/Instana.Tracing.Core.dll" "[AzureWebJobsScriptRoot]/bin/Instana.Tracing.Core.dll"
COPY "/[path-to-your-patch-folder]/Instana.Tracing.Core.Common.dll" "[AzureWebJobsScriptRoot]/bin/Instana.Tracing.Core.Common.dll"
COPY "/[path-to-your-patch-folder]/Instana.Tracing.Core.Instrumentation.dll" "[AzureWebJobsScriptRoot]/bin/Instana.Tracing.Core.Instrumentation.dll"
COPY "/[path-to-your-patch-folder]/Instana.Tracing.Core.Transport.dll" "[AzureWebJobsScriptRoot]/bin/Instana.Tracing.Core.Transport.dll"
COPY "/[path-to-your-patch-folder]/Instana.Tracing.Api.dll" "[AzureWebJobsScriptRoot]/bin/Instana.Tracing.Api.dll"
COPY "/[path-to-your-patch-folder]/CoreProfiler.so" "[AzureWebJobsScriptRoot]/bin/instana_tracing/CoreProfiler.so"
COPY "/[path-to-your-patch-folder]/instrumentation.json" "[AzureWebJobsScriptRoot]/bin/instana_tracing/instrumentation.json "
Instana.Tracing.Core pacchetti direttamente nell'applicazione Function di Azure. Il tracciamento non funziona se esistono file di libreria duplicati dopo la distribuzione dell'applicazione.Quindi, cancellate i pacchetti Instana.Tracing.Core e seguite le istruzioni già descritte in questo argomento per copiare i file di libreria nella cartella release all'interno del vostro Dockerfile.
Trigger supportati
È possibile consultare l'elenco dei trigger di Azure Functions supportati da Instana. Alcuni di loro sono stati testati finora e il comportamento è noto. Per il resto, la strumentazione non è ancora testata. La tabella seguente viene aggiornata non appena lo stato cambia.
Un comportamento viene rilevato durante il test, ossia, se il metodo Azure Function Esegui è STATICO, alcuni dati mancanti si trovano all'interno dell'estensione generata, come ad esempio Function name o anche Trigger name in caso di trigger Queue. Il motivo è che, se il metodo è STATICO, l'instrumentazione di Instana non è in grado di raccogliere tutti i dati necessari relativi al metodo Run. Utilizzare metodi non statici quando possibile.
| Nome trigger | Testato | Dati di estensione visibili con metodi STATIC | Dati di estensione visibili con metodi NON - STATIC |
|---|---|---|---|
| Blob | Non verificato. | ||
| CosmosDB | Non verificato. | ||
| Griglia evento | Non verificato. | ||
| Hub eventi | Non verificato. | ||
| Kafka | Non verificato. | ||
| HTTP | La strumentazione funziona con i metodi STATIC e NON - STATIC. | Trigger, Nome metodo, Runtime | Trigger, Nome metodo, Runtime, Nome funzione |
| Coda | La strumentazione funziona solo con metodi NON - STATIC. | Nome metodo, Runtime | Trigger, Nome metodo, Runtime, Nome funzione |
| RabbitMQ | Non verificato. | ||
| Bus servizi | Non verificato. | ||
| SignalR | Non verificato. | ||
| Tabella | Non verificato. | ||
| Timer | La strumentazione funziona con i metodi STATIC e NON - STATIC. | Trigger, Nome metodo, Runtime | Trigger, Nome metodo, Runtime, Nome funzione |
Visualizzazione delle metriche
Per visualizzare le metriche, completare la seguente procedura:
- Nella barra laterale dell'interfaccia utente di Instana, seleziona "Infrastruttura".
- Fare clic su un host monitorato specifico.
Quindi, è possibile visualizzare un dashboard host con tutte le metriche raccolte e i processi monitorati.
Metriche
| Nome metrica | Descrizione |
|---|---|
| Richieste | Il numero totale di richieste, indipendentemente dal codice di stato HTTP restituito. Per WebApps e FunctionApps. |
| Byte ricevuti | Il numero di byte ricevuti da Azure Spring Cloud dai client. |
| Byte inviati | Il conteggio dei byte inviati da Azure Spring Cloud ai client. |
| Http101 | Il numero di richieste che hanno generato un codice di stato 101 ( HTTP ). |
| Http2xx | Il numero di richieste che hanno generato un codice di stato HTTP è pari a 200 ma inferiore a 300. |
| Http3xx | Il numero di richieste che hanno generato un codice di stato HTTP compreso tra 300 e 400. |
| Http4xx | Il numero di richieste che hanno generato un codice di stato HTTP è pari a 400 ma inferiore a 500. |
| Http5xx | Il numero di richieste che hanno generato un codice di stato HTTP è compreso tra 500 e 600. |
| Impostazione di lavoro della memoria | La quantità corrente di memoria utilizzata dall'applicazione, in MiB. Per WebApps e FunctionApps. |
| Impostazione di lavoro della memoria media | La quantità media di memoria utilizzata dall'applicazione, in megabyte (MiB). Per WebApps e FunctionApps. |
| Tempo di risposta http | Il tempo impiegato dall'applicazione per soddisfare le richieste, in secondi. Per WebApps e FunctionApps. |
| IoReadBytesPerSecond | La frequenza con cui il processo dell'applicazione legge i byte dalle operazioni I/O. Per WebApps e FunctionApps. |
| IoWriteBytesPerSecond | La frequenza con cui il processo dell'applicazione scrive i byte nelle operazioni I/O. Per WebApps e FunctionApps. |
| IoReadOperationsPerSecond | La velocità con cui il processo dell'applicazione esegue operazioni di I/O in lettura. Per WebApps e FunctionApps. |
| IoWriteOperationsPerSecond | La velocità con cui il processo dell'applicazione esegue operazioni di I/O in scrittura. Per WebApps e FunctionApps. |
| RequestsInApplicationQueue | Il numero di richieste nella coda di richieste dell'applicazione. Per WebApps e FunctionApps. |
| HealthCheckStatus | Stato del controllo di integrità. Per WebApps e FunctionApps. |
| FileSystemUsage | La percentuale della quota del file system utilizzata dall'applicazione. Per WebApps e FunctionApps. |
Dati di configurazione
FunctionApps
| Dettagli servizio FunctionApp | Descrizione |
|---|---|
| ID | L'ID univoco per l'app funzione. |
| Nome | Il nome dell'istanza FunctionApp . |
| Immettere | Il tipo FunctionApp . |
| Ubicazione | La regione in cui si trova l'istanza. |
| Tipo | Indica il tipo di account FunctionApp . |
| Sottoscrizione | L'ID sottoscrizione dell'istanza del servizio FunctionApp . |
| Gruppo di risorse | Il gruppo di risorse dell'istanza del servizio FunctionApp . |
| Stato | Stato di installazione corrente dell'istanza. |
Funzioni
| Dettagli servizio funzioni | Descrizione |
|---|---|
| ID | L'ID univoco per la funzione. |
| Nome | Il nome dell'istanza del servizio Functions. |
| Immettere | Funzioni Tipo di servizio. |
| Ubicazione | La regione in cui si trova l'istanza. |
| Sottoscrizione | L'ID sottoscrizione dell'istanza del servizio Functions. |
| Gruppo di risorse | Il gruppo di risorse dell'istanza del servizio Functions. |