SqlCommandMonitor 1.0.34

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.
  • Endpoint pro získání statistik SQL příkazů v JSON formátu.
  • Jednoduchá registrace do DI kontejneru.

Instalace

dotnet add package SqlCommandMonitor

Registrace

Pro jeden DbContext:

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

Pro jeden DbContext s přístupem k IServiceProvider:

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

Pro více DbContextů současně:

builder.Services.AddSqlCommandMonitor(
    (sp, options) =>
    {
        options.UseSqlServer(builder.Configuration.GetConnectionString("Default"), opts =>
        {
            opts.MigrationsHistoryTable("MigrationHistory_App");
        });
    },
    builder.Configuration,
    UseDbContext<AppDbContext>(),
    UseDbContext<AuditDbContext>(),
    UseDbContext<LogDbContext>()
);

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 routing a EF Core), a před middlewarem, který generuje odpověď, 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": 1_000,
    "MinimumLogLevel": "Information"
  }
}

Endpoint pro získání statistik SQL příkazů

Pro získání statistik SQL příkazů je k dispozici endpoint /sql-command-stats, který vrací data ve formátu JSON.

Příklad statistik SQL příkazů

[
  {
    "Timestamp": "2026-01-06T14:22:10.123Z",
    "RequestId": "26bf23be-105e-427a-a87a-66ac4c6cb24c",
    "HttpRoute": "GET /api/notes/{id}",
    "CallingMethod": "GetNoteById",
    "SourceFileLine": "NoteRepository.cs:45",
    "AffectedRows": 1,
    "DurationMs": 12,
    "SqlCommand": "SELECT [n].[Id], [n].[Title], [n].[Content] FROM [Notes] AS [n] WHERE [n].[Id] = @__id_0"
  },
  {
    "Timestamp": "2026-01-06T14:22:18.456Z",
    "RequestId": "ea6f450c-20d5-474c-9690-cc6f91547e87",
    "HttpRoute": "PUT /api/notes/{id}",
    "CallingMethod": "UpdateNote",
    "SourceFileLine": "NoteRepository.cs:78",
    "AffectedRows": 1,
    "DurationMs": 8,
    "SqlCommand": "UPDATE [Notes] SET [Title] = @p0, [Content] = @p1 WHERE [Id] = @p2"
  }
]

No packages depend on SqlCommandMonitor.

Version Downloads Last updated
1.0.128 1 01/24/2026
1.0.127 1 01/24/2026
1.0.126 1 01/24/2026
1.0.125 1 01/24/2026
1.0.124 1 01/24/2026
1.0.123 0 01/24/2026
1.0.122 0 01/24/2026
1.0.121 1 01/24/2026
1.0.120 1 01/24/2026
1.0.119 1 01/24/2026
1.0.118 1 01/24/2026
1.0.117 1 01/24/2026
1.0.116 2 01/24/2026
1.0.115 1 01/24/2026
1.0.114 1 01/24/2026
1.0.113 0 01/24/2026
1.0.112 1 01/24/2026
1.0.111 1 01/24/2026
1.0.110 1 01/24/2026
1.0.109 1 01/24/2026
1.0.108 1 01/24/2026
1.0.107 0 01/24/2026
1.0.106 0 01/24/2026
1.0.104 1 01/24/2026
1.0.103 0 01/24/2026
1.0.102 1 01/24/2026
1.0.101 0 01/24/2026
1.0.99 1 01/24/2026
1.0.98 1 01/24/2026
1.0.97 0 01/24/2026
1.0.96 1 01/24/2026
1.0.95 1 01/24/2026
1.0.94 1 01/24/2026
1.0.93 0 01/24/2026
1.0.92 1 01/23/2026
1.0.91 1 01/23/2026
1.0.90 1 01/23/2026
1.0.89 1 01/23/2026
1.0.88 1 01/23/2026
1.0.87 1 01/23/2026
1.0.86 1 01/23/2026
1.0.85 0 01/23/2026
1.0.84 1 01/23/2026
1.0.83 0 01/23/2026
1.0.82 1 01/14/2026
1.0.81 1 01/13/2026
1.0.80 1 01/13/2026
1.0.79 0 01/13/2026
1.0.78 1 01/13/2026
1.0.77 1 01/13/2026
1.0.76 1 01/13/2026
1.0.75 1 01/13/2026
1.0.74 1 01/13/2026
1.0.73 1 01/13/2026
1.0.72 1 01/13/2026
1.0.71 1 01/13/2026
1.0.70 1 01/13/2026
1.0.69 1 01/11/2026
1.0.68 1 01/11/2026
1.0.67 1 01/11/2026
1.0.66 1 01/11/2026
1.0.65 1 01/11/2026
1.0.64 1 01/11/2026
1.0.63 1 01/11/2026
1.0.62 1 01/11/2026
1.0.61 1 01/11/2026
1.0.60 1 01/11/2026
1.0.59 1 01/11/2026
1.0.58 1 01/11/2026
1.0.57 1 01/11/2026
1.0.56 1 01/11/2026
1.0.55 1 01/11/2026
1.0.54 1 01/11/2026
1.0.53 1 01/11/2026
1.0.52 1 01/11/2026
1.0.51 1 01/11/2026
1.0.50 1 01/11/2026
1.0.49 1 01/11/2026
1.0.48 1 01/11/2026
1.0.47 2 01/11/2026
1.0.46 1 01/11/2026
1.0.45 2 01/10/2026
1.0.44 1 01/10/2026
1.0.43 0 01/10/2026
1.0.42 2 01/10/2026
1.0.41 1 01/10/2026
1.0.40 1 01/10/2026
1.0.39 1 01/10/2026
1.0.38 1 01/10/2026
1.0.37 1 01/10/2026
1.0.35 1 01/10/2026
1.0.34 1 01/10/2026
1.0.33 1 01/10/2026
1.0.32 0 01/10/2026
1.0.31 1 01/09/2026
1.0.30 1 01/09/2026
1.0.29 1 01/09/2026
1.0.28 1 01/09/2026
1.0.27 0 01/09/2026
1.0.26 1 01/09/2026
1.0.25 1 01/09/2026
1.0.24 1 01/09/2026
1.0.23 1 01/09/2026
1.0.22 1 01/09/2026
1.0.21 1 01/09/2026
1.0.20 1 01/08/2026
1.0.19 1 01/08/2026
1.0.18 1 01/08/2026
1.0.17 1 01/08/2026
1.0.16 1 01/08/2026
1.0.15 1 01/08/2026
1.0.14 1 01/08/2026
1.0.13 1 01/08/2026
1.0.12 1 01/08/2026
1.0.11 1 01/08/2026
1.0.10 1 01/08/2026
1.0.9 1 01/08/2026
1.0.8 1 01/07/2026
1.0.7 1 01/07/2026
1.0.6 1 01/06/2026
1.0.5 1 01/06/2026
1.0.4 1 01/06/2026
1.0.3 1 01/06/2026
1.0.2 1 01/06/2026
1.0.1 0 01/06/2026