Megosztás a következőn keresztül:


Migrálás az Application Insights klasszikus API SDK-jaiból az Azure Monitor OpenTelemetrybe

Ez az útmutató részletes útmutatást nyújt az alkalmazások Application Insights SDK-k (klasszikus API) használatával történő migrálásához az Azure Monitor OpenTelemetrybe.

Az Azure Monitor OpenTelemetry műszerezése hasonló élményt nyújt, mint az Application Insights SDK-k. További információkért és funkciók szerinti összehasonlításért tekintse meg a funkciók kiadási állapotát.

Jótanács

Az archivált .NET- vagy Node.js klasszikus API SDK-információk áttekintéséhez lásd: API 2.x.

Az Application Insights .NET 3.x szoftverfejlesztői készlet (SDK) használatával frissítsen az Application Insights .NET SDK 2.x-ről OpenTelemetry (OTel)-alapú implementációra. A 3.x SDK a legtöbb TelemetryClient és TelemetryConfiguration alkalmazásprogramozási felületet (API-kat) tárolja, és az Azure Monitor OpenTelemetria-exportőr használatával küld telemetriát az Application Insightsnak.

A legtöbb klasszikus Track* hívás a frissítés után is működik, de egy belső leképezési rétegen keresztül irányítja őket, amely OpenTelemetria-jeleket bocsát ki.

Ha új alkalmazást hoz létre, vagy már használja az Azure Monitor OpenTelemetry Distro-t, akkor inkább használja az Azure Monitor OpenTelemetry Distro-t. Ne használja az Application Insights .NET SDK 3.x és a Azure Monitor OpenTelemetria-disztribúciót ugyanabban az alkalmazásban.

Az Application Insights .NET SDK 3.x áttekintése

Az Application Insights .NET SDK 3.x a következő NuGet-csomagokat biztosítja:

  • Microsoft.ApplicationInsightsés TelemetryClientTelemetryConfiguration
  • Microsoft.ApplicationInsights.AspNetCore ASP.NET (Active Server Pages .NET) Core-webalkalmazásokhoz
  • Microsoft.ApplicationInsights.WorkerService Worker szolgáltatáshoz és konzolalkalmazásokhoz
  • Microsoft.ApplicationInsights.Web ASP.NET-alkalmazásokhoz .NET-keretrendszerben
  • Microsoft.ApplicationInsights.NLogTarget NLog-integrációhoz (bétaverzió)

A kódpéldákhoz és a részletes migrálási útmutatóhoz használja az adattár dokumentációját:

Frissítés 3.x-re

1. lépés: Nem kompatibilis csomagokra mutató hivatkozások eltávolítása

Távolítsa el ezeket a csomagokat, mert nem kompatibilisek az SDK 3.x-zel:

  • Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel
  • Microsoft.ApplicationInsights.DependencyCollector
  • Microsoft.ApplicationInsights.EventCounterCollector
  • Microsoft.ApplicationInsights.PerfCounterCollector
  • Microsoft.ApplicationInsights.WindowsServer
  • Microsoft.Extensions.Logging.ApplicationInsights
  • Microsoft.ApplicationInsights.Log4NetAppender
  • Microsoft.ApplicationInsights.TraceListener
  • Microsoft.ApplicationInsights.DiagnosticSourceListener
  • Microsoft.ApplicationInsights.EtwCollector
  • Microsoft.ApplicationInsights.EventSourceListener

Az SDK 3.x nem teszi közzé ezeknek a csomagoknak a 3.x verzióját. Ehelyett használja az Application Insights .NET SDK 3.x áttekintésében felsorolt támogatott 3.x csomagokat. A következő szakaszok a csomagok tervezett cseréjét ismertetik. Bizonyos esetekben a funkciók beépítettek a támogatott 3.x csomagokba, vagy OpenTelemetria API-k váltják fel őket.

Megjegyzés:

Ez a lista csak Microsoft-csomagokat tartalmaz. Ha olyan külső csomagokat használ, amelyek 2.x-től Microsoft.ApplicationInsights függenek (például), a frissítés előtt ellenőrizze, Serilog.Sinks.ApplicationInsightshogy ezek a csomagok támogatják-e az SDK 3.x-et. Kövesse a csomag karbantartóinak útmutatását.

