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


Migrálás az OpenCensus Python SDK-ból és az Azure Monitor OpenCensus-exportőrből az Azure Monitor OpenTelemetry Python-disztribúcióba

Feljegyzés

Az OpenCensus Python SDK elavult, de a Microsoft 2024. szeptember 30-i nyugdíjba vonulásáig támogatja. Most az OpenTelemetry-alapú Python-ajánlatot javasoljuk, és migrálási útmutatást nyújtunk.

Az alábbi lépéseket követve migrálhatja a Python-alkalmazásokat az Azure Monitor Application Insights OpenTelemetry Disztribúcióba.

Figyelmeztetés

1. lépés: OpenCensus-kódtárak eltávolítása

Távolítsa el az OpenCensushoz kapcsolódó összes kódtárat, beleértve az összes Olyan Pypi-csomagot is, amely ezzel opencensus-*kezdődik.

pip freeze | grep opencensus | xargs pip uninstall -y

2. lépés: Az OpenCensus eltávolítása a kódból

Távolítsa el az OpenCensus SDK és az Azure Monitor OpenCensus exportőr összes példányát a kódból.

Ellenőrizze az importálási utasításokat, kezdve az opencensus API/SDK összes olyan integrációjának, exportőrének és példányának megkeresésével opencensus , amelyeket el kell távolítani.

Az alábbi példák olyan importálási utasításokat mutatnak be, amelyeket el kell távolítani.

from opencensus.ext.azure import metrics_exporter
from opencensus.stats import aggregation as aggregation_module
from opencensus.stats import measure as measure_module

from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

from opencensus.ext.azure.log_exporter import AzureLogHandler

3. lépés: Az OpenTelemetry Python API-k/SDK-k megismerése

Az alábbi dokumentáció az OpenTelemetry Python API-k/SDK-k előfeltételeit ismerteti.

  • OpenTelemetry Python-dokumentáció
  • Az Azure Monitor disztribúciójának dokumentációja a konfigurációról és a telemetriáról

Feljegyzés

Az OpenTelemetry Python és az OpenCensus Python különböző API-felületekkel, autocollection-képességekkel és előkészítési utasításokkal rendelkezik.

4. lépés: Az Azure Monitor OpenTelemetry disztribúciójának beállítása

Kövesse az első lépéseket ismertető oldalt az Azure Monitor OpenTelemetry Distro-ba való felvételhez.

Változások és korlátozások

Az OpenCensusból az OpenTelemetrybe való migrálás során a következő módosítások és korlátozások léphetnek fel.

Python < 3.7-támogatás

Az OpenTelemetry Python-alapú monitorozási megoldásai csak a Python 3.7-et és újabb verziót támogatják, kivéve a korábban támogatott Python 2.7-ös, 3.4-ös, 3.5-ös és 3.6-os verziót az OpenCensusból. Javasoljuk, hogy frissítsen azokra a felhasználókra, akik a Python régebbi verzióiban vannak, mivel a dokumentum megírása óta ezek a verziók már elérték az élettartam végét. Azok a felhasználók, akik nem frissítenek, továbbra is használhatják az OpenTelemetry-megoldásokat, de váratlan vagy nem támogatott működést tapasztalhatnak. Mindenesetre az opencensus-ext-azure utolsó támogatott verziója mindig létezik, és továbbra is működik ezekhez a verziókhoz, de ehhez a projekthez nem készül új kiadás.

Konfigurációk

Az OpenCensus Python adott néhány konfigurációs lehetőséget a telemetriai adatok gyűjtéséhez és exportálásához. Ugyanazokat a konfigurációkat és egyebeket az OpenTelemetry Python API-kkal és SDK-kkal érheti el. Az OpenTelemetria Azure monitor Python-disztribúciója inkább egyablakos megoldás a Python-alkalmazások leggyakoribb monitorozási igényeihez. Mivel a Disztribúció beágyazza az OpenTelemetry API-kat/SDk-kat, előfordulhat, hogy a disztribúcióhoz jelenleg nem támogatott néhány konfiguráció a szokatlanabb használati esetekhez. Ehelyett dönthet úgy, hogy az Azure monitor OpenTelemetry-exportőrt helyezi üzembe, amely az OpenTelemetria API-kkal/SDK-kkal megfelel a monitorozási igényeknek. Néhány ilyen konfiguráció a következők:

  • Egyéni propagátorok
  • Egyéni mintavevők
  • Extra span/log processzorok/metrikák olvasóinak hozzáadása

Kohézió az Azure Functions használatával

Annak érdekében, hogy elosztott nyomkövetési képességeket biztosíthasson az Azure-függvényeken belül más Python-alkalmazásokat hívó Python-alkalmazásokhoz, az opencensus-extension-azure-functions csomag lehetővé tette a csatlakoztatott elosztott gráfok használatát.

