Tôi đang cố gắng lấy kết quả của lệnh db.stats() mongo shell trong mã python của tôi (cho mục đích giám sát).MongoDB: cách lấy db.stats() từ API
Nhưng không giống như ví dụ serverStatus Tôi không thể làm db.command('stats')
. Tôi không thể tìm thấy bất kỳ tương đương API nào trong tài liệu mongodb. Tôi cũng đã thử các biến thể với db.$cmd
nhưng không có biến thể nào hoạt động.
Vì vậy,
câu hỏi nhỏ: làm thế nào tôi có thể nhận được kết quả của db.stats()
(số lượng kết nối/đối tượng, kích thước dữ liệu & chỉ số, vv) trong mã python của tôi?
Câu hỏi lớn hơn: bất cứ ai có thể giải thích lý do tại sao một số lệnh shell có thể truy cập dễ dàng từ API, trong khi các lệnh khác thì không? Rất khó chịu: một số công cụ liên quan đến quản trị viên có thể truy cập qua db.$cmd.sys
, một số thông qua db.command
, một số thông qua ...? Có một số tiêu chuẩn hoặc giải thích về tình trạng này?
PS: MongoDB 2.0.2, 2.1.0 pymongo, python 2.7
Được cảnh báo rằng dbstats chặn cơ sở dữ liệu của bạn trong khi nó chạy, vì vậy nó không phù hợp trong sản xuất. https://jira.mongodb.org/browse/SERVER-5714 – whit537
+1 câu trả lời xuất sắc! –
Nó không rõ ràng đây vẫn là một cuộc gọi chặn trong công cụ lưu trữ 'WiredTiger': http://stackoverflow.com/questions/36559408/is-db-stats-a-blocking-call-for-mongodb –