Monitorare servizi e app Node.js con Application Insights

Application Insights monitora i componenti dopo la distribuzione per individuare le prestazioni e altri problemi. È possibile usare Application Insights per Node.js servizi ospitati nel data center, nelle macchine virtuali di Azure e nelle app Web e anche in altri cloud pubblici.

Per ricevere, archiviare ed esplorare i dati di monitoraggio, includere l'SDK nel codice. Configurare quindi una risorsa di Application Insights corrispondente in Azure. L'SDK invia i dati a tale risorsa per ulteriori attività di analisi ed esplorazione.

La libreria client Node.js può monitorare automaticamente le richieste HTTP in ingresso e in uscita, le eccezioni e alcune metriche di sistema. A partire dalla versione 0.20, la libreria client può anche monitorare alcuni pacchetti di terze parti comuni, ad esempio MongoDB, MySQL e Redis.

Tutti gli eventi relativi a una richiesta HTTP in ingresso vengono correlati per velocizzare la risoluzione dei problemi.

È possibile usare l'API TelemetryClient per instrumentare e monitorare manualmente altri aspetti dell'app e del sistema. L'API TelemetryClient viene descritta in modo più dettagliato più avanti nell'articolo.

Nota

La documentazione seguente si basa sull'API classica di Application Insights. Il piano a lungo termine per Application Insights consiste nel raccogliere dati usando OpenTelemetry. Per altre informazioni, vedere Abilitare OpenTelemetry di Monitoraggio di Azure per le applicazioni .NET, Node.js, Python e Java.

Attività iniziali

Completare le attività seguenti per configurare il monitoraggio per un'app o un servizio.

Prerequisiti

Prima di iniziare, verificare di avere una sottoscrizione di Azure oppure ottenerne una nuova gratuitamente. Se l'organizzazione ha già una sottoscrizione di Azure, un amministratore può aggiungere l'utente alla sottoscrizione seguendo queste istruzioni.

Configurare una risorsa di Application Insights

  1. Accedere al portale di Azure.
  2. Creazione di unarisorsa di Application Insights.

Nota

Il 31 marzo 2025, il supporto per l'inserimento delle chiavi di strumentazione terminerà. L'inserimento di chiavi di strumentazione continuerà a funzionare, ma non forniamo più aggiornamenti o supporto per la funzionalità. Passare alle stringa di connessione per sfruttare le nuove funzionalità.

Configurare la libreria client Node.js

Includere l'SDK nell'app in modo che possa raccogliere dati.

  1. Copiare il stringa di connessione della risorsa dalla nuova risorsa. Application Insights usa il stringa di connessione per eseguire il mapping dei dati alla risorsa di Azure. Prima che l'SDK possa usare il stringa di connessione, è necessario specificare il stringa di connessione in una variabile di ambiente o nel codice.

    Screenshot that shows the Application Insights overview and connection string.

  2. Aggiungere la libreria client Node.js alle dipendenze dell'app tramite package.json. Dalla cartella radice dell'app eseguire:

    npm install applicationinsights --save
    

    Nota

    Se si usa TypeScript, non installare pacchetti "tipi" separati. Questo pacchetto NPM contiene scritture predefinite.

  3. Caricare in modo esplicito la libreria nel codice. Dato che l'SDK inserisce la strumentazione in molte altre librerie, caricare la libreria il prima possibile, anche prima di altre istruzioni require.

    let appInsights = require('applicationinsights');
    
  4. È anche possibile fornire un stringa di connessione tramite la variabile APPLICATIONINSIGHTS_CONNECTION_STRINGdi ambiente , anziché passarlo manualmente a setup() o new appInsights.TelemetryClient(). Questa procedura consente di evitare stringa di connessione dal codice sorgente di cui è stato eseguito il commit ed è possibile specificare stringa di connessione diverse per ambienti diversi. Per configurare manualmente, chiamare appInsights.setup('[your connection string]');.

    Per altre opzioni di configurazione, vedere le sezioni seguenti.

    È possibile provare l'SDK senza inviare i dati di telemetria impostando appInsights.defaultClient.config.disableAppInsights = true.

  5. Iniziare a raccogliere e inviare automaticamente i dati chiamando appInsights.start();.

Nota

