Skip to main content
Telemetry API dùng JSON qua HTTP tại https://api.logbrew.co. Các SDK công khai gửi các batch do SDK quản lý đến POST /v1/events. Client tùy chỉnh gửi envelope gốc đến POST /api/telemetry/ingest. Cả hai route gửi dữ liệu đều cần bearer token gửi dữ liệu theo phạm vi dự án. Các lần đọc và các thay đổi thuộc tài khoản dùng bearer token của tài khoản. Không bao giờ dùng bearer token của tài khoản hoặc phiên trình duyệt làm cấu hình SDK hoặc cấu hình gửi dữ liệu. Không bao giờ gửi bearer token gửi dữ liệu đến route đọc.

Gửi yêu cầu có phạm vi giới hạn

Dùng danh sách kiểm tra này trước khi client gửi yêu cầu:
  1. Chọn route và phương thức HTTP từ bảng endpoint.
  2. Dùng đúng bearer token: bearer token gửi dữ liệu cho việc gửi dữ liệu, bearer token của tài khoản cho mọi việc khác.
  3. Chọn phạm vi dự án mà route hỗ trợ. Không mở rộng phạm vi sau khi nhận phản hồi trống.
  4. Chỉ thêm các tham số truy vấn mà route chấp nhận. Xem Bộ lọc truy vấn.
  5. Gửi Content-Type: application/json khi route có body JSON.
  6. Đọc mã trạng thái HTTP và body phản hồi trước khi thử lại.
  7. Không để bearer token, ticket luồng trực tiếp và toàn bộ body phản hồi lọt vào log và prompt của agent.

Endpoint

Gửi dữ liệu

Để SDK tạo các batch /v1/events. Không tự tạo các batch này. Về envelope gốc, xem Tích hợp SDK.

Đọc telemetry

Triển khai

Ghi lại một lần triển khai từ quy trình tự động hóa bản phát hành sau khi lần triển khai thành công hoặc thất bại. Body của PUT có project_id, release, environment, service_name, status (succeeded hoặc failed), started_at, finished_at và commit_sha không bắt buộc. Dùng cùng các giá trị release, environment và service_name mà SDK của bạn gửi. Tài khoản phải sở hữu dự án. deployment_id là ID do bạn tự đặt cho lần triển khai. Lần thử lại với cùng ID và cùng body trả về lần triển khai đã lưu. Cùng ID nhưng body khác sẽ thất bại với 409 và idempotency_conflict. Dùng ID mới cho lần triển khai khác.

Điều tra

Mỗi route điều tra trả về một gói bằng chứng có giới hạn cho một đối tượng. Lệnh logbrew explain của CLI đọc các route này và kiểm tra hợp lệ phản hồi.

Phân tích sản phẩm

Các route phân tích POST nhận body JSON, không nhận tham số truy vấn. Xem Phân tích sản phẩm.

Luồng trực tiếp

Tài khoản và đăng nhập

Các route về mức sử dụng, hạn mức, gói đăng ký và đăng xuất nằm trong Account API.

Mã trạng thái thành công

Phản hồi 200 không chứng minh bằng chứng đã đầy đủ. Đọc các trường độ bao phủ, cắt bớt và trạng thái trong phản hồi.

Bộ lọc truy vấn và phân trang

Mỗi route đọc nhận các tham số truy vấn riêng. Các bí danh thân thiện như project, trace và user không phải là tham số truy vấn. Theo mặc định, route danh sách trả về một mảng trần, và trả về envelope cursor khi có pagination=cursor. Danh sách triển khai luôn trả về một đối tượng trang. Xem Bộ lọc truy vấn.

Phản hồi và lỗi

Đọc code trước thông điệp dành cho người đọc. Dùng next_action cho hành vi của chương trình và next cho hướng dẫn dành cho người đọc. Không phân tích cú pháp câu chữ của error hoặc next.

Cập nhật vấn đề

Các yêu cầu này dùng bearer token của tài khoản. Token này cố ý khác với LOGBREW_INGEST_BEARER. Tài khoản phải có quyền quản lý vấn đề trong dự án chứa vấn đề đó. Nếu không, yêu cầu thất bại với 403 và forbidden. Cùng quyền này áp dụng cho việc thay đổi trạng thái, mức ưu tiên và người phụ trách, cũng như quy tắc cho vấn đề và log. Mỗi yêu cầu đặt 1 hoặc nhiều trường sau: Yêu cầu không có trường nào trong số này sẽ thất bại với 422 và validation_failed. Một vấn đề có 0 hoặc 1 người phụ trách: một tài khoản hoặc một nhóm. Tài khoản phải có quyền đọc dự án, còn nhóm phải thuộc tổ chức của dự án. Nếu không, yêu cầu thất bại với 422 và validation_failed, và LogBrew không thay đổi gì. Lấy danh sách tài khoản mà bạn có thể giao từ Liệt kê người phụ trách. Mọi giá trị assignee khác cũng thất bại với 422 và validation_failed. Mức ưu tiên do bạn đặt sẽ giữ cố định. Nếu bạn không đặt mức ưu tiên, mức ưu tiên theo mức độ nghiêm trọng của vấn đề: error và critical là high, warning là medium, và info là low. Trường đã có giá trị được yêu cầu sẽ không thay đổi. Bạn có thể gửi lại cùng yêu cầu sau khi hết thời gian chờ. Hết thời gian chờ không chứng minh rằng thay đổi chưa diễn ra. Đọc lại vấn đề trước khi gửi một thay đổi khác.

Cập nhật một vấn đề

Thêm response_version=4 để nhận archived, mức ưu tiên và người phụ trách trong phản hồi. Ở phiên bản 4, assignee là { "type": "user", "user_id", "name", "email" }, { "type": "team", "team_id", "slug", "name" } hoặc null. Phiên bản 3 hiển thị người phụ trách là nhóm thành null.
Phản hồi là vấn đề đã cập nhật. Xem ví dụ phản hồi khi đổi trạng thái vấn đề.

Cập nhật hàng loạt vấn đề

Gửi project_id và 1 đến 100 ID vấn đề khác nhau thuộc dự án đó:
Yêu cầu áp dụng cùng một thay đổi cho mọi vấn đề. Phản hồi có project_id và results, với 1 kết quả cho mỗi ID vấn đề, theo thứ tự trong yêu cầu. Mỗi kết quả có issue_id, outcome và issue. issue là vấn đề hiện tại ở phiên bản phản hồi 3, hoặc null với not_found. Thêm "response_version": 2 vào body để nhận từng vấn đề ở phiên bản phản hồi 4. Danh sách trống, nhiều hơn 100 ID hoặc ID bị lặp sẽ thất bại với 422 và validation_failed. Chia tập lớn hơn thành nhiều yêu cầu. Nếu tài khoản không đọc được dự án, yêu cầu thất bại với 404 và not_found.

Liệt kê người phụ trách

Gửi ID dự án để lấy mọi tài khoản có thể được giao vấn đề trong dự án đó:
Danh sách có mọi tài khoản đọc được dự án. Mỗi mục có user_id, name và email. name là null khi tài khoản không có tên. Thêm response_version=2 để nhận thêm teams: mọi nhóm thuộc tổ chức của dự án, với team_id, slug và name. Xem phản hồi danh sách người phụ trách. Mọi tài khoản đọc được dự án đều lấy được danh sách này. Nếu tài khoản không đọc được dự án, yêu cầu thất bại với 404 và not_found. Khi một thành viên mất quyền truy cập dự án, các vấn đề đã giao cho thành viên đó sẽ hiển thị là chưa có người phụ trách. Nếu thành viên được cấp lại quyền, các vấn đề lại hiển thị thành viên đó, trừ khi trong thời gian đó có người đã đổi hoặc bỏ người phụ trách.

Quy tắc sở hữu và chủ sở hữu được đề xuất

GET /api/telemetry/issues/ownership?project_id=<project-uuid> trả về rules, codeowners, updated_at và unresolved_owners. Mọi tài khoản đọc được dự án đều đọc được dữ liệu này. PUT kèm project_id và rules, codeowners hoặc cả hai sẽ thay thế nội dung đó, và cần quyền quản lý vấn đề. Trường bạn không gửi sẽ giữ nguyên nội dung, còn chuỗi trống sẽ xóa nội dung. Mỗi nội dung tối đa 128 KiB. Nội dung không hợp lệ thất bại với 422 và nêu rõ dòng bị lỗi. GET /api/telemetry/issues/{issue_id}/owners?response_version=2 trả về suggested_assignee, owners và inputs. Mỗi chủ sở hữu có type (user hoặc team), source (ownership_rule, codeowners hoặc recent_activity), rule, line và matched. Phiên bản 1, phiên bản mặc định, chỉ liệt kê tài khoản.

Lịch sử vấn đề

GET /api/telemetry/issues/{issue_id}/activity?response_version=2 trả về activity, mới nhất trước, và next_cursor. Mỗi mục có type (status, priority, assigned, unassigned, severity_rule hoặc first_seen), value, actor_id, actor, assignee_id, assignee, team và at. limit từ 1 đến 200, mặc định là 50. Gửi cursor_time và cursor_id lấy từ next_cursor để đọc trang tiếp theo.

Thông báo

GET /api/telemetry/issues/notifications trả về notifications, unread, read_at và next_cursor. Mỗi thông báo là một lần tài khoản khác giao vấn đề cho bạn hoặc cho nhóm của bạn. POST /api/telemetry/issues/notifications/read kèm một đối tượng JSON trống, hoặc kèm read_at, sẽ dời mốc đã đọc của bạn. Mốc này không bao giờ lùi lại.

Đặt quy tắc cho vấn đề và log

Quy tắc thay đổi cách LogBrew hiển thị các tín hiệu khớp với quy tắc. Quy tắc không xóa dữ liệu. severity đã ghi nhận được giữ nguyên, và phản hồi hiển thị quy tắc trong triage. severity là info, warning, error, critical hoặc source. source xóa giá trị ghi đè và hiển thị lại mức độ nghiêm trọng đã ghi nhận. Với quy tắc log, ignored: true ẩn các log khớp khỏi danh sách log mặc định. Đọc các log đó bằng status=ignored hoặc status=all. Quy tắc áp dụng cho các tín hiệu khớp đang được giữ lại và các tín hiệu khớp trong tương lai. Giá trị khác sẽ thất bại với 422 và validation_failed.
Không gửi bản phát hành trống. LogBrew từ chối chúng để việc theo dõi bản phát hành luôn đáng tin cậy.