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.

Nota: per gli altri servizi supportati da Azure, consultare la documentazione su Azure.

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:

  1. Accedere al portale Microsoft Azure.

  2. Individuare la funzione Azure che si desidera strumentare.

  3. Fai clic su "Estensioni" nel pannello "Strumenti di sviluppo".
    Figura 1. Menu "Estensioni" nel portale Azure per una determinata funzione Azure
    Menu Estensioni
  4. Nella pagina "Estensioni", aggiungi l 'estensione " Instana Tracing AppService ". Una volta installata l'estensione "Tracing AppService " di Instana, configurala per poterla utilizzare.

  5. 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
    Configurazione strumentazione
    1. Nella finestra " Instana : Tracing for AppServices ", impostare "Enable Tracing" su "On".

    2. Facoltativo: impostare Abilita 64 bit su on.

    3. Nel campo " Chiave agente ", inserisci la chiave di licenza del tuo agente host di Instana.

    4. 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>/serverless e impostare il parametro INSTANA_DISABLE_CA_CHECK su true o 1.
    5. 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 .

    6. Fare clic su Aggiorna configurazione. Le informazioni vengono memorizzate per la funzione Azure .

  6. 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.dll
  • Instana.Tracing.Core.Common.dll
  • Instana.Tracing.Core.Instrumentation.dll
  • Instana.Tracing.Core.Transport.dll
  • Instana.Tracing.Api.dll
  • CoreProfiler.so
  • instrumentation.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 "
Nota: non installare i 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:

  1. Nella barra laterale dell'interfaccia utente di Instana, seleziona "Infrastruttura".
  2. Fare clic su un host monitorato specifico.

Quindi, è possibile visualizzare un dashboard host con tutte le metriche raccolte e i processi monitorati.

Metriche

Nota: le metriche relative al servizio Functions vengono raccolte ogni minuto; questa è la frequenza di aggiornamento offerta da Azure per il monitoraggio di tali servizi.
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.