IRONSOFTWAREHOME
開発者向けアップデート

Opentelemetry C#(開発者向けの動作方法)

Jacob Mellor、Ironチームの最高技術責任者(CTO)
Jacob Mellor
Updated: 2026年4月21日

OpenTelemetryは、トレース、メトリクス、ログなどのテレメトリデータをアプリケーションから収集、処理、エクスポートするためのツール、API、SDKのセットです。 このチュートリアルは、初心者がOpenTelemetryをC#アプリケーションに統合する方法を理解するのに役立ち、.NETアプリケーションを効果的に監視するための組み込みメトリクス収集に焦点を当てています。 さらに、C#でのPDF生成のためのIronPDFライブラリについて学びます。

OpenTelemetryの紹介

Opentelemetry C# (開発者向け動作原理):図1 - OpenTelemetry

OpenTelemetryは、アプリケーションからさまざまなデータを収集するための統一された方法を提供します。 .NET開発者にとって、OpenTelemetryを統合することは、アプリケーションの監視をより密接に行い、リアルタイムでのパフォーマンスを理解し、問題を迅速に特定することを意味します。 OpenTelemetryのインスツルメンテーションライブラリは、.NETアプリのトレーシングとメトリクス収集を自動的に有効にします。

OpenTelemetryフレームワークで収集されたメトリクスにより、開発者は.NETランタイム環境に関する貴重な洞察を得ることができます。 OpenTelemetry .NET実装は、.NET Coreや.NET Frameworkを含む.NETランタイムをサポートしています。 標準化されたテレメトリデータ収集のためのOpenTelemetryプロトコルに準拠しています。

環境のセットアップ

始めるには、マシンに.NET SDKがインストールされている必要があります。Visual Studioを使用している場合は、.NET SDKが同梱されている可能性があります。 コマンドラインを開いて次のコマンドを実行することで、現在 for .NET SDKバージョンを確認できます:

> dotnet --version

次に、以下のコマンドを実行して新しい.NET Webプロジェクトを作成します:

dotnet new web -o MyTelemetryApp
cd MyTelemetryApp
SHELL

このコマンドは、ディレクトリMyTelemetryAppに新しいASP.NET Coreプロジェクトを作成します。

OpenTelemetryの統合

必要なパッケージの追加

最初に、プロジェクトに必要なOpenTelemetryパッケージを追加します。 ターミナルを開いてプロジェクトディレクトリに移動します。 次に、NuGet Package Manager CLIを使用して以下のパッケージをインストールします:

dotnet add package OpenTelemetry -Version <version>
dotnet add package OpenTelemetry.Extensions.Hosting -Version <version>
dotnet add package OpenTelemetry.Instrumentation.AspNetCore -Version <version>
dotnet add package OpenTelemetry.Exporter.Console -Version <version>
SHELL

**<version>**を各パッケージの最新バージョンに置き換えます。

アプリケーションでのOpenTelemetryの設定

必要なパッケージを追加した後、アプリケーションでOpenTelemetryを設定する必要があります。 これには、OpenTelemetry SDKを設定し、収集するテレメトリデータを指定することが含まれます。 OpenTelemetryは、.NETアプリケーションとのシームレスな統合のためのインスツルメンテーションライブラリを提供します。

プロジェクトのStartup.csファイルを開き、以下のコードスニペットのようにConfigureServicesメソッドを修正して、OpenTelemetryを含めます:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
    services.AddOpenTelemetryTracing(builder =>
    {
        builder.AddAspNetCoreInstrumentation()
               .AddHttpClientInstrumentation()
               .AddConsoleExporter();
    });
}

このコードスニペットは、ASP.NET CoreアプリケーションおよびHTTPクライアントからのテレメトリデータを収集し、コンソールにエクスポートするためのOpenTelemetryの設定方法を示しています。 AddAspNetCoreInstrumentationメソッドは、ASP.NET Coreアプリへの着信HTTPリクエストのインスツルメンテーションを自動的に有効にします。

メトリクスの収集

メトリクスを収集するには、OpenTelemetry Metrics APIを設定する必要があり、トレースではなくメトリクスに焦点を当てます。

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
    services.AddOpenTelemetryMetrics(builder =>
    {
        builder.AddAspNetCoreInstrumentation()
               .AddHttpClientInstrumentation()
               .AddConsoleExporter(options => options.Targets = ConsoleExporterOutputTargets.Console);
    });
}

このセットアップにより、ASP.NET CoreおよびHTTPクライアントのインスツルメンテーションから組み込みメトリクスを収集し、コンソールにエクスポートして簡単に表示できます。

カスタムメトリクスの作成

OpenTelemetryは多くの有用なメトリクスを自動的に収集しますが、アプリケーションに特化したカスタムメトリクスを収集したい場合もあります。 インスツルメンテーションライブラリが提供する拡張メソッドを使用することで、テレメトリを自動的に収集するだけでなく、開発者により詳細なメトリクス制御を提供します。 これを実現するには、コードを手動でインスツルメントしてカスタムメトリクスを作成し記録することができます。

