Crater服务健康监控:Prometheus与Grafana集成实践

Crater服务健康监控:Prometheus与Grafana集成实践

【免费下载链接】crater Open Source Invoicing Solution for Individuals & Businesses 【免费下载链接】crater 项目地址: https://gitcode.com/gh_mirrors/cr/crater

监控需求与架构设计

Crater作为开源发票管理系统,需确保支付处理、PDF生成等核心功能稳定运行。当前架构中未实现Prometheus与Grafana集成,本文提供基于Laravel框架的实施方案,通过暴露指标接口、配置时序数据库和可视化面板,构建完整监控体系。

关键监控指标设计

基于业务场景需监控三类指标:

  • 系统层:CPU/内存使用率、数据库连接数(关联config/database.php配置)
  • 应用层:API响应时间、队列任务堆积数(对应app/Jobs/目录下的发票生成等任务)
  • 业务层:日发票创建量、支付成功率(关联app/Models/Invoice.php模型)

集成实现步骤

1. 暴露Prometheus指标接口

创建Metrics控制器并注册路由,采集关键业务数据:

// app/Http/Controllers/MetricsController.php
namespace Crater\Http\Controllers;

use Illuminate\Http\Request;
use Prometheus\CollectorRegistry;
use Crater\Models\Invoice;

class MetricsController extends Controller
{
    public function index(CollectorRegistry $registry)
    {
        $counter = $registry->getOrRegisterCounter(
            'crater', 'invoice_created_total', 
            'Total number of invoices created', ['status']
        );
        
        $counter->incBy(Invoice::where('status', 'PAID')->count(), ['PAID']);
        $counter->incBy(Invoice::where('status', 'SENT')->count(), ['SENT']);
        
        return response($this->renderMetrics($registry))
            ->header('Content-Type', 'text/plain');
    }
}

注册路由到routes/web.php

Route::get('/metrics', [MetricsController::class, 'index'])->middleware('auth:sanctum');

2. 配置Prometheus抓取

创建Prometheus配置文件监控新增接口:

# prometheus.yml
scrape_configs:
  - job_name: 'crater'
    static_configs:
      - targets: ['crater-app:8000']
    metrics_path: '/metrics'
    basic_auth:
      username: 'admin'
      password: 'secret'

3. 构建Grafana监控面板

导入自定义JSON面板配置,包含:

  • 系统资源监控图表(CPU/内存/磁盘)
  • 业务指标趋势图(发票创建量、支付转化率)
  • 异常告警规则(如队列任务超过10分钟未处理)

容器化部署配置

修改docker-compose.yml,添加Prometheus和Grafana服务:

services:
  prometheus:
    image: prom/prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"

  grafana:
    image: grafana/grafana
    volumes:
      - grafana-data:/var/lib/grafana
    ports:
      - "3000:3000"
    depends_on:
      - prometheus

volumes:
  grafana-data:

验证与告警配置

  1. 启动服务后访问/metrics端点验证指标输出
  2. 在Grafana中配置数据源指向Prometheus
  3. 设置关键指标告警(如支付失败率>5%时发送邮件,关联config/mail.php配置)

最佳实践与扩展

通过以上配置,可实现从系统到业务的全链路监控,及时发现app/Jobs/GenerateInvoicePdfJob.php等关键任务的性能瓶颈。完整配置示例可参考项目docker-compose/目录下的服务编排文件。

【免费下载链接】crater Open Source Invoicing Solution for Individuals & Businesses 【免费下载链接】crater 项目地址: https://gitcode.com/gh_mirrors/cr/crater

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值