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
- Az OpenCensus "How to Migrate to OpenTelemetry" blogja nem alkalmazható az Azure Monitor felhasználóira.
- Az OpenTelemetria OpenCensus shim használatát a Microsoft nem javasolja és nem támogatja.
- Az alábbi ábra az Azure Monitor-ügyfelek egyetlen migrálási tervét ismerteti.
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.