1. Architecture
Traffic Tool
  • Traffic Tool Docs
    • Tổng Quan
    • project
      • admin
        • Hướng dẫn sử dung
          • Đăng Nhập & Xác Thực Hai Bước
          • Thống Kê Hệ Thống
          • Thống Kê Hàng Ngày
          • Tìm Kiếm Tự Động
          • Trung Tâm Báo Cáo
          • Quản Lý Tài Khoản
          • Quản Lý Server
          • Quản Lý Proxy
          • Quản Lý Gói Proxy
          • Quản Lý Nhà Cung Cấp Proxy
          • Quản Lý Backup Proxy
          • Quản Lý Tài Khoản Google
      • api + tool
        • Hướng dẫn sử dụng
          • User Guide
          • Setup Guide
        • Bussiness | Logic
          • 1. Thống kê hàng ngày (Daily Statistics)
          • 2. Thống kê hệ thống (System Statistics)
          • 3. Tìm kiếm tự động (Automated Discovery)
          • 4. Trung tâm Báo cáo (Report Center)
          • 5. Quản lý tài khoản (Account Management)
          • 6. Quản lý Hệ thống (System Management)
          • 7. Quản lý tài khoản Google (Google Account Management)
        • Architecture
          • Database Schema
          • System Architecture
          • Code Structure
          • Logs and Monitoring
          • Environment & Configuration
        • Deployment
          • Local
          • Staging
          • Product
  • Traffic Backend API
    • 🔑 Identity & Session
      • Đăng nhập hệ thống (Login)
      • Đăng ký tài khoản mới (Public)
      • Lấy danh sách người dùng (Phân trang)
      • Admin tạo người dùng mới
      • Lấy thông tin cá nhân hiện tại
      • Khởi tạo bảo mật 2FA
      • Xác thực mã OTP
      • Chi tiết người dùng theo ID
      • Cập nhật thông tin người dùng
      • Xóa tài khoản người dùng
      • Đổi mật khẩu
      • Kiểm tra Cấu hình Thông báo Telegram Toàn hệ thống
      • Bật/Tắt Thông báo Telegram Toàn cục
    • 📁 Campaign Management
      • Danh sách Chiến dịch Toàn cầu
      • Khởi tạo Chiến dịch Mới
      • Chi tiết Chiến dịch
      • Cập nhật Chiến dịch
      • Xóa Chiến dịch
      • Tắt/Mở Chiến dịch (Hàng loạt)
      • Dữ liệu Hình mẫu SEO (Negative SEO)
    • ⚙️ Project Mechanics
      • Danh sách Dự án (Projects List)
      • Khởi tạo Kịch bản Mô phỏng
      • Lấy chi tiết cấu hình Dự án
      • Cập nhật Kịch bản chạy
      • Xóa Dự án
      • Chỉnh sửa Hàng loạt (Bulk)
      • Bật/Tắt Dự án
    • 👤 Profile Management
      • Danh sách Vân tay số (Profiles Data)
      • Tạo Hồ sơ Đơn lẻ (Tạo Vân tay mới)
      • Nhập kho Tài khoản Email (Bulk Import)
      • Chi tiết Session/Cookies
      • Chỉnh sửa Hồ sơ/Ghi chú
      • Xóa Vân tay số và Dữ liệu Local
      • Mở khóa Captcha/Trạng thái Blocked
      • Tra cứu Kho Profile Khả dụng
      • Báo cáo Sức khỏe Kho Tài Khoản
    • 🦾 Worker Interface
      • Đăng ký Khởi tạo Node (Handshake)
      • Nhịp Tim Khảo Sát Tình Trạng (Heartbeat)
      • Nhận Cấu hình Bypass & Hệ thống
      • Kéo (PULL) Nhiệm vụ Traffic SEO
      • Báo cáo Sự cố Node (Crash Report)
    • 📊 Report: Execution
      • Kéo Công việc Báo cáo (Worker Pull)
      • Quản lý Giám sát Nhiệm vụ (Task Dashboard)
      • Bắn Lại Báo Cáo Thất Bại (Manual Retry)
    • 📊 Report: Discovery
      • Danh sách Tên miền Chờ Xử Lý (Discovery Pool)
      • Nhập Mục Tiêu Thủ Công (Manual Insert)
      • Kích hoạt Heuristic Scanner (Cào tự động)
      • Chi tiết Bằng Chứng (Evidence Data)
      • Dán nhãn Vi Phạm / Cập nhật Screenshot
      • Loại Bỏ Mục Tiêu
      • Duyệt Yêu Cầu (Approve to Execution)
    • 📊 Report: Platforms Configuration
      • Truy vấn Danh sách Nền tảng Đối tác (Vendor)
      • Tạo Nền tảng Vendor Báo cáo Mới
      • Bật/Tắt Trang báo cáo theo Loại
      • Cập nhật Metadata Trang
      • Xóa Trang Báo Cáo
      • Lấy Cài đặt LLM cho Vendor cụ thể
      • Cập nhật Cài đặt Tạo mẫu LLM
      • Lấy Cấu hình Schema Biểu mẫu cho Vendor
      • Cập nhật Yêu cầu Trường Biểu mẫu
    • 📊 Report: Email Automation
      • Danh sách SMTP/Mailer Server
      • Thêm kết nối SMTP Mới
      • Nhật ký Nhiệm vụ Gửi Mail (Email Log)
      • Phân tích Tỉ lệ Chuyển đổi (Email Delivery Analytics)
    • 🌐 Global Proxies
      • Danh sách Kho Proxy Phân trang (Proxy Pool)
      • Thêm mới Tuyến IP (Bulk Import)
      • Cập nhật Thông tin máy chủ Proxy
      • Xóa Proxy (Thu hồi tài nguyên)
      • Kích hoạt Xoay vòng (Rotate IP) Cưỡng bức
    • 📈 System Intelligence
      • Báo cáo Luồng Bảo mật Hợp nhất (Colossal Report)
      • Bản Đồ Lưu Lượng GeoIP (Heatmap)
    • 🪝 Webhook Integrations
      • Callback Hoàn tất Gói Lưu lượng SEO (Traffic Node)
      • Callback Thông báo Hoàn tất Bắn Report AI
    • Schemas
      • AppError
      • LoginRequest
      • UserResponseDto
      • UserModel
      • CreateUserRequest
      • UpdateUserRequest
      • PagingInfo
      • ProfileModel
      • CreateProfileRequest
      • BulkImportProfileReq
      • UpdateProfileRequest
      • CampaignModel
      • CampaignConfigs
      • CreateCampaignRequest
      • UpdateCampaignRequest
      • BulkUpdateCampaignStatusReq
      • NegativeSeoData
      • CreateProjectRequest
      • UpdateProjectRequest
      • ProjectModel
      • BulkUpdateProjectRequest
      • ProjectAttribute
      • WorkerHandshakeRequest
      • WorkerHandshakeResponse
      • WorkerHeartbeatPayload
      • WorkerGlobalSettings
      • TaskPullRequest
      • WorkerFatalLog
      • TaskModel
      • TaskTrafficType
      • TaskUpdateDto
      • ReportTaskModel
      • ReportTaskResult
      • PCReportResponse
      • SummaryStats
      • DailyStats
      • BrandStats
      • ProfileStats
      • ReportTaskItem
      • ReportSiteItem
      • CreateReportSiteRequest
      • GPTConfig
      • ResponseConfig
      • FieldConfig
      • ReportDomainsResponse
      • ReportDomainItem
      • AddReportDomainRequest
      • UpdateReportDomainRequest
      • BulkUpdateDashboardRequest
      • ProxyModel
      • CreateProxyRequest
      • UpdateProxyRequest
      • SMTPServerConfig
      • EmailTaskLog
      • GeoLocation
  • Traffic Tools V2 API
    • Tasks
      • Lọc và Truy vấn Nhật ký Phiên Duyệt lẻ
      • Get all tasks
      • Nạp Kết Quả Chạy của Puppeteer (Update Callback)
      • Xóa toàn bộ Tasks lẻ
      • Get all tasks
      • Xóa một Task (ID)
    • Group task
      • Đẩy nhóm công việc Traffic theo lô (Batch Pipeline Task Creation)
      • Lấy sơ đồ trạng thái hàng đợi Group Tasks
      • Endpoint /api/task-traffics/
      • Clear/Flush Hàng đợi Group Task (Kill Queue)
      • Endpoint /api/task-traffics/
      • Xóa 1 nhóm nhiệm vụ (Theo ObjectID Mongoose)
      • Parse chuỗi Proxy
    • Test
      • Kiểm tra Proxy hoạt động ngầm
      • Endpoint /api/test
      • Kho Fingerprint Thử Nghiệm
      • Endpoint /api/test/account-stats
      • Endpoint /api/test/session-recommendation
      • Endpoint /api/test/check-browser
      • Endpoint /api/test/clear-browser-sessions
    • Proxies
      • Lấy kho Proxy server
      • Khai báo Pool Tuyến Proxy mới
      • Get all proxies
      • Get all proxies
      • Xóa toàn bộ Proxy
      • Get all proxies
      • Xóa Proxy theo ID
      • Reset lại số đếm tiến trình (Cron Proxy Thread)
    • Report Platforms
      • Submit report to multiple platforms
      • Submit report to specific platform
      • Get available platforms
      • Get platform statistics
      • Health check
    • Reports
      • Create a new report
      • Create a new report
      • Get report by ID
      • Get report by ID
      • Get report statistics
      • Get report groups
      • Get report groups
      • Get report group
      • Add report to group
      • Bulk add reports to group
      • Get report group statistics
      • Get analytics data
      • Get platform success rates
      • Get reports by platform
      • Get reports by group
      • Create test reports in bulk
    • Test Report
      • Test Microsoft report submission
      • Test AdGuard report submission
      • Test Google Ads report submission
      • Test Spamhaus report submission
      • Test ESET report submission
      • Test multi-platform report submission
      • Get available platforms
    • ESET Test
      • Simple test
      • Minimal POST test
      • Generate ESET report content
      • Get sample test data
      • Test form filling
      • Test full form submission
    • Spamhaus Test
      • Simple test
      • Minimal POST test
      • Generate Spamhaus report content
      • Get sample test data
      • Test Spamhaus form filling
      • Test full Spamhaus form submission
    • Report Scheduler
      • Get report scheduler statistics
      • Process ad detection result
      • Submit a scheduled report
      • Start report scheduler
      • Stop report scheduler
      • Get scheduler status
      • Process scheduled reports
      • Test browser session (non-headless)
      • Test report submission (non-headless)
    • Comprehensive Analytics
      • Get comprehensive dashboard analytics
      • Get overview statistics
      • Get brand-wise statistics
      • Get daily statistics
      • Get platform success rates
      • Get account performance
      • Get summary report
    • Search
      • Ra lệnh Máy Lọc Dữ Liệu TOP SEO Hàng Loại (Scraper Engine)
      • Đếm tổng số dòng tìm kiếm (Length)
    • Report Tasks
      • Tạo chiến dịch Report (Auto Spawn 14 tasks)
      • Tạo chiến dịch Report Form hàng loạt (Bulk Abuse Report)
      • Create Direct Report (Từ API hệ thống thay vì Frontend)
      • Tạo Nhiệm Vụ Sinh Email Khiếu nại (Automated Bulk Mail Spam)
      • Worker Pull - Lấy task Báo cáo đang Pending
      • Worker Trả kết quả (Report Status)
      • Danh mục Platfoms & Providers
      • Dashboard Statistic Báo Cáo
      • Force Run Cronjob
    • Monitor
      • Xuất dữ liệu đo đếm Hardware (Telemetry OS Watchdog)
    • Schemas
      • CreateTask
      • UpdateTask
      • CreateTaskGroupRequest
      • CreateProxy
      • CreateSearch
      • ReportTaskCreation
      • CreateEmail
      • CreateMultipleSearchRequest
      • CreateMultipleReportRequest
      • UpdateReportStatusRequest
      • TestProxyRequest
  1. Architecture

