Keretrendszerbővítmény engedélyezése az Application Insights JavaScript SDK-hoz
Az alapvető SDK mellett bizonyos keretrendszerekhez is elérhetők beépülő modulok, például a React beépülő modul, a React natív beépülő modul és az Angular beépülő modul.
Ezek a beépülő modulok további funkciókat és integrációt biztosítanak az adott keretrendszerrel.
Előfeltételek
- Telepítse a JavaScript SDK-t.
- Győződjön meg arról, hogy a telepíteni kívánt React beépülő modul verziója kompatibilis az Application Insights verziójával. További információ: Kompatibilitási mátrix a React beépülő modulhoz.
Mit engedélyez a beépülő modul?
Az Application Insights JavaScript SDK React beépülő modulja a következőket teszi lehetővé:
- Útválasztó előzményeinek nyomon követése
- Kivételek követése
- Összetevők használatának nyomon követése
- Az Application Insights használata React-környezettel
Beépülő modul hozzáadása
Beépülő modul hozzáadásához kövesse az ebben a szakaszban leírt lépéseket.
Telepítse a(z) csomagot
npm install @microsoft/applicationinsights-react-js
Bővítmény hozzáadása a kódhoz
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.
Kapcsolat inicializálása az Application Insights szolgáltatással:
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();
(Nem kötelező) A Click Analytics beépülő modul hozzáadása
Ha hozzá szeretné adni a Click Analytics beépülő modult:
A Click Analytics sorainak kibontása.
Tegye az alábbiak egyikét attól függően, hogy melyik beépülő modult adja hozzá:
- A React esetében törölje a elemet
extensions: [reactPlugin],
. - A React Native esetében törölje a elemet
extensions: [RNPlugin]
. - Az Angular esetében törölje a elemet
extensions: [angularPlugin],
.
- A React esetében törölje a elemet
A beállítási folyamat folytatásához tekintse meg a Click Analytics beépülő modul használatát.
Konfiguráció
Ez a szakasz az Application Insights JavaScript SDK keretrendszerbővítményeinek konfigurációs beállításait ismerteti.
Útválasztó előzményeinek nyomon követése
Név | Típus | Kötelező? | Alapértelmezett | Leírás |
---|---|---|---|---|
történelem | object | Választható | null | Az útválasztó előzményeinek nyomon követése. További információkért tekintse meg a React útválasztó csomag dokumentációját. Az útválasztók előzményeinek nyomon követéséhez a felhasználók többsége használhatja a enableAutoRouteTracking mezőt a JavaScript SDK konfigurációjában. Ez a mező ugyanazokat az adatokat gyűjti össze az oldalnézetekhez, mint az history objektum.Használja az history objektumot olyan útválasztó-implementáció használatakor, amely nem frissíti a böngésző URL-címét, ezt figyeli a konfiguráció. Nem szabad engedélyezni a mezőt és history az enableAutoRouteTracking objektumot sem, mert több oldalnézeti eseményt fog kapni. |
Az alábbi példakód bemutatja, hogyan engedélyezheti a enableAutoRouteTracking
mezőt.
var reactPlugin = new ReactPlugin();
var appInsights = new ApplicationInsights({
config: {
connectionString: 'YOUR_CONNECTION_STRING_GOES_HERE',
enableAutoRouteTracking: true,
extensions: [reactPlugin]
}
});
appInsights.loadAppInsights();
Kivételek követése
A React-hibahatárok lehetővé teszik, hogy a rendszer elegánsan kezelje a nem tapasztalt kivételeket, ha az egy React-alkalmazásban történik. Ilyen kivétel esetén valószínű, hogy a kivételt naplózni kell. Az Application Insights React beépülő modulja egy hibahatár-összetevőt biztosít, amely automatikusan naplózza a kivételt, amikor az előfordul.
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>
);
};
Ehhez AppInsightsErrorBoundary
két kelléket kell átadni. Ez az ReactPlugin
alkalmazáshoz létrehozott példány, és egy összetevő, amely kivétel esetén renderelhető. Kezeletlen kivétel esetén trackException
a rendszer meghívja a hibahatárhoz megadott információkat, és megjelenik az onError
összetevő.
Eszközadatok gyűjtése
A böngészőt, operációs rendszert, verziót és nyelvet tartalmazó eszközinformációkat az Application Insights webes csomagja már gyűjti.
Konfiguráció (egyéb)
Összetevők használatának nyomon követése
A React beépülő modul egyedi funkciója, hogy képes egyedi összetevőket létrehozni, és egyenként nyomon követni őket.
Ha a React-összetevőket használatkövetéssel szeretné használni, alkalmazza a withAITracking
magasabb rendű összetevőfüggvényt. Az Application Insights összetevőhöz való engedélyezéséhez futtasd körbe withAITracking
az összetevőt:
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);
Az eseménytől az ComponentDidMount
eseményig eltelt időt méri ComponentWillUnmount
. Az eredmény pontosabbá tétele érdekében kivonja azt az időt, amelyben a felhasználó tétlen volt a használatával React Component Engaged Time = ComponentWillUnmount timestamp - ComponentDidMount timestamp - idle time
.
Az adatok felfedezése
Az Azure Monitor Metrics Explorerrel diagramot ábrázolhat az egyéni metrikák nevéhezReact Component Engaged Time (seconds)
, és feloszthatja ezt az egyéni metrikát.Component Name
Egyéni lekérdezéseket is futtathat az Application Insights-adatok felosztásához, hogy jelentéseket és vizualizációkat hozzon létre a követelményeknek megfelelően. Íme egy példa egy egyéni lekérdezésre. A teszteléshez illessze be közvetlenül a lekérdezésszerkesztőbe.
customMetrics
| where name contains "React Component Engaged Time (seconds)"
| summarize avg(value), count() by tostring(customDimensions["Component Name"])
Akár 10 percet is igénybe vehet, amíg az új egyéni metrikák megjelennek az Azure Portalon.
Az Application Insights használata React-környezettel
Általános horgokat biztosítunk, amelyekkel testre szabhatja az egyes összetevők változáskövetését. Másik lehetőségként használhatja a useTrackMetric vagy a useTrackEvent függvényt is, amelyek előre definiált névjegyek, amelyeket az összetevők változásainak nyomon követéséhez biztosítunk.
A React Hooks for Application Insights úgy lett kialakítva, hogy a React Contextet tartalmazza. A Context használatához inicializálja az Application Insightst, majd importálja a Környezeti objektumot:
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>
);
};
Ez a környezetszolgáltató az Application Insightst hookként useContext
teszi elérhetővé az összes gyermekösszetevőben:
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
A useTrackMetric
Hook replikálja a withAITracking
magasabb rendű összetevő funkcióit anélkül, hogy egy másik összetevőt ad hozzá az összetevő szerkezetéhez. A Horog két argumentumot vesz fel:
- Az Application Insights-példány, amely a
useAppInsightsContext
Hookból szerezhető be. - A nyomon követéshez használt összetevő azonosítója, például a neve.
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;
Úgy működik, mint a magasabb rendű összetevő, de az összetevők életciklusa helyett a Hooks életciklus eseményeire reagál. Ha bizonyos interakciókon kell futnia, a Hookot kifejezetten meg kell adni a felhasználói eseményeknek.
useTrackEvent
A Hook használatával nyomon követheti azokat az useTrackEvent
egyéni eseményeket, amelyeket egy alkalmazásnak nyomon kell követnie, például gombkattintás vagy egyéb API-hívás. Négy argumentumot vesz igénybe:
- Application Insights-példány, amely a
useAppInsightsContext
Hookból szerezhető be. - Az esemény neve.
- Eseményadat-objektum, amely beágyazza a követendő módosításokat.
- skipFirstRun (nem kötelező) jelző a hívás inicializálási meghívásának
trackEvent
kihagyásához. Az alapértelmezett érték úgy van beállítva, hogytrue
közelebbről utánozza a nem hook verzió működését. A Horgok eseténuseEffect
a hatás minden értékfrissítésre aktiválódik, beleértve az érték kezdeti beállítását is. Ennek eredményeképpen a nyomon követés túl korán kezdődik, ami potenciálisan nemkívánatos események nyomon követését okozza.
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;
A Hook használata esetén adat hasznos adatokat adhat hozzá, hogy több adatot adjon hozzá az eseményhez, amikor az Application Insightsban van tárolva.
Mintaalkalmazás
Tekintse meg az Application Insights React bemutatóját.
Gyakori kérdések
Ez a szakasz választ ad a gyakori kérdésekre.
Hogyan hozza létre az Application Insights az eszközadatokat, például a böngészőt, az operációs rendszert, a nyelvet és a modellt?
A böngésző átadja a felhasználói ügynök sztringet a kérés HTTP-fejlécében. Az Application Insights betöltési szolgáltatás az UA Parser használatával hozza létre az adattáblákban és -szolgáltatásokban látható mezőket. Ennek eredményeképpen az Application Insights felhasználói nem tudják módosítani ezeket a mezőket.
Előfordulhat, hogy ezek az adatok hiányoznak vagy pontatlanok, ha a felhasználó vagy a vállalat letiltja a felhasználói ügynök küldését a böngésző beállításai között. Előfordulhat, hogy az UA Parser regexes nem tartalmazza az összes eszközinformációt. Vagy előfordulhat, hogy az Application Insights nem fogadta el a legújabb frissítéseket.