Giám sát và thu thập chỉ số hiệu suất trong Sentry Relay

Dựa trên tài liệu chính thức của Sentry

Logging hệ thống

Relay ghi log ra stderr với mức mặc định là INFO. Khi khởi động, bạn có thể thấy:

INFO  relay::setup > khởi chạy từ thư mục .relay
INFO  relay::setup >   chế độ: managed
INFO  relay::setup >   ID: cde0d72e-0c4e-4550-a934-c1867d8a177c
INFO  relay::setup >   mức log: INFO

Mức log có thể điều chỉnh để tăng/giảm lượng thông tin. Xem thêm tại trang cấu hình logging.

Báo cáo lỗi nội bộ

Theo mặc định, lỗi được ghi vào logger đã cấu hình. Để gửi lỗi lên Sentry, thêm vào file cấu hình:

sentry:
  enabled: true
  dsn: <your_dsn>

Kiểm tra sức khỏe

Hai endpoint kiểm tra trạng thái:

  • GET /api/relay/healthcheck/live/: Kiểm tra tiến trình có đang chạy không.
  • GET /api/relay/healthcheck/ready/: Kiểm tra kết nối upstream và trạng thái hoạt động.

Phản hồi thành công:

{
  "is_healthy": true
}

Thu thập chỉ số qua StatsD

Cấu hình để gửi metric tới StatsD server:

metrics:
  statsd: 127.0.0.1:8126
  prefix: mycompany.relay

Chỉ số sự kiện (event metrics)

  • event.accepted: Số envelope được chấp nhận sau khi vượt qua rate limit và filter.
  • event.corrupted: Số sự kiện có thuộc tính bị hỏng (vd: environment, release).
  • event.processing_time: Thời gian xử lý đồng bộ envelope (bao gồm deserialize, PII, serialization...).
  • event.protocol: Số lượng request đến các endpoint kiểu store, gắn nhãn theo version giao thức.
  • event.queue_size: Số envelope đang chờ xử lý trong hàng đợi.
  • event.rejected: Số envelope bị từ chối do lỗi định dạng, filter, hoặc rate limit.
  • event.size_bytes.raw: Kích thước raw của HTTP body trước giải nén.
  • event.total_time: Tổng thời gian từ khi nhận đến khi gửi lên upstream.
  • event.wait_time: Thời gian chờ trước khi bắt đầu xử lý đồng bộ — phản ánh độ trễ tích lũy.

Chỉ số xử lý sự kiện chi tiết

  • event_processing.deserialize: Thời gian deserialize JSON → cấu trúc dữ liệu nội bộ.
  • event_processing.filtering: Thời gian áp dụng bộ lọc dữ liệu đầu vào.
  • event_processing.pii: Thời gian làm sạch dữ liệu nhạy cảm trước khi serialize lại.
  • event_processing.rate_limiting: Thời gian kiểm tra giới hạn tỷ lệ cho tổ chức/dự án/DSN.

Chỉ số outcomes

  • events.outcomes: Đếm số lần từ chối envelope, gắn nhãn:
    • outcome: lý do chung (filtered, rate_limited, invalid)
    • reason: quy tắc cụ thể gây ra outcome
    • to: đích gửi (kafka/http)

Chỉ số HTTP và kết nối

  • http_queue.size: Số request đang chờ gửi đi, gắn nhãn theo priority (high/low).
  • requests: Tổng số request HTTP đến Relay.
  • requests.duration: Thời gian xử lý request, gắn nhãn methodroute.
  • responses.status_codes: Số lượng response theo mã trạng thái, method và route.

Chỉ số cache dự án

  • project_cache.hit: Số lần tìm thấy trạng thái dự án trong cache.
  • project_cache.miss: Số lần không tìm thấy → yêu cầu từ upstream.
  • project_cache.eviction: Số mục bị xóa do hết hạn.
  • project_state.request.duration: Thời gian thực hiện batch request cập nhật trạng thái dự án.

Chỉ số xử lý minidump & attachment

  • scrubbing.minidumps.duration: Thời gian xử lý minidump, gắn nhãn status (ok/error/n/a).
  • scrubbing.attachments.duration: Thời gian làm sạch tệp đính kèm.

Chỉ số hệ thống & upstream

  • server.starting: Số lần server khởi động lại — hữu ích để phát hiện crash.
  • upstream.network_outage: Trạng thái kết nối upstream (0 = bình thường, 1 = mất kết nối).
  • upstream.requests.duration: Thời gian gửi request đến upstream, gắn nhãn result, route, status-code, retries.
  • unique_projects: Số dự án hoạt động trong khoảng thời gian hiện tại.

Thẻ: sentry relay monitoring statsd metrics

Đăng vào ngày 24 tháng 5 lúc 19:04