在Debian上監控Swagger性能可以通過集成MiniProfiler來實現。MiniProfiler是一個輕量級的性能剖析工具,它可以實時監控代碼的執行時間,包括數據庫查詢和API請求等,并通過友好的界面呈現運行性能數據。以下是如何在.NET Core項目中集成MiniProfiler與Swagger的步驟:
Install-Package MiniProfiler.AspNetCore.Mvc -Version 4.3.8
Install-Package Swashbuckle.AspNetCore -Version 6.5.0
在Startup.cs
的ConfigureServices
方法中添加MiniProfiler服務配置:
services.AddMiniProfiler(options =>
{
options.RouteBasePath = "/profiler";
}).AddEntityFramework();
在Configure
方法中啟用MiniProfiler中間件,確保它在UseEndpoints
方法之前被調用:
app.UseMiniProfiler();
下載自定義的Swagger UI頁面(例如從GitHub上的xuke353/swaggerui項目),并將其放置在API項目的根目錄下,設置文件屬性為“嵌入的資源”。修改Startup.cs
中的UseSwaggerUI
中間件配置,使用自定義的index.html
文件:
app.UseSwaggerUI(c =>
{
c.IndexStream = () => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("YourNamespace.index.html");
c.RoutePrefix = string.Empty;
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
確保替換YourNamespace
為你的項目命名空間。
在一個控制器中添加一個方法來獲取MiniProfiler的HTML代碼片段:
[HttpGet]
public IActionResult GetCounts()
{
var html = MiniProfiler.Current.RenderIncludes(_accessor.HttpContext);
return Ok(html.Value);
}
將獲取到的HTML代碼片段粘貼到自定義的Swagger UI的index.html
文件的頂部。
通過以上步驟,你可以在Swagger文檔頁面的左上角看到MiniProfiler的面板,該面板將實時展示各種性能數據,如接口響應時間和數據庫查詢耗時等。這些信息不僅對開發者有利,還有助于團隊進行系統的性能優化和故障排查,確保應用的高可用性。