我正在获取有关我的mongo应用程序的指标,并希望使用Mongo Java客户端来获取复制操作日志指标。
从终端上的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();
答案 0 :(得分:0)
您可以尝试一下,
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));