Theo dõi email gửi và quota của relay chung

Mỗi email hệ thống gửi đi được ghi lại một dòng. Platform admin xem được lượng gửi trong 24 giờ qua so với quota 2.000 của Gmail relay, và tenant admin xem được số email của riêng tenant mình.

SP-767 · 1 tháng 10 năm 2026

Trạng thái tính đến 1 tháng 10 năm 2026

Giai đoạn
Đang review. PR #509 còn mở. Chưa merge vào main, chưa lên beta, chưa có trong tag production. CI đã xanh, chưa có quyết định review.
PR
#509 chứa toàn bộ thay đổi: ledger, quota, ba endpoint, trang Email usage và phần Email của tenant trong platform admin, phần Email trong Usage của LMS.
Ticket
SP-767, hiện ở trạng thái Backlog.
Dữ liệu
Toàn bộ ảnh chụp và video đến từ một stack local với dữ liệu mẫu. Tên và số liệu không có thật.
Ngoại lệ
Một lần gửi email thật, bị lỗi vì SMTP không kết nối được. Dòng ledger của lần gửi đó là thật. Xem phần bằng chứng.

Tại sao cần thay đổi này

Mọi email hệ thống gửi qua một Gmail relay chung, trừ khi tenant tự cấu hình SMTP riêng. Google Workspace giới hạn tài khoản relay này ở 2.000 email trong mỗi 24 giờ trượt.

Trước đây không ai xem được mình đã dùng bao nhiêu phần của giới hạn đó. Khi email bắt đầu lỗi, không có số liệu để biết đó là do chạm giới hạn hay do nguyên nhân khác. Giờ đã có số liệu cho việc này.

Thay đổi gì, trong một hình

Bước 1

Hệ thống gửi email

Email đi qua relay chung, hoặc qua SMTP riêng nếu tenant có cấu hình.

Bước 2

Ghi một dòng vào ledger

Mỗi lần gửi có một dòng. Dòng ghi tenant, relay, loại email và kết quả gửi được hay lỗi.

Bước 3

Quota chỉ để tính phần trăm

Quota mặc định là 2.000. Đạt quota không chặn email nào.

Bước 4

Hai nơi xem số liệu

Platform admin xem cả quota. Tenant admin chỉ xem số đếm của tenant mình.

Video demo

Khoảng 1 phút 43 giây, không có tiếng, giao diện tiếng Việt. Chấm xanh là con trỏ chuột.

Bạn sẽ thấy

  1. 0 đến 8 giây. Platform admin mở trang "Mức sử dụng email". Trang hiện tháng 9/2026.
  2. 8 đến 19 giây. Con trỏ dừng ở tile 24 giờ qua, rồi ở hai tile 10.288 và 3.761.
  3. 19 đến 38 giây. Biểu đồ "Số email gửi mỗi ngày" và bảng "Theo tổ chức", dừng ở hàng "Tổ chức đã xóa".
  4. 38 đến 58 giây. Mở Tenant B, tab "Mức sử dụng", phần Email. Số liệu 199, 3.761 và 150, rồi biểu đồ và bảng 6 tháng qua.
  5. 58 đến 77 giây. Vào "Cấu hình", đổi quota từ 2000 thành 1500 và bấm "Lưu". Toast báo thành công hiện ra.
  6. 77 đến 83 giây. Quay lại "Mức sử dụng email". Tile 24 giờ qua hiện 82,7% của quota 1.500.
  7. 83 đến 103 giây. Chuyển sang LMS, trang "Mức Sử Dụng" của tenant admin. Phần Email có 4.945, 0 và 198, cùng hai biểu đồ.

Hai điều cần biết. Ở vài giây đầu, biểu đồ tháng 9 còn đang vẽ. Quota 1500 trong video chỉ để thử. Sau video, quota đã được trả về mặc định 2000.

Cách dùng cho platform admin

