server: http_listen_port: 9080 grpc_listen_port: 0 positions: filename: /tmp/positions.yml clients: - url: http://loki:3100/loki/api/v1/push scrape_configs: - job_name: docker docker_sd_configs: - host: unix:///var/run/docker.sock refresh_interval: 15s relabel_configs: - source_labels: ['__meta_docker_container_name'] regex: '/(.*)' target_label: container - source_labels: ['__meta_docker_container_label_com_docker_compose_service'] target_label: compose_service - source_labels: ['__meta_docker_container_label_com_docker_compose_project'] target_label: compose_project pipeline_stages: - docker: {} - match: selector: '{compose_service="server"} |= "Slow API request"' stages: - metrics: ftb_slow_api_log_total: type: Counter description: Slow API request log entries emitted by the NestJS server. config: action: inc - match: selector: '{compose_service="server"} |= "Slow Prisma query"' stages: - metrics: ftb_slow_prisma_log_total: type: Counter description: Slow Prisma query log entries emitted by the NestJS server. config: action: inc - match: selector: '{compose_service="server"} |~ "AppData relation sync failed|AI 调用失败|AI 风险解读调用失败"' stages: - metrics: ftb_job_failure_log_total: type: Counter description: Compatibility sync, AI job, or background task failure logs. config: action: inc