Az Azure Monitor OpenTelemetry-megoldásai jelenleg nem támogatják ezt a forgatókönyvet. Áthidaló megoldásként manuálisan is propagálja a nyomkövetési környezetet az Azure Functions-alkalmazásban az alábbi példában látható módon.

from opentelemetry.context import attach, detach
from opentelemetry.trace.propagation.tracecontext import \
  TraceContextTextMapPropagator

# Context parameter is provided for the body of the function
def main(req, context):
  functions_current_context = {
    "traceparent": context.trace_context.Traceparent,
    "tracestate": context.trace_context.Tracestate
  }
  parent_context = TraceContextTextMapPropagator().extract(
      carrier=functions_current_context
  )
  token = attach(parent_context)

  ...
  # Function logic
  ...
  detach(token)

Bővítmények és exportőrök

Az OpenCensus SDK lehetőséget kínált a telemetriai adatok gyűjtésére és exportálására OpenCensus-integrációkon és exportőrökön keresztül. Az OpenTelemetryben az integrációkat ma már rendszerállapotnak nevezik, míg az exportőrök ugyanazzal a terminológiával maradtak. Az OpenTelemetry Python-rendszerállapotok és -exportőrök az OpenCensus által biztosítottak szuperhalmazai, így a kódtárak lefedettsége és funkciói tekintetében az OpenTelemetry-kódtárak közvetlen frissítésnek számítanak. Ami az Azure Monitor OpenTelemetry Disztribúciót illeti, néhány népszerű OpenTelemetry Python-rendszerállapotot tartalmaz a dobozból, így nincs szükség további kódra. A Microsoft teljes mértékben támogatja ezeket a rendszerállapotokat.

A listában nem szereplő egyéb OpenTelemetry Python-rendszerállapotok esetében a felhasználók továbbra is manuálisan használhatják őket. Fontos azonban megjegyezni, hogy ezekben az esetekben a stabilitás és a viselkedés nem garantált vagy támogatott. Ezért használja őket saját belátása szerint.

Ha egy közösségi eszköztárat szeretne javasolni nekünk, hogy a disztribúciónkban szerepeljen, tegye közzé vagy szavazzon egy ötletet a visszajelzési közösségünkben. Az exportőrök számára az Azure Monitor OpenTelemetry disztribúció az Azure Monitor OpenTelemetry-exportőrhöz van csomagolva. Ha más exportőröket is szeretne használni, használhatja őket a disztribúcióval, mint ebben a példában.

TelemetryProcessors

Az OpenCensus Python telemetriai processzorok egy hatékony mechanizmus, amellyel a felhasználók módosíthatják telemetriájukat, mielőtt elküldené őket az exportőrnek. Az OpenTelemetry világában nincs telemetriaprocesszor fogalma, de vannak olyan API-k és osztályok, amelyekkel ugyanazt a viselkedést replikálhatja.

Felhőbeli szerepkör nevének és felhőbeli szerepkörpéldányának beállítása

Kövesse az itt található utasításokat, hogy miként állíthatja be a felhőbeli szerepkör nevét és a felhőbeli szerepkörpéldányt a telemetriához. Az OpenTelemetry Azure Monitor disztribúció automatikusan lekéri az értékeket a környezeti változókból, és kitölti a megfelelő mezőket.

SpanProcessors-tartományok módosítása

Hamarosan.

Metrikák módosítása nézetek használatával

Hamarosan.

Teljesítményszámlálók

Az OpenCensus Python Azure Monitor-exportőr automatikusan gyűjtötte a rendszerhez és a teljesítményhez kapcsolódó metrikákat, úgynevezett teljesítményszámlálókat. Ezek a metrikák megjelennek az Application Insights-példányban performanceCounters . Az OpenTelemetryben ezeket a metrikákat már nem küldjük kifejezetten a következőnek performanceCounters: . A bejövő/kimenő kérelmekhez kapcsolódó metrikák a standard metrikák alatt találhatók. Ha azt szeretné, hogy az OpenTelemetria automatikusan észlelje a rendszerhez kapcsolódó metrikákat, használhatja az OpenTelemetry Python-közösség által támogatott kísérleti rendszermetrikák rendszerállapotát. Ez a csomag kísérleti jellegű, és a Microsoft hivatalosan nem támogatja.

Támogatás

A hibaelhárítási lépések, a támogatási lehetőségek vagy az OpenTelemetria-visszajelzések megtekintéséhez tekintse meg az OpenTelemetria hibaelhárítását, támogatását és visszajelzését az Azure Monitor Application Insightshoz.