Skip to main content
LogBrew CLI mã nguồn mở đọc telemetry và quản lý dữ liệu tài khoản từ terminal. Để cài đặt, đăng nhập và làm các tác vụ thường gặp, bắt đầu với trang Dùng CLI.

Cách CLI hoạt động

Dùng văn bản dễ đọc trong terminal. Dùng --json trong script và agent lập trình. Cần đăng nhập tài khoản để đọc dữ liệu tài khoản. Trước khi bắt đầu đăng nhập, chạy logbrew status --json. Một người phải tự hoàn tất bước cấp quyền trên trình duyệt. Khóa gửi dữ liệu của dự án dùng để gửi telemetry. Khóa này không thay thế được đăng nhập tài khoản. Tạo dự án, tạo khóa, thay đổi trạng thái, mức ưu tiên và người phụ trách của vấn đề, triển khai và cập nhật yêu cầu hỗ trợ đều thay đổi dữ liệu tài khoản. Trước khi chạy một lệnh như vậy, kiểm tra thao tác và đối tượng đích đều đúng. Chạy logbrew --help để xem mọi lệnh. Thêm --help vào một lệnh, như logbrew read logs --help, để xem các flag của lệnh đó. Chạy logbrew help json để xem quy tắc JSON.

Đọc báo cáo doctor của dự án

Dùng ID dự án lấy từ logbrew projects --json:
Lệnh này đọc trạng thái dự án và một log gần đây. Lệnh không tạo dự án, không thay đổi khóa và không ghi lại thiết lập. Báo cáo có status, checks và next. Mỗi mục kiểm tra có check, status và next. Các mục kiểm tra là api, auth, project, ingest_key, setup, telemetry và logs. Mã thoát 0 nghĩa là CLI đã ghi báo cáo. Mã này không có nghĩa là dự án đã sẵn sàng. Đọc status của báo cáo và từng mục kiểm tra. Mục kiểm tra not_checked là chưa đạt. Khi đọc dự án thành công, mục kiểm tra logs là visible, empty, unavailable, error hoặc invalid_response. Mục kiểm tra này không thay đổi status của báo cáo. Kết quả log trống không cho biết gì về các tín hiệu khác. Lần đọc thất bại không phải là kết quả trống. Dùng next làm hướng dẫn khôi phục. Giá trị này không cấp quyền thay đổi trạng thái tài khoản hoặc dự án.

Ví dụ: thiếu quyền truy cập tài khoản

Khi không có thông tin xác thực tài khoản, lệnh không gửi yêu cầu API nào. Lệnh ghi báo cáo này ra standard output và thoát với mã 0:
Báo cáo này khác với kết quả chẩn đoán dự án qua API. Báo cáo không chứa các trường API state, setup_status hoặc next_action.

Bộ lọc

--since nhận thời lượng như 24h hoặc 7d, hoặc dấu thời gian RFC 3339. --until nhận dấu thời gian RFC 3339. Thời điểm này không thuộc khoảng thời gian và phải muộn hơn --since. Lệnh đọc một vấn đề theo ID không nhận --until. Mức độ nghiêm trọng của log là info, warning, error hoặc critical. Trạng thái vấn đề là trạng thái trong quy trình xử lý vấn đề, không phải mức độ nghiêm trọng. --status ignored là tên cũ của --status archived. --status open nghĩa là unresolved, và --status closed nghĩa là resolved. --assignee none chọn các vấn đề chưa có người phụ trách, còn --assignee my_teams chọn các vấn đề của những nhóm bạn tham gia. Mọi giá trị --assignee khác đều thất bại với invalid_assignee. CLI cũng nhận các bí danh sau: --project-id, --env, --service-name, --trace-id, --distinct-id, và --level cho --severity. Dùng các tên trong bảng cho script mới. Lệnh này đọc các lỗi trong 1 ngày:
ID dự án chọn dự án. Tên dịch vụ chọn một thành phần trong dự án đó. Đặt giá trị có khoảng trắng trong dấu ngoặc kép:
Với văn bản tìm kiếm bắt đầu bằng dấu gạch ngang, đặt -- trước văn bản:

Chọn một lần xảy ra của vấn đề

Một vấn đề gộp nhóm các lần xảy ra khớp nhau. Đọc vấn đề để biết trạng thái, số lần xảy ra, thời điểm lần đầu xuất hiện và lần cuối xuất hiện:
Dùng explain issue hoặc investigate issue để lấy bằng chứng từ một lần xảy ra. Nếu không có --occurrence, LogBrew chọn lần xảy ra được đề xuất. Lần này không phải lúc nào cũng là sự kiện mới nhất. Để đọc sự kiện mới nhất:
--occurrence cũng nhận recommended, first hoặc ID lần xảy ra mà LogBrew đã trả về. Các lệnh này từ chối bộ lọc dự án, bản phát hành, môi trường và thời gian. Trước khi so sánh bằng chứng, đọc dấu thời gian của lần xảy ra đã chọn. Xem Điều tra một vấn đề để biết các trường bằng chứng.

Thay đổi trạng thái và mức ưu tiên của vấn đề

