mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-20 00:41:26 +02:00
Phase 1: Infrastructure - Add docker/prometheus/prometheus.yml with scrape configs for all services - Add docker/grafana/provisioning for auto-configured datasources - Add docker/grafana/dashboards (system-overview, backends-docker) - Update docker-compose.macmini.yml with monitoring services: - prometheus, grafana, node-exporter, cadvisor - postgres-exporter, redis-exporter, umami - Add grafana.mana.how and analytics.mana.how to Caddyfile Phase 2: Backend Metrics - Create packages/shared-nestjs-metrics with: - MetricsModule (auto /metrics endpoint) - MetricsService (Counter, Histogram, Gauge helpers) - MetricsMiddleware (auto HTTP request tracking) Phase 3: Umami Web Analytics - Add Umami tracking scripts to all landing pages - Add Umami tracking scripts to all web apps - Create scripts/mac-mini/setup-umami-db.sh Phase 4: Admin Dashboard (ManaCore Web) - Add admin routes: /admin, /admin/users, /admin/system - Create StatCard, QuickLinks, UserTable components - Add Admin link to navigation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
15 lines
480 B
TypeScript
15 lines
480 B
TypeScript
import { Controller, Get, Res } from '@nestjs/common';
|
|
import { Response } from 'express';
|
|
import { MetricsService } from './metrics.service';
|
|
|
|
@Controller()
|
|
export class MetricsController {
|
|
constructor(private readonly metricsService: MetricsService) {}
|
|
|
|
@Get('metrics')
|
|
async getMetrics(@Res() res: Response): Promise<void> {
|
|
const metrics = await this.metricsService.getMetrics();
|
|
res.set('Content-Type', this.metricsService.getContentType());
|
|
res.send(metrics);
|
|
}
|
|
}
|