Skip to content
中文

Service Health Check ​

One-Click Diagnosis ​

Single-node ​

bash
./scripts/doctor.sh           # Key service status + health check
./scripts/doctor.sh --all     # Check all services
./scripts/doctor.sh --logs    # Include the last 20 lines of logs for key services

K8s ​

bash
./scripts/verify-k8s-install.sh

# Pod status
kubectl -n <ns> get pods -o wide
kubectl -n <ns> get deploy -o wide

# Events
kubectl -n <ns> get events --sort-by=.lastTimestamp

# Logs
kubectl -n <ns> logs -l app=<svc> --tail=100
kubectl -n <ns> logs <pod> --previous    # Previous container logs

Single-Point Health Probe ​

finclaw Microservices (21) ​

bash
curl http://localhost:26100/health   # api-gateway
curl http://localhost:26101/health   # identity-service
curl http://localhost:26102/health   # orchestrator
curl http://localhost:26103/health   # ag-ui-server
curl http://localhost:26104/health   # persona-service
curl http://localhost:26105/health   # skill-service
curl http://localhost:26107/health   # claw-fleet-manager
curl http://localhost:26108/health   # a2a-gateway
curl http://localhost:26109/health   # auth-fabric-proxy (profile gated)
curl http://localhost:26115/health   # auth-fabric (profile gated)
curl http://localhost:26200/health   # conversation-store
curl http://localhost:26201/health   # delivery
curl http://localhost:26202/health   # inbox-service
curl http://localhost:26203/health   # push-service
curl http://localhost:26205/health   # document-service
curl http://localhost:26450/health   # ai-infra-rs
curl http://localhost:26118/healthz  # searxng (note: /healthz, not /health)
curl http://localhost:26460/health   # feishu-connector
curl http://localhost:26461/health   # doc-toolkit
curl http://localhost:26462/health   # dingtalk-connector
curl http://localhost:26550/health   # wecom-connector

In K8s, use kubectl port-forward or kubectl exec curl.

Infrastructure Services ​

bash
# PostgreSQL
docker exec chatkit-postgres pg_isready -U postgres -d chatkit
# Or (probe the port from the host)
pg_isready -h <host> -p 26110

# TimescaleDB
pg_isready -h <host> -p 26111

# NATS (client port connectivity)
nc -z <host> 26112
# Without nc: timeout 3 bash -c 'echo > /dev/tcp/<host>/26112'

# Redis
docker exec chatkit-redis redis-cli ping

# TEI
curl http://localhost:26117/health

# Restate
curl http://localhost:26181/health

Contract Version Handshake (Critical) ​

bash
curl http://localhost:26450/health | jq .contract_version

Expected: returns a version number other than unknown (for example, 1.2.1).

If unknown is returned: the contract version is baked into the image at build time, so unknown indicates a defective image - contact Finogeeks support. See Viewing Service Logs.

License Health ​

bash
# Single-node
curl -s http://localhost:26101/health | jq .deployment_license
# K8s (port-forward first, then hit the local port)
kubectl -n <ns> port-forward svc/identity-service 26101:26101

Expected: status is active; expired / unloaded means the license has expired or is not loaded (see expires_at for the expiry time). If abnormal, contact Finogeeks to renew; see Update License.

Troubleshooting Recommendations ​

When a health check fails, the standard three steps:

  1. doctor.sh (single-node) or verify-k8s-install.sh (K8s) to get the overall status
  2. Check the logs for the specific service (see Viewing Service Logs)
  3. Single-point /health probe to confirm

Digital Ecosystem Infrastructure.