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-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 for 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 ermöglicht den Import von Metriken
MeterProvider, wodurch numerische Daten über das Verhalten und die Leistung des Systems erfasst werden. - 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 zunächst die notwendigen Pakete mit pip install opentelemetry-exporter-jaeger installieren.
pip install opentelemetry-exporter-jaeger
pip install opentelemetry-exporter-jaeger
Installieren Sie anschließend das OpenTelemetry Python SDK mit dem folgenden Befehl:
pip install opentelemetry-sdk
pip install opentelemetry-sdk
Das opentelemetry-api pip-Paket bietet eine umfassende API für die Instrumentierung und ermöglicht die automatische Instrumentierung, wodurch die Instrumentierung Ihrer Anwendungen vereinfacht wird. Eine alternative Vorgehensweise wäre die Verwendung der Export-Import-Methode BatchSpanProcessor, um einen effizienten Export von Telemetriedaten zu gewährleisten.
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 Resource und trace import TracerProvider vorhanden sind, damit das Codebeispiel fehlerfrei eingerichtet werden kann.
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)
Innerhalb dieser Konfigurationsdatei:
- Der Jaeger-Exporter ist eingerichtet, um Traces an einen localhost Jaeger-Agenten zu exportieren.
- Mithilfe des Jaeger-Exporters erstellen wir ein
TracerProviderund konfigurieren es als globalen Tracer-Provider. - Wir geben den Servicenamen für unser Python-Programm an.
OpenTelemetry in Ihrer Anwendung initialisieren
Importieren Sie das Modul otel_config in Ihr Python-Programm und initialisieren Sie OpenTelemetry anschließend 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__)
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
Traces in der Jaeger-UI anzeigen
Um die aufgezeichneten Traces zu sehen und zu untersuchen, gehen Sie zur Jaeger-Benutzeroberfläche. Um die vom OpenTelemetry-Collector aufgezeichneten Traces anzuzeigen, öffnen Sie die Jaeger-Benutzeroberfläche in Ihrem Webbrowser (normalerweise unter http://localhost:16686) und wählen Sie Ihren Dienstnamen 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:

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)
In diesem Codeabschnitt:
- Unter Verwendung des OpenTelemetry-Tracers beginnen wir einen neuen Span mit der Bezeichnung
pdf_generation. - Wir verwenden IronPDF, um HTML-Inhalte in ein PDF-Dokument umzuwandeln.
- Eine Datei mit dem Namen
output.pdfenthält das generierte PDF-Material.

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 Paket ist ein echtes Schnäppchen für nur $999 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.




