【问题标题】:Fetch mongo replicationInfo using Mongo Java client使用 Mongo Java 客户端获取 mongo replicationInfo
【发布时间】:2019-06-05 15:57:48
【问题描述】:

我正在获取有关我的 mongo 应用程序的指标,并希望使用 Mongo Java 客户端获取复制 oplog 指标。

从终端 printReplicationInfo() 命令提供所需的信息。但是我找不到它相当于从 Mongo Java 客户端获取相同的数据。

一些旧页面声称通过 Java 客户端这是不可能的,想知道新客户端是否有任何此类选项。如有任何帮助,我们将不胜感激。

更新:感谢您的建议,这是我获取 oplog 窗口信息的尝试:

        DB db = mongoClient.getDB("local");
        DBCollection collection = db.getCollection("oplog.rs");
        List<DBObject> dbObjects = collection.find().sort(new 
        BasicDBObject("ts",-1)).toArray();
        DBObject startEntry = dbObjects.get(0);
        DBObject lastEntry = dbObjects.get(dbObjects.size()-1);
        String startTime = (String)startEntry.get("ts");
        String endTime = (String)lastEntry.get("ts");
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat ("yyyy.MM.dd");
        Date startDate = simpleDateFormat.parse(startTime);
        Date endDate = simpleDateFormat.parse(endTime);
        long diff = endDate.getTime() - startDate.getTime();

【问题讨论】:

标签: java mongodb mongodb-replica-set


【解决方案1】:

你可以试试这个,

DB db = mongoClient.getDatabase("local");
DBObject cmd = new BasicDBObject();
cmd.put("getReplicationInfo", 1);
CommandResult result = db.command(cmd);

或者在较新的 API 版本中,使用 Document 类来自包 org.bson

DB db = mongoClient.getDatabase("admin");
Document documentA = db.runCommand(new Document("getReplicationInfo",1));

【讨论】:

    猜你喜欢
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 2021-07-11
    相关资源
    最近更新 更多