SqlCommandMonitor 1.0.8

Sql Command Monitor

SqlCommandMonitor je NuGet balíček pro snadné sledování a logování všech SQL příkazů (DbCommand) prováděných v aplikacích ASP.NET Core s Entity Framework Core.
Umožňuje zachytávat prováděné SQL příkazy, dobu jejich trvání, počet ovlivněných řádků a související informace o HTTP requestu a volající metodě.

Funkce

  • Zachycení SQL příkazů pro všechny typy DbContext.
  • Logování:
    • Časové razítko (Timestamp)
    • SQL příkaz (SqlCommand)
    • Počet ovlivněných řádků (AffectedRows)
    • Doba vykonání v ms (DurationMs)
    • Request ID (RequestId)
    • HTTP route (HttpRoute) - HTTP metoda + cesta
    • Volající metoda (CallingMethod)
    • Zdrojový soubor:řádek (SourceFileLine)
  • Podpora více DbContextů současně.
  • Middleware pro asociaci SQL příkazů s HTTP requesty.
  • Jednoduchá registrace do DI kontejneru.

Instalace

dotnet add package SqlCommandMonitor

Registrace

builder.Services.AddSqlCommandMonitor(builder.Configuration);

Implementace

builder.Services.AddDbContext<AppDbContext>((sp, options) =>
{    
    options.UseSqlServer(builder.Configuration.GetConnectionString("default"), opts =>
    {
        opts.MigrationsHistoryTable("MigrationHistory_App");
    });

    options.ApplySqlCommandMonitorInterceptor(sp);
});

Přidání middleware do pipeline

Middleware by měl být registrován po middlewarech, které mohou spouštět SQL příkazy (např. endpoint), aby bylo možné správně asociovat SQL příkazy s HTTP requestem:

app.UseSqlCommandMonitor();

Konfigurace

Možnosti monitorování SQL příkazů lze nakonfigurovat pomocí SqlCommandMonitorOptions při registraci služby.

{
  "SqlCommandMonitorOptions": {
    "Enabled": true,
    "MaxBufferSize": 1000,
    "MinimumLogLevel": "Warning",
    "WarningThresholdMs": 50    
  }
}
  • Enabled – zapnutí / vypnutí monitorování
  • MaxBufferSize – maximální počet uložených záznamů
  • MinimumLogLevel – minimální úroveň logování
  • WarningThresholdMs – prahová hodnota v milisekundách pro logování SQL příkazů jako Warning (příkazy s kratší dobou trvání jsou logovány jako Information)

Pokud není konfigurace uvedena v appsettings.json, použijí se následující výchozí hodnoty:

  • Enabled – true
  • MaxBufferSize – 1000
  • MinimumLogLevel – Information
  • WarningThresholdMs – 50

Tok zpracování SQL příkazů

DbCommandMonitorInterceptor
        │
        ▼
     MonitorData
        │
        ├──► MonitorDataBuffer.Add(...)  (vždy → nejstarší záznamy jsou zahazovány dle MaxBufferSize)
        │                                
        │
        └──► MonitorDataLogger.Log(...)  (filtrováno → MinimumLogLevel, WarningThresholdMs)   
  • Každý zachycený SQL příkaz je vždy přidán do bufferu.

  • Při překročení MaxBufferSize jsou automaticky odstraněny nejstarší záznamy.

  • Filtrace se aplikuje výhradně na logování.

Showing the top 20 packages that depend on SqlCommandMonitor.

Packages Downloads
SqlCommandMonitor.Dashboard
Dashboard pro monitorování SQL příkazů v reálném čase.
57
SqlCommandMonitor.Dashboard
Dashboard pro monitorování SQL příkazů v reálném čase.
13
SqlCommandMonitor.Dashboard
Dashboard pro monitorování SQL příkazů v reálném čase.
12
SqlCommandMonitor.Dashboard
Dashboard pro monitorování SQL příkazů v reálném čase.
11
SqlCommandMonitor.Dashboard
Dashboard pro monitorování SQL příkazů v reálném čase.
10
SqlCommandMonitor.Dashboard
Dashboard pro monitorování SQL příkazů v reálném čase.
7

Version Downloads Last updated
1.0.8 1 08/23/2026
1.0.7 6 03/08/2026
1.0.6 4 03/08/2026
1.0.5 16 02/27/2026
1.0.4 5 02/25/2026
1.0.3 6 02/25/2026
1.0.2 5 02/25/2026
1.0.1 5 02/25/2026