// Package stats — аналитический слой консоли. // // StatsProvider абстрагирует конкретный инструмент (Grafana, Prometheus, etc.). // При смене инструмента достаточно заменить реализацию и переменные окружения. package stats import "context" // StatsProvider — интерфейс аналитики. // Реализации: GrafanaProvider (GRAFANA_INTERNAL_URL задан), NoopProvider (заглушка). type StatsProvider interface { // EnsureOrgForNamespace идемпотентно создаёт аналитическое пространство // для namespace (Grafana Org + datasource + dashboard + public link). // Вызывается при handleAuth — fire-and-forget горутиной. EnsureOrgForNamespace(ctx context.Context, namespace, email string) error // DashboardURL возвращает публичный URL дашборда без логина. // Возвращает "" если аналитика не настроена или provisioning не завершён. DashboardURL(ctx context.Context, namespace string) string }