PYTHONヘルプ PythonアプリケーションにおけるOpenTelemetry Curtis Chau 更新日:6月 22, 2025 Download IronPDF pipダウンロード Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 効果的なドキュメント生成と可観測性は、現代のソフトウェア開発でスケーラブルで回復力のあるシステムを開発するための重要な基盤です。 開発者は、オープンソースの可観測性プラットフォームである OpenTelemetry を使用して、分散システムから観測可能なデータを計測、収集、および分析することができます。 開発者は、強力な .NET フレームワークである IronPDF を使用して PDF ドキュメントを簡単に作成、修正、および出力できます。 この記事では OpenTelemetry Python と IronPDF の統合について説明し、これら2つの技術がどのように連携して可観測性と文書作成の可能性を向上させるかを示します。 開発者は、OpenTelemetry API および SDK パッケージを使用して、分散システムからオープンテレメトリーデータを取得、収集、およびエクスポートするための包括的な機能セットにアクセスできます。これは Python における OpenTelemetry プロジェクトの実装です。 OpenTelemetry の特徴 Python の OpenTelemetry 計装の注目すべき特徴を調べてみましょう。 分散トレース OpenTelemetry for Python により、開発者は分散システムを通じて要求の経路を追跡することができます。 トレースは、サービスに接触した日時を含む要求のシーケンスについての洞察を提供します。 開発者は、Python プログラムを計測して、分散トレースの個別のアクションまたは部分であるスパンを記録することができます。 メトリクスの収集 OpenTelemetry Python は、システムの挙動やパフォーマンスに関する数値データを収集する MeterProvider をインポートします。 開発者は、遅延、スループット、エラー率、リソース使用量などの測定を収集するためにアプリケーションを計測できます。 これらのメトリクスは、使用パターン、パフォーマンス傾向、システムの健全性についての洞察を提供することで、システム動作の理解を助けます。 コンテキスト伝播 OpenTelemetry API パッケージにより、トレースやスパンコンテキストなどの分散コンテキストがサービスの境界を越えて伝播されることが保証され、コンテキスト伝播が容易になります。 コンテキスト伝播によりテレメトリーデータがシステムを通過する際に相関付け、文脈化されるため、データの継続性と一貫性が保たれます。 計装ライブラリ OpenTelemetry Python は、既存の Python アプリケーションを計装するために広く使用されているフレームワーク、ライブラリ、プロトコル用の計装パッケージを提供することにより、簡単に計装できます。 計装ライブラリには、Web フレームワーク(Flask や Django など)、データベースクライアント(SQLAlchemy や Pymongo など)、メッセージシステム(Kafka や RabbitMQ など)に対する統合が含まれています。 エクスポートエコシステム OpenTelemetry Python が提供するさまざまなエクスポーターにより、開発者は異なる可観測性システムやバックエンドにテレメトリーデータをエクスポートできます。 Jaeger、Zipkin、Prometheus、AWS X-Ray、Google Cloud Trace などの可観測性プラットフォームとの統合がエクスポーターによりサポートされています。 開発者は、テレメトリーデータを長期保管、分析、表示のために1つまたは複数のバックエンドに転送するためにエクスポーターを設定できます。 OpenTelemetry Python は、収集されるテレメトリーデータの量を制御するためにさまざまなサンプリング技術をサポートしています。 開発者はカスタムサンプリングロジックを適用するオプションを持ち、一定割合のトレースをサンプリングするように設定するか、要求ヘッダーやルートなどの事前定義されたパラメーターに従ってサンプリングすることができます。 コンテキスト記録 OpenTelemetry Python SDK には、テレメトリーデータに加えてコンテキストデータを記録するためのツールがあります。 開発者はコンテキストログを使用してログメッセージにトレースおよびスパンコンテキストを追加することで、トラブルシューティングおよびデバッグのための文脈を提供することができます。 OpenTelemetry Python を作成および設定する OpenTelemetry の設定を行う プロジェクト用に OpenTelemetry をセットアップするには、pip install opentelemetry-exporter-jaeger を使用して必要なパッケージをインストールすることから始めます。 pip install opentelemetry-exporter-jaeger pip install opentelemetry-exporter-jaeger SHELL その後、次のコマンドを使用して OpenTelemetry Python SDK をインストールしてください。 pip install opentelemetry-sdk pip install opentelemetry-sdk SHELL opentelemetry-api pip パッケージは計装のための包括的な API を提供し、アプリケーションを計装しやすくする自動計装を提供します。 別の方法として、効率的なテレメトリーデータエクスポートを保証するためにエクスポートインポート BatchSpanProcessor メソッドを使用することができます。 OpenTelemetry SDK のパラメーターを定義するには、設定ファイルを作成します。構成ファイル otel_config.py が例として役立ちます。 すべてのインポートが含まれていることを確認します。たとえば、resources としての Resource インポート、trace としての 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) 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__) from opentelemetry import trace from otel_config import tracer_provider # Initialize OpenTelemetry trace.get_tracer(__name__) PYTHON このようにすることで、OpenTelemetry 計装のために otel_config.py に記載された構成が初期化されます。 アプリケーションを計装する 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 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 ユーザーインターフェースにアクセスします。 Web ブラウザで Jaeger UI (通常は http://localhost:16686 にあります) を開いて、OpenTelemetry コレクターが記録するトレースを表示するには、サービス名を選択します。 これらの手順に従うことで、アプリケーションに OpenTelemetry Python がうまく確立および構成されていることを確認しました。 今、OpenTelemetry を使用してトレースを記録し、これらを Jaeger バックエンドにエクスポートすることで、Python プログラムの挙動とパフォーマンスを確認できます。 IronPDFを始めよう IronPDF とは何ですか? Iron Software の強力な .NET ライブラリ IronPDF を使用することで、開発者は .NET アプリケーション内で PDF ドキュメントを作成、編集、および表示できます。 開発者は、事前に存在する PDF ファイル、HTML テキスト、URL、画像など、さまざまなソースからプログラムを使用して PDF ドキュメントを作成することができます。 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 IronPDF を使用して PDF ドキュメントを生成するための OpenTelemetry IronPDF を使用して PDF を作成する ために、OpenTelemetry の初期化の下に次のコードを追加します。 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 このコードの一部では次のことを行います。 OpenTelemetry トレーサーを使用して、pdf_generation という新しいスパンが開始されます。 HTML マテリアルを PDF ドキュメントに変換するために IronPDF を使用します。 生成された PDF マテリアルは output.pdf というファイルに含まれています。 結論 最後に、Python アプリケーションにおける可観測性とドキュメント生成機能の組み合わせが、OpenTelemetry Python と IronPDF の統合によって提供されます。 開発者は、分散トレースとメトリクス収集を動的な PDF 生成と統合することによって、システムパフォーマンスに対するより良い洞察を得ながら、プロフェッショナルな外観のドキュメントをすばやく作成できます。 企業が効率を追求し、ソフトウェアソリューションの卓越性を目指す中で、OpenTelemetry Python と IronPDF の協力は強力な推進者として登場し、開発者が信頼性、スケーラビリティ、およびパフォーマンスに優れたアプリケーションを作成することを可能にします。 IronPDF にはライフタイムライセンスが含まれており、バンドルで購入されるとかなり手頃な価格です。 バンドルは数システム用に一度だけ購入すればよく、たった $799 ですごい取引です。 オンライアエンジニアリングサポートがライセンス所有者に24時間365日利用可能です。料金について詳しく知りたい方は、ウェブサイトをご覧ください。 Iron Software が販売している製品についてさらに知りたい方はこちらのページをご覧ください。 Curtis Chau 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 更新日 6月 22, 2025 deepstream io(開発者向けのしくみ) この記事では、オープンリアルタイムサーバdeepstreamとIronPDFを使用してPDFを生成する方法を学びます。 詳しく読む 更新日 6月 22, 2025 Imageio Python(開発者向けのしくみ) Imageioがどのように画像を読み書きするために使用できるかを見ていき、後にIron SoftwareのIronPDFを使ってPDFドキュメントを生成する方法についても調べます 詳しく読む 更新日 6月 22, 2025 Igraph Python(開発者向けのしくみ) この記事では、igraphを使用してネットワークグラフを生成し、それらを柔軟で信頼性の高いIronPDFライブラリを使ってPDFファイルに印刷する方法を示します。 詳しく読む Python初心者のためのMatplotlibガイドPythonでTenacityを使って関数...
更新日 6月 22, 2025 deepstream io(開発者向けのしくみ) この記事では、オープンリアルタイムサーバdeepstreamとIronPDFを使用してPDFを生成する方法を学びます。 詳しく読む
更新日 6月 22, 2025 Imageio Python(開発者向けのしくみ) Imageioがどのように画像を読み書きするために使用できるかを見ていき、後にIron SoftwareのIronPDFを使ってPDFドキュメントを生成する方法についても調べます 詳しく読む
更新日 6月 22, 2025 Igraph Python(開発者向けのしくみ) この記事では、igraphを使用してネットワークグラフを生成し、それらを柔軟で信頼性の高いIronPDFライブラリを使ってPDFファイルに印刷する方法を示します。 詳しく読む