Nell'ambito dell'uso della strumentazione di Application Insights, vengono raccolti e inviati dati di diagnostica a Microsoft. Questi dati consentono di eseguire e migliorare Application Insights. È possibile disabilitare la raccolta dati non essenziale. Altre informazioni.

Monitorare l'app

L'SDK raccoglie automaticamente i dati di telemetria relativi al runtime di Node.js e ad alcuni moduli di terze parti comuni. Usare l'applicazione per generare alcuni di questi dati.

Nel portale di Azure passare quindi alla risorsa di Application Insights creata in precedenza. In Panoramica sequenza temporale cercare i primi punti dati. Per visualizzare altri dati dettagliati, selezionare diversi componenti nei grafici.

Per visualizzare la topologia individuata per l'app, è possibile usare Mappa applicazioni.

Nessun dato

Poiché l'SDK raggruppa i dati per l'invio, potrebbe verificarsi un ritardo prima che gli elementi vengano visualizzati nel portale. Se i dati non sono visibili nella risorsa, provare alcune delle correzioni seguenti:

  • Continuare a usare l'applicazione. Eseguire altre azioni per generare dati di telemetria aggiuntivi.
  • Selezionare Aggiorna nella visualizzazione risorse del portale. I grafici si aggiornano periodicamente in automatico, ma l'aggiornamento manuale ha effetto immediato.
  • Verificare che le porte in uscita necessarie siano aperte.
  • Usare l'opzione Cerca per cercare eventi specifici.
  • Vedere le domande frequenti.

Utilizzo di base

Per la raccolta predefinita di richieste HTTP, gli eventi comuni della libreria di terze parti, le eccezioni non gestite e le metriche di sistema:


let appInsights = require("applicationinsights");
appInsights.setup("[your connection string]").start();

Nota

Se il stringa di connessione è impostato nella variabile APPLICATIONINSIGHTS_CONNECTION_STRINGdi ambiente , .setup() può essere chiamato senza argomenti. In questo modo è facile usare stringa di connessione diverse per ambienti diversi.

Caricare la libreria require("applicationinsights") di Application Insights il prima possibile negli script prima di caricare altri pacchetti. Questo passaggio è necessario in modo che la libreria di Application Insights possa preparare pacchetti successivi per il rilevamento. Se si verificano conflitti con altre librerie che eseguono operazioni di preparazione simili, provare a caricare la libreria di Application Insights in un secondo momento.

A causa del modo in cui JavaScript gestisce i callback, è necessario più lavoro per tenere traccia di una richiesta tra dipendenze esterne e callback successivi. Per impostazione predefinita, questo rilevamento aggiuntivo è abilitato. Disabilitarla chiamando setAutoDependencyCorrelation(false) come descritto nella sezione configurazione dell'SDK.

Eseguire la migrazione dalle versioni precedenti alla versione 0.22

Sono state apportate modifiche di rilievo tra le versioni precedenti alla versione 0.22 e successive. Queste modifiche sono progettate per garantire coerenza con altri SDK di Application Insights e consentire un'estendibilità futura.

In generale, è possibile eseguire la migrazione con le azioni seguenti:

  • Sostituire i riferimenti a appInsights.client con appInsights.defaultClient.
  • Sostituire i riferimenti a appInsights.getClient() con new appInsights.TelemetryClient().
  • Sostituire tutti gli argomenti con i metodi client.track* con un singolo oggetto contenente proprietà denominate come argomenti. Per ogni tipo di dati di telemetria, vedere hinting di tipo IDE predefinito o TelemetryTypes per l'oggetto ad eccezione di ogni tipo di telemetria.

Se si accede alle funzioni di configurazione dell'SDK senza concatenarle a appInsights.setup(), è ora possibile trovare queste funzioni in appInsights.Configurations. Un esempio è appInsights.Configuration.setAutoCollectDependencies(true). Esaminare le modifiche apportate alla configurazione predefinita nella sezione successiva.

Configurazione dell'SDK

L'oggetto appInsights fornisce molti metodi di configurazione. Sono elencati nel frammento di codice seguente con i relativi valori predefiniti.

let appInsights = require("applicationinsights");
appInsights.setup("<connection_string>")
    .setAutoDependencyCorrelation(true)
    .setAutoCollectRequests(true)
    .setAutoCollectPerformance(true, true)
    .setAutoCollectExceptions(true)
    .setAutoCollectDependencies(true)
    .setAutoCollectConsole(true)
    .setUseDiskRetryCaching(true)
    .setSendLiveMetrics(false)
    .setDistributedTracingMode(appInsights.DistributedTracingModes.AI)
    .start();

