A Node.js szolgáltatások és appok figyelése az Application Insights segítségével

Az alkalmazás Elemzések figyeli az összetevőket az üzembe helyezés után a teljesítmény és egyéb problémák felderítése érdekében. Az Alkalmazás Elemzések az adatközpontban, Azure-beli virtuális gépeken és webalkalmazásokban, valamint más nyilvános felhőkben üzemeltetett Node.js szolgáltatásokhoz is használhatja.

A monitorozási adatok fogadásához, tárolásához és feltárásához vegye fel az SDK-t a kódba. Ezután állítson be egy megfelelő alkalmazás-Elemzések erőforrást az Azure-ban. Az SDK ennek az erőforrásnak küldi az adatokat további elemzés és vizsgálat céljából.

A Node.js ügyfélkódtár automatikusan monitorozza a bejövő és kimenő HTTP-kéréseket, kivételeket és néhány rendszermetrikát. A 0.20-es verziótól kezdődően az ügyféloldali kódtár figyelhet néhány gyakori külső csomagot is, például a MongoDB-t, a MySQL-t és a Redist.

Az egyes bejövő HTTP-kérésekhez kapcsolódó összes eseményt összekapcsolja a gyorsabb hibaelhárítás érdekében.

A TelemetryClient API-val manuálisan végezheti el az alkalmazás és a rendszer több aspektusát, és monitorozhat. A TelemetryClient API-t a jelen cikk egy későbbi részében részletesebben ismertetjük.

Feljegyzés

Az alábbi dokumentáció az Alkalmazás Elemzések klasszikus API-ra támaszkodik. Az Alkalmazás Elemzések hosszú távú terve az Adatok gyűjtése Az OpenTelemetria használatával. További információ: Az Azure Monitor OpenTelemetria engedélyezése .NET-, Node.js-, Python- és Java-alkalmazásokhoz.

Első lépések

Egy alkalmazás vagy szolgáltatás monitorozásának beállításához a következő feladatokat kell elvégezni.

Előfeltételek

Mielőtt hozzákezd, győződjön meg róla, hogy rendelkezik Azure-előfizetéssel, vagy igényeljen ingyenesen egy újat. Ha szervezete már rendelkezik Azure-előfizetéssel, egy rendszergazda az alábbi utasítások követésével Önt is hozzá tudja adni az előfizetéshez.

Application Insights-erőforrás beállítása

  1. Jelentkezzen be az Azure Portalra.
  2. Hozzon létre egy alkalmazás-Elemzések erőforrást.

Feljegyzés

2025. március 31-én megszűnik az eszközkulcsalapú betöltés támogatása. A rendszerállapot-kulcsok betöltése továbbra is működni fog, de a továbbiakban nem biztosítunk frissítéseket vagy támogatást a funkcióhoz. Váltás kapcsolati sztring az új képességek kihasználásához.

A Node.js ügyfélkódtár beállítása

Vegye fel az SDK-t az alkalmazásba, hogy adatokat gyűjtsön.

  1. Másolja ki az erőforrás kapcsolati sztring az új erőforrásból. Az alkalmazás Elemzések a kapcsolati sztring használja az adatok Azure-erőforráshoz való leképezéséhez. Ahhoz, hogy az SDK használni tudja a kapcsolati sztring, meg kell adnia a kapcsolati sztring egy környezeti változóban vagy a kódban.

    Screenshot that shows the Application Insights overview and connection string.

  2. Adja hozzá az Node.js ügyfélkódtárat az alkalmazás függőségeihez a következőn keresztül package.json: Futtassa az app gyökérkönyvtárából az alábbi parancsot:

    npm install applicationinsights --save
    

    Feljegyzés

    TypeScript használata esetén ne telepítsen külön "gépelési" csomagokat. Ez az NPM-csomag beépített tipizálásokat tartalmaz.

  3. Explicit módon töltse be a kódtárat a programkódba. Mivel az SDK a rendszerállapotot több más kódtárba is beépíti, a kódtárat a lehető leghamarabb be kell betölteni, akár más require-utasítások előtt.

    let appInsights = require('applicationinsights');
    
  4. A környezeti változón APPLICATIONINSIGHTS_CONNECTION_STRINGkeresztül is megadhat kapcsolati sztring ahelyett, hogy manuálisan átadta volna azt setup()new appInsights.TelemetryClient(). Ez a gyakorlat lehetővé teszi, hogy a kapcsolati sztring ne legyenek lekötött forráskódban, és különböző kapcsolati sztring adhat meg a különböző környezetekhez. A manuális konfiguráláshoz hívja meg a .appInsights.setup('[your connection string]');

    További konfigurációs beállításokért tekintse meg a következő szakaszokat.

    Az SDK-t telemetria küldése nélkül is kipróbálhatja az appInsights.defaultClient.config.disableAppInsights = true beállításával.

  5. Indítsa el az adatok automatikus gyűjtését és küldését a hívással appInsights.start();.

