Dela via


Migrera från OpenCensus Python SDK och Azure Monitor OpenCensus-exportör för Python till Azure Monitor OpenTelemetry Python Distro

Kommentar

OpenCensus Python SDK är inaktuellt, men Microsoft stöder det tills den upphör den 30 september 2024. Nu rekommenderar vi det OpenTelemetry-baserade Python-erbjudandet och ger migreringsvägledning.

Följ de här stegen för att migrera Python-program till Azure Monitor Application Insights OpenTelemetry Distro.

Varning

  • OpenCensus-bloggen "Så här migrerar du till OpenTelemetry" gäller inte för Azure Monitor-användare.
  • OpenTelemetry OpenCensus shim rekommenderas inte eller stöds inte av Microsoft.
  • Följande beskriver den enda migreringsplanen för Azure Monitor-kunder.

Steg 1: Avinstallera OpenCensus-bibliotek

Avinstallera alla bibliotek som är relaterade till OpenCensus, inklusive alla Pypi-paket som börjar med opencensus-*.

pip freeze | grep opencensus | xargs pip uninstall -y

Steg 2: Ta bort OpenCensus från koden

Ta bort alla instanser av OpenCensus SDK och Azure Monitor OpenCensus-exportören från koden.

Sök efter importinstruktioner som börjar med opencensus för att hitta alla integreringar, exportörer och instanser av OpenCensus API/SDK som måste tas bort.

Följande är exempel på importinstruktioner som måste tas bort.

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

Steg 3: Bekanta dig med OpenTelemetry Python-API:er/SDK:er

Följande dokumentation innehåller nödvändiga kunskaper om Python-API:er/SDK:er för OpenTelemetry.

Kommentar

OpenTelemetry Python och OpenCensus Python har olika API-ytor, funktioner för automatisk insamling och introduktionsinstruktioner.

Steg 4: Konfigurera Azure Monitor OpenTelemetry Distro

Följ kom igång-sidan för att publicera på Azure Monitor OpenTelemetry Distro.

Ändringar och begränsningar

Följande ändringar och begränsningar kan uppstå när du migrerar från OpenCensus till OpenTelemetry.

Stöd för Python < 3.7

OpenTelemetrys Python-baserade övervakningslösningar stöder endast Python 3.7 och senare, exklusive tidigare stödda Python-versionerna 2.7, 3.4, 3.5 och 3.6 från OpenCensus. Vi föreslår att du uppgraderar för användare som använder de äldre versionerna av Python eftersom dessa versioner redan har nått slutet av livet när de skriver det här dokumentet. Användare som är orubbliga med att inte uppgradera kan fortfarande använda OpenTelemetry-lösningarna, men kan hitta oväntat eller icke-bakåtkompatibelt beteende som inte stöds. I vilket fall som helst finns den senaste versionen av opencensus-ext-azure alltid och fungerar fortfarande för dessa versioner, men inga nya versioner görs för projektet.

-konfigurationer

OpenCensus Python tillhandahåller vissa konfigurationsalternativ som rör insamling och export av telemetri. Du uppnår samma konfigurationer med mera med hjälp av OpenTelemetry Python API:er och SDK. OpenTelemetry Azure monitor Python Distro är mer av en enda kontaktpunkt för de vanligaste övervakningsbehoven för dina Python-program. Eftersom Distro kapslar in OpenTelemetry-API:er/SDk kan det hända att vissa konfigurationer för mer ovanliga användningsfall för närvarande inte stöds för distributionen. I stället kan du välja att registrera dig på Azure Monitor OpenTelemetry-exportören, som med OpenTelemetry-API:er/SDK:er ska kunna passa dina övervakningsbehov. Några av dessa konfigurationer är:

  • Anpassade spridningsfaktorer
  • Anpassade exempel
  • Lägga till extra span-/loggprocessorer/måttläsare

Sammanhållning med Azure Functions

För att tillhandahålla distribuerade spårningsfunktioner för Python-program som anropar andra Python-program i en Azure-funktion tillhandahölls paketet opencensus-extension-azure-functions för att möjliggöra en ansluten distribuerad graf.

För närvarande stöder inte OpenTelemetry-lösningarna för Azure Monitor det här scenariot. Som en lösning kan du manuellt sprida spårningskontexten i ditt Azure Functions-program enligt följande exempel.

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)

Tillägg och exportörer

OpenCensus SDK erbjöd olika sätt att samla in och exportera telemetri via OpenCensus-integreringar respektive exportörer. I OpenTelemetry kallas integreringar nu för instrumentationer, medan exportörerna har hållit sig till samma terminologi. OpenTelemetry Python-instrumentationer och exportörer är en supermängd av det som tillhandahölls i OpenCensus, så när det gäller bibliotekstäckning och funktioner är OpenTelemetry-bibliotek en direkt uppgradering. När det gäller Azure Monitor OpenTelemetry Distro levereras det med några av de populära OpenTelemetry Python-instrumentationerna ur lådan så ingen extra kod krävs. Microsoft har fullt stöd för dessa instrumentationer.

När det gäller andra OpenTelemetry Python-instrumentationer som inte ingår i den här listan kan användarna fortfarande instrumentera manuellt med dem. Det är dock viktigt att observera att stabilitet och beteende inte garanteras eller stöds i dessa fall. Använd dem därför efter eget gottfinnande.

Om du vill föreslå ett bibliotek för communityinstrumentation kan vi ta med en idé i vår feedbackcommunity i vår distribution, post eller up-vote. För exportörer levereras Azure Monitor OpenTelemetry-distributionen tillsammans med Azure Monitor OpenTelemetry-exportören. Om du även vill använda andra exportörer kan du använda dem med distributionen, som i det här exemplet.

TelemetryProcessors

OpenCensus Python-telemetriprocessorer är en kraftfull mekanism där användarna kan ändra sin telemetri innan de skickas till exportören. Det finns inget koncept för TelemetryProcessors i OpenTelemetry-världen, men det finns API:er och klasser som du kan använda för att replikera samma beteende.

Ange namn på molnroll och molnrollinstans

Följ anvisningarna här för hur du anger molnrollnamn och molnrollinstans för din telemetri. Azure Monitor Distro i OpenTelemetry hämtar automatiskt värdena från miljövariablerna och fyller i respektive fält.

Ändra intervall med SpanProcessors

Kommer snart.

Ändra mått med vyer

Kommer snart.

Prestandaräknare

OpenCensus Python Azure Monitor-exportören samlade automatiskt in system- och prestandarelaterade mått som kallas prestandaräknare. Dessa mått visas i performanceCounters Application Insights-instansen. I OpenTelemetry skickar vi inte längre dessa mått explicit till performanceCounters. Mått som rör inkommande/utgående begäranden finns under standardmått. Om du vill att OpenTelemetry ska samla in systemrelaterade mått automatiskt kan du använda instrumentationen för experimentella systemmått som har bidragits av Python-communityn OpenTelemetry. Det här paketet är experimentellt och stöds inte officiellt av Microsoft.

Support

Information om hur du granskar felsökningssteg, supportalternativ eller om du vill ge Feedback om OpenTelemetry finns i OpenTelemetry-felsökning, support och feedback för Azure Monitor Application Insights.