docs: add Observability section to CLAUDE.md (Compact JSON logs->Loki); gitignore ACCESS.md

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-18 15:46:46 +03:00
parent da1f90449e
commit 2d5572725d
2 changed files with 8 additions and 1 deletions
+3
View File
@@ -376,3 +376,6 @@ files/
/docker-compose/.env.production /docker-compose/.env.production
/docker-compose/.env.staging /docker-compose/.env.staging
# local infra access notes (secrets) — never commit
ACCESS.md
+5 -1
View File
@@ -34,11 +34,15 @@ This applies to both the staging and production repos as appropriate.
- .NET 10, ASP.NET Core, Worker Service - .NET 10, ASP.NET Core, Worker Service
- Entity Framework Core + SQL Server (multi-schema) - Entity Framework Core + SQL Server (multi-schema)
- Refit for typed HTTP clients between services - Refit for typed HTTP clients between services
- Serilog (JSON structured logging, Console + File + Email sinks) - Serilog — Compact JSON logs to stdout (+ optional email sink); see Observability
- MailKit for SMTP (used exclusively in `email-api`) - MailKit for SMTP (used exclusively in `email-api`)
- Docker Compose for local and production deployment - Docker Compose for local and production deployment
- Watchtower for automatic container updates in production - Watchtower for automatic container updates in production
## Observability (central stack on monitoring host 10.0.0.156)
- **Logs**: every service uses `ConfigureJsonSerilog(ServiceName, appVersion)` (startup-helpers) → Serilog **Compact JSON** to stdout, enriched `Application`/`Environment`/`AppVersion`. The host's Grafana **Alloy** agent ships stdout → **Loki**; view/query in Grafana. No file sink; optional email sink only if `SerilogEmail:*` is configured.
- **No app metrics/traces** — these are simple/minimal services, so (unlike easyDent) they don't expose Prometheus metrics or OTLP traces. Container/host metrics still come from the host's cAdvisor/node_exporter.
## Project taxonomy ## Project taxonomy
| Category | Naming | Contains | EF dependency | | Category | Naming | Contains | EF dependency |