Per correlare completamente gli eventi in un servizio, assicurarsi di impostare .setAutoDependencyCorrelation(true). Con questa opzione impostata, l'SDK può tenere traccia del contesto tra callback asincroni in Node.js.

Esaminare le relative descrizioni nell'hint di tipo IDE predefinito o applicationinsights.ts per informazioni dettagliate e argomenti secondari facoltativi.

Nota

Per impostazione predefinita, setAutoCollectConsole è configurato per escludere le chiamate a console.log e altri metodi della console. Verranno raccolte solo le chiamate ai logger di terze parti supportati (ad esempio winston e bunyan). È possibile modificare questo comportamento in modo da includere le chiamate ai console metodi usando setAutoCollectConsole(true, true).

Campionamento

Per impostazione predefinita, l'SDK invia tutti i dati raccolti al servizio Application Insights. Se si vuole abilitare il campionamento per ridurre la quantità di dati, impostare il samplingPercentage campo sull'oggetto config di un client. L'impostazione samplingPercentage su 100 (impostazione predefinita) indica che tutti i dati verranno inviati e 0 significa che non verrà inviato nulla.

Se si usa la correlazione automatica, tutti i dati associati a una singola richiesta vengono inclusi o esclusi come unità.

Aggiungere codice come il seguente per abilitare il campionamento:

const appInsights = require("applicationinsights");
appInsights.setup("<connection_string>");
appInsights.defaultClient.config.samplingPercentage = 33; // 33% of all telemetry will be sent to Application Insights
appInsights.start();

Più ruoli per applicazioni multi-componente

In alcuni scenari, l'applicazione può essere costituita da più componenti che si desidera instrumentare tutti con la stessa stringa di connessione. Si vogliono comunque visualizzare questi componenti come unità separate nel portale, come se fossero in uso stringa di connessione separate. Un esempio è costituito da nodi separati nella mappa delle applicazioni. È necessario configurare manualmente il campo per distinguere i RoleName dati di telemetria di un componente da altri componenti che inviano dati alla risorsa di Application Insights.

Usare il codice seguente per impostare il RoleName campo:

const appInsights = require("applicationinsights");
appInsights.setup("<connection_string>");
appInsights.defaultClient.context.tags[appInsights.defaultClient.context.keys.cloudRole] = "MyRoleName";
appInsights.start();

Browser SDK Loader

La strumentazione Web automatica può essere abilitata per il server dei nodi tramite l'inserimento di script di caricamento di JavaScript (Web) SDK per configurazione.

let appInsights = require("applicationinsights");
appInsights.setup("<connection_string>")
    .enableWebInstrumentation(true)
    .start();

oppure impostando la variabile APPLICATIONINSIGHTS_WEB_INSTRUMENTATION_ENABLED = truedi ambiente .

La strumentazione Web è abilitata nelle risposte del server node quando vengono soddisfatti tutti i requisiti seguenti:

  • La risposta ha il codice 200di stato .
  • Il metodo di risposta è GET.
  • La risposta del server ha Content-Type html.
  • La risposta del server contiene sia <head> tag </head> che tag.
  • Se la risposta è compressa, deve avere un Content-Encoding solo tipo e il tipo di codifica deve essere uno di gzipo brdeflate.
  • La risposta non contiene gli endpoint di strumentazione Web /backup correnti rete CDN. (gli endpoint di strumentazione Web correnti e di backup rete CDN qui)

La strumentazione Web rete CDN endpoint può essere modificata impostando la variabile APPLICATIONINSIGHTS_WEB_INSTRUMENTATION_SOURCE = "web Instrumentation CDN endpoints"di ambiente . La stringa di connessione di strumentazione Web può essere modificata impostando la variabile di ambienteAPPLICATIONINSIGHTS_WEB_INSTRUMENTATION_CONNECTION_STRING = "web Instrumentation connection string"

Nota

La strumentazione Web può rallentare il tempo di risposta del server, soprattutto quando le dimensioni della risposta sono elevate o la risposta viene compressa. Nel caso in cui vengano applicati alcuni livelli intermedi, è possibile che la strumentazione Web non funzioni e venga restituita la risposta originale.

Strumentazione automatica di terze parti

