Sdílet prostřednictvím


Migrace ze sady OpenCensus Python SDK a exportéru OpenCensus pro Azure Monitor do distribuce Pythonu OpenTelemetry Pro Azure Monitor

Poznámka:

Sada OpenCensus Python SDK je zastaralá, ale Microsoft ji podporuje až do vyřazení ze 30. září 2024. Teď doporučujeme nabídku Pythonu založenou na OpenTelemetry a poskytnout pokyny k migraci.

Pokud chcete migrovat aplikace Pythonu do distribuce OpenTelemetry Služby Azure Monitor Application Insights, postupujte podle těchto kroků.

Upozorňující

  • Blog o postupu migrace na OpenCensus na OpenTelemetry se nevztahuje na uživatele služby Azure Monitor.
  • Shim OpenTelemetry OpenCensus nedoporučuje ani nepodporuje Microsoft.
  • Následující informace popisují jediný plán migrace pro zákazníky azure Monitoru.

Krok 1: Odinstalace knihoven OpenCensus

Odinstalujte všechny knihovny související s OpenCensus, včetně všech balíčků Pypi, které začínají opencensus-*na .

pip freeze | grep opencensus | xargs pip uninstall -y

Krok 2: Odebrání OpenCensus z kódu

Odeberte všechny instance sady OpenCensus SDK a vývozce OpenCensus služby Azure Monitor z kódu.

Zkontrolujte, jestli příkazy importu začínající najdou opencensus všechny integrace, exportéry a instance rozhraní OpenCensus API/SDK, které je potřeba odebrat.

Následují příklady příkazů importu, které je potřeba odebrat.

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

Krok 3: Seznámení s rozhraními OpenTelemetry Python API a sadami SDK

Následující dokumentace obsahuje základní znalosti rozhraní OPENTelemetry Python API a sad SDK.

  • Dokumentace k OpenTelemetry Pythonu
  • Dokumentace k distribuci služby Azure Monitor týkající se konfigurace a telemetrie

Poznámka:

OpenTelemetry Python a OpenCensus Python mají různé povrchy rozhraní API, funkce automatického shromažďování a pokyny pro onboarding.

Krok 4: Nastavení distribuce OpenTelemetry služby Azure Monitor

Postupujte podle úvodní stránky a připojte se k distrou OpenTelemetry služby Azure Monitor.

Změny a omezení

Při migraci z OpenCensus na OpenTelemetry může dojít k následujícím změnám a omezením.

Podpora Pythonu < 3.7

Monitorovací řešení založená na Pythonu od OpenTelemetry podporují pouze Python 3.7 a vyšší, s výjimkou dříve podporovaných verzí Pythonu 2.7, 3.4, 3.5 a 3.6 z OpenCensus. Doporučujeme upgradovat pro uživatele, kteří jsou ve starších verzích Pythonu, protože po napsání tohoto dokumentu už tyto verze dosáhly konce životnosti. Uživatelé, kteří nejsou v upgradu, můžou stále používat řešení OpenTelemetry, ale můžou najít neočekávané nebo zásadní chování, které není podporováno. V každém případě poslední podporovaná verze opencensus-ext-azure vždy existuje a stále funguje pro tyto verze, ale pro tento projekt nejsou provedeny žádné nové verze.

Konfigurace

OpenCensus Python poskytl některé možnosti konfigurace související s kolekcí a exportem telemetrie. Stejné konfigurace a další možnosti dosáhnete pomocí rozhraní Api a sady SDK OpenTelemetry v Pythonu . Distribuce Pythonu ve službě OpenTelemetry pro Azure Monitor je spíše jedním stop-shopem pro nejběžnější potřeby monitorování pro vaše aplikace v Pythonu. Vzhledem k tomu, že distro zapouzdřuje rozhraní API OpenTelemetry/SDk, nemusí být v současné době pro distribuci podporována některá konfigurace pro méně časté případy použití. Místo toho se můžete rozhodnout připojit k exportéru OpenTelemetry služby Azure Monitor, který by s rozhraními API a sadami SDK OpenTelemetry měl odpovídat vašim potřebám monitorování. Mezi tyto konfigurace patří:

  • Vlastní šíření
  • Vlastní vzorkovníky
  • Přidání dalšího rozsahu, procesorů protokolů nebo čtenářů metrik

Soudržnost se službou Azure Functions

Aby bylo možné poskytovat distribuované funkce trasování pro aplikace Pythonu, které volají jiné aplikace Pythonu ve funkci Azure, byl balíček opencensus-extension-azure-functions poskytnut, aby umožňoval připojený distribuovaný graf.

V současné době řešení OpenTelemetry pro Azure Monitor tento scénář nepodporují. Alternativním řešením je ruční šíření kontextu trasování v aplikaci Azure Functions, jak je znázorněno v následujícím příkladu.

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)

Rozšíření a vývozci

Sada OpenCensus SDK nabízí způsoby, jak shromažďovat a exportovat telemetrii prostřednictvím integrací a exportérů OpenCensus. V OpenTelemetry se nyní integrace označují jako instrumentace, zatímco vývozci zůstali se stejnou terminologií. Instrumentace a exportéry OpenTelemetry Python jsou nadmnožinou toho, co bylo poskytováno v OpenCensus, takže z hlediska pokrytí knihovny a funkcí jsou knihovny OpenTelemetry přímým upgradem. Pokud jde o distribuci OpenTelemetry služby Azure Monitor, obsahuje některé oblíbené instrumentace OpenTelemetry Pythonu, takže není nutný žádný další kód. Microsoft tyto instrumentace plně podporuje.

Pokud jde o ostatní instrumentace OpenTelemetry Pythonu, které nejsou zahrnuté v tomto seznamu, uživatelé s nimi můžou i nadále ručně instrumentovat. Je ale důležité si uvědomit, že v těchto případech není zaručena stabilita a chování ani podporováno. Proto je používejte podle vlastního uvážení.

Pokud chcete navrhnout knihovnu instrumentace komunity, která by nás zahrnula do naší distribuce, post nebo hlasujte o nápadu v naší komunitě zpětné vazby. U exportérů se distribuce OpenTelemetry služby Azure Monitor dodává s exportérem OpenTelemetry služby Azure Monitor. Pokud chcete použít i jiné vývozce, můžete je použít s distribucí, například v tomto příkladu.

TelemetryProcessors

Procesory telemetrie OpenCensus Pythonu představují výkonný mechanismus, ve kterém uživatelé můžou upravovat telemetrii před odesláním exportéru. Ve světě OpenTelemetry neexistuje žádný koncept telemetrickýchprocesorů, ale existují rozhraní API a třídy, které můžete použít k replikaci stejného chování.

Nastavení názvu cloudové role a instance cloudové role

Postupujte podle zde uvedených pokynů pro nastavení názvu cloudové role a instance cloudové role pro vaši telemetrii. Distro služby OpenTelemetry automaticky načte hodnoty z proměnných prostředí a vyplní příslušná pole.

Úpravy rozsahů pomocí spanProcessorů

Již brzy.

Úprava metrik pomocí zobrazení

Již brzy.

Čítače výkonu

Exportér Služby Azure Monitor v Pythonu OpenCensus automaticky shromáždil metriky související se systémem a výkonem označované jako čítače výkonu. Tyto metriky se zobrazují v performanceCounters instanci Application Insights. V OpenTelemetry už tyto metriky explicitně performanceCountersneodesíláme . Metriky související s příchozími a odchozími požadavky najdete ve standardních metrikách. Pokud chcete, aby openTelemetry automaticky kolektovala metriky související se systémem, můžete použít experimentální instrumentaci systémových metrik, kterou přispěla komunita Pythonu OpenTelemetry. Tento balíček je experimentální a microsoft ho oficiálně nepodporuje.

Technická podpora

Pokud chcete zkontrolovat postup řešení potíží, možnosti podpory nebo poskytnout zpětnou vazbu k OpenTelemetry, přečtěte si téma Řešení potíží s OpenTelemetry, podporu a zpětnou vazbu pro Službu Application Insights služby Azure Monitor.