Application Insights ile Node.js hizmetlerinizi ve uygulamalarınızı izleme
Application Insights , performansı ve diğer sorunları keşfetmek için dağıtımdan sonra bileşenlerinizi izler. Application Insights'ı veri merkezinizde, Azure VM'lerinizde ve web uygulamalarınızda ve hatta diğer genel bulutlarda barındırılan Node.js hizmetleri için kullanabilirsiniz.
İzleme verilerinizi almak, depolamak ve incelemek için SDK'yı kodunuzla birlikte ekleyin. Ardından Azure'da ilgili Application Insights kaynağını ayarlayın. SDK daha fazla analiz ve araştırma için verileri bu kaynağa gönderir.
Node.js istemci kitaplığı, gelen ve giden HTTP isteklerini, özel durumları ve bazı sistem ölçümlerini otomatik olarak izleyebilir. 0.20 sürümünden itibaren istemci kitaplığı MongoDB, MySQL ve Redis gibi bazı yaygın üçüncü taraf paketlerini de izleyebilir.
Gelen bir HTTP isteği ile ilgili tüm olaylar, daha hızlı sorun giderme için birbiriyle ilişkilendirilir.
TelemetryClient API'sini kullanarak uygulamanızın ve sisteminizin daha fazla yönünü el ile izleyebilir ve izleyebilirsiniz. TelemetryClient API'si bu makalenin ilerleyen bölümlerinde ayrıntılı bir şekilde anlatılmıştır.
Not
Aşağıdaki belgeler Application Insights klasik API'sine dayanır. Application Insights için uzun vadeli plan, OpenTelemetry kullanarak veri toplamaktır. Daha fazla bilgi için bkz . .NET, Node.js, Python ve Java uygulamaları için Azure İzleyici OpenTelemetry'yi etkinleştirme ve OpenTelemetry Yol Haritamız. Geçiş kılavuzu .NET, Node.js ve Python için kullanılabilir.
Kullanmaya başlayın
Bir uygulama veya hizmet için izlemeyi ayarlamak üzere aşağıdaki görevleri tamamlayın.
Önkoşullar
Başlamadan önce, bir Azure aboneliğine sahip olduğunuzdan emin olun veya ücretsiz olarak yeni bir tane edinin. Kuruluşunuzun bir Azure aboneliğini zaten varsa, yöneticiniz bu yönergeleri izleyerek sizi aboneliğe ekleyebilir.
Application Insights kaynağını ayarlama
- Azure Portal’ında oturum açın.
- Application Insights kaynağı oluşturun.
Not
31 Mart 2025’te izleme anahtarı alımı desteği sona erecektir. İzleme anahtarı alımı çalışmaya devam edecek, ancak artık özellik için güncelleştirme veya destek sağlamayacağız. Yeni özelliklerden yararlanmak için bağlantı dizesi geçiş.
Node.js istemci kitaplığını ayarlama
Veri toplayabilmesi için SDK'yi uygulamanıza ekleyin.
Kaynağınızın bağlantı dizesi yeni kaynağınızdan kopyalayın. Application Insights, verileri Azure kaynağınızla eşlemek için bağlantı dizesi kullanır. SDK'nın bağlantı dizesi kullanabilmesi için önce bağlantı dizesi bir ortam değişkeninde veya kodunuzda belirtmeniz gerekir.
aracılığıyla uygulamanızın bağımlılıklarına
package.json
Node.js istemci kitaplığını ekleyin. Uygulamanızın kök klasöründen şunu çalıştırın:npm install applicationinsights --save
Not
TypeScript kullanıyorsanız ayrı "yazma" paketleri yüklemeyin. Bu NPM paketi yerleşik yazma işlemleri içerir.
Kitaplığı kodunuza açıkça yükleyin. SDK diğer birçok kitaplığa izleme eklediği için kitaplığı diğer
require
deyimlerinden de önce olmak üzere mümkün olduğunca erken yükleyin.let appInsights = require('applicationinsights');
Ayrıca ortam değişkeni
APPLICATIONINSIGHTS_CONNECTION_STRING
aracılığıyla veya öğesine el ilesetup()
new appInsights.TelemetryClient()
geçirmek yerine bir bağlantı dizesi sağlayabilirsiniz. Bu uygulama, bağlantı dizesi kaydedilmiş kaynak kodunun dışında tutmanıza olanak tanır ve farklı ortamlar için farklı bağlantı dizesi belirtebilirsiniz. El ile yapılandırmak için çağrısı yapınappInsights.setup('[your connection string]');
.Daha fazla yapılandırma seçeneği için aşağıdaki bölümlere bakın.
SDK'yı telemetri verileri göndermeden denemek için
appInsights.defaultClient.config.disableAppInsights = true
ayarını yapın.çağrısı
appInsights.start();
yaparak otomatik olarak veri toplamaya ve göndermeye başlayın.
Not
Application Insights izlemesini kullanmanın bir parçası olarak tanılama verilerini toplar ve Microsoft'a göndeririz. Bu veriler Application Insights'ı çalıştırmamıza ve geliştirmemize yardımcı olur. Temel olmayan veri toplamayı devre dışı bırakma seçeneğiniz vardır. Daha fazla bilgi edinin.
Uygulamanızı izleme
SDK, Node.js çalışma zamanı ve bazı yaygın üçüncü taraf modülleri hakkında telemetri verilerini otomatik olarak toplar. Uygulamanızı kullanarak bu verilerin bazılarını oluşturun.
Ardından Azure portalında önceden oluşturduğunuz Application Insights kaynağına gidin. Genel bakış zaman çizelgesinde ilk birkaç veri noktasını bulun. Ayrıntılı verileri görmek için grafikteki farklı bileşenleri seçin.
Uygulamanız için bulunan topolojiyi görüntülemek için Uygulama Haritası'nı kullanabilirsiniz.
Veri yok
SDK verileri gönderim için toplu olarak işlediğinden, öğelerin portalda görünmesi gecikmeli olabilir. Verileri kaynağınızda görmüyorsanız aşağıdaki düzeltmelerden bazılarını deneyin:
- Uygulamayı kullanmaya devam edin. Daha fazla telemetri oluşturmak için daha fazla eylem gerçekleştirin.
- Portal kaynak görünümünde Yenile'yi seçin. Grafikler belirli aralıklarla otomatik olarak yenilenir ancak el ile yenilerseniz anında yenilenir.
- Gerekli giden bağlantı noktalarının açık olduğunu doğrulayın.
- Belirli olayları aramak için Arama sekmesini kullanın.
- SSS sayfasını inceleyin.
Temel kullanım
HTTP isteklerinin, popüler üçüncü taraf kitaplık olaylarının, işlenmeyen özel durumların ve sistem ölçümlerinin kullanıma hazır koleksiyonu için:
let appInsights = require("applicationinsights");
appInsights.setup("[your connection string]").start();
Not
bağlantı dizesi ortam değişkeninde APPLICATIONINSIGHTS_CONNECTION_STRING
.setup()
ayarlanırsa, bağımsız değişken olmadan çağrılabilir. Bu, farklı ortamlar için farklı bağlantı dizesi kullanımını kolaylaştırır.
Diğer paketleri yüklemeden önce betiklerinizde Application Insights kitaplığını require("applicationinsights")
mümkün olduğunca erken yükleyin. Application Insights kitaplığının daha sonraki paketleri izlemeye hazır edebilmesi için bu adım gereklidir. Benzer hazırlık yapan diğer kitaplıklarla çakışmalarla karşılaşırsanız, daha sonra Application Insights kitaplığını yüklemeyi deneyin.
JavaScript'in geri çağırmaları işleme şekli nedeniyle, dış bağımlılıklar ve daha sonraki geri çağırmalar arasında bir isteği izlemek için daha fazla çalışma gerekir. Bu ek izleme varsayılan olarak etkindir. SDK yapılandırması bölümünde açıklandığı gibi çağırarak setAutoDependencyCorrelation(false)
devre dışı bırakın.
0.22 öncesi sürümlerden geçiş
Sürüm 0.22 ve sonrasındaki sürümler arasında hataya neden olan değişiklikler vardır. Bu değişiklikler, diğer Application Insights SDK'larıyla tutarlılık sağlamak ve gelecekte genişletilebilirlik sağlamak için tasarlanmıştır.
Genel olarak, aşağıdaki eylemlerle geçiş yapabilirsiniz:
- başvurularını
appInsights.client
ileappInsights.defaultClient
değiştirin. - başvurularını
appInsights.getClient()
ilenew appInsights.TelemetryClient()
değiştirin. - Tüm bağımsız değişkenleri client.track* yöntemlerine, bağımsız değişken olarak adlandırılmış özellikler içeren tek bir nesneyle değiştirin. Her telemetri türü için IDE'nizin yerleşik tür ipuçlarına veya bağımsız nesne için TelemetryTypes'a bakın.
SDK yapılandırma işlevlerine appInsights.setup()
zincirlemeden erişiyorsanız, artık bu işlevleri adresinde appInsights.Configurations
bulabilirsiniz. appInsights.Configuration.setAutoCollectDependencies(true)
bunun bir örneğidir. Sonraki bölümde varsayılan yapılandırmada yapılan değişiklikleri gözden geçirin.
SDK yapılandırması
appInsights
nesnesi birçok yapılandırma yöntemi sağlar. Bunlar aşağıdaki kod parçacığında varsayılan değerleriyle birlikte listelenir.
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();
Bir hizmetteki olayları tam olarak ilişkilendirmek için .setAutoDependencyCorrelation(true)
ayarını yaptığınızdan emin olun. Bu seçenek belirlenmiş durumda olduğunda SDK Node.js içindeki zaman uyumsuz geri çağırmalar arasında içeriği izleyebilir.
Ayrıntılı bilgi ve isteğe bağlı ikincil bağımsız değişkenler için IDE'nizin yerleşik tür ipucu veya applicationinsights.ts açıklamalarını gözden geçirin.
Not
Varsayılan olarak, setAutoCollectConsole
ve diğer konsol yöntemlerine yapılan çağrıları dışlamak üzere console.log
yapılandırılır. Yalnızca desteklenen üçüncü taraf günlükçülere (örneğin, winston ve bunyan) yapılan çağrılar toplanır. Bu davranışı kullanarak setAutoCollectConsole(true, true)
yöntemlere console
çağrılar içerecek şekilde değiştirebilirsiniz.
Örnekleme
Varsayılan olarak, SDK toplanan tüm verileri Application Insights hizmetine gönderir. Veri miktarını azaltmak için örneklemeyi etkinleştirmek istiyorsanız, alanı istemcinin config
nesnesinde ayarlayınsamplingPercentage
. 100 (varsayılan) olarak ayarlanması samplingPercentage
tüm verilerin gönderileceği, 0 ise hiçbir şeyin gönderilmeyeceği anlamına gelir.
Otomatik bağıntı kullanıyorsanız, tek bir istekle ilişkili tüm veriler bir birim olarak dahil edilir veya hariç tutulur.
Örneklemeyi etkinleştirmek için aşağıdaki gibi bir kod ekleyin:
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();
Çok bileşenli uygulamalar için birden çok rol
Bazı senaryolarda uygulamanız, tümünü aynı bağlantı dizesi izlemek istediğiniz birden çok bileşenden oluşabilir. Bu bileşenleri, ayrı bağlantı dizesi kullanıyor gibi portalda ayrı birimler olarak görmeye devam etmek istiyorsunuz. Uygulama Haritası'nda ayrı düğümler örnek olarak verilmiştir. Bir bileşenin telemetrisini RoleName
Application Insights kaynağınıza veri gönderen diğer bileşenlerden ayırt etmek için alanı el ile yapılandırmanız gerekir.
Alanı ayarlamak RoleName
için aşağıdaki kodu kullanın:
const appInsights = require("applicationinsights");
appInsights.setup("<connection_string>");
appInsights.defaultClient.context.tags[appInsights.defaultClient.context.keys.cloudRole] = "MyRoleName";
appInsights.start();
Tarayıcı SDK Yükleyicisi
Not
Genel önizleme olarak kullanılabilir. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları
Otomatik web araçları, yapılandırmaya göre JavaScript (Web) SDK Yükleyici Betiği ekleme yoluyla düğüm sunucusu için etkinleştirilebilir.
let appInsights = require("applicationinsights");
appInsights.setup("<connection_string>")
.enableWebInstrumentation(true)
.start();
veya ortam değişkeni APPLICATIONINSIGHTS_WEB_INSTRUMENTATION_ENABLED = true
ayarlayarak.
Aşağıdaki gereksinimlerin tümü karşılandığında Düğüm sunucusu yanıtlarında Web İzleme etkinleştirilir:
- Yanıtın durum kodu
200
vardır. - Yanıt yöntemi:
GET
. - Sunucu yanıtı html'ye sahiptir
Content-Type
. - Sunucu yanıtı hem hem
</head>
de<head>
Etiketleri içerir. - Yanıt sıkıştırılmışsa, yalnızca bir
Content-Encoding
türe sahip olmalı ve kodlama türü veyabr
deflate
türündengzip
biri olmalıdır. - Yanıt geçerli /backup web İzleme CDN uç noktalarını içermiyor. (geçerli ve yedek Web Araçları CDN uç noktaları burada)
web Instrumentation CDN uç noktası ortam değişkeni APPLICATIONINSIGHTS_WEB_INSTRUMENTATION_SOURCE = "web Instrumentation CDN endpoints"
ayarlanarak değiştirilebilir.
web İzleme bağlantı dizesi ortam değişkeni ayarlanarak değiştirilebilirAPPLICATIONINSIGHTS_WEB_INSTRUMENTATION_CONNECTION_STRING = "web Instrumentation connection string"
Not
Web İzleme, özellikle yanıt boyutu büyük olduğunda veya yanıt sıkıştırıldığında sunucu yanıt süresini yavaşlatabilir. Bazı orta katmanların uygulandığı durumlarda, web İzleme'nin çalışmaması ve özgün yanıt döndürülmesiyle sonuçlanabilir.
Otomatik üçüncü taraf izleme
Zaman uyumsuz çağrılarda bağlamı izlemek için MongoDB ve Redis gibi üçüncü taraf kitaplıklarda bazı değişiklikler yapılması gerekir. Application Insights varsayılan olarak bu kitaplıklardan bazılarını maymuna yama uygulamak için kullanır diagnostic-channel-publishers
. Ortam değişkeni ayarlanarak APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL
bu özellik devre dışı bırakılabilir.
Not
Bu ortam değişkeni ayarlanarak olaylar doğru işlemle doğru şekilde ilişkilendirilmeyebilir.
Ortam değişkeni, devre dışı bırakılacak paketlerin APPLICATION_INSIGHTS_NO_PATCH_MODULES
virgülle ayrılmış listesine ayarlanarak tek tek maymun düzeltme ekleri devre dışı bırakılabilir. Örneğin, ve redis
paketlerine console
düzeltme eki uygulamaktan kaçınmak için kullanınAPPLICATION_INSIGHTS_NO_PATCH_MODULES=console,redis
.
Şu anda dokuz paket izlenir: bunyan
,console
,,mongodb
,mongodb-core
,mysql
,redis
,winston
,,pg
ve pg-pool
. Bu paketlerin tam olarak hangi sürümüne düzeltme eki eklendiği hakkında bilgi için bkz . diagnostic-channel-publishers'ın README.
bunyan
, winston
ve console
düzeltme ekleri, etkinleştirilip etkinleştirilmediğine setAutoCollectConsole
bağlı olarak Application Insights izleme olayları oluşturur. Geri kalanı, etkinleştirilip etkinleştirilmediğine setAutoCollectDependencies
bağlı olarak Application Insights bağımlılık olayları oluşturur.
Canlı ölçümler
Uygulamanızdan Azure'a canlı ölçüm göndermeyi etkinleştirmek için kullanın setSendLiveMetrics(true)
. Şu anda portalda canlı ölçümlerin filtrelenmesi desteklenmemektedir.
Genişletilmiş ölçümler
Not
Genişletilmiş yerel ölçümleri gönderme özelliği 1.4.0 sürümüne eklendi.
Uygulamanızdan Azure'a genişletilmiş yerel ölçümler göndermeyi etkinleştirmek için ayrı yerel ölçüm paketini yükleyin. SDK yüklendiğinde otomatik olarak yüklenir ve yerel ölçümler Node.js toplamaya başlar.
npm install applicationinsights-native-metrics
Şu anda yerel ölçüm paketi çöp toplama CPU süresi, olay döngüsü onay işaretleri ve yığın kullanımı için otomatik toplama gerçekleştirir:
- Çöp toplama: Her bir çöp toplama türü için harcanan CPU süresi miktarı ve her türün kaç kez yinelenme sayısı.
- Olay döngüsü: Kaç değer çizgisi oluştuğu ve toplamda ne kadar CPU süresi harcandığını belirtir.
- Yığın ve yığın olmayanlar: Uygulamanızın bellek kullanımının yığında veya yığın dışı olarak ne kadar olduğu.
Dağıtılmış izleme modları
Varsayılan olarak SDK, Application Insights SDK'sı ile izlenen diğer uygulamalar veya hizmetler tarafından anlaşılan üst bilgileri gönderir. Mevcut yapay zeka üst bilgilerine ek olarak W3C İzleme Bağlamı üst bilgilerinin gönderilmesini ve alınmasını etkinleştirebilirsiniz. Bu şekilde, mevcut eski hizmetlerinizle bağıntıyı kesmezsiniz. W3C üst bilgilerinin etkinleştirilmesi, uygulamanızın Application Insights ile izlenmemiş ancak bu W3C standardını benimseyen diğer hizmetlerle bağıntılı olmasını sağlar.
const appInsights = require("applicationinsights");
appInsights
.setup("<your connection string>")
.setDistributedTracingMode(appInsights.DistributedTracingModes.AI_AND_W3C)
.start()
TelemetryClient API'si
TelemetryClient API'sinin tam açıklaması için bkz. Özel olaylar ve ölçümler için Application Insights API'si.
Node.js için Application Insights istemci kitaplığını kullanarak herhangi bir isteği, olayı, ölçümü veya özel durumu izleyebilirsiniz. Aşağıdaki kod örneği, kullanabileceğiniz API'lerden bazılarını göstermektedir:
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
});
Bağımlılıklarınızı izleme
Bağımlılıklarınızı izlemek için aşağıdaki kodu kullanın:
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"});;
Olay döngüsü zamanlamasının ne kadar sürdüğünü ölçmek için kullanan trackMetric
örnek bir yardımcı program:
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);
}
Tüm olaylara özel bir özellik ekleme
Tüm olaylara özel bir özellik eklemek için aşağıdaki kodu kullanın:
appInsights.defaultClient.commonProperties = {
environment: process.env.SOME_ENV_VARIABLE
};
HTTP GET isteklerini izleme
HTTP GET isteklerini el ile izlemek için aşağıdaki kodu kullanın:
Not
- Tüm istekler varsayılan olarak izlenir. Otomatik koleksiyonu devre dışı bırakmak için çağrısından önce öğesini arayın
.setAutoCollectRequests(false)
start()
. - Yerel getirme API'leri istekleri klasik Application Insights tarafından otomatik olarak izlenmez; el ile bağımlılık izleme gereklidir.
appInsights.defaultClient.trackRequest({name:"GET /customers", url:"http://myserver/customers", duration:309, resultCode:200, success:true});
Alternatif olarak, yöntemini kullanarak trackNodeHttpRequest
istekleri izleyebilirsiniz:
var server = http.createServer((req, res) => {
if ( req.method === "GET" ) {
appInsights.defaultClient.trackNodeHttpRequest({request:req, response:res});
}
// other work here....
res.end();
});
Sunucu başlangıç saatini izleme
Sunucu başlangıç saatini izlemek için aşağıdaki kodu kullanın:
let start = Date.now();
server.on("listening", () => {
let duration = Date.now() - start;
appInsights.defaultClient.trackMetric({name: "server startup time", value: duration});
});
Flush
Varsayılan olarak, telemetri alma sunucusuna gönderilmeden önce 15 saniye arabelleğe alınıp bırakılır. Uygulamanızın CLI aracı gibi kısa bir ömrü varsa, uygulama kullanarak appInsights.defaultClient.flush()
sonlandırıldığında arabelleğe alınan telemetrinizi el ile temizlemeniz gerekebilir.
SDK uygulamanızın kilitlendiğini algılarsa kullanarak sizin appInsights.defaultClient.flush({ isAppCrashing: true })
için flush çağrısında bulunur. Temizleme seçeneğiyle isAppCrashing
uygulamanızın anormal bir durumda olduğu varsayılır ve telemetri göndermek için uygun değildir. Bunun yerine SDK, tüm arabelleğe alınan telemetri verilerini kalıcı depolamaya kaydeder ve uygulamanızın sonlandırılmasını sağlar. Uygulamanız yeniden başlatıldığında, kalıcı depolamaya kaydedilmiş telemetri verilerini göndermeye çalışır.
Telemetri işlemcileriyle verileri ön işlemeden geçirme
Toplanan verileri, telemetri işlemcilerini kullanarak saklama için gönderilmeden önce işleyebilir ve filtreleyebilirsiniz. Telemetri işlemcileri, telemetri öğesi buluta gönderilmeden önce eklendikleri sırayla tek tek çağrılır.
public addTelemetryProcessor(telemetryProcessor: (envelope: Contracts.Envelope, context: { http.RequestOptions, http.ClientRequest, http.ClientResponse, correlationContext }) => boolean)
Telemetri işlemcisi döndürürse false
, bu telemetri öğesi gönderilmez.
Tüm telemetri işlemcileri, incelemek ve değiştirmek için telemetri verilerini ve zarfını alır. Ayrıca bir bağlam nesnesi alır. Bu nesnenin içeriği, el ile izlenen telemetri için bir izleme yöntemi çağrılırken parametresi tarafından contextObjects
tanımlanır. Otomatik olarak toplanan telemetri için, bu nesne tarafından sağlanan appInsights.getCorrelationContext()
kullanılabilir istek bilgileri ve kalıcı istek içeriğiyle doldurulur (otomatik bağımlılık bağıntısı etkinleştirildiyse).
Telemetri işlemcisi için TypeScript türü:
telemetryProcessor: (envelope: ContractsModule.Contracts.Envelope, context: { http.RequestOptions, http.ClientRequest, http.ClientResponse, correlationContext }) => boolean;
Örneğin, özel durumlardan yığın izleme verilerini kaldıran bir işlemci yazılabilir ve aşağıdaki gibi eklenebilir:
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);
Birden çok bağlantı dizesi kullanma
Birden çok Application Insights kaynağı oluşturabilir ve ilgili bağlantı dizesi kullanarak her birine farklı veriler gönderebilirsiniz.
Örneğin:
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"});
Gelişmiş yapılandırma seçenekleri
İstemci nesnesi, gelişmiş senaryolar için birçok isteğe bağlı ayar içeren bir config
özellik içerir. Bunları ayarlamak için şunu kullanın:
client.config.PROPERTYNAME = VALUE;
Bu özellikler istemciye özgü olduğundan ile new appInsights.TelemetryClient()
oluşturulan istemcilerden ayrı olarak yapılandırabilirsinizappInsights.defaultClient
.
Özellik | Açıklama |
---|---|
connectionString | Application Insights kaynağınız için bir tanımlayıcı. |
endpointUrl | Telemetri yüklerinin gönderilmesi için alım uç noktası. |
quickPulseHost | Canlı ölçüm telemetrisi göndermek için Canlı Ölçüm Akışı ana bilgisayarı. |
proxyHttpUrl | SDK HTTP trafiği için bir ara sunucu. (İsteğe bağlı. Varsayılan, ortam değişkeninden http_proxy alınır.) |
proxyHttpsUrl | SDK HTTPS trafiği için bir ara sunucu. (İsteğe bağlı. Varsayılan, ortam değişkeninden https_proxy alınır.) |
httpAgent | Http. SDK HTTP trafiği için kullanılacak aracı. (İsteğe bağlı. Varsayılan tanımlanmamıştır.) |
httpsAgent | Https. SDK HTTPS trafiği için kullanılacak aracı. (İsteğe bağlı. Varsayılan tanımlanmamıştır.) |
maxBatchSize | Alma uç noktasına yüke eklenecek en fazla telemetri öğesi sayısı. (Varsayılan değer: 250 .) |
maxBatchIntervalMs | Bir yükün maxBatchSize'a ulaşmasını bekleme süresi üst sınırı. (Varsayılan değer: 15000 .) |
disableAppInsights | Telemetri iletimini devre dışı bırakılıp bırakılmadığını gösteren bir bayrak. (Varsayılan değer: false .) |
samplingPercentage | İletilmesi gereken izlenen telemetri öğelerinin yüzdesi. (Varsayılan değer: 100 .) |
correlationIdRetryIntervalMs | Bileşenler arası bağıntının kimliğini almak için yeniden denemeden önce beklenmesi gereken süre. (Varsayılan değer: 30000 .) |
correlationHeaderExcludedDomains | Bileşenler arası bağıntı üst bilgisi ekleme işleminin dışında tutulacak etki alanlarının listesi. (Varsayılan. Bkz. Config.ts.) |
Sık sorulan sorular
Telemetri bağıntısını nasıl devre dışı bırakabilirim?
Telemetri bağıntısını devre dışı bırakmak için yapılandırmada özelliğini kullanın correlationHeaderExcludedDomains
. Daha fazla bilgi için bkz . ApplicationInsights-node.js.
Sorun giderme
"Veri yok" senaryoları ve günlükleri özelleştirme de dahil olmak üzere sorun giderme bilgileri için bkz . Node.js uygulama ve hizmetlerinin Application Insights izleme sorunlarını giderme.