Единый мониторинг: бизнес-метрики + вынос Prometheus/Loki/Grafana на VPS с данными
Prometheus/Loki/Grafana больше не живут внутри backend-стека — единый
стек теперь на VPS с данными (netrunner-data), т.к. ему нужно видеть
ещё лендинг и все прокси-ноды, не только бэкенд. Отсюда только тонкий
promtail, пушащий логи по сети (LOKI_PUSH_URL).
Новые бизнес-метрики поверх уже существующих generic HTTP-метрик:
payments_total{provider,status}, nodes_online/nodes_total,
support_tickets_total{status}, referral_signups_total,
partner_commission_total{currency} — тем же макросом metrics::counter!/
gauge!, что уже был в api.rs/error.rs.
Новый гейт-эндпоинт GET /api/v1/admin/observability/check (только
Owner/Moderator) — для Caddy forward_auth перед Grafana (см.
netrunner-data/observability/Caddyfile), встройка в админку через
GRAFANA_PUBLIC_URL в GET /api/v1/config.
templates/init_node.sh — добавляет --metrics-port 9093 в провижининг
новых прокси-нод.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -214,6 +214,8 @@ impl BillingService {
|
||||
.repo
|
||||
.create_invoice(user.id, plan_name, provider_name, currency, invoice_amount)
|
||||
.await?;
|
||||
metrics::counter!("payments_total", "provider" => provider_name.to_string(), "status" => "initiated")
|
||||
.increment(1);
|
||||
|
||||
let invoice_data = InvoiceData {
|
||||
invoice_id,
|
||||
@@ -273,6 +275,8 @@ impl BillingService {
|
||||
self.repo
|
||||
.update_invoice_status(invoice_id, "failed", Some(external_tx_id))
|
||||
.await?;
|
||||
metrics::counter!("payments_total", "provider" => invoice.provider.clone(), "status" => "failed")
|
||||
.increment(1);
|
||||
return Err(AppError::BusinessLogic(
|
||||
"Payment verification failed".into(),
|
||||
));
|
||||
@@ -282,6 +286,8 @@ impl BillingService {
|
||||
self.repo
|
||||
.update_invoice_status(invoice_id, "paid", Some(external_tx_id))
|
||||
.await?;
|
||||
metrics::counter!("payments_total", "provider" => invoice.provider.clone(), "status" => "paid")
|
||||
.increment(1);
|
||||
|
||||
// 5. АКТИВИРУЕМ ТАРИФ
|
||||
self.repo
|
||||
@@ -360,6 +366,8 @@ impl BillingService {
|
||||
percent,
|
||||
)
|
||||
.await?;
|
||||
metrics::counter!("partner_commission_total", "currency" => invoice.currency.clone())
|
||||
.increment(commission as u64);
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user