One reviewable file per rule id with a Danish header: what and why, thresholds with config keys and defaults, severity, required rights (never local administrator), supported versions, collector file and member, and the evaluation in plain Danish. The Windows rules use no SQL: their exact CIM/WQL queries, event log XPath and a read-only PowerShell snippet to verify them are in a comment block. SQLI-SYN-001/002 carry the exact SQL a SQL check runs (session settings, transaction that is always rolled back, SELECT 1). A test checks every server and check rule has its file. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
48 lines
1.9 KiB
Transact-SQL
48 lines
1.9 KiB
Transact-SQL
/*
|
||
SQLI-SYN-002 – Et syntetisk tjek svarer langsomt
|
||
=================================================
|
||
|
||
Hvad og hvorfor
|
||
Tjekket lykkes, men svaret har de seneste gange taget længere end tjekkets grænse. Brugerne oplever det som en langsom
|
||
applikation, længe før den holder op med at svare.
|
||
|
||
Tærskler (agentens appsettings.json og tjekkets indstillinger)
|
||
Pr. tjek: "Langsomt svar over (ms)" (insight.SyntheticChecks.SettingsJson: warnMilliseconds). Uden grænse: "ikke relevant".
|
||
SQLInsight:SyntheticChecks:SlowRunsBeforeFinding standard 3 (langsomme svar i træk før et fund)
|
||
|
||
Alvor
|
||
Middel.
|
||
|
||
Rettigheder
|
||
Som SQLI-SYN-001.
|
||
|
||
Understøttede versioner
|
||
Som SQLI-SYN-001.
|
||
|
||
Collector
|
||
src/SQLInsight.Servers/Synthetic/SyntheticCheckRunner.cs – SyntheticCheckRunner.RunAsync (DurationMs: hele tjekket, for
|
||
SQL login + forespørgsel), fra src/SQLInsight.Agent/Servers/SyntheticCheckService.cs – RunCheckAsync.
|
||
Regel
|
||
src/SQLInsight.Rules/Servers/SyntheticCheckRules.cs – SyntheticCheckSlowRule
|
||
|
||
Evaluering
|
||
Er de seneste SlowRunsBeforeFinding kørsler alle lykkedes og alle langsommere end grænsen, er det et fund.
|
||
|
||
SQL: Et SQL-tjek kører præcis det samme som i SQLI-SYN-001 (svartiden er login plus forespørgsel):
|
||
*/
|
||
|
||
-- Variant: SQL-tjek med standardforespørgslen (alle versioner fra SQL Server 2005)
|
||
SET LOCK_TIMEOUT 5000; SET DEADLOCK_PRIORITY LOW; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||
GO
|
||
BEGIN TRANSACTION;
|
||
GO
|
||
SELECT 1
|
||
GO
|
||
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION;
|
||
GO
|
||
|
||
/*
|
||
Ikke-SQL-tjek, efterprøv svartiden med PowerShell (skrivebeskyttet):
|
||
Measure-Command { Invoke-WebRequest -Uri https://ep.firma.local/ -UseDefaultCredentials -UseBasicParsing } | Select-Object TotalMilliseconds
|
||
Measure-Command { Test-NetConnection -ComputerName aos01 -Port 2712 } | Select-Object TotalMilliseconds
|
||
*/
|