MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Giám sát MongoDB chủ động (Góc của Developer Studio / Advisors)

ClusterControl có nhiều số liệu liên quan đến cơ sở dữ liệu, bản sao và cả hệ điều hành. Bạn cũng có thể theo dõi quá trình chạy bên trong cơ sở dữ liệu thông qua bộ đếm trong phần Tổng quan.

Nếu bạn bật Giám sát dựa trên tác nhân trong ClusterControl, nó sẽ tự động cài đặt cơ sở dữ liệu prometheus cho cơ sở dữ liệu chuỗi thời gian và cả trình xuất (cả mongo và xuất nút) trên nút được giám sát. Sau khi tất cả đã được thiết lập, Trang tổng quan sẽ có sẵn cho bạn với Tổng quan về cụm, Tổng quan về hệ thống và cả số liệu MongoDB (Máy chủ MongoDB và Bản sao) mà bạn có thể sử dụng để theo dõi cơ sở dữ liệu MongoDB.

Ngoài ra còn có một Ops Monitor trong ClusterControl có thể được sử dụng để giám sát các phiên bên trong cơ sở dữ liệu.

Ngoài những điều đã đề cập ở trên, ClusterControl có khả năng tạo Cố vấn tùy chỉnh thông qua Developer Studio. Trong blog này, chúng tôi sẽ xem xét Developer Studio và Cố vấn liên quan đến MongoDB.

Sử dụng Developer Studio

ClusterControl cung cấp Developer Studio, vì vậy bạn có thể tạo Cố vấn tùy chỉnh liên quan đến chủ đề trong MongoDB mà bạn muốn có lời khuyên dựa trên các phương pháp hay nhất về hiệu suất cơ sở dữ liệu. Việc tạo tập lệnh cho các cố vấn tùy chỉnh trong MongoDB yêu cầu bạn phải có kiến ​​thức về ngôn ngữ lập trình javascript, vì tất cả các cố vấn đều được viết bằng javascript. Bạn có thể truy cập Developer Studio thông qua Quản lý -> Developer Studio và bạn sẽ có thể xem trang như hình dưới đây:

Chúng tôi có thể tạo tập lệnh cố vấn mới bằng cách nhấp vào nút Mới, sau đó nó sẽ hiển thị một hộp thoại để điền tên tệp như hình dưới đây:

Chúng tôi sẽ tạo một tập lệnh lock.js đơn giản sẽ được lưu trữ trong đường dẫn s9s / mongodb / kết nối. Tập lệnh thu thập thông tin liên quan đến khóa toàn cầu trong MongoDB. Số lượng khóa toàn cầu cao sẽ là một vấn đề trong MongoDB, vì khóa vẫn đang bị giữ / chưa được phát hành. Dưới đây là mẫu khóa toàn cầu trong javascript:

#include "common/helpers.js"
#include "cmon/io.h"
#include "cmon/alarms.h"

var DESCRIPTION="This advisor collects the number of global locks every minute and"
                " notifies you if the number of locks exceeds 90%."
                " This number can indicate a possible concurrency issue if it’s consistently high."
                " This can happen if a lot of requests are waiting for a lock to be released..";
var WARNING_THRESHOLD=10;
var TITLE="Global lock used";
var ADVICE_WARNINGS="In the past 5 minutes more than 90% of "
    " there could be concurrently issue in the database.";
var ADVICE_OK="The percentage of global lock is satisfactory." ;

function main(hostAndPort) {
    if (hostAndPort == #N/A)
        hostAndPort = "*";
    var hosts   = cluster::mongoNodes();
    var advisorMap = {};
    var result= [];
    var msg = "";
    var endTime   = CmonDateTime::currentDateTime();
    var startTime = endTime - 10 * 60;

    for (i = 0; i < hosts.size(); i++)
    {
        host        = hosts[i];
        if(hostAndPort != "*" && !hostMatchesFilter(host,hostAndPort))
            continue;
        if(host.hostStatus() != "CmonHostOnline")
            continue;
        var advice = new CmonAdvice();
        stats = host.mongoStats(startTime, endTime);
        total_global_lock = stats.toArray("globalLock.currentQueue.total");
       

        if (total_global_lock * 100 < WARNING_THRESHOLD)
        {
            advice.setSeverity(Warning);
            msg = ADVICE_WARNING;
        }
        if (advice.severity() <= 0) {
            advice.setSeverity(Ok);
        }
        advice.setHost(host);
        advice.setTitle(TITLE);
        advice.setAdvice(msg);
        advisorMap[i]= advice;
    }
    return advisorMap;
}

Bạn có thể lưu tập lệnh, biên dịch và chạy. Bạn có thể lên lịch tập lệnh trong Developer Studio dựa trên từng phút, từng giờ tập lệnh sẽ chạy.

Cố vấn

Cố vấn cung cấp cho chúng tôi khả năng hiển thị về trạng thái của tập lệnh mà chúng tôi đã tạo trong Developer Studio, tập lệnh sẽ chạy và thường xuyên kiểm tra hiện tại của khóa toàn cầu. Nếu trạng thái nằm dưới ngưỡng mà chúng tôi xác định, đầu ra trở nên OK, nhưng nó sẽ xuất hiện cảnh báo nếu khóa toàn cầu hiện tại trên ngưỡng. Chúng ta có thể thấy trên ảnh chụp màn hình bên dưới rằng Global lock được sử dụng xuất hiện trong Advisors và trạng thái hiện tại là OK.

Kết luận

Developer Studio và Cố vấn có thể mang lại cho bạn lợi ích khi tạo Cố vấn tùy chỉnh dựa trên yêu cầu của bạn và được hiển thị trong bảng điều khiển ClusterControl và tất nhiên là cả cảnh báo.

Đó là tất cả cho ngày hôm nay!


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để đặt tài liệu _id thành db trong Mongoose?

  2. Tạo chỉ mục đa trường trong Mongoose / MongoDB

  3. sử dụng $ và với $ match trong mongodb

  4. Cách tạo API RESTful tốt nhất trong Node.js

  5. MongoDB find ()