var meter = new Meter("MyCustomMetrics", "1.0");
var counter = meter.CreateCounter<int>("custom_request_count", description: "Counts custom requests");
app.Use((context, next) =>
{
    counter.Add(1, new KeyValuePair<string, object>("path", context.Request.Path));
    return next();
});

このコードスニペットは、アプリケーションへのリクエストをカウントし、各メトリクスにリクエストパスをタグ付けするカスタムメトリクスを作成する方法を示しています。 OpenTelemetryが提供する拡張メソッドを活用することで、開発者はテレメトリデータ収集プロセスをより詳細に制御できます。

統合テスト

コマンドラインまたはVisual Studioを使用してアプリケーションを実行します。 ウェブブラウザのURLにアクセスするか、curlのようなツールを使用して、アプリケーションにいくつかリクエストを行います。 コンソール出力に、トレースやメトリクスを含むテレメトリデータが表示されるはずです。

curl http://localhost:5000
SHELL

IronPDF の紹介

Opentelemetry C# (開発者向け動作原理):図2 - IronPDF

IronPDFは、C#開発者向けの強力なライブラリであり、.NETアプリケーション内で直接PDFドキュメントの生成、操作、レンダリングを可能にします。 この機能は、レポート、請求書、またはHTMLを使用してWebアプリケーションからのドキュメントベースの出力、サービス、デスクトップアプリの生成に特に便利です。IronPDFとOpenTelemetryを組み合わせることで、開発者はアプリケーション内のPDF生成プロセスのパフォーマンスと信頼性を監視し、スムーズなユーザーエクスペリエンスを確保できます。

IronPDF は HTML から PDF への変換に秀でており、元のレイアウトとスタイルを正確に保存します。 これは、レポート、請求書、ドキュメントなどの Web ベースのコンテンツから PDF を作成するのに最適です。 HTML ファイル、URL、または生の HTML 文字列のサポートにより、IronPDF は高品質な PDF ドキュメントを簡単に生成します。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

IronPDFのセットアップ

最初に、.NETプロジェクトにIronPDFを追加する必要があります。 これをNuGet Package Managerを使用して行うことができます。 ターミナルを開いてプロジェクトディレクトリに移動します。 次に、IronPDFをインストールするために、以下のコマンドを実行します:

dotnet add package IronPDF
SHELL

IronPDFでPDFを生成し、OpenTelemetryで監視する

以下は、簡単なPDFドキュメントを生成し、OpenTelemetryを使用して操作を監視する例です。 以下の例は、前述のようにアプリケーションでOpenTelemetryを設定したことを前提としています。

using IronPdf;
using OpenTelemetry.Trace;

public class PdfService
{
    private readonly Tracer _tracer;

    public PdfService(Tracer tracer)
    {
        _tracer = tracer;
    }

    public void GeneratePdf()
    {
        // Create a new activity for this operation
        using var activity = _tracer.StartActivity("Generate PDF");
        
        // Simulate adding some attributes related to the operation
        activity?.SetTag("pdf.size", "A4");
        activity?.SetTag("pdf.content", "Hello World");
        
        try
        {
            // Initialize the PDF generator
            var renderer = new ChromePdfRenderer();
            
            // Generate a PDF from HTML
            var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
            
            // Save the PDF to a file
            var outputPath = "output.pdf";
            pdf.SaveAs(outputPath);
            
            // Log success
            activity?.SetTag("pdf.status", "Success");
            activity?.SetTag("pdf.outputPath", outputPath);
        }
        catch (Exception ex)
        {
            // Log any exceptions that occur during PDF generation
            activity?.SetTag("pdf.status", "Error");
            activity?.SetTag("pdf.error", ex.Message);
            throw;
        }
    }
}

この例では、PDFドキュメントを生成するためのメソッドGeneratePdfを含む新しいサービスクラスPdfServiceを作成します。 HTMLをPDFドキュメントとしてレンダリングするために、IronPDFのChromePdfRendererクラスを使用します。 OpenTelemetryを使用して、この操作を監視するために"Generate PDF"という新しいアクティビティを開始します。 PDF生成プロセスに関する追加のコンテキストを提供するために、PDFのサイズ、コンテンツタイプ、出力パスなどのカスタムタグをアクティビティに追加します。 また、同じアクティビティ内でエラーを適切にログに記録するために例外をキャッチします。

結論

.NETアプリケーションにOpenTelemetryを統合すると、アプリケーションのパフォーマンスと動作に関する貴重なテレメトリデータを収集できます。 このチュートリアルで説明されている手順に従って、.NET Webアプリケーションの基本的なトレースとメトリクス収集を設定しました。 テレメトリデータを外部のモニタリングツールにエクスポートしたり、トレースやメトリクスに加えてログを収集したりするなど、OpenTelemetryの高度な機能を探求してさらに実験してください。

IronPDFは、その完全な機能を試すためにIronPDFの無料トライアルを提供しています。 ライセンスは$399からです。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から