Đây là quy trình khi bạn muốn kiểm tra relay chung đang dùng bao nhiêu quota.

  1. Mở trang Email usage

    Trong menu bên trái, nhóm "Nền tảng", chọn "Mức sử dụng email" (Email usage trong bản tiếng Anh). Trang mở ở tháng hiện tại.

    Trang Mức sử dụng email tháng 9/2026 với bốn tile, biểu đồ theo ngày và bảng theo tổ chức
    Toàn trang, tháng 9/2026. Có bốn tile, một biểu đồ theo ngày và một bảng theo tenant. Click để mở ảnh đầy đủ.
  2. Đọc bốn tile

    Tile đầu tiên là con số quan trọng nhất. Nó cho biết số email gửi qua relay chung trong 24 giờ qua và phần trăm so với quota.

    Bốn tile tháng 9. 24 giờ qua 1.240, 62,0% của quota 2.000. Tháng này 10.288, SMTP riêng 3.761, gửi lỗi 588
    Tháng 9, quota 2.000. Trong 24 giờ qua có 1.240 email, bằng 62,0% quota. Cả tháng có 10.288 email qua relay chung, 3.761 qua SMTP riêng của các tenant và 588 email gửi lỗi.
  3. Xem biểu đồ theo ngày

    Biểu đồ "Số email gửi mỗi ngày" cho thấy số email gửi qua relay chung trong từng ngày của tháng, theo giờ UTC.

    Biểu đồ đường số email mỗi ngày trong tháng 9, khoảng 200 đến 420 mỗi ngày, có đỉnh khoảng 1.250 vào ngày 30/9
    Tháng 9, từ ngày 1 đến ngày 30. Phần lớn các ngày có khoảng 200 đến 420 email. Đoạn trũng ngày 28 và 29/9 và đỉnh khoảng 1.250 ngày 30/9 do cách tạo dữ liệu mẫu. Chúng không cho thấy cách hệ thống chạy thật.
  4. Xem bảng theo tenant

    Bảng "Theo tổ chức" chia số email tháng đó theo tenant. Nó có ba cột đếm là "Máy chủ email chung", "SMTP riêng" và "Gửi lỗi".

    Bảng theo tổ chức tháng 9 với sáu hàng, trong đó có hàng Nền tảng và hàng Tổ chức đã xóa
    Tháng 9 có sáu hàng. SkillPixel 4.945 email qua relay chung và 198 lỗi. Tenant B dùng SMTP riêng nhiều nhất, 3.761 email. Hai hàng đặc biệt là "Nền tảng" và "Tổ chức đã xóa", giải thích ở phần "Đọc màn hình".
  5. Chọn tháng trước

    Dùng mũi tên cạnh tên tháng để xem các tháng cũ. Tile 24 giờ qua không đổi khi bạn đổi tháng, vì nó luôn tính lùi từ bây giờ.

    Trang tháng 8/2026 với tile 24 giờ qua vẫn là 1.240, các tile tháng là 9.714, 3.507 và 554
    Tháng 8/2026. Tile 24 giờ qua vẫn là 1.240, 62,0% của 2.000. Ba tile còn lại đổi thành 9.714, 3.507 và 554. Tile thứ hai vẫn ghi "tháng này" dù đang xem tháng 8, xem phần giới hạn.
  6. Xem từng tenant

    Mở một tenant, vào tab "Mức sử dụng" (Usage tab), kéo xuống phần "Email". Phần này có ba tile riêng của tenant đó.

    Phần Email của Tenant B tháng 9 với ba tile 199, 3.761 và 150
    Tenant B, tháng 9. Máy chủ email chung 199, SMTP riêng 3.761, gửi lỗi 150.
    Biểu đồ email mỗi ngày của Tenant B và bảng 6 tháng qua, tháng 9 có 199 và 3.761
    Bên dưới tile có biểu đồ theo ngày, tính cả hai cách gửi, và bảng "6 tháng qua". Tháng 9 là 199 qua relay chung và 3.761 qua SMTP riêng. Tháng 4 là 90 và 2.153. Click để mở ảnh đầy đủ.
  7. Xem hoặc đổi quota

    Vào "Cấu hình" (Config), tìm "Platform email daily quota". Giá trị mặc định là 2000. Bạn sửa ngay trên dòng đó, không có hộp thoại xác nhận. Nút "Lưu" chỉ sáng lên khi giá trị đã đổi.

    Dòng cấu hình Platform email daily quota với nhãn Mặc định, giá trị 2000, nút Lưu bị khóa
    Trước khi sửa. Nhãn "Mặc định", giá trị 2000, nút "Lưu" bị khóa.
    Cùng dòng cấu hình với giá trị 1500 đã gõ, nút Lưu sáng lên
    Đã gõ 1500, chưa lưu. Nút "Lưu" đã sáng.
  8. Quay lại xem phần trăm mới

    Phần trăm đổi ngay theo quota mới. Số email không đổi.

    Bốn tile sau khi lưu quota 1500, tile 24 giờ qua là 1.240 và 82,7% của 1.500
    Sau khi lưu 1500. Vẫn 1.240 email trong 24 giờ, nhưng giờ là 82,7% của 1.500 thay vì 62,0% của 2.000. Ba tile còn lại giữ nguyên 10.288, 3.761 và 588.