Feljegyzés

Az alkalmazás Elemzések rendszerezésének részeként diagnosztikai adatokat gyűjtünk és küldünk a Microsoftnak. Ezek az adatok segítenek az alkalmazás Elemzések futtatásában és fejlesztésében. Lehetősége van letiltani a nem alapvető adatgyűjtést. További információ.

Az alkalmazás figyelése

Az SDK automatikusan telemetriát gyűjt a Node.js futtatókörnyezetről és néhány gyakori külső modulról. Az alkalmazás használatával gyűjtsön össze néhányat ezekből az adatokból.

Ezután az Azure Portalon lépjen a korábban létrehozott Application Insights-erőforráshoz. Az Áttekintő idővonalon tekintse meg az első néhány adatpontot. Részletesebb adatokért válasszon a diagramok különböző összetevői közül.

Az alkalmazáshoz felderített topológiát az Alkalmazástérkép használatával tekintheti meg.

Nincs adat

Mivel az SDK beküldésre köti az adatokat, előfordulhat, hogy késéssel jelennek meg az elemek a portálon. Ha nem lát adatokat az erőforrásában, próbálja elvégezni valamelyik javítást az alábbiak közül:

  • Folytassa az alkalmazás használatát. Végezzen el több műveletet, hogy több telemetria jöjjön létre.
  • Válassza a Frissítés lehetőséget a portál erőforrásnézetben. A diagramok adott időközönként maguktól frissülnek, de manuálisan azonnal is frissíthetők.
  • Ellenőrizze, hogy a szükséges kimenő portok nyitva vannak-e.
  • Keressen rá bizonyos eseményekre.
  • Tekintse meg a gyakori kérdésekkel foglalkozó részt.

Alapszintű használat

A HTTP-kérések, a népszerű külső táresemények, a kezeletlen kivételek és a rendszermetrikák beépített gyűjteményéhez:


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

Feljegyzés

Ha a kapcsolati sztring a környezeti változóban APPLICATIONINSIGHTS_CONNECTION_STRINGvan beállítva, .setup() argumentumok nélkül hívható meg. Ez megkönnyíti a különböző környezetek különböző kapcsolati sztring használatát.

A szkriptekben a lehető leghamarabb töltse be az alkalmazás Elemzések kódtáratrequire("applicationinsights"), mielőtt más csomagokat tölt be. Erre a lépésre azért van szükség, hogy az alkalmazás Elemzések kódtár előkészíthesse a későbbi csomagokat a nyomon követéshez. Ha ütközések merülnek fel más, hasonló előkészítést végző kódtárakkal, próbálja meg később betölteni az alkalmazás Elemzések kódtárat.

Mivel a JavaScript kezeli a visszahívásokat, több munkára van szükség a külső függőségek és későbbi visszahívások közötti kérések nyomon követéséhez. Alapértelmezés szerint ez az extra nyomon követés engedélyezve van. Tiltsa le az SDK konfigurációs szakaszában leírt hívássalsetAutoDependencyCorrelation(false).

Migrálás a 0.22 előtti verziókból

A 0.22-es verzió előtti és utáni kiadások között kompatibilitástörő változások lépnek fel. Ezek a módosítások úgy vannak kialakítva, hogy konzisztenciát teremtsen más alkalmazás Elemzések SDK-kkal, és lehetővé tegyék a jövőbeli bővíthetőséget.

A migrálás általában a következő műveletekkel végezhető el:

  • A hivatkozásokat cserélje le a appInsights.client gombra appInsights.defaultClient.
  • A hivatkozásokat cserélje le a appInsights.getClient() gombra new appInsights.TelemetryClient().
  • Cserélje le az összes argumentumot a client.track* metódusokra egyetlen objektumra, amely argumentumként megnevezett tulajdonságokat tartalmaz. Tekintse meg az IDE beépített típusának tippjét vagy telemetriatípusait az egyes telemetriatípusok kivételt tartalmazó objektumához.

Ha anélkül fér hozzá az SDK konfigurációs függvényeihez, hogy appInsights.setup()azokhoz láncot fűz, ezeket a függvényeket a következő helyen appInsights.Configurationstalálja: . Például: appInsights.Configuration.setAutoCollectDependencies(true). Tekintse át az alapértelmezett konfiguráció módosításait a következő szakaszban.

SDK konfigurálása

Az appInsights objektum számos konfigurációs módszert biztosít. Ezek az alábbi kódrészletben jelennek meg az alapértelmezett értékekkel.

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();

Ahhoz, hogy teljes körűen megállapíthassa egy szolgáltatás eseményeinek korrelációját, mindenképpen be kell állítania a .setAutoDependencyCorrelation(true) értéket. E beállítás lehetővé teszi, hogy a Node.js-ben az SDK kövesse a kontextust az aszinkron visszahívások során.

Részletes információkért és opcionális másodlagos argumentumokért tekintse át a leírásukat az IDE beépített típusleírásában vagy applicationinsights.ts .

Feljegyzés

Alapértelmezés szerint úgy van konfigurálva, setAutoCollectConsole hogy kizárja a console.log hívásokat és más konzolmódszereket. Csak a támogatott külső naplózók (például Winston és Bunyan) hívásait gyűjtjük össze. Ezt a viselkedést úgy módosíthatja, hogy metódusokra irányuló hívásokat is tartalmazzon console a használatával setAutoCollectConsole(true, true).

Mintavételezés

Alapértelmezés szerint az SDK az összes összegyűjtött adatot elküldi az Alkalmazás Elemzések szolgáltatásnak. Ha engedélyezni szeretné a mintavételezést az adatok mennyiségének csökkentése érdekében, állítsa be az samplingPercentageconfig ügyfél objektumának mezőjét. A 100-ra (az alapértelmezett értékre) való beállítás samplingPercentage azt jelenti, hogy minden adat el lesz küldve, a 0 pedig azt jelenti, hogy semmi sem lesz elküldve.

Ha automatikus korrelációt használ, a rendszer az egyetlen kérelemhez társított összes adatot egységként tartalmazza vagy kizárja.

A mintavételezés engedélyezéséhez adja hozzá a következőhöz hasonló kódot:

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();

Több szerepkör többkomponensű alkalmazásokhoz

Bizonyos esetekben előfordulhat, hogy az alkalmazás több összetevőből áll, amelyeket azonos kapcsolati sztring szeretne használni. Ezeket az összetevőket továbbra is különálló egységekként szeretné látni a portálon, mintha külön kapcsolati sztring használnának. Példaként külön csomópontokat láthat az Alkalmazástérképen. Manuálisan kell konfigurálnia a mezőt, RoleName hogy megkülönböztesse az egyik összetevő telemetriáját a többi összetevőtől, amelyek adatokat küldenek az alkalmazásnak Elemzések erőforrásnak.

A mező beállításához használja a RoleName következő kódot:

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

Böngésző SDK loader

Feljegyzés

Nyilvános előzetes verzióként érhető el. A Microsoft Azure előzetes verziójú termékekre vonatkozó kiegészítő feltételek

Az automatikus webes rendszerállapot engedélyezhető a csomópontkiszolgálón a JavaScript (Web) SDK Loader Script injektálásával konfiguráció alapján.

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

vagy a környezeti változó APPLICATIONINSIGHTS_WEB_INSTRUMENTATION_ENABLED = truebeállításával.

A Web Instrumentation akkor engedélyezve van a csomópontkiszolgálói válaszokon, ha az alábbi követelmények teljesülnek:

  • A válasz állapotkóddal 200rendelkezik.
  • A válaszmetódus a .GET
  • A kiszolgáló válasza html-rel rendelkezik Content-Type .
  • A kiszolgáló válasza mindkettőt <head> és </head> címkéket is tartalmaz.
  • Ha a válasz tömörítve van, annak csak egy Content-Encoding típussal kell rendelkeznie, és a kódolási típusnak az egyiknek br vagy deflateaz egyiknek gzipkell lennie.
  • A válasz nem tartalmaz aktuális /backup web Instrumentation CDN-végpontokat. (a Web Instrumentation CDN-végpontok aktuális és biztonsági mentése itt)

a web Instrumentation CDN-végpont a környezeti változó APPLICATIONINSIGHTS_WEB_INSTRUMENTATION_SOURCE = "web Instrumentation CDN endpoints"beállításával módosítható. web Instrumentation kapcsolati sztring a környezeti változó beállításával módosíthatóAPPLICATIONINSIGHTS_WEB_INSTRUMENTATION_CONNECTION_STRING = "web Instrumentation connection string"

Feljegyzés

A Web Instrumentation lelassíthatja a kiszolgáló válaszidejének idejét, különösen akkor, ha a válasz mérete nagy, vagy a válasz tömörítve van. Abban az esetben, ha bizonyos középső rétegeket alkalmaz, az azt eredményezheti, hogy a webes rendszerállapot nem működik, és az eredeti válasz vissza lesz adva.

Automatikus külső rendszerállapot

Az aszinkron hívások kontextusának nyomon követéséhez bizonyos változtatásokra van szükség a külső kódtárakban, például a MongoDB-ben és a Redisben. Alapértelmezés szerint az Alkalmazás Elemzések ezen kódtárak némelyikének majomjavítását használjadiagnostic-channel-publishers. Ez a funkció a környezeti változó beállításával APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL letiltható.

Feljegyzés

A környezeti változó beállításával előfordulhat, hogy az események nem lesznek megfelelően társítva a megfelelő művelettel.

Az egyes majomfoltok letilthatók úgy, hogy a APPLICATION_INSIGHTS_NO_PATCH_MODULES környezeti változót a letiltandó csomagok vesszővel tagolt listájára állítja. Például a APPLICATION_INSIGHTS_NO_PATCH_MODULES=console,redis csomagok és redis a csomagok javításának console elkerülése érdekében.

Jelenleg kilenc csomag van kialakítva: bunyan,console,,mongodb,mongodb-core,mysqlredis,,winston,pg és pg-pool. A csomagok javításával kapcsolatos információkért tekintse meg a diagnosztikai csatorna-közzétevők README című témakörét.

A bunyan, winstonés console a javítások az alkalmazás Elemzések nyomkövetési eseményeket hoznak létre attól függően, hogy engedélyezve van-esetAutoCollectConsole. A többi alkalmazás Elemzések függőségi eseményeket hoz létre attól függően, hogy engedélyezve van-esetAutoCollectDependencies.

Élő metrikák

Ha engedélyezni szeretné az élő metrikák azure-ba küldését az alkalmazásból az Azure-ba, használja setSendLiveMetrics(true)a . Az élő metrikák szűrése jelenleg nem támogatott a portálon.

Kiterjesztett metrikák

Feljegyzés

A kiterjesztett natív metrikák küldésének lehetősége az 1.4.0-s verzióban lett hozzáadva.

