PYTHON HILFE

OpenTelemetry in Python-Anwendungen

Veröffentlicht 1. Juli 2024
Teilen Sie:

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

Mit IronPDF, einem robusten .NET-Framework, können Entwickler problemlos PDF-Dokumente erstellen, ändern und ausgeben. Dieser Artikel befasst sich mit der Integration von OpenTelemetry Python mit IronPDF und zeigt, wie diese beiden Technologien zusammenarbeiten, um die Beobachtbarkeit und das Potenzial der Dokumentenerstellung zu verbessern.

Entwickler können mit den OpenTelemetry-API- und SDK-Paketen, einer OpenTelemetry-Projektimplementierung in Python, auf ein umfangreiches Funktionspaket für die Instrumentierung, Erfassung und den Export offener Telemetrie und Daten aus verteilten Systemen zugreifen.

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

OpenTelemetry-Funktionen

Untersuchen wirOpenTelemetry instrumentierung für die wichtigsten Funktionen von Python:

Verteilte Rückverfolgung

  • Verteiltes Tracing, mit dem Entwickler den Weg von Anfragen durch verteilte Systeme verfolgen können, wird durch OpenTelemetry für Python ermöglicht.
  • Traces bieten einen Einblick in die Abfolge der Anfragen, einschließlich der Daten und Uhrzeiten der Dienstkontakte.
  • Python-Programme können von Entwicklern instrumentiert werden, um Spans aufzuzeichnen, d. h. diskrete Aktionen oder Teile eines verteilten Trace.

Erfassen von Metriken

  • OpenTelemetry Python ermöglicht den Import von Metriken, die numerische Daten über das Verhalten und die Leistung des Systems sammeln.
  • Entwickler können ihre Anwendungen instrumentieren, um Messungen wie Latenz, Durchsatz, Fehlerraten und Ressourcennutzung zu erfassen.
  • Sie erhalten Einblicke in Nutzungsmuster, Leistungstrends und den Systemzustand.

Weitergabe des Kontextes

  • Die Weitergabe von Kontext wird durch das OpenTelemetry-API-Paket vereinfacht, das sicherstellt, dass verteilter Kontext - wie Trace- und Span-Kontext - über Dienstgrenzen hinweg weitergegeben wird.
  • Telemetriedaten können auf ihrem Weg durch das System dank der Kontextfortpflanzung korreliert und kontextualisiert werden, wodurch die Kontinuität und Konsistenz der Daten erhalten bleibt.

Bibliotheken der Instrumentierung

  • OpenTelemetry Python macht es einfach, bestehende Python-Anwendungen zu instrumentieren, indem es Instrumentierungspakete für weit verbreitete Frameworks, Bibliotheken und Protokolle bereitstellt.
  • Integrationen für Web-Frameworks(wie Flask und Django)datenbank-Clients(wie SQLAlchemy und Pymongo)nachrichtenübermittlungssysteme(wie Kafka und RabbitMQ)und weitere finden Sie in den Instrumentenbibliotheken.

Ökosystem der Exporteure

  • Eine Reihe von Exportern, die von OpenTelemetry Python zur Verfügung gestellt werden, ermöglichen es Entwicklern, Telemetriedaten in verschiedene Beobachtungssysteme und Backends zu exportieren.
  • Integrationen mit Observability-Plattformen wie Jaeger, Zipkin, Prometheus, AWS X-Ray, Google Cloud Trace und anderen werden von Exportern unterstützt.
  • Exporter können von Entwicklern eingerichtet werden, um Telemetriedaten zur langfristigen Speicherung, Analyse und Anzeige an ein oder mehrere Backends zu übertragen.
  • OpenTelemetry Python unterstützt variable Stichprobenverfahren, um die Menge der erfassten Telemetriedaten zu regulieren.
  • Entwickler haben die Möglichkeit, eine benutzerdefinierte Abtastlogik anzuwenden, die Abtastung so einzustellen, dass ein bestimmter Prozentsatz der Spuren abgetastet wird, oder die Abtastung nach vordefinierten Parametern durchzuführen(wie z. B. Kopfzeilen von Anfragen oder Routen).

Kontextbezogene Aufzeichnungen

  • Mit dem OpenTelemetry Python SDK stehen Werkzeuge zur Aufzeichnung von Kontextdaten zusätzlich zu den Telemetriedaten zur Verfügung.
  • Mit der kontextbezogenen Protokollierung können Entwickler den Protokollmeldungen einen Trace- und Span-Kontext hinzufügen, der mehr Kontext für die Fehlersuche und das Debugging bietet.

OpenTelemetry Python erstellen und konfigurieren

OpenTelemetry-Konfiguration einrichten

Um OpenTelemetry für Ihr Projekt einzurichten, können Sie damit beginnen, die notwendigen Pakete mit pip install opentelemetry-exporter-jaeger zu installieren.

pip install opentelemetry-exporter-jaeger
PYTHON

Installieren Sie anschließend das OpenTelemetry Python SDK mit folgendem Befehl pip install opentelemetry-sdk.

pip install opentelemetry-sdk
PYTHON