Phần dành cho tenant admin

Trang "Mức Sử Dụng" trong LMS có thêm phần Email. Phần này chỉ có số đếm của tenant mình. Nó không có quota và không có phần trăm. Đây là chủ ý. Tenant admin không cần biết quota của relay chung, và số đó là việc của platform admin.

  1. Mở trang sử dụng

    Đăng nhập LMS với quyền admin của tenant, vào "Mức Sử Dụng", kéo xuống phần "Email".

    Phần Email của tenant SkillPixel tháng 9 với ba số 4.945, 0 và 198, không có quota
    Tenant SkillPixel, tháng 9. Gửi qua máy chủ email chung 4.945, gửi qua SMTP riêng 0, gửi lỗi 198. Tenant này không cấu hình SMTP riêng, nên số thứ hai là 0. Con số 4.945 khớp với hàng SkillPixel trong bảng của platform admin.
  2. Xem biểu đồ

    Bên dưới có biểu đồ số email mỗi ngày và biểu đồ cột "Email đã gửi · 6 tháng qua".

    Biểu đồ đường theo ngày và biểu đồ cột sáu tháng của tenant SkillPixel, tháng 9 khoảng 4,9 nghìn
    Bên trái là từng ngày của tháng 9. Bên phải là sáu cột từ tháng 4 đến tháng 9, tăng dần từ khoảng 2,7 nghìn lên khoảng 4,9 nghìn, riêng tháng 5 thấp còn khoảng 1,3 nghìn. Đỉnh ngày 30 và đoạn trũng cuối tháng là dữ liệu mẫu.

Đọc màn hình

Bốn tile của platform admin

TileÝ nghĩaVí dụ tháng 9
24 giờ quaSố email gửi thành công qua relay chung trong 24 giờ gần nhất, tính lùi từ lúc mở trang. Kèm phần trăm so với quota. Email lỗi không được tính.1.240, 62,0% của 2.000
Đã gửi tháng này (máy chủ email chung)Email gửi thành công qua relay chung trong tháng đang chọn. Đường nhỏ bên cạnh là xu hướng theo ngày.10.288
Gửi qua SMTP riêng của tổ chứcEmail gửi thành công qua SMTP riêng của các tenant trong tháng. Số này không dùng quota của relay chung.3.761
Gửi lỗiSố lần gửi bị lỗi trong tháng, tính cả hai cách gửi.588

Các hàng của bảng "Theo tổ chức"

HàngÝ nghĩaVí dụ tháng 9
Tên tenantEmail của tenant đó. Bấm vào tên để mở trang chi tiết của tenant.SkillPixel 4.945 / 0 / 198
Nền tảngEmail gửi khi không gắn với tenant nào. Hàng này là chữ xám và không bấm được.639 / 0 / 32
Tổ chức đã xóaEmail của một tenant đã bị xóa. Ledger không xóa dòng theo tenant, nên số email cũ vẫn được tính vào tổng của tháng.102 / 0 / 0

Ba số trong cột ví dụ là máy chủ email chung, SMTP riêng và gửi lỗi, theo thứ tự các cột của bảng.

Vì sao tin được số liệu

Đã kiểm tra bằng tay. Cộng sáu hàng máy chủ email chung của bảng tháng 9 được 4.945 + 3.290 + 1.113 + 639 + 199 + 102 = 10.288, đúng bằng tile tháng. Cộng cột gửi lỗi được 198 + 152 + 56 + 32 + 150 + 0 = 588, đúng bằng tile gửi lỗi. Phần trăm cũng đúng. 1.240 chia 2.000 được 62,0%. 1.240 chia 1.500 được 82,7%, sau khi làm tròn.

Bằng chứng từ dữ liệu

Mười lăm dòng ledger với các cột tenant, relay, status, template và thời gian
Mười lăm dòng ledger, chọn để có đủ các trường hợp. Có dòng gửi được qua relay chung, dòng gửi qua SMTP riêng của Tenant B, dòng lỗi, dòng không có tenant (ô trống, hiện ở trang là "Nền tảng") và dòng của tenant đã xóa. Ảnh chứng minh mỗi lần gửi là một dòng có đủ tenant, relay và kết quả. Click để mở ảnh đầy đủ.
Phản hồi của API tháng 9 với quota 2000, 1240 email trong 24 giờ, 62,0 phần trăm, 10288, 3761 và 588
Phản hồi của API cho tháng 9. Quota 2000, 1240 email trong 24 giờ qua, 62,0 phần trăm, 10288 qua relay chung, 3761 qua SMTP riêng, 588 lỗi. Ảnh chứng minh trang chỉ hiển thị lại đúng những gì API trả về. Click để mở ảnh đầy đủ.
Yêu cầu gửi email thử trả về lỗi 502 và dòng ledger tương ứng với status failed
Một lần gửi thật, không phải dữ liệu mẫu. Stack demo trỏ SMTP vào một địa chỉ không kết nối được, nên lần gửi email thử của tenant SkillPixel trả về lỗi 502. Ngay sau đó có một dòng mới với relay chung, status failed và một người nhận. Ảnh chứng minh đường ghi ledger chạy thật, kể cả khi gửi lỗi. Dòng này nằm trong số 198 email lỗi của SkillPixel ở tháng 9.

Giới hạn và lưu ý

Cách số liệu được tính

Điểm chưa gọn trên giao diện

Các điểm sau đã thấy lúc chụp. Chưa sửa điểm nào, và không điểm nào làm sai số liệu.

Quyết định đã chốt

Câu hỏiLựa chọn
Ghi gì vào ledger?Một dòng cho mỗi lần gửi SMTP, dù gửi được hay lỗi. Dòng có tenant, relay (chung hoặc SMTP riêng), loại email, số người nhận và kết quả.
Khi tenant bị xóa thì sao?Dòng ledger vẫn còn, vì ledger chỉ lưu mã tenant, không có ràng buộc khóa ngoại. Email không gắn tenant hiện là "Nền tảng". Email của tenant đã xóa hiện là "Tổ chức đã xóa".
Ghi ledger lỗi thì sao?Email vẫn gửi. Việc ghi dùng một phiên làm việc riêng và chỉ ghi cảnh báo khi lỗi.
Khi tắt gửi email?Không ghi gì, vì không có lần gửi SMTP nào xảy ra.
Tenant nào được ghi khi phải quay về relay chung?Vẫn ghi tenant đó, dù email đi qua relay chung. Nhờ vậy bảng "Theo tổ chức" vẫn đúng.
Quota lưu ở đâu, mặc định bao nhiêu?Trong Config của platform, mặc định 2000, chỉ platform admin sửa được. Quota chỉ để báo cáo và không chặn email nào.
Phần trăm tính thế nào?Email gửi thành công qua relay chung trong 24 giờ trượt, chia cho quota.
Tenant admin thấy gì?Chỉ số đếm của tenant mình, gồm relay chung, SMTP riêng và lỗi. Không có quota và không có phần trăm, theo chủ ý.
Đếm email hay đếm người nhận?Đếm email. Hiện mọi nơi gửi đều có một người nhận mỗi lần.
Schema database đổi thế nào?Migration chỉ thêm bảng mới, không sửa bảng cũ, nên bản app trước vẫn chạy được.

Việc còn lại

  1. Chưa chạy browser QA trên beta. Báo cáo này dựa trên một stack local với dữ liệu mẫu. Nó chứng minh code chạy đúng, chưa chứng minh bản đã deploy chạy đúng. Trước khi merge hoặc sau khi lên beta, cần đi qua cả hai app bằng dữ liệu thật.
  2. Chưa có cảnh báo và chưa có chặn gửi. Trang chỉ cho thấy số liệu. Nếu muốn báo khi vượt 80% quota, hoặc dừng gửi ở 100%, cần làm riêng.
  3. Merge PR #509. Migration chỉ thêm bảng mới nên bản app cũ vẫn chạy được.
  4. Sau khi lên production, kiểm tra giá trị quota có khớp giới hạn của Google Workspace hay không. Đổi trong "Cấu hình" nếu khác.
  5. Quyết định sửa các điểm chưa gọn ở trên trong PR này hay tách ticket riêng.
  6. Chuyển SP-767 sang Testing sau khi chạy trên beta, và sang Done khi đã có trong tag production.