Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Application Insights az üzembe helyezés után figyeli az összetevőket a teljesítmény és egyéb problémák felderítése érdekében. Az Application Insightst Node.js adatközpontban, Azure-beli virtuális gépeken és webalkalmazásokban, valamint más nyilvános felhőkben üzemeltetett 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ő Application Insights-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 instrumentálhatja és monitorozhatja az alkalmazás és a rendszer több aspektusát. A TelemetryClient API-t a jelen cikk egy későbbi részében részletesebben ismertetjük.
Figyelemfelhívás
Javasoljuk az Azure Monitor OpenTelemetry Distro használatát az új alkalmazások vagy ügyfelek számára az Azure Monitor Application Insights használatához. Az Azure Monitor OpenTelemetry Distro az Application Insights SDK-hoz hasonló funkciókat és élményt nyújt. Az Application Insights SDK-ból a .NET, a Node.js és a Python áttelepítési útmutatóival migrálható, de még dolgozunk néhány további funkció hozzáadásán a visszamenőleges kompatibilitás érdekében.
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
- Jelentkezzen be az Azure Portalra.
- Hozzon létre egy Application Insights-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áltson kapcsolati sztringekre 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.
Másolja ki az új erőforrásból az erőforrás kapcsolati sztringjét. Az Application Insights a kapcsolati sztringet használja az adatok az Azure-erőforráshoz való leképezéséhez. Ahhoz, hogy az SDK használni tudja a kapcsolati sztringet, meg kell adnia azt egy környezeti változóban vagy a kódban.
Képernyőkép az Application Insights áttekintéséről és kapcsolati karakterláncról.
Adja hozzá az Node.js ügyfélkódtárat az alkalmazás függőségeihez a következőn keresztül
package.json
: Az alkalmazás gyökérkönyvtárából hajtsa végre 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.
Kifejezetten töltse be a könyvtárat a programjában. Mivel az SDK sok más könyvtárhoz injektál instrumentációt, a könyvtárat a lehető leghamarabb be kell tölteni, akár más
require
-utasítások előtt.let appInsights = require('applicationinsights');
A környezeti változón
APPLICATIONINSIGHTS_CONNECTION_STRING
keresztül is megadhat kapcsolati sztringet, ahelyett, hogy manuálisan átadná aztsetup()
-nek vagynew appInsights.TelemetryClient()
-nek. Ez a gyakorlat lehetővé teszi, hogy a kapcsolati sztringek ne legyenek beküldött forráskódban, és különböző kapcsolati sztringeket adhat meg a különböző környezetekhez. A manuális konfiguráláshoz hívja meg aappInsights.setup('[your connection string]');
elemet.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.Indítsa el az adatok automatikus gyűjtését és küldését a hívással
appInsights.start();
.
Feljegyzés
Az Application Insights rendszerállapotának részeként diagnosztikai adatokat gyűjtünk és küldünk a Microsoftnak. Ezek az adatok segítenek az Application Insights 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 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ő könyvtári események, a kezeletlen kivételek és a rendszermetrikák alapértelmezett gyűjtésé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_STRING
van beállítva, .setup()
argumentumok nélkül hívható meg. Ez megkönnyíti, hogy különböző környezetekben különböző kapcsolati karakterláncokat használjunk.
Az Application Insights-kódtárat require("applicationinsights")
a lehető leghamarabb töltse be a szkriptekbe, mielőtt más csomagokat tölt be. Erre a lépésre azért van szükség, hogy az Application Insights-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 Application Insights-tá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 azzal, hogy meghívja a setAutoDependencyCorrelation(false)
az SDK konfiguráció szakaszában leírtak szerint.
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 megtalálhatók a kompatibilitástörő változások. Ezek a módosítások úgy lettek kialakítva, hogy konzisztenciát teremtsen más Application Insights SDK-kkal, és lehetővé tegye a jövőbeli bővíthetőséget.
A migrálás általában a következő műveletekkel végezhető el:
- Cserélje le a
appInsights.client
hivatkozásokatappInsights.defaultClient
-re. - Cserélje le a
appInsights.getClient()
hivatkozásokatnew appInsights.TelemetryClient()
-re. - 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ípusmegjegyzését vagy TelemetryTypes elemet, hogy megtalálja az elvárt objektumot az egyes telemetriatípusokhoz.
Ha láncolás nélkül fér hozzá az SDK konfigurációs függvényeihez a appInsights.setup()
-hoz, akkor ezeket a függvényeket a következő helyen találja: appInsights.Configurations
. 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 a setAutoCollectConsole
úgy van konfigurálva, hogy kizárja a és más konzolmódszerek hívásait. Csak a támogatott külső naplózók (például Winston és Bunyan) hívásait gyűjtjük össze. A viselkedést úgy módosíthatja, hogy a console
metódusokra irányuló hívásokat is tartalmazza a setAutoCollectConsole(true, true)
használatával.
Mintavételezés
Alapértelmezés szerint az SDK az összes összegyűjtött adatot elküldi az Application Insights 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 samplingPercentage
config
ü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 ugyanazzal a kapcsolati sztringgel szeretne konfigurálni. Ezeket az összetevőket továbbra is különálló egységekként szeretné látni a portálon, úgy, mintha külön kapcsolati karaktersort 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 Application Insights-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 betöltő
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 instrumentáció engedélyezhető a node szerveren a JavaScript (Web) SDK Loader Script konfiguráció szerinti injektálásával.
let appInsights = require("applicationinsights");
appInsights.setup("<connection_string>")
.enableWebInstrumentation(true)
.start();
vagy a környezeti változó APPLICATIONINSIGHTS_WEB_INSTRUMENTATION_ENABLED = true
beá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
200
rendelkezik. - A válaszadási módszer:
GET
. - A kiszolgáló válasza
Content-Type
html-t tartalmaz. - 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 egyiknekgzip
vagybr
az egyiknekdeflate
kell 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ó.
A Web Instrumentation kapcsolati sztringje módosítható a környezeti változó beállításával 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özbenső rétegeket alkalmaznak, előfordulhat, hogy a webes műszeres felügyelet nem működik, és az eredeti válasz kerül visszaadásra.
Automatikus harmadik fél műszerezés
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 Application Insights diagnostic-channel-publishers
használja néhány ilyen könyvtár ideiglenes módosítására. 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 monkey patch-ek letilthatók úgy, hogy a APPLICATION_INSIGHTS_NO_PATCH_MODULES
környezeti változót a kikapcsolandó csomagok vesszővel tagolt listájára állítja. Például használja a APPLICATION_INSIGHTS_NO_PATCH_MODULES=console,redis
a console
és redis
csomagok javításának elkerülése érdekében.
Jelenleg kilenc csomag van kialakítva: bunyan
,console
,,mongodb
,mongodb-core
,mysql
redis
,,winston
,pg
és pg-pool
. A csomagok pontosan melyik verzióját javították, arról a diagnostic-channel-publishers README fájlban találhatók információk.
A bunyan
, winston
és console
a javítások az Application Insights nyomkövetési eseményeit generálják attól függően, hogy engedélyezve van-e setAutoCollectConsole
. A többi az Application Insights függőségi eseményeit hozza létre attól függően, hogy engedélyezve van-e setAutoCollectDependencies
.
Élő metrikák
Ha engedélyezni szeretné az élő metrikák küldését az alkalmazásból az Azure-ba, használja setSendLiveMetrics(true)
. 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 iterációinak és a halomhasználatnak az automatikus gyűjtésé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 léptetés zajlott le, és mennyi CPU-időt használtak fel összesen.
- Kupac vagy nem kupac: Az alkalmazás memóriahasználatának mekkora része található a kupacban vagy a kupacon kívül.
Elosztott nyomkövetési módok
Alapértelmezés szerint az SDK az Application Insights SDK-val létrehozott más alkalmazások vagy szolgáltatások által értelmezett fejléceket küld. 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 az alkalmazás számára, hogy korreláljon más, az Application Insightsban nem használt szolgáltatásokkal, de 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.
Bármilyen kérést, eseményt, metrikát vagy kivételt nyomon követhet az Application Insights ügyfélkódtárával 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"});;
Egy példa arra a segédeszközre, amely trackMetric
segítségével méri, mennyi ideig tart az eseményhurok ütemezése.
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 adatgyűjtés letiltásához hívja meg a
.setAutoCollectRequests(false)
-t, mielőtt meghívná astart()
-t. - A natív beolvasási API-kéréseket a klasszikus Application Insights nem követi automatikusan; manuális függőségkövetésre van szükség.
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});
});
Öblít
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 időtartamú, mint például egy parancssori eszköz, előfordulhat, hogy manuálisan kell ürítenie a pufferelt telemetriát, amikor az alkalmazás leáll appInsights.defaultClient.flush()
használatával.
Ha az SDK azt észleli, hogy az alkalmazás összeomlik, az automatikusan meghívja a flush parancsot a(z) appInsights.defaultClient.flush({ isAppCrashing: true })
használatával. Ha a kiürítési opció isAppCrashing
van beállítva, az alkalmazásról feltételezhető, hogy 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 processzorokat egyenként, a hozzáadásuk sorrendjében hívják meg, mielőtt a telemetriai elemet elküldik a felhőbe.
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 az alábbiak szerint írható és adható hozzá egy processzor, amely eltávolítja a veremkövetési adatokat a kivételekből.
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 Application Insights-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 a appInsights.defaultClient
külön konfigurálható a new appInsights.TelemetryClient()
-tel létrehozott ügyfelektől.
Ingatlan | Leírás |
---|---|
csatlakozási karakterlánc | Az Application Insights-erőforrás azonosítója. |
endpointurl | A telemetriai adatok küldésére használt adatfogadó 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 .) |
HTTP ügynök | Egy http.Agent az SDK HTTP-forgalomhoz használandó. (Nem kötelező. Az alapértelmezett érték nincs definiálva.) |
httpsAgent | Egy HTTPS-ügynök, amely az SDK HTTPS-forgalmának kezelésére szolgál. (Nem kötelező. Az alapértelmezett érték nincs definiálva.) |
maximális csomagméret | Az adatbevitel végpontra küldendő hasznos adatba tartozó telemetriai elemek maximális száma. (Az alapértelmezett érték a 250 .) |
maxBatchIntervalMs (maximális csoportintervallum ms-ben) | A maximális időtartam, amely alatt várakozunk, hogy a hasznos adatcsomag elérje a maxBatchSize méretet. (Az alapértelmezett érték a 15000 .) |
Az AppInsights letiltása | Egy jelző, amely jelzi, hogy a telemetriai átvitel le van-e tiltva. (Az alapértelmezett érték a false .) |
mintavételi százalék | A követett telemetriai elemek azon százalékos aránya, amelyet továbbítani kell. (Az alapértelmezett érték a 100 .) |
korrelációAzonosítóÚjrapróbálkozásiIdőtartamMs | 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 .) |
korelációsFejlécKizártTartományok | 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 Application Insights Node.js-alkalmazások és -szolgáltatások monitorozásának hibaelhárítását ismertető témakört.
Következő lépések
- A gyakori kérdések (GYIK) áttekintéséhez tekintse át Node.js gyakori kérdéseket
- A telemetria figyelése a portálon
- Analytics-lekérdezések írása a telemetriai adatokhoz