/* 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 */