ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
AppMetrics C# (アプメトリクス C#)は、アプリケーションのモニタリングとパフォーマンス分析を効率化するために設計された強力なツールです。 App Metricsの抽象化により、アプリケーションのさまざまな側面を追跡する際の複雑さが簡素化されます。 .NET Core または .NET Framework を使用しているかどうかに関わらず、この .NET ライブラリはメトリックタイプを効率的に記録することができます。 メトリクスを取得し、App Metricsがサポートするメトリクスタイプを利用して、包括的な洞察を得ることができます。
.NETライブラリは、メトリクスを取得することをサポートし、指定された間隔でメトリクスをフラッシュすることができるため、タイムリーなデータ収集を保証します。 また、拡張性を高めるために拡張ポイントを提供する拡張メソッドも提供しています。 クロスプラットフォームソリューションとして、AppMetricsは多様な環境に適しており、一貫したパフォーマンス監視を保証します。
IronPDF:C#開発者のための高度なPDFライブラリPDFドキュメントを扱う際に、C#開発者にとってもう一つ重要なライブラリです。 それにより、.NET Coreアプリケーション内でPDFファイルの作成、編集、および抽出が直接可能になります。 この機能は、アプリケーションからPDF形式のレポート、請求書、およびその他のドキュメントを生成する必要がある場合に特に役立ちます。
.NETプロジェクトにクロスプラットフォームのApp Metricsを統合するには、まずAppMetricsライブラリをインストールします。 これを行うには、.NETのパッケージマネージャーであるNuGetパッケージを使用できます。 プロジェクト内で、NuGet パッケージ マネージャー コンソールで次のコマンドを実行してください:
Install-Package App.Metrics.AspNetCore
Install-Package App.Metrics.AspNetCore
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package App.Metrics.AspNetCore
このコマンドは、プロジェクトに必要なすべての依存関係を追加し、AppMetricsの設定を開始できるようにします。
以下は、AppMetricsを使用してあなたの.NETアプリケーションでHTTPリクエストの基本的な監視を設定する方法です。 まず、Startup.csファイルでメトリクスをビルドします。以下のコードをConfigureServicesメソッドに追加してください:
// ここにコードが入ります
// ここにコードが入ります
' ここにコードが入ります
public void ConfigureServices(IServiceCollection services)
{
services.AddMetrics(); // metric type
services.AddMetricsTrackingMiddleware();
services.AddMetricsEndpoints();
}
public void ConfigureServices(IServiceCollection services)
{
services.AddMetrics(); // metric type
services.AddMetricsTrackingMiddleware();
services.AddMetricsEndpoints();
}
Public Sub ConfigureServices(ByVal services As IServiceCollection)
services.AddMetrics() ' metric type
services.AddMetricsTrackingMiddleware()
services.AddMetricsEndpoints()
End Sub
次に、同じファイルのConfigureメソッドで、監視を処理するためにAppMetricsミドルウェアを追加してください:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseMetricsAllMiddleware();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseMetricsAllMiddleware();
}
Public Sub Configure(ByVal app As IApplicationBuilder, ByVal env As IWebHostEnvironment)
app.UseMetricsAllMiddleware()
End Sub
このセットアップは、リクエスト数、リクエストの所要時間、エラーレートなど、アプリケーションに対するHTTPリクエストに関するメトリクスのキャプチャを自動的に開始します。
カスタムメトリクスを作成および記録する、またはアプリケーション内の項目を測定するために、AppMetricsは追跡する必要がある内容を柔軟に定義する方法を提供します。 以下は、ユーザーログインを追跡するためのシンプルなカウンターを記録する例です:
public class LoginTracker
{
private readonly IMetrics _metrics;
public LoginTracker(IMetrics metrics)
{
_metrics = metrics;
}
public void TrackLogin(string userId)
{
_metrics.Measure.Counter.Increment(MetricsRegistry.Logins, new MetricTags("UserId", userId));
}
}
public class LoginTracker
{
private readonly IMetrics _metrics;
public LoginTracker(IMetrics metrics)
{
_metrics = metrics;
}
public void TrackLogin(string userId)
{
_metrics.Measure.Counter.Increment(MetricsRegistry.Logins, new MetricTags("UserId", userId));
}
}
Public Class LoginTracker
Private ReadOnly _metrics As IMetrics
Public Sub New(ByVal metrics As IMetrics)
_metrics = metrics
End Sub
Public Sub TrackLogin(ByVal userId As String)
_metrics.Measure.Counter.Increment(MetricsRegistry.Logins, New MetricTags("UserId", userId))
End Sub
End Class
このコードでは、TrackLogin が呼び出されるたびに、指定されたユーザーIDのログインカウンターが増加します。
AppMetricsは、アプリのパフォーマンスを測定するためにも使用できます。 たとえば、タイマーを使用して特定のメソッドの実行時間を追跡することができます。
public void ProcessData()
{
using (_metrics.Measure.Timer.Time(MetricsRegistry.DatabaseQueryTimer))
{
// Code to execute a database query
}
}
public void ProcessData()
{
using (_metrics.Measure.Timer.Time(MetricsRegistry.DatabaseQueryTimer))
{
// Code to execute a database query
}
}
Public Sub ProcessData()
Using _metrics.Measure.Timer.Time(MetricsRegistry.DatabaseQueryTimer)
' Code to execute a database query
End Using
End Sub
このタイマーは、ProcessData メソッドの実行時間を記録し、データベースクエリのパフォーマンスに関する洞察を提供します。
さまざまなメトリックタイプを視覚化してモニタリングするために、AppMetrics は異なるダッシュボードにデータをレポートできます。 以下は、InfluxDBダッシュボードにレポートを構成する方法です:
public void ConfigureServices(IServiceCollection services)
{
services.AddMetricsReportingHostedService();
services.AddMetricsBuild(builder =>
{
builder.Report.ToInfluxDb(options =>
{
options.InfluxDb.BaseUri = new Uri("http://your-influxdb-server");
options.InfluxDb.Database = "appmetricsdb";
options.InfluxDb.UserName = "user";
options.InfluxDb.Password = "password";
options.HttpPolicy.BackoffPeriod = TimeSpan.FromSeconds(30);
options.HttpPolicy.FailuresBeforeBackoff = 5;
options.HttpPolicy.Timeout = TimeSpan.FromSeconds(10);
options.FlushInterval = TimeSpan.FromSeconds(5);
});
});
}
public void ConfigureServices(IServiceCollection services)
{
services.AddMetricsReportingHostedService();
services.AddMetricsBuild(builder =>
{
builder.Report.ToInfluxDb(options =>
{
options.InfluxDb.BaseUri = new Uri("http://your-influxdb-server");
options.InfluxDb.Database = "appmetricsdb";
options.InfluxDb.UserName = "user";
options.InfluxDb.Password = "password";
options.HttpPolicy.BackoffPeriod = TimeSpan.FromSeconds(30);
options.HttpPolicy.FailuresBeforeBackoff = 5;
options.HttpPolicy.Timeout = TimeSpan.FromSeconds(10);
options.FlushInterval = TimeSpan.FromSeconds(5);
});
});
}
Public Sub ConfigureServices(ByVal services As IServiceCollection)
services.AddMetricsReportingHostedService()
services.AddMetricsBuild(Sub(builder)
builder.Report.ToInfluxDb(Sub(options)
options.InfluxDb.BaseUri = New Uri("http://your-influxdb-server")
options.InfluxDb.Database = "appmetricsdb"
options.InfluxDb.UserName = "user"
options.InfluxDb.Password = "password"
options.HttpPolicy.BackoffPeriod = TimeSpan.FromSeconds(30)
options.HttpPolicy.FailuresBeforeBackoff = 5
options.HttpPolicy.Timeout = TimeSpan.FromSeconds(10)
options.FlushInterval = TimeSpan.FromSeconds(5)
End Sub)
End Sub)
End Sub
システムメモリ使用量の監視は、パフォーマンスチューニングのために重要です。 次の方法で空きメモリを追跡できます:
public void CheckSystemMemory()
{
var freeMemory = GC.GetTotalMemory(false);
_metrics.Measure.Gauge.SetValue(MetricsRegistry.FreeMemory, freeMemory);
}
public void CheckSystemMemory()
{
var freeMemory = GC.GetTotalMemory(false);
_metrics.Measure.Gauge.SetValue(MetricsRegistry.FreeMemory, freeMemory);
}
Public Sub CheckSystemMemory()
Dim freeMemory = GC.GetTotalMemory(False)
_metrics.Measure.Gauge.SetValue(MetricsRegistry.FreeMemory, freeMemory)
End Sub
このゲージは、アプリケーションで利用可能なメモリの空き容量を測定し、メモリ消費のパターンを把握するのに役立ちます。
AppMetricsは、指定された間隔でメトリクス収集を処理するように構成できます。 これにより、データを頻繁に記録せずにパフォーマンスを維持するのに役立ちます。
public void ConfigureScheduledReporting(IApplicationBuilder app)
{
var metrics = app.ApplicationServices.GetService<IMetricsRoot>();
var scheduler = new AppMetricsTaskScheduler(
TimeSpan.FromSeconds(60),
async () =>
{
await Task.WhenAll(metrics.ReportRunner.RunAllAsync()); // await task
});
scheduler.Start();
}
public void ConfigureScheduledReporting(IApplicationBuilder app)
{
var metrics = app.ApplicationServices.GetService<IMetricsRoot>();
var scheduler = new AppMetricsTaskScheduler(
TimeSpan.FromSeconds(60),
async () =>
{
await Task.WhenAll(metrics.ReportRunner.RunAllAsync()); // await task
});
scheduler.Start();
}
Public Sub ConfigureScheduledReporting(ByVal app As IApplicationBuilder)
Dim metrics = app.ApplicationServices.GetService(Of IMetricsRoot)()
Dim scheduler = New AppMetricsTaskScheduler(TimeSpan.FromSeconds(60), Async Sub()
Await Task.WhenAll(metrics.ReportRunner.RunAllAsync()) ' await task
End Sub)
scheduler.Start()
End Sub
この設定では、メトリクスが60秒ごとに報告されるようになり、システムが連続的なデータロギングで圧倒されることなく、一貫したパフォーマンス監視が保証されます。
C#アプリケーションでメトリクスおよびPDF生成を操作する際、AppMetrics C#とIronPDFを組み合わせると非常に有効です。 この統合により、メトリクスデータから直接PDF形式のレポートを生成することができます。これは、パフォーマンスレビュー、クライアントプレゼンテーション、または内部監査に非常に役立ちます。
IronPDFは、開発者がC#を使用してPDF文書を作成、読み取り、および編集できる包括的なライブラリです。 IronPDFが際立っている点は、その能力です。IronPDFでHTMLをPDFに変換するウェブベースのレポート生成に特に価値があります。 この機能は、レポートの視覚的な側面が保存され、ウェブから印刷形式まで高い忠実度を提供することを保証します。
ステークホルダーにアプリケーションの月次パフォーマンスレポートを提供する必要があるシナリオを考えてみてください。 これらのレポートには、応答時間、エラー率、ユーザーセッションなどの指標が含まれます。 オープンソースのAppMetrics C#を使用すると、これらのメトリクスをシームレスにキャプチャできます。 この機能をIronPDFと統合することで、これらの指標を自動的に生成し、きれいにフォーマットされたPDFドキュメントで配布することができます。
以下は、これを実装するための完全な例です。 この例では、プロジェクトにIronPDFとAppMetrics C#の両方が既にセットアップされていることを前提としています。
using App.Metrics;
using App.Metrics.Formatters.Prometheus;
using IronPdf;
public class MetricsToPdfConverter
{
private readonly IMetricsRoot _metrics;
public MetricsToPdfConverter(IMetricsRoot metrics)
{
_metrics = metrics;
}
public void GeneratePdfReport(string outputPath)
{
// Step 1: Capture the metrics snapshot
var metricsData = _metrics.Snapshot.Get();
var formatter = new MetricsPrometheusTextOutputFormatter();
using var stream = new MemoryStream();
formatter.WriteAsync(stream, metricsData).Wait();
// Step 2: Convert the metrics snapshot to string format
stream.Position = 0;
var reader = new StreamReader(stream);
var metricsText = reader.ReadToEnd();
// Step 3: Use IronPDF to convert the metrics text to a PDF document
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1> Metrics Report </h1> <pre>" + metricsText + "</pre>");
// Step 4: Save the PDF document
pdf.SaveAs(outputPath);
}
}
// Usage
var metrics = new MetricsBuilder().Build();
var pdfConverter = new MetricsToPdfConverter(metrics);
pdfConverter.GeneratePdfReport("MonthlyPerformanceReport.pdf");
using App.Metrics;
using App.Metrics.Formatters.Prometheus;
using IronPdf;
public class MetricsToPdfConverter
{
private readonly IMetricsRoot _metrics;
public MetricsToPdfConverter(IMetricsRoot metrics)
{
_metrics = metrics;
}
public void GeneratePdfReport(string outputPath)
{
// Step 1: Capture the metrics snapshot
var metricsData = _metrics.Snapshot.Get();
var formatter = new MetricsPrometheusTextOutputFormatter();
using var stream = new MemoryStream();
formatter.WriteAsync(stream, metricsData).Wait();
// Step 2: Convert the metrics snapshot to string format
stream.Position = 0;
var reader = new StreamReader(stream);
var metricsText = reader.ReadToEnd();
// Step 3: Use IronPDF to convert the metrics text to a PDF document
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1> Metrics Report </h1> <pre>" + metricsText + "</pre>");
// Step 4: Save the PDF document
pdf.SaveAs(outputPath);
}
}
// Usage
var metrics = new MetricsBuilder().Build();
var pdfConverter = new MetricsToPdfConverter(metrics);
pdfConverter.GeneratePdfReport("MonthlyPerformanceReport.pdf");
Imports App.Metrics
Imports App.Metrics.Formatters.Prometheus
Imports IronPdf
Public Class MetricsToPdfConverter
Private ReadOnly _metrics As IMetricsRoot
Public Sub New(ByVal metrics As IMetricsRoot)
_metrics = metrics
End Sub
Public Sub GeneratePdfReport(ByVal outputPath As String)
' Step 1: Capture the metrics snapshot
Dim metricsData = _metrics.Snapshot.Get()
Dim formatter = New MetricsPrometheusTextOutputFormatter()
Dim stream = New MemoryStream()
formatter.WriteAsync(stream, metricsData).Wait()
' Step 2: Convert the metrics snapshot to string format
stream.Position = 0
Dim reader = New StreamReader(stream)
Dim metricsText = reader.ReadToEnd()
' Step 3: Use IronPDF to convert the metrics text to a PDF document
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1> Metrics Report </h1> <pre>" & metricsText & "</pre>")
' Step 4: Save the PDF document
pdf.SaveAs(outputPath)
End Sub
End Class
' Usage
Private metrics = (New MetricsBuilder()).Build()
Private pdfConverter = New MetricsToPdfConverter(metrics)
pdfConverter.GeneratePdfReport("MonthlyPerformanceReport.pdf")
この統合により、レポート生成のプロセスが自動化されるだけでなく、レポートが読みやすく、専門的にフォーマットされるため、ステークホルダーミーティングやアーカイブの用途に最適です。
要約すると、AppMetrics C#とIronPDFを.NETプロジェクトに組み合わせることで、アプリケーション性能の監視と高品質なPDFレポートの生成の両方に対応する強力なソリューションを提供します。 この統合により、AppMetrics で詳細なパフォーマンスデータをキャプチャし、それを IronPDF を使用して明瞭でプロフェッショナルな形式で提示することがシームレスに可能になります。
IronPDFは、アプリケーション内でPDFファイルを処理しようとするC#開発者にとって特に有益です。 それはPDFドキュメントの作成および操作を簡素化し、HTMLを直接PDFに変換する独自の機能を提供します。 IronPDFをプロジェクトに組み込むことを検討している場合、提供していますIronPDFの無料トライアルはじめに、ライセンスは$749から始まり、コスト効果の高い方法でドキュメント処理機能を強化することができます。
9つの .NET API製品 オフィス文書用