Skip to content

Health Checks Aggregator Template — Features

This page summarizes scaffolding parameters, runtime configuration, and HTTP surface for ConnectSoft.HealthChecksAggregatorTemplate. For architecture, Docker, Kubernetes, and troubleshooting, use the template README.

See also: Overview.

Template parameters (dotnet new)

Parameter Alias Description Default
--name -n Solution and project name Required
--httpPort --http HTTP port Auto
--httpsPort --https HTTPS port Auto
--docker -d Enable Docker true
--healthcheck-path -hp Health check path /health
--healthcheck-ui -hck-ui Enable Health Checks UI true
--healthcheck-ui-path -hck-uip UI path segment health-ui
--healthcheck-ui-storage -hp-s SqlServer or InMemory SqlServer
--swagger -sw Swagger true
--scalar -sc Scalar docs true
--cors CORS true
--rate-limiting -rl Rate limiting true
--open-telemetry -o-t OpenTelemetry true
--resource-monitoring -rm Resource monitoring true
--feature-flags -f-f Feature flags true
--distributed-cache --cache Redis, InMemory, or None Redis
--build-definition-number -bdn Build metadata Optional

Core configuration (HealthCheckAggregator)

Typical Application appsettings.json section (names may vary slightly per generated solution; verify against generated files):

Setting Meaning Example default
PollingInterval How often to poll downstream 00:00:30
Timeout Per-request timeout 00:00:05
RetryCount Retries 3
RetryDelay Initial backoff 00:00:01
CacheDuration Cache results 00:00:30
Services Array of downstream definitions See README
Webhooks Alert destinations See below
ReadinessGate Gate strategy + options See below

Service entry (per README): Name, HealthCheckUrl, IsCritical, Tags (optional metadata).

Environment overrides: HealthCheckAggregator__PollingInterval, HealthCheckAggregator__ReadinessGate__Strategy, etc.

Connection strings: UI storage (ConnectionStrings:HealthCheckUI or aligned name), Redis when used — follow Configuration alignment.

Readiness gate strategies

Strategy Behavior
AllHealthy Every configured service must be healthy.
CriticalOnly Only IsCritical services must be healthy.
PercentageThreshold Requires property Threshold (e.g. 0.8 = 80% healthy).
TagBased Requires RequiredTags; those tagged services must be healthy.

Kubernetes: expose gate via GET /api/health/readiness when orchestration should follow aggregator logic (see README probe examples).

Webhooks

Field Purpose
Name, Url Identity and target
Events Healthy, Unhealthy, Degraded
Services Filter by service name; * for all
Tags Optional tag filter
Headers Custom headers (do not set Content-Type for Teams/Slack bodies per README note)
MaxRetries, RetryDelay Delivery resilience
PayloadTemplate, RestoredPayloadTemplate JSON templates with placeholders

Placeholders: [[LIVENESS]], [[FAILURE]], [[STATUS]], [[TIMESTAMP]].

REST API (aggregator)

Base path: /api/health (see generated OpenAPI for exact casing and auth).

Method Path Purpose
GET /api/health/aggregated Overall roll-up
GET /api/health/services All services
GET /api/health/services/{serviceName} One service
GET /api/health/tags/{tag} Filter by tag
GET /api/health/dependencies Graph JSON
GET /api/health/dependencies/dot Graphviz DOT
GET /api/health/readiness Readiness gate evaluation

Standard host endpoints

Path Typical use
/health ASP.NET health / readiness
/alive Liveness
/startup Startup probe

Health Checks UI

  • Default UI path segment: health-ui (with leading slash in URL, e.g. /health-ui).
  • Storage: SQL Server (historical) or InMemory (dev); chosen by template parameter and HealthChecksUI / connection config — confirm generated appsettings.

Observability (built-in options)

When enabled via template flags and base wiring: Serilog, OpenTelemetry, Prometheus-compatible metrics, resource monitoring. Details: template README and base-template observability docs.