Ha engedélyezni szeretné a kiterjesztett natív metrikák küldését az alkalmazásból az Azure-ba, telepítse a külön natív metrikák csomagját. Az SDK automatikusan betöltődik, amikor telepítve van, és megkezdi Node.js natív metrikák gyűjtését.

npm install applicationinsights-native-metrics

A natív metrikák csomagja jelenleg automatikusan elvégzi a szemétgyűjtés processzoridejének, az eseményhurok-osztásoknak és a halomhasználatnak az autocollectionét:

  • Szemétgyűjtés: Az egyes szemétgyűjtési típusokra fordított processzoridő és az egyes típusúak előfordulásainak száma.
  • Eseményhurok: Hány ticks történt, és mennyi cpu-időt töltöttek összesen.
  • Halom vagy nem halom: Az alkalmazás memóriahasználatának mennyisége a halomban vagy a nem halomban van.

Elosztott nyomkövetési módok

Alapértelmezés szerint az SDK más alkalmazások vagy szolgáltatások által értelmezett fejléceket küld egy Alkalmazás Elemzések SDK-val. A W3C Trace Context fejlécek küldését és fogadását a meglévő AI-fejléceken kívül is engedélyezheti. Ily módon nem szakítja meg a meglévő örökölt szolgáltatásokkal való korrelációt. A W3C-fejlécek engedélyezése lehetővé teszi, hogy az alkalmazás korreláljon más, az Application Elemzések által nem használt szolgáltatásokkal, de ez a W3C-szabványt alkalmazza.

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

TelemetryClient API

A TelemetryClient API részletes leírásával kapcsolatban lásd az egyéni eseményekhez és a mérőszámokhoz rendelkezésre álló Application Insights API-t.

A kéréseket, eseményeket, metrikákat vagy kivételeket az Alkalmazás Elemzések ügyfélkódtár használatával követheti nyomon Node.js. Az alábbi példakód a használható API-k közül mutat be néhányat.

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
});

Függőségek követése

A következő kóddal követheti a függőségeket:

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"});;

Példa segédprogram trackMetric az eseményhurok ütemezésének mennyi ideig tartó mérésére:

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);
}

Egyéni tulajdonság hozzáadása eseményekhez

A következő kóddal adhat hozzá egyéni tulajdonságot minden eseményhez:

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

HTTP GET-kérések követése

A HTTP GET-kérések manuális nyomon követéséhez használja az alábbi kódot:

Feljegyzés

A rendszer alapértelmezés szerint minden kérést nyomon követ. Az automatikus gyűjtemény letiltásához hívás előtt hívja fel a hívást .setAutoCollectRequests(false)start().

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

Másik lehetőségként a következő módszerrel követheti nyomon a trackNodeHttpRequest kéréseket:

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

Kiszolgáló indítási idejének követése

A következő kóddal követheti a kiszolgáló indítási idejét:

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

Flush

Alapértelmezés szerint a telemetriát a rendszer 15 másodpercig puffereli, mielőtt elküldené a betöltési kiszolgálónak. Ha az alkalmazás rövid élettartamú, például parancssori felületi eszközzel rendelkezik, előfordulhat, hogy manuálisan kell kiürítenie a pufferelt telemetriát, amikor az alkalmazás a használatával appInsights.defaultClient.flush()leáll.

Ha az SDK azt észleli, hogy az alkalmazás összeomlik, a rendszer a következő használatával appInsights.defaultClient.flush({ isAppCrashing: true })hívja meg a flush parancsot. A kiürítési beállítással isAppCrashingaz alkalmazás rendellenes állapotban van, és nem alkalmas telemetriai adatok küldésére. Ehelyett az SDK az összes pufferelt telemetriát az állandó tárolóba menti, és lehetővé teszi az alkalmazás leállítását. Amikor az alkalmazás újra elindul, megpróbálja elküldeni az állandó tárolóba mentett telemetriát.

Adatok előfeldolgozása telemetriai feldolgozókkal

Az összegyűjtött adatokat a telemetriai processzorok használatával feldolgozhatja és szűrheti, mielőtt azokat megőrzésre küldené. A telemetriai processzorok neve egyenként történik a telemetriaelem felhőbe való elküldése előtt hozzáadott sorrendben.

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

