PYTHON ヘルプ

PythonアプリケーションにおけるOpenTelemetry

公開済み 2024年7月1日
共有:

効果的なドキュメント生成と可観測性は、現代のソフトウェア開発においてスケーラブルで堅牢なシステムを開発するための重要な基盤です。 開発者は、オープンソースの可観測プラットフォームであるOpenTelemetryを使用して、分散システムから観測可能なデータを計測、収集、および分析できます。

開発者は、堅牢な .NET フレームワークである IronPDF を使用して、PDF ドキュメントを簡単に作成、修正、および出力できます。 この記事では、OpenTelemetry PythonとIronPDFの統合について説明し、これらの2つの技術がどのように連携して可観測性とドキュメント生成の可能性を向上させるかを示します。

開発者は、OpenTelemetry APIおよびSDKパッケージを使用して、計測、収集、および分散システムからのオープンテレメトリーやデータのエクスポートに関する包括的な機能セットにアクセスできます。これは、PythonによるOpenTelemetryプロジェクトの実装です。

OpenTelemetry Python(開発者向けの仕組み):図1 - OpenTelemetryホームページ

OpenTelemetryの機能

次を調べてみましょうオープンテレメトリPython向けインストゥルメンテーションの顕著な特徴:

分散トレーシング

  • 分散トレーシングは、開発者が分散システムを通るリクエストの経路を追跡することを可能にし、これはOpenTelemetry for Pythonによって実現されます。
  • トレースはリクエストのシーケンスに関する洞察を提供し、サービス接触の日付と時刻を含みます。
  • Python プログラムは開発者によって計測可能であり、それによって分離された動作または分散トレースの一部を記録するスパンを測定することができます。

メトリクス収集

  • OpenTelemetry Pythonは、システムの動作とパフォーマンスに関する数値データを収集するMeterProviderを使用したメトリックのインポートを容易にします。
  • 開発者は、レイテンシー、スループット、エラー率、リソース使用量などの測定を収集するためにアプリケーションに計測機能を組み込むことができます。
  • 使用パターン、パフォーマンストレンド、およびシステムの健全性に関する洞察を提供することによって。

コンテキスト伝播

  • OpenTelemetry APIパッケージにより、トレースやスパンコンテキストなどの分散コンテキストがサービス境界を越えて伝播されることが確実になり、コンテキストの伝播が容易になります。
  • テレメトリ データは、コンテキストの伝播によりシステムを通過する際に関連付けおよび文脈付けされ、データの連続性と一貫性が保持されます。

計装用ライブラリ

  • OpenTelemetry Pythonは、一般的に使用されるフレームワーク、ライブラリ、およびプロトコルに対する計装パッケージを提供することで、既存のPythonアプリケーションの計装を簡単にします。
  • ウェブフレームワークの統合(FlaskやDjangoのような)データベースクライアント(SQLAlchemyやPymongoのように)メッセージングシステム(KafkaやRabbitMQのように)およびその他の情報は計測ライブラリで見つけることができます。

エコシステム・オブ・エクスポーターズ (エコシステム・オブ・エクスポーターズ (Ecosystem of Exporters))

  • OpenTelemetry Pythonによって提供される一連のエクスポーターは、開発者がテレメトリーデータをさまざまな可観測性システムやバックエンドにエクスポートすることを可能にします。
  • エクスポーターによって、Jaeger、Zipkin、Prometheus、AWS X-Ray、Google Cloud Trace などのオブザーバビリティプラットフォームとの統合がサポートされています。
  • エクスポーターは、長期的な保存、分析、および表示のためにテレメトリーデータを一つまたは複数のバックエンドに転送するように開発者によって設定されることができます。
  • OpenTelemetry Python は、収集されるテレメトリーデータの量を調整するために可変サンプリング技術をサポートしています。
  • 開発者はカスタムサンプリングロジックを適用するオプションがあり、サンプリングを特定の割合のトレースをサンプルするように設定するか、事前に定義されたパラメータに従ってサンプリングすることができます。(リクエストヘッダーやルートなど).

コンテキスト記録保持

  • OpenTelemetry Python SDKでは、テレメトリーデータに加えてコンテキストデータを記録するためのツールが利用可能です。
  • 開発者はコンテキストログを使用してログメッセージにトレースおよびスパンコンテキストを追加できるため、トラブルシューティングやデバッグの際により多くのコンテキストを提供できます。

「OpenTelemetry Python の作成と構成」

OpenTelemetry 設定を設定する

プロジェクトに OpenTelemetry を設定するには、まず必要なパッケージを pip install opentelemetry-exporter-jaeger を使用してインストールします。

pip install opentelemetry-exporter-jaeger
PYTHON

その後、以下のコマンド pip install opentelemetry-sdk を使用してOpenTelemetry Python SDKをインストールします。

pip install opentelemetry-sdk
PYTHON

opentelemetry-api pipパッケージは、計装のための包括的なAPIを提供し、アプリケーションへの計装を容易にする自動計装も提供します。 これを行う別の方法としては、効率的なテレメトリーデータのエクスポートを確保するために、エクスポートインポートのBatchSpanProcessorメソッドを使用することが考えられます。

OpenTelemetry SDKパラメータを定義するために、設定ファイルを作成します。設定ファイル otel_config.py が例として役立ちます。 リソースなどのすべてのインポートが Resource をインポートし、トレースが TracerProvider をインポートするようにして、コード例をエラーなくセットアップできるようにしてください。

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