2. lépés: Csomagverziók frissítése 3.x-re

Frissítse a fennmaradó támogatott Application Insights-csomagokat a legújabb 3.x verzióra.

Fontos

Ne keverje az Application Insights 2.x és 3.x csomagokat ugyanabban az alkalmazásban. Frissítse az összes Application Insights csomaghivatkozást egyszerre.

3. lépés: Kód és konfiguráció frissítése a kompatibilitástörő változásokhoz

Tekintse át a kompatibilitástörő változásokra vonatkozó hivatkozást és a részletes migrálási útmutatót. A legtöbb alkalmazásnak frissítenie kell a kódot vagy a konfigurációt az alábbi területeken:

2.x API, beállítás vagy minta 3.x útmutató
TrackPageView Távolítsa el a TrackPageView hívásokat. Az oldalnézet nyomon követése a .NET 3.x SDK-ban törlődik.
TrackEvent, TrackExceptionés TrackAvailability túlterhelések, amelyek magukban foglalják a IDictionary<string, double> metrics Távolítsa el az egyéni metrikák paramétert. A metrikákat külön nyomon követheti, ha használja a TrackMetric()-et.
túlterhelések, amelyek GetMetric-t vagy MetricConfiguration-t használnak Használja az egyszerűsített GetMetric túlterheléseket. A metrikák konfigurációja és összesítése belsőleg, az SDK 3.x-ben van kezelve.
InstrumentationKey konfiguráció vagy TelemetryClient.InstrumentationKey Használjon TelemetryConfiguration.ConnectionString és adjon meg egy kapcsolati sztringet a mérőkulcs helyett. Az SDK 3.x kapcsolati sztringet igényel, és indításkor meghiúsulhat, ha nincs konfigurálva. Tesztforgatókönyvek esetén használhat egy ál kapcsolati sztringet, például InstrumentationKey=00000000-0000-0000-0000-000000000000.
TelemetryClient() vagy TelemetryConfiguration.Active Hozzon létre egy konfigurációt explicit módon TelemetryConfiguration.CreateDefault() használatával, és adja át azt a(z) new TelemetryClient(config) részére.
TelemetryModule, TelemetryInitializer, vagy TelemetryProcessor testreszabás Az egyéni inicializálókat vagy processzorokat OpenTelemetry-alapú processzorokba kell migrálni. El kell távolítani a beépített 2.x processzorokra, inicializálókra és modulokra mutató hivatkozásokat. További információ: migrálási útmutató.
ITelemetryChannel vagy TelemetryConfiguration.TelemetryChannel A klasszikus csatorna absztrakciója törlődik, mert a 3.x belsőleg magában foglalja az Azure Monitor-exportőrt. Tesztekhez használjon OpenTelemetriabarát ellenőrzést, például memórián belüli exportőrt.
EnableAdaptiveSampling Cserélje le az adaptív mintavételezést a következőre TracesPerSecond : vagy SamplingRatio.
Microsoft.ApplicationInsights.Web a .NET-keretrendszer 4.5.2 célzása Cél .NET-keretrendszer 4.6.2 vagy újabb.
Metrikanév és névtér konvenciók Az OpenTelemetry-eszköz elnevezési szintaxisának követéséhez frissítse a name, metricId és metricNamespace értékeket, melyeket az TrackMetric(), GetMetric() és MetricIdentifier elemekkel együtt használ. A metrikaneveknek és névtereknek betűvel kell kezdődniük, és csak betűket, számjegyeket, _, ., -vagy /. Szóközök nem használhatók.

Eltávolított bővíthetőségi pontok cseréje

Az Application Insights .NET SDK 2.x olyan Application Insights-specifikus bővíthetőségi típusokat biztosított, mint a telemetriai modulok, inicializálók, processzorok és csatornák. Az Application Insights .NET SDK 3.x az OpenTelemetria bővíthetőségét használja.

