Skip to content

Health Checks

GitHub Action edited this page Jun 28, 2026 · 3 revisions

Health Checks

This page lists every check SPSWeather runs against each farm in scope, what it reports, and the ExclusionRules key that disables it (see Configuration → ExclusionRules).

SharePoint checks

Check Reports ExclusionRules key
SharePoint version Build/version of each SharePoint server (always)
Servers The SharePoint servers of the farm (always)
Upgrade status Whether a configuration upgrade action is required (always)
Health Analyzer Failing Health Analyzer rules surfaced in Central Administration HealthStatus
Trust farm API HTTP status of the trusted-farm REST API APIHttpStatus
Site collections HTTP status of the monitored site collections SPSiteHttpStatus
Failed timer jobs Timer-job failures over a lookback window, with a failure-ratio threshold FailedTimerJob
Solutions (WSP) Farm solution deployment status WSPStatus
Content databases Status and size of each content database (always)
User Profile audiences Audience compilation status (always)

Search checks

Check Reports ExclusionRules key
Crawl status Last crawl status per content source (always)
Crawl logs Crawl log error/warning counts (always)
Search topology State of the search topology components (always)

System / IIS checks

Check Reports ExclusionRules key
Distributed Cache AppFabric / Distributed Cache instance status (always)
IIS application pools State of the IIS application pools (always)
IIS worker processes w3wp.exe resource usage IISW3WPStatus
IIS site certificates TLS certificate validity/expiry per IIS site (always)
Last reboot Last reboot time of each server (always)
.NET version Installed .NET Framework version (always)
Application event errors Recent errors in the Windows Application event log EvtViewerStatus
Disk usage Drive size and free space (always)

SQL Server checks

SQL data is collected from a SharePoint server with dependency-free ADO.NET (System.Data.SqlClient — no SqlServer module needed). The SQL servers are discovered from Get-SPDatabase, so checks follow the farm's own databases. The service account needs VIEW SERVER STATE and read access to master/msdb. An unreachable instance produces a single red row instead of failing the run.

Check Reports ExclusionRules key
Instances Edition/version/build, MAXDOP (advisory if ≠ 1), max server memory, TempDB file count vs CPUs SQLInstanceStatus
Databases State, recovery model, data/log size, last full backup age, compatibility level, AutoShrink/AutoClose SQLDatabaseStatus
Disk volumes Free space per volume hosting SQL files (sys.dm_os_volume_stats) SQLDiskStatus
Availability AlwaysOn AG replica sync health and recent failed SQL Agent jobs SQLAvailabilityStatus

SQL alert thresholds are configurable in the environment config: SQLDiskFreeThresholdPercent (default 15) and SQLBackupMaxAgeDays (default 3). Database offline state, a missing/old full backup, low volume free space, an unhealthy AG replica, a failed backup job, or an unreachable instance raise an alert; best-practice deviations (MAXDOP, memory, TempDB, AutoShrink/AutoClose) are shown as orange advisories without raising the global alert.

How an ALERT is raised

Every check returns rows flagged as informational or not (an internal IsInfo flag). When any collected check contains at least one non-informational (failed) row, SPSWeather:

  • tags the email subject with [ALERT] (otherwise [INFO]), and
  • raises the email priority to High, and
  • writes a Warning (event ID 2000) to the SPSWeather Event Log.

In the HTML report, failing rows use the tdfailed (red) style, below-threshold timer-job failures use tdwarning (orange), and healthy rows use tdsuccess (green).

Disabling checks

Add the corresponding key to ExclusionRules in your config to skip a check. Authorized values:

None, APIHttpStatus, SPSiteHttpStatus, EvtViewerStatus, IISW3WPStatus, HealthStatus, WSPStatus, FailedTimerJob, SQLInstanceStatus, SQLDatabaseStatus, SQLDiskStatus, SQLAvailabilityStatus.

Checks marked (always) above are not individually excludable.

See also

  • Configuration — the config.psd1 reference
  • Usage — running, scheduling, the event log and troubleshooting

Clone this wiki locally