Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Çekirdek SDK'ya ek olarak React eklentisi, React Native eklentisi ve Angular eklentisi gibi belirli çerçeveler için kullanılabilir eklentiler de vardır.
Bu eklentiler, belirli bir çerçeveyle ek işlevsellik ve tümleştirme sağlar.
Önkoşullar
- Yüklemek istediğiniz React eklentisinin sürümünün Application Insights sürümünüzle uyumlu olduğundan emin olun. Daha fazla bilgi için bkz . React eklentisi için Uyumluluk Matrisi.
Eklenti neyi etkinleştirir?
Application Insights JavaScript SDK'sı için React eklentisi şunları sağlar:
- Yönlendirici geçmişini izleme
- İstisnaları izleme
- Bileşen kullanımını izleme
- React Bağlamı ile Application Insights kullanma
Eklenti ekleme
Eklenti eklemek için bu bölümdeki adımları izleyin.
paketini yükleyin
npm install @microsoft/applicationinsights-react-js @microsoft/applicationinsights-web
Uzantıyı kodunuza ekleme
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ı dizelerine geçiş yapın.
Application Insights'a bağlantı başlatma:
Not
Geçmiş sürüm 5 veya üzerini kullanıyorsanız, basename seçeneği artık createBrowserHistory'de desteklenmez.
const browserHistory = createBrowserHistory({ basename: '' });
yerine const browserHistory = createBrowserHistory();
kullanın.
Hangi geçmiş sürümünü kullandığınızı denetlemek için komutunu çalıştırın npm list history
.
import React from 'react';
import { ApplicationInsights } from '@microsoft/applicationinsights-web';
import { ReactPlugin } from '@microsoft/applicationinsights-react-js';
import { createBrowserHistory } from "history";
const browserHistory = createBrowserHistory({ basename: '' });
var reactPlugin = new ReactPlugin();
// *** Add the Click Analytics plug-in. ***
/* var clickPluginInstance = new ClickAnalyticsPlugin();
var clickPluginConfig = {
autoCapture: true
}; */
var appInsights = new ApplicationInsights({
config: {
connectionString: 'YOUR_CONNECTION_STRING_GOES_HERE',
// *** If you're adding the Click Analytics plug-in, delete the next line. ***
extensions: [reactPlugin],
// *** Add the Click Analytics plug-in. ***
// extensions: [reactPlugin, clickPluginInstance],
extensionConfig: {
[reactPlugin.identifier]: { history: browserHistory }
// *** Add the Click Analytics plug-in. ***
// [clickPluginInstance.identifier]: clickPluginConfig
}
}
});
appInsights.loadAppInsights();
(İsteğe bağlı) Tıklama Analizi eklentisini ekleme
Tıklama Analizi eklentisini eklemek istiyorsanız:
Tıklama Analizi satırlarını açıklamayı kaldırın.
Hangi eklentiyi eklediğinize bağlı olarak aşağıdakilerden birini yapın:
- React için
extensions: [reactPlugin],
öğesini kaldırın. - React Native için
extensions: [RNPlugin]
öğesini silin. - Angular için
extensions: [angularPlugin],
öğesini silin.
- React için
Kurulum işlemine devam etmek için bkz . Tıklama Analizi eklentisini kullanma.
Yapılandırma
Bu bölüm, Application Insights JavaScript SDK'sı için çerçeve uzantılarının yapılandırma ayarlarını kapsar.
Yönlendirici geçmişini izleme
Aşağıdaki kod örneğinde alanın nasıl etkinleştirileceği gösterilmektedir enableAutoRouteTracking
.
var reactPlugin = new ReactPlugin();
var appInsights = new ApplicationInsights({
config: {
connectionString: 'YOUR_CONNECTION_STRING_GOES_HERE',
enableAutoRouteTracking: true,
extensions: [reactPlugin]
}
});
appInsights.loadAppInsights();
İstisnaları izleme
React hata sınırları , React uygulamasında gerçekleştiğinde yakalanmayan özel durumu düzgün bir şekilde işlemek için bir yol sağlar. Böyle bir özel durum oluştuğunda, büyük olasılıkla özel durumun günlüğe kaydedilmesi gerekir. Application Insights için React eklentisi, oluştuğunda özel durumu otomatik olarak günlüğe kaydeden bir hata sınırı bileşeni sağlar.
import React from "react";
import { reactPlugin } from "./AppInsights";
import { AppInsightsErrorBoundary } from "@microsoft/applicationinsights-react-js";
const App = () => {
return (
<AppInsightsErrorBoundary onError={() => <h1>I believe something went wrong</h1>} appInsights={reactPlugin}>
/* app here */
</AppInsightsErrorBoundary>
);
};
AppInsightsErrorBoundary
'ye iki prop'un geçirilmesi gerekir. Bunlar ReactPlugin
, uygulama için oluşturulan örnektir ve bir özel durum oluştuğunda işlenecek bir bileşendir. İşlenmeyen bir özel durum oluştuğunda, trackException
hata sınırına sağlanan bilgilerle çağrılır ve onError
bileşen görüntülenir.
Cihaz bilgilerini toplama
Tarayıcı, işletim sistemi, sürüm ve dil içeren cihaz bilgileri Application Insights web paketi tarafından zaten toplanıyor.
Yapılandırma (diğer)
Bileşen kullanımını izleme
React eklentisine özgü bir özellik, belirli bileşenleri ayarlayarak ve bunları ayrı ayrı izleyerek takip edebilmenizdir.
React bileşenlerini kullanım izleme için withAITracking
üst düzey bileşen işlevini uygulayın. Bir bileşen için Application Insights'ı etkinleştirmek için bileşenin etrafında sarmalayın withAITracking
:
import React from 'react';
import { withAITracking } from '@microsoft/applicationinsights-react-js';
import { reactPlugin, appInsights } from './AppInsights';
// To instrument various React components usage tracking, apply the `withAITracking` higher-order
// component function.
class MyComponent extends React.Component {
...
}
// withAITracking takes 4 parameters (reactPlugin, Component, ComponentName, className).
// The first two are required and the other two are optional.
export default withAITracking(reactPlugin, MyComponent);
ComponentDidMount
olayından ComponentWillUnmount
olayına kadar geçen süreyi ölçer. Sonucu daha doğru hale getirmek için, React Component Engaged Time = ComponentWillUnmount timestamp - ComponentDidMount timestamp - idle time
kullanıcının boşta olduğu süreyi çıkararak hesaplar.
Verilerinizi keşfetme
Azure İzleyici ölçüm gezginini kullanarak React Component Engaged Time (seconds)
özel ölçüm adı için bir grafik çizin ve bu özel ölçümü 'e göre Component Name
bölün.
Ayrıca, gereksinimlerinize göre raporlar ve görselleştirmeler oluşturmak için Application Insights verilerini bölmek için özel sorgular da çalıştırabilirsiniz. Özel sorgu örneği aşağıda verilmiştır. Test etmek için doğrudan sorgu düzenleyicisine yapıştırın.
customMetrics
| where name contains "React Component Engaged Time (seconds)"
| summarize avg(value), count() by tostring(customDimensions["Component Name"])
Yeni özel ölçümlerin Azure portalında görünmesi 10 dakika kadar sürebilir.
React Bağlamı ile Application Insights kullanma
Tek tek bileşenler için değişiklik izlemeyi özelleştirmenize olanak sağlayan genel kancalar sağlıyoruz. Alternatif olarak, bileşenlerdeki değişiklikleri izlemek için sağladığımız önceden tanımlanmış kişiler olan useTrackMetric veya useTrackEvent kullanabilirsiniz.
Application Insights için React Hook'ları, bunu içeren bir yapı olarak React Context'i kullanacak şekilde tasarlanmıştır. Bağlam'ı kullanmak için Application Insights'ı başlatın ve bağlam nesnesini içeri aktarın:
import React from "react";
import { AppInsightsContext } from "@microsoft/applicationinsights-react-js";
import { reactPlugin } from "./AppInsights";
const App = () => {
return (
<AppInsightsContext.Provider value={reactPlugin}>
/* your application here */
</AppInsightsContext.Provider>
);
};
Bu Bağlam Sağlayıcısı, Application Insights'ın tüm alt bileşenlerde bir useContext
Kanca olarak kullanılabilirliğini sağlar.
import React from "react";
import { useAppInsightsContext } from "@microsoft/applicationinsights-react-js";
const MyComponent = () => {
const appInsights = useAppInsightsContext();
const metricData = {
average: engagementTime,
name: "React Component Engaged Time (seconds)",
sampleCount: 1
};
const additionalProperties = { "Component Name": 'MyComponent' };
appInsights.trackMetric(metricData, additionalProperties);
return (
<h1>My Component</h1>
);
}
export default MyComponent;
useTrackMetric
Kanca, useTrackMetric
yapısına başka bir bileşen eklemeden yüksek dereceli bileşenin işlevselliğini withAITracking
yinelemektedir. Kanca (programlama bağlamında) iki argüman alır:
- Hook'tan
useAppInsightsContext
elde edilebilen Application Insights örneği. - İzleme için bileşenin adı gibi bir tanımlayıcı.
import React from "react";
import { useAppInsightsContext, useTrackMetric } from "@microsoft/applicationinsights-react-js";
const MyComponent = () => {
const appInsights = useAppInsightsContext();
const trackComponent = useTrackMetric(appInsights, "MyComponent");
return (
<h1 onHover={trackComponent} onClick={trackComponent}>My Component</h1>
);
}
export default MyComponent;
Daha üst düzey bileşen gibi çalışır, ancak bileşen yaşam döngüsü yerine Hooks yaşam döngüsü olaylarına yanıt verir. Belirli etkileşimlerde çalıştırılması gerekiyorsa, Hook'un kullanıcı olaylarına açıkça sağlanması gerekir.
izlemeEtkinliğiniKullan
Düğme tıklaması useTrackEvent
veya başka bir API çağrısı gibi bir uygulamanın izlemesi gerekebilecek herhangi bir özel olayı izlemek için Kanca'yı kullanın. Dört bağımsız değişken alır:
-
useAppInsightsContext
Hook'tan elde edilebilen Application Insights örneği. - Olayın adı.
- İzlenecek değişiklikleri kapsülleyen olay veri nesnesi.
- skipFirstRun (isteğe bağlı) bayrağı, başlatmada
trackEvent
çağrısını atlamak için. Varsayılan değer, Hook olmayan sürümün çalışma şeklini daha yakından taklit etmek için olarak ayarlanırtrue
.useEffect
Kancalar ile etki, değerin ilk ayarı da dahil olmak üzere her değer güncelleştirmesi üzerinde tetikler. Sonuç olarak izleme çok erken başlar ve bu da istenmeyebilecek olayların izlenmesine neden olur.
import React, { useState, useEffect } from "react";
import { useAppInsightsContext, useTrackEvent } from "@microsoft/applicationinsights-react-js";
const MyComponent = () => {
const appInsights = useAppInsightsContext();
const [cart, setCart] = useState([]);
const trackCheckout = useTrackEvent(appInsights, "Checkout", cart);
const trackCartUpdate = useTrackEvent(appInsights, "Cart Updated", cart);
useEffect(() => {
trackCartUpdate({ cartCount: cart.length });
}, [cart]);
const performCheckout = () => {
trackCheckout();
// submit data
};
return (
<div>
<ul>
<li>Product 1 <button onClick={() => setCart([...cart, "Product 1"])}>Add to Cart</button></li>
<li>Product 2 <button onClick={() => setCart([...cart, "Product 2"])}>Add to Cart</button></li>
<li>Product 3 <button onClick={() => setCart([...cart, "Product 3"])}>Add to Cart</button></li>
<li>Product 4 <button onClick={() => setCart([...cart, "Product 4"])}>Add to Cart</button></li>
</ul>
<button onClick={performCheckout}>Checkout</button>
</div>
);
}
export default MyComponent;
Kanca kullanıldığında, bir veri yükü sağlanarak Application Insights'ta depolandığında olaya daha fazla veri eklenebilir.
Örnek uygulama
Sonraki adımlar
- Sık sorulan soruları (SSS) gözden geçirmek için bkz. JavaScript çerçeve uzantıları hakkında SSS
- Verilerin aktığını onaylayın