GlitchTip — Onboarding nového agenta/služby
Kdy použít
Když nová služba potřebuje error tracking přes GlitchTip (errors.studio60.cz).
Prerekvizity
- GlitchTip běží na sentinelu (s60-glitchtip-web, port 8000)
- DB: glitchtip @ DO Managed PG
Postup
1. Vytvoř projekt v GlitchTip DB
PGPASSWORD="<glitchtip_pass>" psql -h <pg_host> -p 25060 -U glitchtip -d glitchtip --set=sslmode=require
-- Projekty jsou v projects_project, klíče v projects_projectkey
-- Obvykle se vytváří přes GlitchTip UI (errors.studio60.cz)
2. Získej DSN
SELECT p.slug, p.id, pk.public_key FROM projects_projectkey pk
JOIN projects_project p ON pk.project_id = p.id WHERE p.slug = '<slug>';
https://<public_key>@errors.studio60.cz/<project_id>
3. Sentry SDK — MUSÍ být v7!
GlitchTip používá UUID klíče. @sentry v8+ a v10+ odmítají UUID DSN.
Backend (NestJS/Node):
Frontend (React/Vue):
⚠ npm install --legacy-peer-deps může být nutný (React 19 peer dep conflict)
4. Env vars pro službu
Přidej do /root/secrets/<projekt>/.env.hub a .env.prod:
SENTRY_DSN=https://<uuid>@errors.studio60.cz/<id>
VITE_SENTRY_DSN=https://<uuid>@errors.studio60.cz/<id> # jen frontend
5. Sentry.init v kódu
// Backend (main.ts)
import * as Sentry from '@sentry/node';
Sentry.init({ dsn: process.env.SENTRY_DSN, environment: process.env.NODE_ENV });
// Frontend (main.tsx)
import * as Sentry from '@sentry/react';
Sentry.init({ dsn: import.meta.env.VITE_SENTRY_DSN, environment: import.meta.env.MODE });
6. Pošli agentovi KOMPLETNÍ info
Zpráva MUSÍ obsahovat: - [ ] DSN (backend + frontend) - [ ] SDK verze (^7.0.0, NE v8+/v10+!) - [ ] Sentry.init příklad - [ ] GlitchTip dashboard URL - [ ] Projekt slug a ID - [ ] Env var názvy (SENTRY_DSN, VITE_SENTRY_DSN) - [ ] Poznámka o --legacy-peer-deps
7. Webhook (volitelné)
GlitchTip → Telegram + Relay webhook je na sentinel:9101.
Nový projekt se automaticky routuje pokud je v PROJECT_AGENT_MAP v /opt/glitchtip/telegram-webhook.py.
Přidej mapování:
Aktuální projekty
| Slug | ID | Agent | DSN prefix |
|---|---|---|---|
| s60-auth | 1 | auth | fb395cb3... |
| pulse | 2 | pulse | a9802590... |
| billit | 3 | billit | a81f9e57... |
| venom | 4 | venom | 40da428f... |
| badwolf | 5 | badwolf | 34969ed6... |
| s60-mail | 6 | 7e308f4b... |
Známé problémy
- @sentry/node v10 + @sentry/react v10: "Invalid Sentry Dsn" — UUID klíče nejsou podporované
- GlitchTip API tokeny se scopes=0 nefungují přes REST API (permission denied)
- GlitchTip health endpoint: /_health/