Prometheusは、CNCFが卒業した2番目のプロジェクトで、スター製品です(Prometheusの機能については、自身で調べることができます)。asp.net coreはもちろん、それに合わせて使用することを見逃すことはできません。.netでは、prometheus.net【https://github.com/prometheus-net/prometheus-net】を通じて導入されます。
上図はPrometheusを使用した監視構造図で、Prometheusはデフォルトでプル方式を採用しており、アプリケーションサービスからmetricsデータを引き抜いて、Grafanaが表示用に提供することができるようにします。以下は一例を通して説明します。
- Prometheusのダウンロード【https://prometheus.io/download/】
prometheus.ymlは設定ファイルで、プルモードを採用しているため、設定ファイル内でアプリケーションサービスのurl http://localhost:5000を設定する必要があります。
prometheus.exeをダブルクリックして起動できます。 - Grafanaのダウンロード【https://grafana.com/grafana/download?platform=windows】
grafana-server.exeを起動します。
アクセス:http://localhost:3000/
ユーザー名パスワードデフォルト:username:admin, password:admin
これからGrafanaの設定を始めます:
a. データソースの設定
b. 監視パネルの設定
- asp.net core 5.0のAPIプロジェクトを作成し、nugetパッケージprometheus-net.AspNetCoreを導入します。同時に、Startup.csのconfigureにPrometheusのミドルウェアを追加します:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "PrometheusSimpal v1"));
}
app.UseRouting();
// HTTPリクエストのミドルウェア
app.UseHttpMetrics();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
// 監視アドレスを /metrics にマッピング
endpoints.MapMetrics();
endpoints.MapControllers();
});
}
サービスの開始:http://localhost:5000
この例では、grafanaテンプレート10915を使用してデータを表示しており、表示される情報はリクエストとコントローラーの追跡情報だけですが、完全に収集するには固定ミドルウェアを使用することができます。ビジネス面での情報トラッキング表示が必要な場合は、開発者が自身のビジネスロジックに応じて表示する必要があります。
(Translated by GPT)