Ha egy telemetriafeldolgozó visszaadja false, a rendszer nem küldi el a telemetriai elemet.

Minden telemetriai processzor megkapja a telemetriai adatokat és annak borítékját a vizsgálathoz és a módosításhoz. Környezeti objektumot is kapnak. Ennek az objektumnak a tartalmát a paraméter határozza meg, contextObjects amikor manuálisan nyomon követett telemetriai nyomkövetési metódust hív meg. Az automatikusan gyűjtött telemetriai adatok esetében ez az objektum a rendelkezésre álló kérelemadatokkal és a kérések által appInsights.getCorrelationContext() biztosított állandó tartalommal van kitöltve (ha engedélyezve van az automatikus függőségi korreláció).

A telemetriai processzor TypeScript típusa a következő:

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

Például egy processzor, amely eltávolítja a veremek nyomkövetési adatait a kivételekből, az alábbiak szerint írható és adható hozzá:

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);

Több kapcsolati sztring használata

Több alkalmazás-Elemzések-erőforrást is létrehozhat, és különböző adatokat küldhet mindegyiknek a megfelelő kapcsolati sztring használatával.

Példa:

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"});

Speciális konfigurációs beállítások

Az ügyfélobjektum olyan tulajdonságot config tartalmaz, amely számos választható beállítással rendelkezik a speciális forgatókönyvekhez. A beállításukhoz használja a következőt:

client.config.PROPERTYNAME = VALUE;

Ezek a tulajdonságok ügyfélspecifikusak, így külön konfigurálható appInsights.defaultClient a velük new appInsights.TelemetryClient()létrehozott ügyfelektől.

Tulajdonság Leírás
connectionString Az alkalmazás Elemzések erőforrás azonosítója.
endpointUrl A telemetriai hasznos adatok küldésére szolgáló betöltési végpont.
quickPulseHost Az élő metrikák stream-gazdagépe, amely élő metrikák telemetriáját küldi el.
proxyHttpUrl Proxykiszolgáló az SDK HTTP-forgalmához. (Nem kötelező. Az alapértelmezett érték a környezeti változóból származik http_proxy .)
proxyHttpsUrl Proxykiszolgáló SDK HTTPS-forgalomhoz. (Nem kötelező. Az alapértelmezett érték a környezeti változóból származik https_proxy .)
httpAgent Egy http. SDK HTTP-forgalomhoz használandó ügynök. (Nem kötelező. Az alapértelmezett érték nincs definiálva.)
httpsAgent Egy https. SDK HTTPS-forgalomhoz használandó ügynök. (Nem kötelező. Az alapértelmezett érték nincs definiálva.)
maxBatchSize A betöltési végponthoz tartozó hasznos adatba belefoglalandó telemetriai elemek maximális száma. (Az alapértelmezett érték a 250.)
maxBatchIntervalMs A maximális idő, amíg a hasznos adatok elérik a maxBatchSize méretet. (Az alapértelmezett érték a 15000.)
disableApp Elemzések Egy jelző, amely jelzi, hogy a telemetriai átvitel le van-e tiltva. (Az alapértelmezett érték a false.)
samplingPercentage A követendő telemetriai elemek százalékos aránya. (Az alapértelmezett érték a 100.)
correlationIdRetryIntervalMs A keresztösszetevők közötti korreláció azonosítójának lekéréséhez szükséges várakozási idő. (Az alapértelmezett érték a 30000.)
correlationHeaderExcludedDomains Az összetevők közötti korrelációs fejlécinjektálásból kizárandó tartományok listája. (Alapértelmezett. Lásd: Config.ts.)

Hibaelhárítás

Hibaelhárítási információkért, beleértve a "nincs adat" forgatókönyveket és a naplók testreszabását, tekintse meg az alkalmazás Elemzések Node.js alkalmazások és szolgáltatások monitorozásának hibaelhárítását.

Következő lépések