MiniAPI（二十七）：Metrics

アプリケーションの各種Metricsは、アプリケーションの健康と安定な運行を保証する基礎であり、特に可用性が求められるアプリケーションにとっては重要です。本記事では、prometheus-netというサードパーティのライブラリを紹介します。
prometheus-netの動作原理は、アプリケーション内に計測ポイントを埋め込み、prometheusを通じてデータを収集し、grafanaを使って収集したデータを表示することです。そこでまず、prometheusとgrafanaをダウンロードする必要があります。デモのため、ここでは両アプリケーションのWindows版をダウンロードします。ダウンロード先は以下の通りです：
Prometheusのダウンロード先：
https://prometheus.io/download/
Grafanaのダウンロード先：
https://grafana.com/grafana/download?platform=windows
次に、miniapiプロジェクトを作成し、NuGetパッケージをインストールします：
```
Install-Package prometheus-net.AspNetCore
```
miniapiプロジェクトでprometheusのデフォルト指標を使用することは非常に簡単です。以下のようにします：
```
using Prometheus;
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/test", () => {
    return "OK";
});
app.MapMetrics();
app.UseHttpMetrics();
app.Run();
```
アプリケーションのURLをprometheusの設定ファイル(prometheus.yml)に設定する必要があります。以下の画像のようにします：
![alt 画像](https://mmbiz.qpic.cn/mmbiz_png/4CAA63nvHRB3uP5I0kxZ19jbxLChwgMBTuDdlEbjzn33gexfxuiaWOHVBlyJwNuRThr8icKbjIR9M8IMb62jJkWQ/640?wx_fmt=png)
これで、prometheusの設定が完了し、起動することができます。
次に、Grafanaの設定を行います。まずデータソースを作成します：
![alt 画像](https://mmbiz.qpic.cn/mmbiz_png/4CAA63nvHRB3uP5I0kxZ19jbxLChwgMBCjlPFickMxVjibUs6ROUm0muupPNCth7P3ZoAO2KGyzRgjWnRJuQicWLQ/640?wx_fmt=png)
次に、2つのダッシュボード10195と10427を作成します：
![alt 画像](https://mmbiz.qpic.cn/mmbiz_png/4CAA63nvHRB3uP5I0kxZ19jbxLChwgMBOsvvULpgP6bRzKCjGsZna7WyNm6Ibfia2G9McojOZlN7VDcX9KQ2vmQ/640?wx_fmt=png)
これでアプリケーションにアクセスできるようになり、両方のダッシュボードを開いて、監視指標を見ることができます。
ASP.NET Core指示
![alt 画像](https://mmbiz.qpic.cn/mmbiz_png/4CAA63nvHRB3uP5I0kxZ19jbxLChwgMBNJ5c3Bf94XMYrghBnW37icSSdbdUcb61zXBWicibII14kcRLiclYAjlNQw/640?wx_fmt=png)
アプリケーションシステム指標
![alt 画像](https://mmbiz.qpic.cn/mmbiz_png/4CAA63nvHRB3uP5I0kxZ19jbxLChwgMBHr1ZLvR0VqEG61ib9JS04XEnFzJBmDLyg6rXwWrSmahvWVUMibg0qNrg/640?wx_fmt=png)
本記事では、miniapiがprometheusを導入し、prometheusとgrafanaとの連携について簡単に説明しました。すべての指標はデフォルトのものであり、ビジネス指標が必要な場合は、以下のシリーズを参照してください：
[ASP.NET Core監視- Prometheusの導入（その1）](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247483728&idx=1&sn=c749f6b03fabf545bf7f6594d4a3afe6&chksm=9f005e7aa877d76c831b63fc354e3150928ec846aff0842277aedbd08a9002eee22f9175f289&token=418912929&lang=zh_CN#rd)
[ASP.NET Core監視- Prometheusの導入（その2）](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247483736&idx=1&sn=17991dc1b562efdd5b6894711fc41fd8&chksm=9f005e72a877d764fde5ae57cf32bf6f6782c361bb7dfbad0529b94185e7ee3b8a36cfac76de&token=418912929&lang=zh_CN#rd)
[ASP.NET Core監視- Prometheusの導入（その3）](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247483743&idx=1&sn=79674ab209c5856825a3947e32d425e0&chksm=9f005e75a877d7639f1e4e76015c6bb9778e034e96da7c09887a28b9da1c44f65d1fc581f1ad&token=418912929&lang=zh_CN#rd)
[ASP.NET Core監視- Prometheusの導入（その4）](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247483755&idx=1&sn=f7765dcb3f8011e1d5ebbe3470a7d0ac&chksm=9f005e41a877d757d8c9a018525fc39f541edd01ac3ad325f75471a5d52d2662c3b7679370f7&token=418912929&lang=zh_CN#rd)
[ASP.NET Core監視- Prometheusの導入（その5）](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247483788&idx=1&sn=8ab37dbe649bcc095efa6d44792e3d36&chksm=9f005ea6a877d7b0f33cae6063405b6eac812c713a659522f974ddd5c3cabfacdc770ccbd6a0&token=418912929&lang=zh_CN#rd)
[ASP.NET Core監視- Prometheusの導入（その6）](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247483789&idx=1&sn=a2cb5bf097f1804fd980652042e42fc5&chksm=9f005ea7a877d7b102f6cbdb46a7ab272bbf9ae1a2fe6ae3bde93a707400bc2d8f9f23b68516&token=418912929&lang=zh_CN#rd)
デフォルト指標の詳細情報が知りたい場合は、以下のシリーズを参照してください：
[dotnetのcounter](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247484448&idx=1&sn=992a388cf7eb402c1b7cea9ae234c2ce&chksm=9f005b0aa877d21c9b6d682a2771c790468a864511d2502b6f4eda980e3a4793fbc94a99c51e&token=418912929&lang=zh_CN&scene=21#wechat_redirect)
[dotnetのcountersの説明（その1）](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247484472&idx=1&sn=4a96b9bad9e9d2c6a66610ae5d42eb90&chksm=9f005b12a877d2046f12ad48f9a139089b022d12163e8880da6c26a8234a63f7522142fffa60&token=418912929&lang=zh_CN#rd)
[dotnetのcountersの説明（その2）](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247484488&idx=1&sn=a84134fc681ed07683a6b16a916c5174&chksm=9f005b62a877d274e5cefe99a8b97446abe1750decb68ced0ad414de0954cd41117111a7ddbe&token=418912929&lang=zh_CN#rd)
[dotnetのcountersの説明（その3）](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247484489&idx=1&sn=d7dfd9792b829fe9f0a16061367b1e37&chksm=9f005b63a877d275d0c4d87b757aadd2f9aba5544920545c3d7fdce272cff785334a17491876&token=418912929&lang=zh_CN&scene=21#wechat_redirect)
[アプリ内でのmoniter](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247484490&idx=1&sn=64344726e396b9ba06738c477a81080e&chksm=9f005b60a877d276097e53e102b54991ddc06ebb386e6e6f2d5c229a0c238fa836354a6438e2&token=418912929&lang=zh_CN#rd)
[カスタムEventSource（その1）EventCounter](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247484491&idx=1&sn=b6146fa379ed6825dc34b7dd09df275d&chksm=9f005b61a877d277ba764efb6c711e80b22f89622d040f2af9428423918dccbde5ae70734c0c&token=418912929&lang=zh_CN#rd)
[カスタムEventSource（その2）PollingCounter](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247484504&idx=1&sn=0975d9633f9b4f1a34add801f82fec31&chksm=9f005b72a877d264f151f1f0c19f1aad6cb48e806ee6c23a28ff02e381615c233737d8d0a994&token=418912929&lang=zh_CN&scene=21#wechat_redirect)
[カスタムEventSource（その3）IncrementingEventCounter](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247484510&idx=1&sn=0694e67352674f1604587c0553661da3&chksm=9f005b74a877d26215d67fc62f80dd80ee315094bf7eb9dcc37283926c809af353758fc688cf&token=418912929&lang=zh_CN&scene=21#wechat_redirect)
[カスタムEventSource（その4）IncrementingPollingCounter](https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247484516&idx=1&sn=7a76531ec982f30692382a6f166ada24&chksm=9f005b4ea877d2582f33e569c60ff2959ecc143fca4bd516a609ec8056a64cdc7bd19401a59a&token=418912929&lang=zh_CN&scene=21#wechat_redirect)

(Translated by GPT)

元のリンク：https://mp.weixin.qq.com/s?__biz=MzA3NDM1MzIyMQ==&mid=2247485015&idx=1&sn=64b2e276461947675532f532e42cf753&chksm=9f00597da877d06bd653fcd2a482c5042186e3916a4871bd3bde24ed902799fdb22b5c79590a&token=732480897&lang=zh_CN&poc_token=HHXd22WjhyAybn56EkXjLpGS8I8uLJHHF81DIIB7