OpenTelemetry w aplikacjach Python
Skuteczne generowanie dokumentów i obserwowalność to podstawowe elementy niezbędne do tworzenia skalowalnych i odpornych systemów we współczesnym programowaniu. Programiści mogą monitorować, gromadzić i analizować dane obserwowalne z systemów rozproszonych za pomocą OpenTelemetry, platformy obserwowalności typu open source.
Programiści mogą z łatwością tworzyć, modyfikować i generować dokumenty PDF za pomocą IronPDF, solidnego frameworka .NET Framework. W tym artykule omówimy integrację OpenTelemetry Python z IronPDF, pokazując, w jaki sposób te dwie technologie współpracują, aby poprawić obserwowalność i potencjał generowania dokumentów.
Programiści mają dostęp do szerokiego zestawu funkcji służących do instrumentacji, gromadzenia i eksportowania otwartych danych telemetrycznych oraz danych z systemów rozproszonych dzięki pakietom OpenTelemetry API i SDK, które są implementacją projektu OpenTelemetry w języku Python.

Funkcje OpenTelemetry
Przyjrzyjmy się najważniejszym funkcjom instrumentacji OpenTelemetry dla języka Python:
Śledzenie rozproszone
- Śledzenie rozproszone, które pozwala programistom śledzić ścieżkę żądań w rozproszonych systemach, jest możliwe dzięki OpenTelemetry dla języka Python.
- Ślady dają wgląd w sekwencję żądań, w tym daty i godziny kontaktów z usługą.
- Programy w języku Python mogą być instrumentowane przez programistów w celu rejestrowania przedziałów, które są dyskretnymi działaniami lub częściami śladu rozproszonego.
Gromadzenie danych
- OpenTelemetry Python ułatwia import metryk
MeterProvider, które gromadzą dane liczbowe dotyczące zachowania i wydajności systemu. - Programiści mogą wbudować w swoje aplikacje narzędzia do gromadzenia danych pomiarowych, takich jak opóźnienia, przepustowość, wskaźniki błędów i wykorzystanie zasobów.
- Dzięki wglądowi w wzorce użytkowania, trendy wydajnościowe i stan systemu wskaźniki te pomagają w zrozumieniu zachowań systemu.
Propagacja kontekstu
- Propagacja kontekstu jest ułatwiona dzięki pakietowi API OpenTelemetry, który zapewnia, że kontekst rozproszony — taki jak kontekst śledzenia i zakresu — jest propagowany poza granice usług.
- Dane telemetryczne mogą być korelowane i kontekstualizowane w miarę ich przepływu przez system dzięki propagacji kontekstu, co pozwala zachować ciągłość i spójność danych.
Biblioteki oprzyrządowania
- OpenTelemetry Python ułatwia instrumentację istniejących aplikacji w języku Python, udostępniając pakiety instrumentacyjne dla powszechnie używanych frameworków, bibliotek i protokołów.
- Integracje z frameworkami internetowymi (takimi jak Flask i Django), klientami baz danych (takimi jak SQLAlchemy i Pymongo), systemami przesyłania wiadomości (takimi jak Kafka i RabbitMQ) i innymi można znaleźć w bibliotekach instrumentacyjnych.
Ekosystem eksporterów
- Szereg eksporterów udostępnianych przez OpenTelemetry Python umożliwia programistom eksportowanie danych telemetrycznych do różnych systemów obserwowalności i backendów.
- Eksporty obsługują integrację z platformami obserwowalności, takimi jak Jaeger, Zipkin, Prometheus, AWS X-Ray, Google Cloud Trace i inne.
- Eksporty mogą być konfigurowane przez programistów w celu przesyłania danych telemetrycznych do jednego lub kilku backendów w celu długoterminowego przechowywania, analizy i wyświetlania.
- OpenTelemetry Python obsługuje techniki zmiennego pobierania próbek w celu regulowania ilości gromadzonych danych telemetrycznych.
- Programiści mają możliwość zastosowania niestandardowej logiki próbkowania, ustawienia próbkowania tak, aby pobierać określony procent śladów, lub próbkowania zgodnie z predefiniowanymi parametrami (takimi jak nagłówki żądań lub trasy).
Prowadzenie dokumentacji kontekstowej
- Narzędzia do rejestrowania danych kontekstowych oprócz danych telemetrycznych są dostępne w pakiecie OpenTelemetry Python SDK.
- Programiści mogą dodawać kontekst śledzenia i zakresu do komunikatów dziennika dzięki rejestrowaniu kontekstowemu, co zapewnia więcej informacji kontekstowych przy rozwiązywaniu problemów i debugowaniu.
Utwórz i skonfiguruj OpenTelemetry Python
Skonfiguruj OpenTelemetry
Aby skonfigurować OpenTelemetry dla swojego projektu, możesz zacząć od zainstalowania niezbędnych pakietów za pomocą pip install opentelemetry-exporter-jaeger.
pip install opentelemetry-exporter-jaegerpip install opentelemetry-exporter-jaegerNastępnie zainstaluj OpenTelemetry Python SDK za pomocą następującego polecenia:
pip install opentelemetry-sdkpip install opentelemetry-sdkPakiet opentelemetry-api pip zapewnia kompleksowy interfejs API do instrumentacji i oferuje automatyczną instrumentację, ułatwiając instrumentację aplikacji. Alternatywnym sposobem na osiągnięcie tego celu może być zastosowanie metody eksportu-importu BatchSpanProcessor w celu zapewnienia wydajnego eksportu danych telemetrycznych.
Aby zdefiniować parametry OpenTelemetry SDK, należy utworzyć plik konfiguracyjny. Plik konfiguracyjny otel_config.py służy jako przykład. Upewnij się, że wszystkie importy, takie jak resources import Resource oraz trace import TracerProvider, są obecne, aby skonfigurować przykład kodu bez żadnych błędów.
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)W tym pliku konfiguracyjnym:
- Eksporter Jaeger jest skonfigurowany do eksportowania śladów do agenta Jaeger na lokalnym hoście.
- Korzystając z eksportera Jaeger, tworzymy
TracerProvideri konfigurujemy go jako globalnego dostawcę śledzenia. - Podajemy nazwę usługi dla naszego programu w języku Python.
Zainicjuj OpenTelemetry w swojej aplikacji
Zaimportuj moduł otel_config do swojego programu w języku Python, a następnie zainicjuj OpenTelemetry na początku za pomocą poniższego przykładowego kodu w języku Python:
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__)W ten sposób konfiguracja znajdująca się w otel_config.py jest inicjalizowana dla instrumentacji OpenTelemetry.
Wyposaż swoją aplikację
Użyj OpenTelemetry do instrumentacji programu w języku Python, aby mógł on rejestrować ślady. Masz dwie opcje instrumentacji kodu: ręcznie lub za pomocą wbudowanych bibliotek. Poniżej przedstawiono kilka przykładowych wywołań funkcji instrumentacji:
from opentelemetry import trace
# Start a span
with trace.get_tracer(__name__).start_as_current_span("example_span"):
# Your code here
passfrom opentelemetry import trace
# Start a span
with trace.get_tracer(__name__).start_as_current_span("example_span"):
# Your code here
passWyświetl ślady w interfejsie użytkownika Jaeger
Aby wyświetlić i przeanalizować zarejestrowane ślady, przejdź do interfejsu użytkownika Jaeger. Aby wyświetlić ślady rejestrowane przez kolektor OpenTelemetry, otwórz interfejs użytkownika Jaeger w przeglądarce internetowej (zwykle pod adresem http://localhost:16686) i wybierz nazwę swojej usługi.
Postępując zgodnie z tymi instrukcjami, pomyślnie zainstalowałeś i skonfigurowałeś OpenTelemetry Python w swojej aplikacji. Teraz możesz sprawdzić, jak zachowuje się i działa Twój program w języku Python, używając OpenTelemetry do rejestrowania śladów i eksportowania ich do zaplecza Jaeger.
Pierwsze kroki z IronPDF
Czym jest IronPDF?
Dzięki potężnej bibliotece .NET IronPDF firmy Iron Software programiści mogą tworzyć, edytować i prezentować dokumenty PDF w aplikacjach .NET. Programiści mogą używać IronPDF do programowego tworzenia dokumentów PDF z różnych źródeł, takich jak istniejące pliki PDF, tekst HTML, adresy URL i obrazy. Przyjrzyjmy się bliżej funkcjom IronPDF:

Konwersja HTML do PDF
Dzięki IronPDF programiści mogą z łatwością konwertować treści HTML na pliki PDF. Wykorzystując tekst HTML jako dane wejściowe, programiści mogą tworzyć bogate wizualnie dokumenty PDF z formatowaniem, obrazami i stylami.
Konwertuj adres URL na plik PDF
Programiści mogą generować dokumenty PDF bezpośrednio z adresów URL za pomocą IronPDF. Doskonałym zastosowaniem tej funkcji jest pobieranie treści ze stron internetowych lub treści tworzonych dynamicznie przez aplikacje internetowe.
Konwersja obrazu do formatu PDF
Dzięki IronPDF obrazy w formatach PNG, JPEG i BMP można konwertować na dokumenty PDF. Ta funkcja pozwala programistom tworzyć dokumenty PDF na podstawie zdjęć, co jest przydatne w aplikacjach służących np. do tworzenia albumów ze zdjęciami lub wstawiania zdjęć do plików PDF.
Jak zainstalować IronPDF
Po upewnieniu się, że Python jest zainstalowany na komputerze, użyj pip, aby zainstalować IronPDF.
pip install ironpdf
Wykorzystanie OpenTelemetry do generowania dokumentu PDF za pomocą IronPDF
Dodaj poniższy kod poniżej inicjalizacji OpenTelemetry, aby użyć IronPDF do utworzenia dokumentu PDF:
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)W tym fragmencie kodu:
- Korzystając z traceru OpenTelemetry, rozpoczynamy nowy zakres o nazwie
pdf_generation. - W tym czasie używamy IronPDF do konwersji materiałów HTML na dokumenty PDF.
- Plik o nazwie
output.pdfzawiera wygenerowany materiał w formacie PDF.