Logs and Monitoring

Logs and Monitoring — Traffic Tools Ecosystem#


Mục lục Toàn Diện#

1.
Tổng quan Kiến trúc & Nguyên lý Thiết kế
2.
Hệ thống Log Backend (API Golang)
Kiến trúc go.uber.org/zap & loggerCache
Chuẩn Format & Level Markers
Cách dùng ErrorWithFields trong Golang
Audit Logs: User Activity & Task Result
3.
Hệ thống Log Worker (Tools V2 - Bun/TS)
Hierarchy & CoreLogger File Structure
Tự động Nhóm Lỗi (ErrorCategorizer)
Structured Logging cho APIs & OpenAI GPT
Theo dõi luồng Browser Manager (Puppeteer)
4.
Monitoring System — Giám sát Sức khỏe
Công cụ Monitor Hệ điều hành (Tools V2 /api/monitor)
Logic Tính RAM, Disk, CPU Load Average
Báo cáo Hiệu năng Server hàng giờ (API)
Tracking trạng thái Project (Project Dead)
5.
Cảnh báo & Alerts System
Ma trận Thông báo Telegram (Error, Report, General)
Luồng kết nối Mattermost Webhook
Kích hoạt Cảnh báo Bị động & Chủ động
6.
Cẩm nang Trace Log & Troubleshooting Giải quyết Lỗi