A 2.x bővíthetőségi pontok cseréjével kapcsolatos részletes útmutatásért, beleértve a peremes eseteket is, tekintse meg a migrálási útmutatót.

Jótanács

Az erőforrásalapú értékek, mint például a szerepkör-metaadatok, az OpenTelemetry erőforrás-leképezéseken keresztül haladhatnak, és nem jelennek meg minden telemetriai elemen. Ha minden telemetriai elemhez kulcs-érték párra van szüksége, használjon GlobalProperties vagy egyéni processzort.

Mintavételezés konfigurálása

Az Application Insights .NET SDK 3.x két mintavételezési módot támogat nyomkövetésekhez (kérésekhez és függőségekhez):

  • Állítsa be SamplingRatio (0,0–1,0) százalékalapú mintavételezéshez.
  • Állítsa be TracesPerSecond a sebességkorlátos mintavételezést (alapértelmezett: Másodpercenként öt nyomkövetés).

Az SDK 3.x ugyanazokat a mintavételezési beállításokat alkalmazza a kérelmekre és függőségekre. Az SDK 3.x nem támogatja a kérelmek és függőségek különálló mintavételezési beállításait.

Amikor egy kérést vagy függőséget mintavételeznek, az SDK 3.x alapértelmezés szerint alkalmazza a szülőkövetés mintavételezési döntését a kapcsolódó naplókra. A viselkedés letiltásához állítsa be a EnableTraceBasedLogsSampler értékre false.

Beállíthatja a SamplingRatio, TracesPerSecond és EnableTraceBasedLogsSampler a TelemetryConfiguration, appsettings.json vagy applicationinsights.config.

A frissítés hibaelhárítása

Az alábbi lépésekkel ellenőrizheti a telemetriát az SDK 3.x-re való frissítés során:

  • Ellenőrizze, hogy a teljes kapcsolati sztring konfigurálva van-e az indítás előtt. Ha valós erőforrás nélkül ellenőrzi a telemetriát a tesztekben, használjon egy hamis kapcsolati sztringet.
  • Gyűjtse össze az Application Insights öndiagnosztikai naplóit a konfigurációs hibák és az exportőr hibáinak azonosításához.
  • Adja hozzá az OpenTelemetry-konzol exportőrét annak ellenőrzéséhez, hogy a nyomkövetések, metrikák és naplók a várt módon bocsátanak-e ki, mielőtt Azure Monitor betöltési műveletre támaszkodik.
  • Ha korábban a tesztelt telemetriát szimulálva ITelemetryChannelegyesítette, váltson OpenTelemetry-barát ellenőrzésre, például memóriabeli exportőrökre vagy más tesztexportálókra a nem gyártási környezetekben.
  • Ellenőrizze, hogy a mintavételezési beállítások a várt módon működnek-e a szülő-gyermek nyomkövetési döntések érvényesítésével.
  • Ellenőrizze az erőforrásattribútumokat, például a szolgáltatásnevet, a szerepkörnevet, a szerepkörpéldányt és a környezetet, hogy biztosítsa a helyes hozzárendelést az Application Insightsban.
  • Ha egyéni bővítést migrált, ellenőrizze, hogy a tulajdonságok a vártnak megfelelő helyre jelennek-e meg. Az erőforrás-alapú leképezések eltérhetnek a 2.x viselkedéstől.

Részletes hibaelhárítási útmutatásért és példákért használja a következő erőforrásokat:

OpenTelemetry terminológia

A terminológia az OpenTelemetry specifikációiban található szószedetben található.

Az alábbi táblázat az Application Insightsban használt örökölt kifejezéseket és azok OpenTelemetria-cseréjét emeli ki.

Application Insights OpenTelemetria
Autógyűjtők Műszerezési könyvtárak
Csatorna Exportőr
Kód nélküli / ügynökalapú Autoinstrumentáció
Nyomok Naplók
Kérelmek Kiszolgálói spanok
Függőségek Egyéb span típusok (ügyfél, belső stb.)
Műveletazonosító Nyomkövetési azonosító
Azonosító vagy műveleti szülőazonosító Feszültség azonosító