Zum Fußzeileninhalt springen
PYTHON-HILFE

OpenTelemetry in Python-Anwendungen

Effektive Dokumentenerstellung und Beobachtbarkeit sind wesentliche Grundlagen für die Entwicklung skalierbarer und widerstandsfähiger Systeme in der modernen Softwareentwicklung. Entwickler können mit OpenTelemetry, einer Open-Source-Beobachtungsplattform, beobachtbare Daten von verteilten Systemen instrumentieren, sammeln und analysieren.

Entwickler können mit IronPDF, einem robusten .NET-Framework, einfach PDF-Dokumente erstellen, ändern und ausgeben. In diesem Artikel wird die Integration von OpenTelemetry Python mit IronPDF behandelt und gezeigt, wie diese beiden Technologien zusammenarbeiten, um die Potenziale zur Beobachtbarkeit und Dokumentenerstellung zu verbessern.

Entwickler können mit den OpenTelemetry API- und SDK-Paketen, einer OpenTelemetry-Projektimplementierung in Python, auf einen umfangreichen Funktionsumfang zum Instrumentieren, Sammeln und Exportieren von Open Telemetry und Daten aus verteilten Systemen zugreifen.

OpenTelemetry Python (Wie es für Entwickler funktioniert): Abbildung 1 - OpenTelemetry-Startseite

OpenTelemetry-Funktionen

Lassen Sie uns die herausragenden Funktionen der OpenTelemetry-Instrumentierung für Python untersuchen:

Verteilte Ablaufverfolgung

  • Die verteilte Ablaufverfolgung, mit der Entwickler den Pfad von Anfragen durch verteilte Systeme verfolgen können, wird durch OpenTelemetry für Python ermöglicht.
  • Traces bieten Einblicke in die Abfolge von Anfragen, einschließlich der Daten und Zeiten der Dienstkontakte.
  • Python-Programme können von Entwicklern instrumentiert werden, um Spans aufzuzeichnen, die diskrete Aktionen oder Teile einer verteilten Ablaufverfolgung sind.

Metrik-Erfassung

  • OpenTelemetry Python erleichtert den Import von Metriken mittels MeterProvider, der numerische Daten bezüglich des Verhaltens und der Leistung des Systems sammelt.
  • Entwickler können ihre Anwendungen instrumentieren, um Messungen wie Latenz, Durchsatz, Fehlerraten und Ressourcennutzung zu sammeln.
  • Durch das Angebot von Einblicken in Nutzungsmuster, Leistungstrends und Systemgesundheit tragen diese Metriken dazu bei, Systemverhalten zu verstehen.

Kontextweitergabe

  • Die Kontextweitergabe wird durch das OpenTelemetry API-Paket vereinfacht, das sicherstellt, dass verteilter Kontext – wie z. B. Trace- und Span-Kontext – über Dienstgrenzen hinweg weitergegeben wird.
  • Telemetriedaten können korreliert und kontextualisiert werden, während sie sich durch das System bewegen, da die Kontextweitergabe die Kontinuität und Konsistenz der Daten bewahrt.

Bibliotheken für die Instrumentierung

  • OpenTelemetry Python macht die Instrumentierung bestehender Python-Anwendungen mit Instrumentierungspaketen für weit verbreitete Frameworks, Bibliotheken und Protokolle einfach.
  • Integrationen für Web-Frameworks (wie Flask und Django), Datenbank-Clients (wie SQLAlchemy und Pymongo), Nachrichtensysteme (wie Kafka und RabbitMQ) und mehr finden Sie in den Instrumentierungsbibliotheken.

Ecosystem von Exporteuren

  • Eine Reihe von Exporteuren, die von OpenTelemetry Python bereitgestellt werden, ermöglicht es Entwicklern, Telemetriedaten an verschiedene Beobachtungssysteme und Backends zu exportieren.
  • Integrationen mit Beobachtungsplattformen wie Jaeger, Zipkin, Prometheus, AWS X-Ray, Google Cloud Trace und anderen werden von Exporteuren unterstützt.
  • Exporteuren können von Entwicklern eingerichtet werden, um Telemetriedaten an ein oder mehrere Backends zu übertragen, um sie langfristig zu speichern, zu analysieren und anzuzeigen.
  • Variable Abtasttechniken werden von OpenTelemetry Python unterstützt, um die Menge der gesammelten Telemetriedaten zu regulieren.
  • Entwickler haben die Möglichkeit, benutzerdefinierte Abtastlogik anzuwenden, die Abtastung auf einen bestimmten Prozentsatz der Traces zu setzen oder nach vordefinierten Parametern (wie Anforderungsheadern oder Routen) zu sampeln.

Kontextuelles Aufzeichnen

  • Tools zum Aufzeichnen kontextueller Daten als Ergänzung zu Telemetriedaten sind im OpenTelemetry Python SDK verfügbar.
  • Entwickler können ihrem Log-Meldungen mit kontextbezogenem Logging Trace- und Span-Kontext hinzufügen, was mehr Kontext für die Fehlersuche und Debugging bietet.

Erstellen und Konfigurieren von OpenTelemetry Python

OpenTelemetry-Konfiguration einrichten

Um OpenTelemetry für Ihr Projekt einzurichten, können Sie mit der Installation der erforderlichen Pakete beginnen, indem Sie pip install opentelemetry-exporter-jaeger verwenden.

pip install opentelemetry-exporter-jaeger
pip install opentelemetry-exporter-jaeger
SHELL

Installieren Sie anschließend das OpenTelemetry Python SDK mit dem folgenden Befehl:

pip install opentelemetry-sdk
pip install opentelemetry-sdk
SHELL

Das opentelemetry-api-Pip-Paket bietet eine umfassende API für die Instrumentierung und bietet automatische Instrumentierung, was die Instrumentierung Ihrer Anwendungen erleichtert. Eine alternative Möglichkeit besteht darin, die Export-Import-Methode BatchSpanProcessor zu verwenden, um einen effizienten Export von Telemetriedaten sicherzustellen.

Um OpenTelemetry SDK Parameter zu definieren, erstellen Sie eine Konfigurationsdatei. Die Konfigurationsdatei otel_config.py dient als Beispiel. Stellen Sie sicher, dass alle Importe wie resources Import von Resource und trace Import von TracerProvider vorhanden sind, um das Code-Beispiel ohne Fehler einzurichten.

from opentelemetry import trace
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.jaeger.thrift import JaegerExporter

# Configure Jaeger exporter
jaeger_exporter = JaegerExporter(
    agent_host_name="localhost",
    agent_port=6831,
)

# Create a TracerProvider with Jaeger exporter
tracer_provider = TracerProvider(resource=Resource.create({'service.name': 'my-python-service'}))
tracer_provider.add_span_processor(BatchSpanProcessor(jaeger_exporter))
trace.set_tracer_provider(tracer_provider)
from opentelemetry import trace
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.jaeger.thrift import JaegerExporter

# Configure Jaeger exporter
jaeger_exporter = JaegerExporter(
    agent_host_name="localhost",
    agent_port=6831,
)

# Create a TracerProvider with Jaeger exporter
tracer_provider = TracerProvider(resource=Resource.create({'service.name': 'my-python-service'}))
tracer_provider.add_span_processor(BatchSpanProcessor(jaeger_exporter))
trace.set_tracer_provider(tracer_provider)
PYTHON

Innerhalb dieser Konfigurationsdatei:

  • Der Jaeger-Exporter ist eingerichtet, um Traces an einen localhost Jaeger-Agenten zu exportieren.
  • Mit dem Jaeger-Exporter konstruieren wir einen TracerProvider und konfigurieren ihn als globalen Tracer-Anbieter.
  • Wir geben den Servicenamen für unser Python-Programm an.

OpenTelemetry in Ihrer Anwendung initialisieren

Importieren Sie das otel_config-Modul in Ihr Python-Programm und initialisieren Sie OpenTelemetry zu Beginn mit dem folgenden Beispiel-Python-Code:

from opentelemetry import trace
from otel_config import tracer_provider

# Initialize OpenTelemetry
trace.get_tracer(__name__)
from opentelemetry import trace
from otel_config import tracer_provider

# Initialize OpenTelemetry
trace.get_tracer(__name__)
PYTHON

Dadurch wird die in otel_config.py gefundene Konfiguration für die OpenTelemetry-Instrumentierung initialisiert.

Instrumentieren Sie Ihre Anwendung

Verwenden Sie OpenTelemetry, um Ihr Python-Programm zu instrumentieren, damit es Traces aufzeichnen kann. Sie haben zwei Möglichkeiten, Ihren Code zu instrumentieren: manuell oder über die integrierten Bibliotheken. Dies ist ein Beispiel für einige manuelle Instrumentierungsaufrufe:

from opentelemetry import trace

# Start a span
with trace.get_tracer(__name__).start_as_current_span("example_span"):
    # Your code here
    pass
from opentelemetry import trace

# Start a span
with trace.get_tracer(__name__).start_as_current_span("example_span"):
    # Your code here
    pass
PYTHON

Traces in der Jaeger-UI anzeigen