1. Tổng quan Kiến trúc & Nguyên lý Thiết kế#

Vì hệ thống Traffic Tools quản lý cùng lúc 12+ Servers Worker, xoay hàng vạn lượt Proxy và tạo ra hàng triệu Click / Report Sessions mỗi ngày. Do đó, Logging Pipeline không được dựa trên CSDL SQL (để tránh bóp nghẹt I/O). Thay vào đó, nó được thiết kế thuần dựa trên file vật lý phân tán, được giám sát gián tiếp qua grep hoặc gửi HTTP streaming.
Ba nguyên lý thiết kế chính:
1.
Zero-blocking: Cả Go API (Zap) lẫn Bun (CoreLogger) đều ghi bất đồng bộ (Async write), không cản trở tốc độ execution của goroutine hay event-loop.
2.
Deterministic Layout: Tên thư mục phản ánh Channel: /logs/channel_name/YYYY-MM-DD/log.log. Giúp Dev dễ cô lập lỗi (ví dụ proxy log tách hẳn với system log).
3.
Action Context Validation (Structured): Cấm in log theo dạng chuỗi + nối vào nhau. Buộc phải truyền qua Object/Interfaces.

2. Hệ thống Log Backend (API Golang)#

Kiến trúc go.uber.org/zap & loggerCache#

