Configuration-First Health Checks for Modern .NET
Let’s be honest: health checks are the broccoli of .NET projects. Everyone says they have them, but nobody’s excited to eat their greens. What starts as a humble SELECT 1 in a try/catch quickly explodes into a wild jungle of scripts, copy-pasted connection strings, and endpoints that only half the team remembers. Sure, it works—until it doesn’t. And when it breaks, it’s never at a good time.
When the inevitable outage hits, those scattered checks turn into static. Suddenly, your monitoring is just more noise, and ops are left chasing ghosts instead of fixing the real issue. That’s when it hits you: our health checks are stuck in the past, while the rest of our stack has moved on.
That’s where NetEvolve.HealthChecks storms in. Forget boring wrappers and boilerplate. This is a full-blown ecosystem—modular, lightning-fast, and built for the way you actually run software today. Configuration lives where it belongs: outside your code, right alongside the rest of your DevOps magic.
No more copy-paste chaos. Define your checks once, give them names that make sense, and tweak their behavior on the fly. It’s clean, it’s safe, and—best of all—it grows with you. Your health checks finally become as agile as your infrastructure.
Why Configuration-First? Because Change Happens—Fast
Let’s face it: code-driven health checks are a maintenance nightmare. Every environment tweak? Redeploy. Timeout needs a nudge? Open a PR, wait for review, redeploy again. New dependency? Hope you like hard-coded spaghetti. It’s a recipe for technical debt and late-night firefighting.
Configuration-first flips the script. Developers set the what, operators control the how. Change a timeout, swap a connection string, or update credentials—all without touching a line of code. JSON, environment variables, KeyVault: pick your weapon. Suddenly, health checks are flexible, auditable, and ready for anything your ops team throws at them.
This isn’t just cleaner—it’s safer, faster, and way more fun. Health checks become a living part of your deployment, not a dusty afterthought.
See It in Action
Here’s how easy it gets. Want to check your SQL Server? Just say so:
var builder = services.AddHealthChecks();
builder.AddSqlServer("PrimaryDatabase");
Now, wire up the config:
{
"HealthChecks": {
"SqlServer": {
"PrimaryDatabase": {
"ConnectionString": "Server=tcp:sql1.contoso.local;Database=AppDb;User Id=app;Password=***;",
"Timeout": 123
}
}
}
}
No custom code. No redeploys for connection changes. No copy-paste across environments.
The name PrimaryDatabase ties it all together—code, config, logs, dashboards. It’s traceable, transparent, and totally under your control.
Options? Of Course!
Need to set options in code for a quick test or dynamic setup? Go for it:
var builder = services.AddHealthChecks();
builder.AddSqlServer("PrimaryDatabase", options =>
{
options.ConnectionString = "Server=tcp:sql1.contoso.local;Database=AppDb;User Id=app;Password=***;";
options.Timeout = 123;
});
Mix and match as you grow. Start simple, scale up, and never get boxed in by yesterday’s decisions. It couldn’t be easier, and it keeps your health checks as dynamic as your apps.
What Makes NetEvolve.HealthChecks a Game Changer?
Most libraries pick a lane and stick to it. NetEvolve goes full autobahn. One design, one schema, one way to do things—across your whole stack. Relational, NoSQL, cloud, cache, messaging, search: it’s all here, all unified, all blazing fast.
Performance? Absolutely. Benchmarks show NetEvolve outpaces the competition—lower allocations, snappier response times, and zero legacy baggage. When you’re running thousands of checks a day, that’s the difference between smooth sailing and a support ticket avalanche.
And because it’s built for modern .NET, you get the latest APIs, no crusty dependencies, and a foundation that’s ready for whatever comes next.
Why not AspNetCore.HealthChecks?
On one hand, AspNetCore.HealthChecks offers a wide range of built-in checks and a dashboard for monitoring health status.
On the other hand, each package feels like it has its own configuration style and approach, leading to inconsistencies and increased maintenance overhead. In contrast, NetEvolve.HealthChecks offers a unified configuration-first approach that simplifies management and enhances scalability across diverse systems.
Plug In, Power Up
Once you go declarative, integration is a breeze. Expose /health, /ready, or /live endpoints and let your orchestrator do the heavy lifting. Kubernetes, Azure App Service, load balancers—they all get it. Health-based routing, auto-recovery, zero drama.
Tag your checks—database, cache, external, whatever. Decide what’s critical for readiness, what’s lightweight for liveness. Keep your uptime high and your alerts meaningful.
And don’t forget security. Health endpoints can spill secrets if you’re not careful. Lock them down to internal networks, authenticated users, or trusted agents. NetEvolve makes it easy to stay safe and visible at the same time.
The Big Picture: Observability, Evolved
NetEvolve.HealthChecks isn’t just a list of integrations—it’s a philosophy. Modern observability isn’t about writing more code. It’s about shrinking the gap between config, infrastructure, and real insight.
Unify your checks, give your teams a common language, and turn scattered logic into a versioned, configurable powerhouse. Collaboration gets easier, troubleshooting gets faster, and your monitoring finally keeps up with your ambitions.
This is evolution with teeth—boilerplate out, clarity in. Your monitoring becomes a strategic asset, not a maintenance burden.
The current NetEvolve.HealthChecks Catalog
NetEvolve.HealthChecks isn’t just a toolkit—it’s a huge set of libraries. Here’s what you get, grouped by what you need. Standardize your health monitoring across everything: databases, caches, queues, clouds, and more. One approach, zero confusion.
NetEvolve.HealthChecks Package Catalog / Expand for Details
Core and Abstractions
Relational Databases
- NetEvolve.HealthChecks.SqlServer
- NetEvolve.HealthChecks.SqlServer.Legacy
- NetEvolve.HealthChecks.SqlServer.Devart
- NetEvolve.HealthChecks.MySql
- NetEvolve.HealthChecks.MySql.Connector
- NetEvolve.HealthChecks.Npgsql
- NetEvolve.HealthChecks.PostgreSql
- NetEvolve.HealthChecks.Sqlite
- NetEvolve.HealthChecks.Sqlite.Legacy
- NetEvolve.HealthChecks.Oracle
- NetEvolve.HealthChecks.DB2
- NetEvolve.HealthChecks.Odbc
- NetEvolve.HealthChecks.Firebird
- NetEvolve.HealthChecks.DuckDB
- NetEvolve.HealthChecks.ClickHouse
NoSQL and Document Databases
Caching
Messaging and Streaming
- NetEvolve.HealthChecks.Apache.Kafka
- NetEvolve.HealthChecks.Redpanda
- NetEvolve.HealthChecks.Apache.ActiveMq
- NetEvolve.HealthChecks.RabbitMQ
- NetEvolve.HealthChecks.Azure.ServiceBus
Search and Vector Databases
Azure Services
- NetEvolve.HealthChecks.Azure
- NetEvolve.HealthChecks.Azure.Blobs
- NetEvolve.HealthChecks.Azure.Queues
- NetEvolve.HealthChecks.Azure.Tables
- NetEvolve.HealthChecks.Azure.ServiceBus
- NetEvolve.HealthChecks.Azure.ApplicationInsights
AWS Services
- NetEvolve.HealthChecks.AWS
- NetEvolve.HealthChecks.AWS.S3
- NetEvolve.HealthChecks.AWS.SQS
- NetEvolve.HealthChecks.AWS.SNS
Identity and Platform
Utilities and System
Ready to Level Up? Make Health Checks Effortless, Bulletproof, and Actually Fun
Let’s be real: health checks shouldn’t be a snooze. They should be rock-solid, invisible when things are good, and loud when it matters. NetEvolve.HealthChecks makes that a reality—no more friction, no more surprises, just pure reliability.
Still hand-coding checks? Hard-wiring secrets? Redeploying for every little tweak? It’s time to break the cycle. Let configuration do the heavy lifting and put your team back in the driver’s seat.
Get started now:
Visit github.com/dailydevops/healthchecks and grab what you need from NuGet. One command and you’re off:
dotnet add package NetEvolve.HealthChecks.SqlServer
Reliability isn’t about more code—it’s about fewer surprises. With NetEvolve.HealthChecks, you get a future-proof, config-driven powerhouse that keeps your systems healthy and your team happy.
Don’t settle for boring. Make your health checks modern, effortless, and a little bit awesome.