Das Pip-Paket opentelemetry-api bietet eine umfassende API für die Instrumentierung, und es bietet auch eine automatische Instrumentierung, die die Instrumentierung Ihrer Anwendungen erleichtert. Eine alternative Möglichkeit 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. Vergewissern Sie sich, dass alle Importe wie resources import Resource und trace import TracerProvider vorhanden sind, um das Codebeispiel fehlerfrei 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)
PYTHON

Innerhalb dieser Konfigurationsdatei:

  • Der Jaeger-Exporter ist so eingerichtet, dass er Traces an einen Jaeger-Agenten auf dem lokalen Rechner exportiert.
  • Mit Hilfe des Jaeger-Exporters erstellen wir einen "TracerProvider" und konfigurieren ihn als globalen Tracer-Provider.
  • Für unser Python-Programm geben wir den Namen des Dienstes an.

Initialisierung von OpenTelemetry in Ihrer Anwendung

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

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.

Instrument für Ihre Bewerbung

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 eine Illustration einiger manueller Instrumentierungsaufrufe:

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 Jaeger UI anzeigen

Um die aufgezeichneten Spuren zu sehen und zu untersuchen, gehen Sie zur Jaeger-Benutzeroberfläche. Um die vom OpenTelemetry-Kollektor aufgezeichneten Traces anzuzeigen, öffnen Sie die Jaeger-Benutzeroberfläche in Ihrem Webbrowser(normalerweise unter http://localhost:16686) und wählen Sie den Namen Ihres Dienstes.

Sie haben OpenTelemetry Python erfolgreich in Ihrer Anwendung eingerichtet und konfiguriert, indem Sie diese Anweisungen befolgt haben. Jetzt können Sie sehen, wie sich Ihr Python-Programm verhält und arbeitet, indem Sie OpenTelemetry verwenden, um Traces aufzuzeichnen und in das Jaeger-Backend zu exportieren.

Erste Schritte mit IronPDF

Was ist IronPDF?

Mit der leistungsstarken .NET-Bibliothek IronPDF von Iron Software können Entwickler PDF-Dokumente in .NET-Anwendungen erstellen, bearbeiten und präsentieren. Entwickler können mit IronPDF programmatisch PDF-Dokumente aus einer Reihe von Quellen erstellen, z. B. aus bereits vorhandenen PDF-Dateien, HTML-Text, URLs und Bildern. Schauen wir uns die Funktionen von IronPDF genauer an:

OpenTelemetrie Python(Wie es für Entwickler funktioniert): Abbildung 2 - IronPDF-Homepage

Konvertierung von HTML in PDF

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

URL in PDF umwandeln

Entwickler können mit IronPDF PDF-Dokumente direkt aus URLs erzeugen. Eine hervorragende Anwendung für diese Funktionalität ist die Erfassung von Inhalten aus Webseiten oder dynamisch erstellten Inhalten aus Webanwendungen.

Bild in PDF konvertieren

Mit IronPDF können Bilder im PNG-, JPEG- und BMP-Format in PDF-Dokumente umgewandelt werden. Mit dieser Funktion können App-Entwickler PDF-Dokumente aus Fotos erstellen, was für Apps hilfreich ist, um beispielsweise Fotoalben zu erstellen oder Fotos in PDF-Dateien einzubinden.

So installieren Sie IronPDF

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

pip install ironpdf
PYTHON

Verwendung von OpenTelemetry zur Erzeugung eines PDF-Dokuments mit IronPDF

Fügen Sie den folgenden Code unter der Initialisierung von OpenTelemetry ein, um IronPDF zu verwendeneine PDF-Datei erstellen dokument:

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 Abschnitt des Codes:

  • Mit Hilfe des OpenTelemetry-Tracers beginnen wir einen neuen Bereich namens "pdf_generation".
  • Wir verwenden IronPDF, um während dieser Zeit HTML-Material in ein PDF-Dokument umzuwandeln.
  • Eine Datei mit dem Namen output.pdf enthält das generierte PDF-Material.

    OpenTelemetrie Python(Wie es für Entwickler funktioniert): Abbildung 3 - Beispiel für eine aus dem obigen Code generierte Ausgabe

Schlussfolgerung

Die Verbindung von OpenTelemetry Python und IronPDF schließlich ermöglicht die Kombination von Beobachtungsfähigkeit und Dokumentenerzeugungsfunktionen in Python-Anwendungen. Durch die Integration von verteiltem Tracing und der Erfassung von Metriken mit dynamischer PDF-Generierung können Entwickler einfach und schnell professionell aussehende Dokumente erstellen und gleichzeitig einen besseren Einblick in die Systemleistung gewinnen.

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

IronPDF enthält eine lebenslange Lizenz, die im Paket zu einem fairen Preis erhältlich ist. Das Paket ist ein großartiges Angebot für nur $749, und es muss nur einmal für mehrere Systeme gekauft werden. Technische Online-Hilfe steht den Lizenzinhabern rund um die Uhr zur Verfügung. Bitte besuchen Sie die Website, um mehr über die Gebühr zu erfahren. Besuchen Sie diese Seite, um mehr über die von Iron Software vertriebenen Produkte zu erfahren.

< PREVIOUS
Matplotlib Python Leitfaden für Einsteiger
NÄCHSTES >
Wiederholung von Funktionen mit Tenacity in Python

Sind Sie bereit, loszulegen? Version: 2024.12 gerade veröffentlicht

pip install gratuit Lizenzen anzeigen >