API (Go) gói package zap nổi tiếng. Thay vì mỗi luồng request gọi zap.New(), file pkg/logger/logger.go dùng Map Memory Cache và RWMutex để đảm bảo Thread-safe.

Chuẩn Format & Level Markers#

Khi Dev chạy hàm logger.Error("some text"), hàm wrap sẽ tiêm vào LevelMarker độc quyền để công cụ parse (Filebeat/ELK) dễ tách data.
[LOG_LEVEL_ERROR] — Lỗi logic nghiệp vụ, Lỗi HTTP Timeout
[LOG_LEVEL_WARN] — Lỗi xoay proxy hụt, hoặc data tạm thời sai
[LOG_LEVEL_INFO] — Cronjob tick
[LOG_LEVEL_DEBUG] — Payload trace

Cách dùng ErrorWithFields trong Golang#

API buộc Dev phải dùng hàm ErrorWithFields nếu muốn gắn error type apperror.AppError hoặc context. Code framework sẽ tự break context map[string]interface{} thành các Field của Zap (zap.Any), chèn tự động LOG_ERROR_CODE và gán prefix LOG_DATA:.
Kết quả in ra file sẽ như sau (rất gọn và parse JSON log mượt mà):
{"level":"error","time":"23/03/2026 10:15:30","caller":"task/service.go:42","msg":"[LOG_LEVEL_ERROR] Failed database query","LOG_ERROR_MESSAGE":"record not found","LOG_ERROR_CODE":"404_NOT_FOUND","LOG_DATA:task_id":"Tk_992"}

Audit Logs: User Activity & Task Result#

Ngoài text log, API sử dụng 2 bảng MongoDB để Tracking các hành động quan trọng (như Audit Trail cho Admin UI):
1.
Activity Log (activity_log module): Bất cứ ai thực hiện Thêm/Sửa/Xóa Dự án, Login, Thay đổi Key Proxy sẽ được lưu thành bản ghi: {user_id, action, target_type, module, user_agent, ip, timestamp}. Đây là UI "Lịch sử thao tác" trong Admin.
2.
Task Log (task_log module): Khi 1 task Traffic fail, thay vì lưu chi tiết vào DB SQL nặng nề, nó tống gọn 1 dòng vào task_logs ở MongoDB: {task_id, err_reason, date, worker_id}.

3. Hệ thống Log Worker (Tools V2 - Bun/TS)#

Khác với API Golang, Tools V2 điều khiển headless Chrome (Puppeteer) vốn dễ bị OutOfMemory, Crash. Do đó Log của Tools V2 phức tạp hơn rất nhiều.

Hierarchy & CoreLogger File Structure#

Cấu trúc logger của Tools V2 là Dạng Cây (Tree-based). Log gốc (Root app) có hàm .child(service_name). Khi khởi tạo .child("ads_click"), log sẽ ghi vào thư mục con storage/log/ads_click/YYYY-MM-DD/info.log.
Cấu hình ENV tại tools_v2/.env:
LOG_LEVEL=info (Có thể set = debug nếu Dev muốn thấy DOM node Puppeteer)
LOG_WRITE_TO_FILE=true (Luôn luôn bật tại Prod để lưu trace)
LOG_DIR=storage/log

Tự động Nhóm Lỗi (ErrorCategorizer)#

Vì Puppeteer trả về rất nhiều Exception dị thường, Tools V2 cung cấp file src/utils/logger/error-categorizer.ts. Nhiệm vụ của nó là nhìn vào Message text và tự gạch chân lỗi:
1.
ErrorGroup.NETWORK: Tức là lỗi ECONNREFUSED, ETIMEDOUT → Thường xảy ra do Proxy đứt. Quyết định: Cắm lại Proxy đổi IP. Tích cờ retryable = true.
2.
ErrorGroup.DATABASE: Mất kết nối Mongoose. Chờ DB sống lại.
3.
ErrorGroup.VALIDATION: Format sai do cấu hình Admin. Quyết định: Thả bom Task này làm Failed luôn, hủy Retry (retryable = false).

Structured Logging cho APIs & OpenAI GPT#

StructuredLogger trong Bun có các Helper Method dành riêng cho các thành phần tốn tiền (Billing):
1. ChatGPT Logging (logGptPrompt):
Ghi nhận đầy đủ Prompt và kết quả trả về của OpenAI. Phục vụ việc Audit lại AI lỡ trả về text vớ vẩn trong Email Report:
2. Webhook & API Calls Logging (logApiCall / logWebhook): Theo dõi các Request POST Push/Pull traffic về Core API Golang. Nếu statusCode = 502, sẽ tự phân loại lỗi thành SERVER_ERROR.

Theo dõi luồng Browser Manager (Puppeteer)#

Kênh log quan trọng bậc nhất là browser_manager. Bất cứ khi nào:
browserManager.launch()
browserManager.close()
browserManager.checkMemoryLimit()
Đều được in vào channel này. Khi bị crash do nghẽn RAM, file browser_manager/error.log sẽ cho biết Page URL cuối cùng là gì.

4. Monitoring System — Giám sát Sức khỏe#

Traffic Tools không dùng Grafana / Prometheus (vì muốn hệ thống tinh gọn không cài quá nhiều phần mềm bên thứ 3). Thay vào đó, nó tận dụng HTTP API + SQL để dựng Monitoring.

Công cụ Monitor Hệ điều hành (Tools V2 /api/monitor)#

Tất cả Server Worker chạy Tools V2 đề phơi ra Endpoint GET /api/monitor. Endpoint dùng Native lib OS của Bun/Node:
CPU: Tính % Load qua os.loadavg() chia cho tổng số Cấu hình lõi os.cpus().
RAM: Lấy os.totalmem() - os.freemem() chuyển đổi ra GB/MB cho Admin biết Server này còn dư RAM để mở thêm Cửa sổ Puppeteer không.
DISK: Đọc Bun.file("/").stat() kiểm tra dung lượng còn trống. Phải trên 1GB để Chrome có chỗ lưu Cache.
APP LIMITS: Trả về số phiên Chrome đang chạy (browserManager.sessionsCount) vs BROWSER_LIMIT.

Logic Tính RAM, Disk, CPU Load Average#

Báo cáo Hiệu năng Server hàng giờ (API)#

Golang xử lý Job mạnh mẽ: SCHEDULE_SERVER_HOURLY_REPORT
Hàng giờ (00:00, 01:00,...), Go Cron sẽ lướt bảng Task trong 1 tiếng vừa qua, group theo server_ip.
1.
Đếm Task_Success.
2.
Đếm Task_Fail.
3.
Lưu vào MySQL table server_hourly_report.
Nhờ thế, nếu Server A tỷ lệ Fail là 90%, Server B tỷ lệ Fail là 5% (cùng 1 Task), ta biết ngay Server A đã hỏng Proxy Pool hoặc Core Network.

Tracking trạng thái Project (Project Dead)#

Golang có Cronjob thần thánh: SCHEDULE_CHECK_PROJECT_DEAD (chạy mỗi 5 phút).
1.
Query các Project đang Status = RUNNING.
2.
Truy xuất bảng Project_Detail lấy thời điểm Traffic cuối cùng hoàn thành.
3.
Nếu quá (PROJECT_DEAD_TIME_MINUTES = 30 phút) mà không có thêm traffic → Tự Set status thành DEAD.
4.
Bắn Notification về Đội trưởng điều hành qua Telegram/Mattermost đi vào sửa target link/keyword.

5. Cảnh báo & Alerts System#

Kiến trúc Alert của hệ thống nằm ở API Golang module Telegram Handler pkg/telegram.

Ma trận Thông báo Telegram (Error, Report, General)#

Hệ thống tạo 1 Bot duy nhất bằng TELEGRAM_BOT_TOKEN, nhưng điều tiết tin nhắn nhúng vào 3 Channel ID khác nhau nhằm chống Spam người dùng.
Kênh ENV IDĐối Tượng NhậnKích hoạt khiTrích đoạn Payload Code
TELEGRAM_CHAT_IDLeader / Quản lýDự án Dead, hoặc Đổi Cấu hình, Start/Stop Bot.msg := fmt.Sprintf("⚠️ Dự án %s đã chết (Không traffic trong %v phút)", name, min)
TELEGRAM_CHAT_ERROR_IDDevOps TeamCrash hệ thống, Lỗi kết nối MongoDB, Cạn kiệt nguồn ZingProxy.Chạy hàm telegram.SendErrorAlert(err, "MongoDB Connection", ip)
TELEGRAM_CHAT_REPORT_IDSales / Kế toánTổng kết traffic ngày.File đính kèm CSV. Export hàm Excel qua Bot API sendDocument.

Luồng kết nối Mattermost Webhook#

Trường hợp Mạng nội bộ chặn Telegram (Server chính phủ, Tập đoàn), hệ thống có phương án B với biến ENV MATTERMOST_API_URL & MATTERMOST_CHANNEL_ID.
Tương đương cơ chế JSON Webhook:
Lịch gửi Báo cáo tự động bằng MATTERMOST_SCHEDULE (Default 0 0 9 * * * = Sáng 9h hằng ngày).
Kích hoạt bắn POST Request đính kèm File Binary multipart/form-data Excel Data (Data: Traffic tổng chốt ngày).

6. Cẩm nang Trace Log & Troubleshooting Giải quyết Lỗi#

Để giải quyết một lỗi phức tạp lây lan từ Tools V2 lên API. Ta làm theo SOP (Standard Operating Procedure) sau:
Case Study: Khách khóc vì Traffic Ads không click được.
Bước 1: Tìm Task ID bị lỗi
1.
Mở Admin UI → Vào mục Task Logs.
2.
Filter Project ID đang phàn nàn → Filter Trạng thái "Thất bại/Fail". Copy một Task ID_123 cụ thể.
Bước 2: Tìm gốc Worker xử lý
1.
Nhìn cột "Worker IP" trên Dashboard ứng với Task đó (ví dụ Worker 11.0.3.45).
2.
Login / SSH vào Server chạy Tools V2 Worker 45 đó.
Bước 3: Mổ Log Puppeteer (Tools V2)
1.
Mở file tools_v2/storage/log/task/2026-x-x/error.log.
2.
Dùng lệnh CLI Grep:
grep "Task ID_123" storage/log/task/2026-x-x/error.log
3.
Bạn sẽ thấy Log Structure ghi rõ ERROR TYPE:
{"errorCategory": "VALIDATION_ERROR", "errorMessage": "Cannot find element matching selector #ad-banner"}.
→ Lỗi là do Dev FrontEnd của Domain đích đã đổi tên Class/ID của thẻ Quảng Cáo. Hệ thống DOM Puppeteer click hụt. Quá nhàn để Fix!
Case Study: Proxy xoay bị kẹt đứng System
1.
Mở Log API Go: tail -f logs/system/2026-03-23/log.log | grep LOG_LEVEL_ERROR
2.
Bạn thấy: LOG_DATA:provider="ZingProxy" LOG_ERROR_CODE:"401".
→ Lỗi báo Token ZingProxy hết hạn hoặc hết tiền trong ví ZingProxy. Xử lý lập tức nạp tiền! Không cần Trace code.
Rules for Developer Khi Ghi Log:
❌ KHÔNG ĐƯỢC: logger.info("Hoàn thành task " + taskId + " với rank " + rank) → Hư string matching.
✅ BẮT BUỘC DÙNG: logger.info("Hoàn thành task", { task_id: taskId, rank: rank }) → ElasticSearch Index được giá trị mảng.

Modified at 2026-03-25 07:01:35
Previous
Code Structure
Next
Environment & Configuration
Built with