この設定ファイル内で:

  • Jaegerエクスポーターは、ローカルホストのJaegerエージェントにトレースをエクスポートするよう設定されています。
  • Jaegerエクスポーターを使用して、TracerProviderを構築し、それをグローバルトレーサープロバイダーに設定します。
  • Pythonプログラムの場合、サービス名を提供します。

アプリケーションでOpenTelemetryを初期化する

Pythonプログラムにotel_configモジュールをインポートし、以下の例のPythonコードを使用してOpenTelemetryを最初に初期化します:

from opentelemetry import trace
from otel_config import tracer_provider

# Initialize OpenTelemetry
trace.get_tracer(__name__)
PYTHON

これを行うことにより、otel_config.pyにある設定がOpenTelemetry計測用に初期化されます。

アプリケーションの計測

OpenTelemetryを使用してPythonプログラムにインスツルメントを追加し、トレースを記録できるようにします。 コードに計装するには、手動または組み込みライブラリを使用するという2つの選択肢があります。 以下は、いくつかの手動操作呼び出しの例です:

from opentelemetry import trace

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

Jaeger UIでトレースを表示

記録されたトレースを確認および検査するには、Jaegerユーザーインターフェースに移動してください。 OpenTelemetryコレクタが記録したトレースを表示するには、ウェブブラウザでJaeger UIを開いてください。(通常は http://localhost:16686 でアクセスします。)サービス名を選択してください。

以下の手順に従って、お使いのアプリケーションにOpenTelemetry Pythonを正常に導入および設定しました。 現在、OpenTelemetryを使用してトレースを記録し、それらをJaegerバックエンドにエクスポートすることにより、Pythonプログラムの動作とパフォーマンスを確認できます。

IronPDF の始め方

IronPDFとは何ですか?

Iron Software の強力な .NET ライブラリ IronPDF を使用すると、開発者は .NET アプリケーション内で PDF ドキュメントを作成、編集、および表示することができます。 開発者は、IronPDFを使用して、既存のPDFファイル、HTMLテキスト、URL、画像などのさまざまなソースからプログラムでPDFドキュメントを作成できます。 IronPDFの機能を詳しく見てみましょう:

OpenTelemetry Python(開発者向けの仕組み):図2 - IronPDF ホームページ

HTML から PDF への変換

開発者はIronPDFを使用してHTMLコンテンツを簡単にPDFファイルに変換できます。 HTMLテキストを入力として使用することで、開発者はフォーマット、画像、およびスタイルを含んだ視覚的にリッチなPDF文書を作成することができます。

URLをPDFに変換

開発者はIronPDFを使用してURLから直接PDFドキュメントを生成できます。 この機能の優れた応用例の一つとしては、ウェブページやウェブアプリの動的に作成されたコンテンツをキャプチャすることが挙げられます。

画像をPDFに変換

IronPDFを使用すると、PNG、JPEG、BMP形式の画像をPDF文書に変換することができます。 この機能により、アプリ開発者は写真からPDF文書を作成することができます。これは、写真アルバムを作成するアプリや、写真をPDFファイルに組み込むアプリにとって役立ちます。

IronPDFのインストール方法

コンピュータにPythonがインストールされていることを確認した後、pipを使用してIronPDFをインストールします。

pip install ironpdf
PYTHON

OpenTelemetryを使用してIronPDFでPDFドキュメントを生成する

次のコードをOpenTelemetryの初期化の下に追加して、IronPDFを使用します。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)
PYTHON

このコードの一節では:

  • OpenTelemetryトレーサーを使用して、pdf_generationという新しいスパンを開始します。
  • この時間中にHTML素材をPDFドキュメントに変換するためにIronPDFを使用します。
  • output.pdfというファイルには、生成されたPDF素材が含まれています。

    OpenTelemetry Python(開発者向けの動作説明):図3 - 上記のコードから生成された出力例

結論

最後に、Pythonアプリケーションにおける可観測性とドキュメント生成機能の組み合わせは、OpenTelemetry PythonとIronPDFの接続によって提供されます。 開発者は、動的なPDF生成と分散トレースおよびメトリクス収集を統合することで、プロフェッショナルな外観のドキュメントを即座に作成し、システム性能に関するより良い洞察を得ることができます。

OpenTelemetry PythonとIronPDFのコラボレーションは強力な促進要因として登場し、エンタープライズが効率性と卓越性を求めるソフトウェアソリューションにおいて、開発者が信頼性が高く、スケーラブルでパフォーマンスに優れたアプリケーションを作成することを可能にします。

IronPDFには、永久ライセンスが含まれており、バンドル購入の場合はお手頃価格で提供されます。 そのバンドルはわずか$749で非常にお得です。一度購入するだけで複数のシステムで使用できます。 ライセンス所有者には24時間年中無休でオンライン工学のサポートが利用できます。料金の詳細はウェブサイトをご覧ください。 こちらのページをご覧いただき、Iron Softwareが販売している製品について詳しくお知りください。

< 以前
初心者のためのMatplotlib Pythonガイド
次へ >
PythonのTenacityで関数を再試行する

準備はできましたか? バージョン: 2024.11.1 新発売

無料 pip インストール ライセンスを表示 >