Dùng 1 ID vấn đề để thay đổi 1 vấn đề:
archive đặt archived, resolve đặt resolved, và reopen đặt unresolved. Mức ưu tiên là high, medium hoặc low. Mức ưu tiên do bạn đặt sẽ giữ cố định. Nếu không đặt, mức ưu tiên theo mức độ nghiêm trọng của vấn đề. Để thay đổi nhiều hơn 1 vấn đề, thêm --project. Mọi vấn đề phải thuộc dự án đó. Một lệnh thay đổi được tối đa 100 vấn đề:
Kết quả có 1 mục cho mỗi vấn đề. Mỗi mục là updated, unchanged hoặc not_found. Vấn đề unchanged đã có sẵn giá trị được yêu cầu. Bạn có thể chạy lại cùng lệnh sau khi gặp lỗi mạng. Các lệnh này không hỏi xác nhận. Kiểm tra ID vấn đề trước. Khi đọc và thay đổi vấn đề, kết quả hiển thị archived thay vì ignored, cùng priority, priority_source và assignee của từng vấn đề. Xem phản hồi vấn đề.

Giao vấn đề

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. Liệt kê các tài khoản và nhóm mà bạn có thể giao trong một dự án:
Giao 1 vấn đề cho một tài khoản, cho chính bạn bằng me, hoặc cho một nhóm:
Bỏ người phụ trách:
Thêm --project để thay đổi tối đa 100 vấn đề của dự án đó, giống như với trạng thái và mức ưu tiên. 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. Để tìm các vấn đề được giao cho bạn hoặc cho nhóm của bạn:
Đầu ra dạng văn bản hiển thị tên người phụ trách, hoặc team #<slug> nếu đó là một nhóm. Nếu tài khoản không có tên, đầu ra hiển thị địa chỉ email, rồi đến ID người dùng. Vấn đề chưa có người phụ trách hiển thị unassigned.

Chủ sở hữu, lịch sử và hộp thư đến

issues owners liệt kê các chủ sở hữu được đề xuất và bằng chứng mà lệnh đã kiểm tra. issues ownership set gửi các tệp cục bộ, mỗi tệp tối đa 128 KiB. Gửi tệp trống để xóa nội dung đã lưu của tệp đó. issues activity và inbox nhận --limit từ 1 đến 200, cùng --cursor-time và --cursor-id lấy từ next_cursor. Xem Tìm chủ sở hữu của vấn đề.

Đặt quy tắc mức độ nghiêm trọng

Mức độ nghiêm trọng là info, warning, error, critical hoặc source. source hiển thị lại mức độ nghiêm trọng đã ghi nhận. --ignore ẩn các log khớp khỏi danh sách log mặc định. Khi không có --ignore, quy tắc vẫn hiển thị các log đó.

Đọc trang tiếp theo

Log, vấn đề, hành động, chỉ số và trace hỗ trợ phân trang bằng cursor. Bản phát hành thì không. Dùng --pagination cursor cho trang đầu tiên:
Phản hồi có logs và next_cursor. next_cursor khác null có time và id. Gửi hai giá trị này bằng --cursor-time và --cursor-id:
Giữ nguyên bộ lọc và giới hạn trên mọi trang. Dừng khi next_cursor là null. Dùng cursor, không dùng số dòng, để quyết định còn trang nữa hay không. Trang cuối có thể trống:
Vấn đề, hành động và chỉ số dùng cùng cấu trúc, với issues, actions hoặc metrics thay cho logs.

Theo dõi trực tiếp

logbrew watch --json truyền trực tiếp log, vấn đề và hành động. Thêm logs, issues hoặc actions để chỉ truyền một loại. tail, follow và stream là bí danh của watch. Watch không hỗ trợ trace hoặc span. Watch cần --json. Nếu thiếu, lệnh ghi watch streams JSON for agents và thoát với mã 1. Sự kiện vấn đề trong watch hiển thị vấn đề đã lưu trữ là ignored, không kèm mức ưu tiên. Đọc vấn đề để lấy trạng thái và mức ưu tiên hiện tại. Watch chỉ nhận --severity, như --severity error,critical. logbrew watch actions không nhận --severity. CLI áp dụng bộ lọc này sau khi nhận sự kiện. Bộ lọc không làm giảm lượng dữ liệu máy chủ gửi. Watch không có bộ lọc dự án, bản phát hành, môi trường hoặc thời gian. Để dùng các bộ lọc đó, dùng lệnh read. Sau khi mất kết nối tạm thời, CLI chờ rồi kết nối lại.

Đọc kết quả và lỗi

Đặt --json trước hoặc sau lệnh. Đọc mã thoát trước khi dùng đầu ra. Không phân tích cú pháp đầu ra dành cho người đọc. Đầu ra này có thể thay đổi giữa các phiên bản. Đầu ra thành công giữ nguyên cấu trúc phản hồi của API. Đầu ra có thể là mảng hoặc đối tượng. Khi không dùng phân trang bằng cursor, lệnh đọc log trả về một mảng. Mảng trống nghĩa là không có log nào khớp. Đây không phải là lỗi. Lỗi được ghi ra standard error. Ngoại lệ là debug-artifacts --json: lệnh này ghi lỗi ra standard output. Lỗi JSON có ok, error, message và next. Dùng error làm mã lỗi ổn định. Xem xét next trước khi chạy lệnh mà nó gợi ý. Ví dụ, logbrew watch traces --json thoát với mã 2 và ghi:
logbrew read logs --limit 0 --json thoát với mã 2 và ghi:
Sửa giá trị và chạy lại lệnh. Lệnh bị từ chối không phải là kết quả trống. Xem Lỗi API cho lỗi HTTP và Telemetry API cho yêu cầu API trực tiếp.