Um die aufgezeichneten Traces zu sehen und zu untersuchen, gehen Sie zur Jaeger-Benutzeroberfläche. Um die Traces zu sehen, die der OpenTelemetry-Sammler aufzeichnet, öffnen Sie die Jaeger-UI in Ihrem Webbrowser (normalerweise unter http://localhost:16686) und wählen Sie Ihren Servicenamen aus.

Sie haben erfolgreich OpenTelemetry Python in Ihrer Anwendung eingerichtet und konfiguriert, indem Sie diese Anweisungen befolgt haben. Jetzt können Sie mit OpenTelemetry sehen, wie sich Ihr Python-Programm verhält und wie es performt, indem Sie Traces aufzeichnen und sie an das Jaeger-Backend exportieren.

Einstieg mit IronPDF

Was ist IronPDF?

Mit der leistungsstarken .NET-Bibliothek IronPDF von Iron Software können Entwickler in .NET-Anwendungen PDF-Dokumente erstellen, bearbeiten und präsentieren. Entwickler können IronPDF verwenden, um programmatisch PDF-Dokumente aus verschiedenen Quellen zu erstellen, wie z.B. vorhandene PDF-Dateien, HTML-Text, URLs und Bilder. Werfen wir einen genaueren Blick auf die Funktionen von IronPDF:

OpenTelemetry Python (Wie es für Entwickler funktioniert): Abbildung 2 - IronPDF-Startseite

Konvertierung von HTML in PDF

Entwickler können mit IronPDF HTML-Inhalte problemlos in PDF-Dateien umwandeln. Durch die Nutzung von HTML-Text als Eingabe können Entwickler optisch ansprechende PDF-Dokumente mit Formatierungen, Bildern und Styles erstellen.

Konvertierung von URL in PDF

Entwickler können mit IronPDF direkt PDF-Dokumente aus URLs generieren. Eine hervorragende Anwendung für diese Funktionalität ist das Erfassen von Inhalten von Webseiten oder dynamisch erstellten Inhalten von Web-Apps.

Konvertierung von Bildern in PDF

Mit IronPDF können Bilder in den Formaten PNG, JPEG und BMP in PDF-Dokumente umgewandelt werden. Diese Funktion ermöglicht es App-Entwicklern, PDF-Dokumente aus Fotos zu erstellen, was hilfreich für Apps ist, die z.B. Fotoalben erstellen oder Fotos in PDF-Dateien einfügen.

Wie installiere ich IronPDF

Nachdem Sie sichergestellt haben, dass Python auf Ihrem Computer installiert ist, verwenden Sie pip, um IronPDF zu installieren.

pip install ironpdf

Verwendung von OpenTelemetry zur Erstellung eines PDF-Dokuments mit IronPDF

Fügen Sie den folgenden Code unterhalb der OpenTelemetry-Initialisierung hinzu, um mit IronPDF ein PDF-Dokument zu erstellen:

from ironpdf import ChromePdfRenderer
from opentelemetry import trace

# Generate PDF document with IronPDF
with trace.get_tracer(__name__).start_as_current_span("pdf_generation"):
    iron_pdf = ChromePdfRenderer()
    html_content = "<html><body><h1>Hello, IronPDF!</h1></body></html>"

    pdf_content = iron_pdf.render_html_as_pdf(html_content)

    # Save or send the PDF content as needed
    with open("output.pdf", "wb") as file:
        file.write(pdf_content)
from ironpdf import ChromePdfRenderer
from opentelemetry import trace

# Generate PDF document with IronPDF
with trace.get_tracer(__name__).start_as_current_span("pdf_generation"):
    iron_pdf = ChromePdfRenderer()
    html_content = "<html><body><h1>Hello, IronPDF!</h1></body></html>"

    pdf_content = iron_pdf.render_html_as_pdf(html_content)

    # Save or send the PDF content as needed
    with open("output.pdf", "wb") as file:
        file.write(pdf_content)
PYTHON

In diesem Codeabschnitt:

  • Mithilfe des OpenTelemetry-Tracers beginnen wir einen neuen Spann namens pdf_generation.
  • Wir verwenden IronPDF, um HTML-Inhalte in ein PDF-Dokument umzuwandeln.
  • Eine Datei namens output.pdf enthält den generierten PDF-Inhalt.

OpenTelemetry Python (Wie es für Entwickler funktioniert): Abbildung 3 - Beispielausgabe aus dem obigen Code generiert

Abschluss

Schließlich bietet die Kombination von Beobachtbarkeits- und Dokumentenerstellung-Funktionen in Python-Anwendungen die Verbindung von OpenTelemetry Python und IronPDF. Entwickler können professionelle Dokumente einfach dynamisch erstellen und gleichzeitig bessere Einblicke in die Systemleistung gewinnen, indem sie verteilte Ablaufverfolgung und Metrik-Erfassung mit dynamischer PDF-Erstellung integrieren.

Die Zusammenarbeit zwischen OpenTelemetry Python und IronPDF erweist sich als starker Enabler, der es Entwicklern ermöglicht, zuverlässige, skalierbare und leistungsstarke Anwendungen zu erstellen, da Unternehmen nach Effizienz und Exzellenz in ihren Softwarelösungen streben.

IronPDF umfasst eine lebenslange Lizenz, die im Bundle recht günstig ist. Das Bundle ist ein großartiges Angebot für nur $799 und muss nur einmal für mehrere Systeme gekauft werden. Online-Engineering-Hilfe ist für Lizenznehmer rund um die Uhr verfügbar. Bitte besuchen Sie die Website, um mehr über die Gebühr zu erfahren. Besuchen Sie diese Seite, um mehr über die von Iron Software angebotenen Produkte zu erfahren.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen