Migreren van OpenCensus Python SDK en Azure Monitor OpenCensus-exporteur voor Python naar Azure Monitor OpenTelemetry Python Distro

Volg deze stappen om Python-toepassingen te migreren naar de Azure MonitorApplication InsightsOpenTelemetry Distro.

Waarschuwing

  • De Blog 'Migreren naar OpenTelemetry' van OpenCensus is niet van toepassing op Azure Monitor-gebruikers.
  • De OpenTelemetry OpenCensus-shim wordt niet aanbevolen of ondersteund door Microsoft.
  • Hier volgt een overzicht van het enige migratieplan voor Azure Monitor-klanten.

Stap 1: OpenCensus-bibliotheken verwijderen

Verwijder alle bibliotheken met betrekking tot OpenCensus, inclusief alle Pypi-pakketten die beginnen met opencensus-*.

pip freeze | grep opencensus | xargs pip uninstall -y

Stap 2: OpenCensus verwijderen uit uw code

Verwijder alle exemplaren van de OpenCensus SDK en de Azure Monitor OpenCensus-exporteur uit uw code.

Controleer op importinstructies die beginnen met opencensus het vinden van alle integraties, exporteurs en exemplaren van OpenCensus-API/SDK die moeten worden verwijderd.

Hier volgen voorbeelden van importinstructies die moeten worden verwijderd.

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

Stap 3: Vertrouwd raken met OpenTelemetry Python-API's/SDK's

De volgende documentatie biedt vereiste kennis van de OpenTelemetry Python-API's/SDK's.

  • Documentatie voor OpenTelemetry Python
  • Documentatie voor Azure Monitor Distro over configuratie en telemetrie

Notitie

OpenTelemetry Python en OpenCensus Python hebben verschillende API-oppervlakken, mogelijkheden voor automatisch verzamelen en onboarding-instructies.

Stap 4: De Azure Monitor OpenTelemetry Distro instellen

Volg de pagina Aan de slag om onboarding uit te voeren op de Azure Monitor OpenTelemetry Distro.

Wijzigingen en beperkingen

De volgende wijzigingen en beperkingen kunnen optreden bij het migreren van OpenCensus naar OpenTelemetry.

Ondersteuning voor Python < 3.7

Op Python gebaseerde bewakingsoplossingen van OpenTelemetry bieden alleen ondersteuning voor Python 3.7 en hoger, met uitzondering van de eerder ondersteunde Python-versies 2.7, 3.4, 3.5 en 3.6 van OpenCensus. We raden u aan om te upgraden voor gebruikers die zich in de oudere versies van Python bevinden, omdat deze versies vanaf het schrijven van dit document al het einde van de levensduur hebben bereikt. Gebruikers die niet kunnen upgraden, gebruiken mogelijk nog steeds de OpenTelemetry-oplossingen, maar kunnen onverwacht gedrag of gedrag vinden dat niet wordt ondersteund. In elk geval bestaat de laatst ondersteunde versie van opencensus-ext-azure altijd en werkt nog steeds voor deze versies, maar er worden geen nieuwe releases voor dat project gemaakt.

Configuraties

OpenCensus Python biedt enkele configuratieopties met betrekking tot de verzameling en het exporteren van telemetrie. U bereikt dezelfde configuraties en meer met behulp van de OpenTelemetry Python-API's en SDK. De OpenTelemetry Azure Monitor Python Distro is meer van een one-stop-shop voor de meest voorkomende bewakingsbehoeften voor uw Python-toepassingen. Aangezien de Distro de OpenTelemetry-API's/SDk inkapselt, wordt sommige configuratie voor ongebruikelijke gebruiksvoorbeelden momenteel niet ondersteund voor de distro. In plaats daarvan kunt u ervoor kiezen om onboarding uit te voeren op de Azure Monitor OpenTelemetry-exporteur, die met de OpenTelemetry-API's/SDK's in staat moet zijn om aan uw bewakingsbehoeften te voldoen. Enkele van deze configuraties zijn:

  • Aangepaste doorgiften
  • Aangepaste samplers
  • Extra span-/logboekprocessors/metrische lezers toevoegen

Samenhang met Azure-functies

Om gedistribueerde traceringsmogelijkheden te bieden voor Python-toepassingen die andere Python-toepassingen binnen een Azure-functie aanroepen, is het pakket opencensus-extension-azure-functions beschikbaar om een verbonden gedistribueerde grafiek mogelijk te maken.

Momenteel bieden de OpenTelemetry-oplossingen voor Azure Monitor geen ondersteuning voor dit scenario. Als tijdelijke oplossing kunt u de traceringscontext handmatig doorgeven in uw Azure Functions-toepassing, zoals wordt weergegeven in het volgende voorbeeld.

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)

Extensies en exporteurs

De OpenCensus SDK bood manieren om telemetrie te verzamelen en te exporteren via respectievelijk OpenCensus-integraties en exporteurs. In OpenTelemetry worden integraties nu instrumentaties genoemd, terwijl exporteurs dezelfde terminologie hebben behouden. De OpenTelemetry Python-instrumentaties en -exporteurs vormen een superset van wat is geleverd in OpenCensus, dus in termen van bibliotheekdekking en functionaliteit zijn OpenTelemetry-bibliotheken een directe upgrade. Wat betreft de Azure Monitor OpenTelemetry Distro, wordt het geleverd met een aantal van de populaire OpenTelemetry Python-instrumentaties uit de doos, zodat er geen extra code nodig is. Microsoft ondersteunt deze instrumentaties volledig.

Net als bij de andere OpenTelemetry Python-instrumentaties die niet in deze lijst zijn opgenomen, kunnen gebruikers er nog steeds handmatig mee instrumenteren. Het is echter belangrijk om te weten dat stabiliteit en gedrag in deze gevallen niet worden gegarandeerd of ondersteund. Gebruik ze daarom naar eigen goeddunken.

Als u een bibliotheek voor community-instrumentatie wilt voorstellen die we kunnen opnemen in onze distributie, plaatst of stemt u een idee in onze feedbackcommunity. Voor exporteurs wordt de Azure Monitor OpenTelemetry-distributie geleverd met de Azure Monitor OpenTelemetry-exporteur. Als u ook andere exporteurs wilt gebruiken, kunt u deze gebruiken met de distributie, zoals in dit voorbeeld.

TelemetryProcessors

OpenCensus Python-telemetrieprocessors zijn een krachtig mechanisme waarin gebruikers hun telemetrie kunnen wijzigen voordat ze naar de exporteur worden verzonden. Er is geen concept van TelemetryProcessors in de wereld van OpenTelemetry, maar er zijn API's en klassen die u kunt gebruiken om hetzelfde gedrag te repliceren.

Cloudrolnaam en cloudrolinstantie instellen

Volg de instructies hier voor het instellen van de naam van de cloudrol en het cloudrolexemplaren voor uw telemetrie. De OpenTelemetry Azure Monitor Distro haalt automatisch de waarden op uit de omgevingsvariabelen en vult de respectieve velden in.

Span spanen wijzigen met SpanProcessors

Binnenkort beschikbaar.

Metrische gegevens wijzigen met weergaven

Binnenkort beschikbaar.

Performance Counters (Prestatiemeteritems)

De OpenCensus Python Azure Monitor-exporteur heeft automatisch systeem- en prestatiegerelateerde metrische gegevens verzameld, prestatiemeteritems genoemd. Deze metrische gegevens worden weergegeven in performanceCounters uw Application Insights-exemplaar. In OpenTelemetry verzenden we deze metrische gegevens niet meer expliciet naar performanceCounters. Metrische gegevens met betrekking tot binnenkomende/uitgaande aanvragen vindt u onder standaard metrische gegevens. Als u OpenTelemetry wilt gebruiken om systeemgerelateerde metrische gegevens automatisch te verzamelen, kunt u de instrumentatie voor metrische systeemgegevens gebruiken, bijgedragen door de OpenTelemetry Python-community. Dit pakket is experimenteel en wordt niet officieel ondersteund door Microsoft.

Problemen oplossen

Werkt het niet? Bekijk de pagina voor probleemoplossing voor ASP.NET Core.

Ondersteuning

Selecteer een tabblad voor de taal van uw keuze om ondersteuningsopties te ontdekken.

Feedback over OpenTelemetry

Feedback geven: