liveness

typescript
export type CheckResult = { name: string; status: 'up' | 'down'; durationMs: number; error?: string };
export type Check = () => Promise<void>;

function withTimeout(fn: Check, ms: number): Promise<void> {
  return new Promise((resolve, reject) => {
    const timer = setTimeout(() => reject(new Error(`timeout after ${ms}ms`)), ms);

Health checks with readiness + liveness

reliability fastify kubernetes
by codesnips 3 tabs
typescript
import { Injectable } from '@nestjs/common';
import { HealthIndicator, HealthIndicatorResult, HealthCheckError } from '@nestjs/terminus';
import { PrismaService } from '../prisma/prisma.service';

@Injectable()
export class PrismaHealthIndicator extends HealthIndicator {

NestJS Health Checks With Terminus and a Custom Prisma Indicator

nestjs terminus health-checks
by codesnips 3 tabs
ruby
module HealthCheckable
  extend ActiveSupport::Concern

  CheckResult = Struct.new(:name, :ok, :message, keyword_init: true)

  private

Rails Health-Check Endpoint With a Controller Concern and Database Ping

rails health-check monitoring
by codesnips 3 tabs
javascript
const withTimeout = (promise, timeoutMs, name) => {
  let timer;
  const timeout = new Promise((_, reject) => {
    timer = setTimeout(
      () => reject(new Error(`check '${name}' timed out after ${timeoutMs}ms`)),
      timeoutMs

Express Health-Check Router With a Pluggable Dependency Checks Registry

express health-check observability
by codesnips 3 tabs
python
import time
from collections import namedtuple

from sqlalchemy import text

CheckResult = namedtuple("CheckResult", ["name", "healthy", "latency_ms", "detail"])

Flask Health-Check Blueprint Reporting Database and Redis Status as JSON

flask health-check observability
by codesnips 3 tabs