No description
  • TSQL 96.5%
  • PowerShell 2.5%
  • HTML 0.7%
Find a file
2026-04-23 12:53:54 -04:00
Config SQLServeMonitor v3.0 2026-04-23 12:53:54 -04:00
docs SQLServeMonitor v3.0 2026-04-23 12:53:54 -04:00
ExternalTools SQLServerMonitor v1.1 2026-04-20 17:58:00 -04:00
Modules SQLServeMonitor v3.0 2026-04-23 12:53:54 -04:00
SqlScripts SQLServeMonitor v3.0 2026-04-23 12:53:54 -04:00
tests SQLServeMonitor v3.0 2026-04-23 12:53:54 -04:00
.gitignore SQLServerMonitor v3.0 Nova 2026-04-21 00:29:07 -04:00
CHANGELOG.md SQLServeMonitor v3.0 2026-04-23 12:53:54 -04:00
Invoke-SqlMonitorCheckServer.ps1 SQLServeMonitor v3.0 2026-04-23 12:53:54 -04:00
README.md SQLServeMonitor v3.0 2026-04-23 12:53:54 -04:00
SqlAgentJob-CheckServer.template.sql SQLServerMonitor v3.0 Nova 2026-04-21 00:29:07 -04:00
Start-SqlMonitorConfigManager.ps1 SQLServerMonitor v3.1 2026-04-21 00:47:59 -04:00
Start-SqlScriptConsole.ps1 SQLServeMonitor v3.0 2026-04-23 12:53:54 -04:00

SQLServerMonitor

SQLServerMonitor es una plataforma PowerShell para observabilidad DBA, ejecucion de checks y reporteria sobre SQL Server, Azure SQL Database y Azure SQL Managed Instance.

La entrega 3.2.0 consolida el core del proyecto alrededor de un motor unico de ejecucion, contrato normalizado de resultados, historico basico por corrida, baseline/delta inicial y una base real de checks read-only para operacion DBA.

Que trae esta version

  • engine unico para ValidateConfig y RunChecks
  • configuracion separada y versionada:
    • sqlmonitor.local.json
    • servers.local.json
    • mail.local.json
    • checks.manifest.json
  • contrato comun de resultados para JSON, HTML, auditoria y notificacion
  • reporte HTML consolidado por run y por target
  • auditoria JSON Lines y resumen historico por corrida
  • comparacion baseline/delta contra la corrida anterior del mismo perfil
  • filtros de compatibilidad por plataforma y version
  • checks DBA read-only iniciales:
    • BackupFreshness
    • JobFailures
    • BlockingSnapshot
    • TempDbUsage
    • TopWaits

Estructura

Config/                  Configuracion principal, servidores, correo y manifest
Modules/                 Core PowerShell de la plataforma
SqlScripts/              Biblioteca DBA organizada por area
docs/                    Arquitectura, configuracion y operacion
tests/                   Pruebas Pester
Logs/                    Auditoria JSON Lines
Output/                  JSON, resumen historico y reportes HTML
ExternalTools/           Espacio reservado para integraciones futuras

Flujo de ejecucion

  1. Invoke-SqlMonitor carga y valida configuracion.
  2. Resuelve targets y checks del perfil.
  3. Detecta plataforma/version del target.
  4. Filtra checks incompatibles.
  5. Ejecuta el provider SQL y normaliza resultados.
  6. Calcula baseline/delta contra la corrida anterior.
  7. Genera JSON, resumen historico, auditoria JSONL y HTML consolidado.
  8. Envia correo si corresponde.

Contrato de resultados

Cada check devuelve un objeto normalizado con estos campos:

RunId
Profile
CheckId
CheckName
ScriptName
Area
Target
Platform
Status
Severity
StartedAt
FinishedAt
DurationMs
Summary
Findings[]
Metrics[]
Errors[]
Output
RecommendedActions[]
Delta
Source

Severidades:

  • Info
  • Warning
  • Critical
  • TechnicalFailure

Estados:

  • Passed
  • Warning
  • Critical
  • TechnicalFailure
  • Skipped

Configuracion

Archivo principal

.\Config\sqlmonitor.local.json

Archivos separados

  • Servers.Path -> servers.local.json
  • Mail.Path -> mail.local.json
  • Checks.ManifestPath -> checks.manifest.json

Todos los archivos versionados usan SchemaVersion = "2.0".

Validar configuracion

Import-Module .\Modules\SqlServerMonitor.psd1 -Force
Invoke-SqlMonitor -ConfigPath .\Config\sqlmonitor.local.json -Action ValidateConfig

Ejecucion

Ejecutar perfil CoreHealth

Import-Module .\Modules\SqlServerMonitor.psd1 -Force
Invoke-SqlMonitor -ConfigPath .\Config\sqlmonitor.local.json -Action RunChecks -Profile CoreHealth

Consola interactiva

.\Start-SqlScriptConsole.ps1 -ConfigPath .\Config\sqlmonitor.local.json

SQL Server Agent

.\Invoke-SqlMonitorCheckServer.ps1 -ConfigPath .\Config\sqlmonitor.local.json -SendMail -FailOnScriptError

Todo .sql agregado a SqlScripts\CheckServer entra automaticamente al flujo del perfil CheckServer.

Output y auditoria

Por defecto la plataforma genera:

  • Output\Runs\*.json
  • Output\History\*.summary.json
  • Output\Reports\*.html
  • Logs\Audit\sqlmonitor.audit.jsonl

El baseline/delta compara cada Target + CheckId contra la corrida anterior del mismo perfil.

Correo

La configuracion SMTP vive en mail.local.json.

Comportamiento actual:

  • subject segun severidad maxima del run
  • opcion SendOnlyOnAlert
  • HTML consolidado en el cuerpo
  • adjuntos: reporte HTML y JSON del run
  • errores SMTP devueltos al resultado de mail

Extensibilidad

El core ya queda separado para crecer mediante:

  • providers
  • manifests
  • adapters
  • contracts

Eso deja el camino preparado para integrar checks externos o repositorios especializados como SQL.Check sin mezclar el core con logica externa.

Pruebas

Invoke-Pester -Path .\tests

Cobertura inicial:

  • config loading
  • contract de resultados
  • compatibility filtering
  • render HTML

Documentacion adicional