1515 */
1616package org .springframework .data .mongodb .observability ;
1717
18- import io .micrometer .common .KeyValue ;
19- import io .micrometer .common .KeyValues ;
20-
21- import org .springframework .data .mongodb .observability .MongoObservation .LowCardinalityCommandKeyNames ;
22- import org .springframework .util .Assert ;
23- import org .springframework .util .ObjectUtils ;
24-
2518import com .mongodb .ConnectionString ;
2619import com .mongodb .ServerAddress ;
2720import com .mongodb .connection .ConnectionDescription ;
2821import com .mongodb .connection .ConnectionId ;
2922import com .mongodb .event .CommandStartedEvent ;
23+ import io .micrometer .common .KeyValues ;
24+ import org .springframework .util .Assert ;
25+ import org .springframework .util .ObjectUtils ;
26+
27+ import static org .springframework .data .mongodb .observability .MongoObservation .LowCardinalityCommandKeyNames .*;
3028
3129/**
3230 * Default {@link MongoHandlerObservationConvention} implementation.
@@ -41,54 +39,43 @@ class DefaultMongoHandlerObservationConvention implements MongoHandlerObservatio
4139 @ Override
4240 public KeyValues getLowCardinalityKeyValues (MongoHandlerContext context ) {
4341
44- KeyValues keyValues = KeyValues .of (LowCardinalityCommandKeyNames .DB_SYSTEM .withValue ("mongodb" ),
45- LowCardinalityCommandKeyNames .MONGODB_COMMAND .withValue (context .getCommandName ()));
46-
47- ConnectionString connectionString = context .getConnectionString ();
48- if (connectionString != null ) {
49-
50- keyValues = keyValues
51- .and (LowCardinalityCommandKeyNames .DB_CONNECTION_STRING .withValue (connectionString .getConnectionString ()));
52-
53- String user = connectionString .getUsername ();
54-
55- if (!ObjectUtils .isEmpty (user )) {
56- keyValues = keyValues .and (LowCardinalityCommandKeyNames .DB_USER .withValue (user ));
57- }
58- }
59-
60- if (!ObjectUtils .isEmpty (context .getDatabaseName ())) {
61- keyValues = keyValues .and (LowCardinalityCommandKeyNames .DB_NAME .withValue (context .getDatabaseName ()));
62- }
63-
64- keyValues = keyValues .and (LowCardinalityCommandKeyNames .MONGODB_COLLECTION .withValue (
65- ObjectUtils .isEmpty (context .getCollectionName ()) ? KeyValue .NONE_VALUE : context .getCollectionName ()));
66-
6742 if (context .getCommandStartedEvent () == null ) {
6843 throw new IllegalStateException ("not command started event present" );
6944 }
7045
71- ConnectionDescription connectionDescription = context .getCommandStartedEvent ().getConnectionDescription ();
46+ ConnectionString connectionString = context .getConnectionString ();
47+ String connectionStringValue = connectionString != null ? connectionString .getConnectionString () : null ;
48+ String username = connectionString != null ? connectionString .getUsername () : null ;
7249
50+ String transport = null , peerName = null , peerPort =null , clusterId = null ;
51+ ConnectionDescription connectionDescription = context .getCommandStartedEvent ().getConnectionDescription ();
7352 if (connectionDescription != null ) {
74-
7553 ServerAddress serverAddress = connectionDescription .getServerAddress ();
7654
7755 if (serverAddress != null ) {
78-
79- keyValues = keyValues .and (LowCardinalityCommandKeyNames .NET_TRANSPORT .withValue ("IP.TCP" ),
80- LowCardinalityCommandKeyNames .NET_PEER_NAME .withValue (serverAddress .getHost ()),
81- LowCardinalityCommandKeyNames .NET_PEER_PORT .withValue ("" + serverAddress .getPort ()));
56+ transport = "IP.TCP" ;
57+ peerName = serverAddress .getHost ();
58+ peerPort = String .valueOf (serverAddress .getPort ());
8259 }
8360
8461 ConnectionId connectionId = connectionDescription .getConnectionId ();
8562 if (connectionId != null ) {
86- keyValues = keyValues .and (LowCardinalityCommandKeyNames .MONGODB_CLUSTER_ID
87- .withValue (connectionId .getServerId ().getClusterId ().getValue ()));
63+ clusterId = connectionId .getServerId ().getClusterId ().getValue ();
8864 }
8965 }
9066
91- return keyValues ;
67+ return KeyValues .of (
68+ DB_SYSTEM .withValue ("mongodb" ),
69+ MONGODB_COMMAND .withValue (context .getCommandName ()),
70+ DB_CONNECTION_STRING .withOptionalValue (connectionStringValue ),
71+ DB_USER .withOptionalValue (username ),
72+ DB_NAME .withOptionalValue (context .getDatabaseName ()),
73+ MONGODB_COLLECTION .withOptionalValue (context .getCollectionName ()),
74+ NET_TRANSPORT .withOptionalValue (transport ),
75+ NET_PEER_NAME .withOptionalValue (peerName ),
76+ NET_PEER_PORT .withOptionalValue (peerPort ),
77+ MONGODB_CLUSTER_ID .withOptionalValue (clusterId )
78+ );
9279 }
9380
9481 @ Override
0 commit comments