Wnioski
Wreszcie, połączenie funkcji obserwowalności i generowania dokumentów w aplikacjach Python zapewnia połączenie OpenTelemetry Python i IronPDF. Programiści mogą z łatwością tworzyć profesjonalnie wyglądające dokumenty w locie, jednocześnie uzyskując lepszy wgląd w wydajność systemu dzięki integracji rozproszonego śledzenia i gromadzenia metryk z dynamicznym generowaniem plików PDF.
Współpraca między OpenTelemetry Python a IronPDF staje się potężnym czynnikiem, umożliwiającym programistom tworzenie niezawodnych, skalowalnych i wydajnych aplikacji, podczas gdy przedsiębiorstwa dążą do wydajności i doskonałości swoich rozwiązań programowych.
IronPDF obejmuje dożywotnią licencję, która jest dostępna w przystępnej cenie w ramach pakietu. Pakiet jest świetną okazją za jedyne $799 i wystarczy go kupić tylko raz, aby korzystać z niego na wielu systemach. Posiadacze licencji mają dostęp do pomocy technicznej online przez całą dobę, siedem dni w tygodniu. Odwiedź stronę internetową, aby dowiedzieć się więcej o opłatach. Odwiedź tę stronę, aby dowiedzieć się więcej o produktach sprzedawanych przez Iron Software.