Per tenere traccia del contesto tra chiamate asincrone, alcune modifiche sono necessarie nelle librerie di terze parti, ad esempio MongoDB e Redis. Per impostazione predefinita, Application Insights usa diagnostic-channel-publishers per applicare patch ad alcune di queste librerie. Questa funzionalità può essere disabilitata impostando la APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL variabile di ambiente.

Nota

Impostando tale variabile di ambiente, gli eventi potrebbero non essere associati correttamente all'operazione corretta.

Le singole patch di scimmia possono essere disabilitate impostando la APPLICATION_INSIGHTS_NO_PATCH_MODULES variabile di ambiente su un elenco delimitato da virgole di pacchetti da disabilitare. Ad esempio, usare APPLICATION_INSIGHTS_NO_PATCH_MODULES=console,redis per evitare di applicare patch ai console pacchetti e redis .

Attualmente sono instrumentati nove pacchetti: ,,,,,,redis,winston,pg e pg-pool.mysqlmongodb-coremongodbconsolebunyan Per informazioni sulla versione esatta di questi pacchetti con patch, vedere readME di diagnostic-channel-publishers.

Le bunyanpatch , winstone console generano eventi di traccia di Application Insights in base all'abilitazione setAutoCollectConsole . Il resto genera eventi di dipendenza di Application Insights in base all'abilitazione setAutoCollectDependencies .

Metriche attive

Per abilitare l'invio di metriche attive dall'app ad Azure, usare setSendLiveMetrics(true). Attualmente, il filtro delle metriche attive nel portale non è supportato.

Metriche estese

Nota

La possibilità di inviare metriche native estese è stata aggiunta nella versione 1.4.0.

Per abilitare l'invio di metriche native estese dall'app ad Azure, installare il pacchetto di metriche native separato. L'SDK viene caricato automaticamente quando viene installato e inizia a raccogliere Node.js metriche native.

npm install applicationinsights-native-metrics

Attualmente, il pacchetto di metriche native esegue la raccolta automatica del tempo cpu di Garbage Collection, dei tick del ciclo di eventi e dell'utilizzo dell'heap:

  • Garbage Collection: quantità di tempo di CPU impiegato per ogni tipo di Garbage Collection e numero di occorrenze di ogni tipo.
  • Ciclo di eventi: numero di tick verificatisi e quantità di tempo di CPU impiegato in totale.
  • Heap e non heap: quantità di utilizzo della memoria dell'app nell'heap o non heap.

Modalità di traccia distribuita

Per impostazione predefinita, l'SDK invia intestazioni riconosciute da altre applicazioni o servizi instrumentati con Application Insights SDK. È possibile abilitare l'invio e la ricezione di intestazioni del contesto di traccia W3C oltre alle intestazioni di intelligenza artificiale esistenti. In questo modo, non si interromperà la correlazione con nessuno dei servizi legacy esistenti. L'abilitazione delle intestazioni W3C consente all'app di correlare con altri servizi non instrumentati con Application Insights, ma che adottano questo standard W3C.

const appInsights = require("applicationinsights");
appInsights
  .setup("<your connection string>")
  .setDistributedTracingMode(appInsights.DistributedTracingModes.AI_AND_W3C)
  .start()

API TelemetryClient

Per una descrizione completa dell'API TelemetryClient, vedere API di Application Insights per metriche ed eventi personalizzati.

È possibile tenere traccia di qualsiasi richiesta, evento, metrica o eccezione usando la libreria client di Application Insights per Node.js. L'esempio di codice seguente illustra alcune API che è possibile usare:

let appInsights = require("applicationinsights");
appInsights.setup().start(); // assuming connection string in env var. start() can be omitted to disable any non-custom data
let client = appInsights.defaultClient;
client.trackEvent({name: "my custom event", properties: {customProperty: "custom property value"}});
client.trackException({exception: new Error("handled exceptions can be logged with this method")});
client.trackMetric({name: "custom metric", value: 3});
client.trackTrace({message: "trace message"});
client.trackDependency({target:"http://dbname", name:"select customers proc", data:"SELECT * FROM Customers", duration:231, resultCode:0, success: true, dependencyTypeName: "ZSQL"});
client.trackRequest({name:"GET /customers", url:"http://myserver/customers", duration:309, resultCode:200, success:true});

let http = require("http");
http.createServer( (req, res) => {
  client.trackNodeHttpRequest({request: req, response: res}); // Place at the beginning of your request handler
});

Tenere traccia delle dipendenze

Usare il codice seguente per tenere traccia delle dipendenze:

let appInsights = require("applicationinsights");
let client = new appInsights.TelemetryClient();

var success = false;
let startTime = Date.now();
// execute dependency call here....
let duration = Date.now() - startTime;
success = true;

client.trackDependency({target:"http://dbname", name:"select customers proc", data:"SELECT * FROM Customers", duration:duration, resultCode:0, success: true, dependencyTypeName: "ZSQL"});;

Un'utilità di esempio che usa trackMetric per misurare il tempo necessario per la pianificazione del ciclo di eventi:

function startMeasuringEventLoop() {
  var startTime = process.hrtime();
  var sampleSum = 0;
  var sampleCount = 0;

  // Measure event loop scheduling delay
  setInterval(() => {
    var elapsed = process.hrtime(startTime);
    startTime = process.hrtime();
    sampleSum += elapsed[0] * 1e9 + elapsed[1];
    sampleCount++;
  }, 0);

  // Report custom metric every second
  setInterval(() => {
    var samples = sampleSum;
    var count = sampleCount;
    sampleSum = 0;
    sampleCount = 0;

    if (count > 0) {
      var avgNs = samples / count;
      var avgMs = Math.round(avgNs / 1e6);
      client.trackMetric({name: "Event Loop Delay", value: avgMs});
    }
  }, 1000);
}

Aggiungere una proprietà personalizzata a tutti gli eventi

Usare il codice seguente per aggiungere una proprietà personalizzata a tutti gli eventi:

appInsights.defaultClient.commonProperties = {
  environment: process.env.SOME_ENV_VARIABLE
};

Tenere traccia delle richieste HTTP GET

Usare il codice seguente per tenere traccia manuale delle richieste HTTP GET:

Nota

Tutte le richieste vengono rilevate per impostazione predefinita. Per disabilitare la raccolta automatica, chiamare prima di chiamare .setAutoCollectRequests(false)start().

appInsights.defaultClient.trackRequest({name:"GET /customers", url:"http://myserver/customers", duration:309, resultCode:200, success:true});

In alternativa, è possibile tenere traccia delle richieste usando il trackNodeHttpRequest metodo :

var server = http.createServer((req, res) => {
  if ( req.method === "GET" ) {
      appInsights.defaultClient.trackNodeHttpRequest({request:req, response:res});
  }
  // other work here....
  res.end();
});

Tenere traccia del tempo di avvio del server

Usare il codice seguente per tenere traccia dell'ora di avvio del server:

let start = Date.now();
server.on("listening", () => {
  let duration = Date.now() - start;
  appInsights.defaultClient.trackMetric({name: "server startup time", value: duration});
});

Svuotamento

Per impostazione predefinita, i dati di telemetria vengono memorizzati nel buffer per 15 secondi prima che vengano inviati al server di inserimento. Se l'applicazione ha una durata breve, ad esempio uno strumento dell'interfaccia della riga di comando, potrebbe essere necessario scaricare manualmente i dati di telemetria memorizzati nel buffer quando l'applicazione termina usando appInsights.defaultClient.flush().

Se l'SDK rileva che l'applicazione si arresta in modo anomalo, chiama flush per l'utente usando appInsights.defaultClient.flush({ isAppCrashing: true }). Con l'opzione isAppCrashingflush , si presuppone che l'applicazione sia in uno stato anomalo e non sia adatta per inviare dati di telemetria. L'SDK salva invece tutti i dati di telemetria memorizzati nel buffer nell'archiviazione permanente e consente all'applicazione di terminare. Quando l'applicazione viene avviata di nuovo, tenta di inviare tutti i dati di telemetria salvati nell'archiviazione permanente.

Pre-elaborare i dati con i processori di telemetria

È possibile elaborare e filtrare i dati raccolti prima che vengano inviati per la conservazione usando processori di telemetria. I processori di telemetria vengono chiamati uno per uno nell'ordine in cui sono stati aggiunti prima che l'elemento di telemetria venga inviato al cloud.

public addTelemetryProcessor(telemetryProcessor: (envelope: Contracts.Envelope, context: { http.RequestOptions, http.ClientRequest, http.ClientResponse, correlationContext }) => boolean)

Se un processore di telemetria restituisce false, l'elemento di telemetria non viene inviato.

Tutti i processori di telemetria ricevono i dati di telemetria e la relativa busta per esaminare e modificare. Ricevono anche un oggetto di contesto. Il contenuto di questo oggetto viene definito dal contextObjects parametro quando si chiama un metodo track per i dati di telemetria rilevati manualmente. Per i dati di telemetria raccolti automaticamente, questo oggetto viene compilato con le informazioni sulla richiesta disponibili e il contenuto della richiesta persistente fornito da appInsights.getCorrelationContext() (se è abilitata la correlazione automatica delle dipendenze).

Il tipo TypeScript per un processore di telemetria è:

telemetryProcessor: (envelope: ContractsModule.Contracts.Envelope, context: { http.RequestOptions, http.ClientRequest, http.ClientResponse, correlationContext }) => boolean;

Ad esempio, un processore che rimuove gli stack di dati di traccia dalle eccezioni può essere scritto e aggiunto come segue:

function removeStackTraces ( envelope, context ) {
  if (envelope.data.baseType === "Microsoft.ApplicationInsights.ExceptionData") {
    var data = envelope.data.baseData;
    if (data.exceptions && data.exceptions.length > 0) {
      for (var i = 0; i < data.exceptions.length; i++) {
        var exception = data.exceptions[i];
        exception.parsedStack = null;
        exception.hasFullStack = false;
      }
    }
  }
  return true;
}

appInsights.defaultClient.addTelemetryProcessor(removeStackTraces);

Usare più stringa di connessione

È possibile creare più risorse di Application Insights e inviare dati diversi a ognuno usando i rispettivi stringa di connessione.

Ad esempio:

let appInsights = require("applicationinsights");

// configure auto-collection under one connection string
appInsights.setup("Connection String A").start();

// track some events manually under another connection string
let otherClient = new appInsights.TelemetryClient("Connection String B");
otherClient.trackEvent({name: "my custom event"});

Opzioni di configurazione avanzate

L'oggetto client contiene una config proprietà con molte impostazioni facoltative per scenari avanzati. Per impostarli, usare:

client.config.PROPERTYNAME = VALUE;

Queste proprietà sono specifiche del client, quindi è possibile configurare appInsights.defaultClient separatamente dai client creati con new appInsights.TelemetryClient().

Proprietà Descrizione
connectionString Identificatore per la risorsa di Application Insights.
endpointUrl Endpoint di inserimento a cui inviare i payload di telemetria.
quickPulseHost Host live metrics Stream a cui inviare dati di telemetria delle metriche in tempo reale.
proxyHttpUrl Un server proxy per il traffico HTTP SDK. (Facoltativo. Il valore predefinito viene estratto dalla http_proxy variabile di ambiente.
proxyHttpsUrl Un server proxy per il traffico HTTPS SDK. (Facoltativo. Il valore predefinito viene estratto dalla https_proxy variabile di ambiente.
httpAgent Http. Agente da usare per il traffico HTTP SDK. (Facoltativo. Il valore predefinito è non definito.
httpsAgent Https. Agente da usare per il traffico HTTPS dell'SDK. (Facoltativo. Il valore predefinito è non definito.
maxBatchSize Numero massimo di elementi di telemetria da includere in un payload per l'endpoint di inserimento. Il valore predefinito è 250.)
maxBatchIntervalMs Quantità massima di tempo di attesa per il raggiungimento di maxBatchSize per un payload. Il valore predefinito è 15000.)
disableAppInsights Flag che indica se la trasmissione dei dati di telemetria è disabilitata. Il valore predefinito è false.)
samplingPercentage Percentuale di elementi di telemetria rilevati che devono essere trasmessi. Il valore predefinito è 100.)
correlationIdRetryIntervalMs Tempo di attesa prima di riprovare a recuperare l'ID per la correlazione tra componenti. Il valore predefinito è 30000.)
correlationHeaderExcludedDomains Elenco di domini da escludere dall'inserimento dell'intestazione di correlazione tra componenti. Impostazione predefinita. Vedere Config.ts.

Risoluzione dei problemi

Per informazioni sulla risoluzione dei problemi, inclusi gli scenari "senza dati" e la personalizzazione dei log, vedere Risolvere i problemi di monitoraggio di Application Insights per le app e i servizi Node.js.

Passaggi successivi