List of usage examples for com.mongodb.event CommandStartedEvent getDatabaseName
public String getDatabaseName()
From source file:com.example.App.java
License:Apache License
public static void main(String[] args) throws InterruptedException { final MongoClientSettings settings = MongoClientSettings.builder() .addCommandListener(new CommandListener() { @Override/*from ww w . j av a 2s . co m*/ public void commandStarted(CommandStartedEvent event) { logger.info("command: db = {}, command = {}", event.getDatabaseName(), event.getCommandName()); } @Override public void commandSucceeded(CommandSucceededEvent event) { logger.info("command succeed: request = {}, command = {}", event.getRequestId(), event.getCommandName()); } @Override public void commandFailed(CommandFailedEvent event) { logger.info("command failed: request = {}, command = {}", event.getRequestId(), event.getCommandName()); logger.error("detail", event.getThrowable()); } }).applicationName("sample-app") .applyToConnectionPoolSettings(builder -> builder.maxSize(1).minSize(1)).build(); final MongoClient client = MongoClients.create(settings); final MongoDatabase database = client.getDatabase("sample"); final MongoCollection<Document> collection = database.getCollection("test"); final Document firstDocument = new Document("id", UUID.randomUUID()).append("name", "test user") .append("created", LocalDateTime.now()); logger.info("document to be saved: {}", firstDocument); final Mono<Document> firstMono = Mono.create(sink -> collection.insertOne(firstDocument, (result, t) -> { if (t == null) { logger.info("inserted: {}", firstDocument); sink.success(firstDocument); } else { logger.error("error", t); sink.error(t); } })); final Mono<List<Document>> secondMono = create100Users(collection, firstMono); final Mono<Long> thirdMono = secondMono.then(Mono.create(sink -> collection.countDocuments((count, t) -> { if (t == null) { logger.info("collection has {} items.", count); sink.success(count); } else { logger.error("error", t); sink.error(t); } }))); final Mono<List<Document>> fourthMono = create100Users(collection, thirdMono); final Mono<List<Document>> fifthMono = create100Users(collection, fourthMono); final Mono<List<Document>> sixthMono = create100Users(collection, fifthMono); final Mono<Document> seventhMono = sixthMono.then(Mono.create(sink -> collection.find().first((doc, t) -> { if (t == null) { logger.info("found document: {}", doc); sink.success(doc); } else { logger.error("error", t); sink.error(t); } }))); final CountDownLatch latch = new CountDownLatch(1); seventhMono.doOnTerminate(() -> { latch.countDown(); client.close(); }).subscribe(doc -> logger.info("first document: {}", doc)); latch.await(); }
From source file:com.google.cloud.trace.mongodb.TracingCommandListener.java
License:Open Source License
public void commandStarted(CommandStartedEvent event) { BsonDocument document = event.getCommand(); Labels.Builder labels = Labels.builder(); String commandName = event.getCommandName(); labels.add(MongoLabels.COMMAND_NAME, commandName); String databaseName = event.getDatabaseName(); labels.add(MongoLabels.DATABASE_NAME, databaseName); labels.add(MongoLabels.REQUEST_ID, Integer.toString(event.getRequestId())); if (document.containsKey("batchSize")) { int batchSize = document.getInt32("batchSize").getValue(); labels.add(MongoLabels.BATCH_SIZE, Integer.toString(batchSize)); }/* ww w. ja v a 2 s . co m*/ String collectionKey = collectionKeyByCommand.get(commandName); if (collectionKey != null && document.containsKey(collectionKey)) { String collectionName = document.getString(collectionKey).getValue(); labels.add(MongoLabels.COLLECTION_NAME, collectionName); } TraceContext context = tracer.startSpan(commandName); tracer.annotateSpan(context, labels.build()); contexts.set(new MongoDBCommandTraceContext(context, event.getRequestId())); }
From source file:io.opentracing.contrib.mongo.TracingCommandListener.java
License:Apache License
private static void decorate(Span span, CommandStartedEvent event) { Tags.COMPONENT.set(span, COMPONENT_NAME); Tags.DB_STATEMENT.set(span, event.getCommand().toString()); Tags.DB_INSTANCE.set(span, event.getDatabaseName()); Tags.PEER_HOSTNAME.set(span, event.getConnectionDescription().getServerAddress().getHost()); InetAddress inetAddress = event.getConnectionDescription().getServerAddress().getSocketAddress() .getAddress();/*from w w w .j a v a 2 s . c om*/ if (inetAddress instanceof Inet4Address) { byte[] address = inetAddress.getAddress(); Tags.PEER_HOST_IPV4.set(span, ByteBuffer.wrap(address).getInt()); } else { Tags.PEER_HOST_IPV6.set(span, inetAddress.getHostAddress()); } Tags.PEER_PORT.set(span, event.getConnectionDescription().getServerAddress().getPort()); Tags.DB_TYPE.set(span, "mongo"); }
From source file:org.eclipse.ditto.services.utils.persistence.mongo.monitoring.KamonCommandListener.java
License:Open Source License
@Override public void commandStarted(final CommandStartedEvent event) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Sent command '{}:{}' with id {} to database '{}' " + "on connection '{}' to server '{}'", event.getCommandName(), event.getCommand().get(event.getCommandName()), event.getRequestId(), event.getDatabaseName(), event.getConnectionDescription().getConnectionId(), event.getConnectionDescription().getServerAddress()); }//from w ww . jav a 2 s .c o m }