63
63
*/
64
64
class DynatraceExporterV2Test {
65
65
66
+ private static final String SUBSEQUENT_LOGS_AS_DEBUG = "Note that subsequent logs will be logged at debug level." ;
67
+
66
68
private MockLoggerFactory loggerFactory ;
67
69
68
70
private MockLogger logger ;
@@ -79,8 +81,6 @@ class DynatraceExporterV2Test {
79
81
80
82
private DynatraceExporterV2 exporter ;
81
83
82
- private static final String subsequentLogsAsDebug = "Note that subsequent logs will be logged at debug level." ;
83
-
84
84
@ BeforeEach
85
85
void setUp () {
86
86
this .config = createDefaultDynatraceConfig ();
@@ -126,7 +126,7 @@ void toGaugeLineShouldDropNanValue_testLogWarnThenDebug() {
126
126
127
127
String expectedMessage = "Meter 'my.gauge' returned a value of NaN, which will not be exported. This can be a deliberate value or because the weak reference to the backing object expired." ;
128
128
129
- LogEvent warnEvent = new LogEvent (WARN , String .join (" " , expectedMessage , subsequentLogsAsDebug ), null );
129
+ LogEvent warnEvent = new LogEvent (WARN , String .join (" " , expectedMessage , SUBSEQUENT_LOGS_AS_DEBUG ), null );
130
130
LogEvent debugEvent = new LogEvent (DEBUG , expectedMessage , null );
131
131
132
132
meterRegistry .gauge ("my.gauge" , NaN );
@@ -692,15 +692,14 @@ void failOnSendWithExceptionShouldHaveProperLogging_warnThenDebug() {
692
692
// these two will be logged by the WarnThenDebugLogger:
693
693
// the warning message is suffixed with "Note that subsequent logs will be logged
694
694
// at debug level.".
695
- LogEvent warnThenDebugWarningLog = new LogEvent (WARN ,
696
- String .join (" " , expectedWarnThenDebugMessage , expectedException .getMessage (), subsequentLogsAsDebug ),
697
- expectedException );
695
+ LogEvent warnThenDebugWarningLog = new LogEvent (WARN , String .join (" " , expectedWarnThenDebugMessage ,
696
+ expectedException .getMessage (), SUBSEQUENT_LOGS_AS_DEBUG ), expectedException );
698
697
LogEvent warnThenDebugDebugLog = new LogEvent (DEBUG ,
699
698
String .join (" " , expectedWarnThenDebugMessage , expectedException .getMessage ()), expectedException );
700
699
701
700
// this will be logged by the "general" logger in a single line (once per export)
702
- LogEvent expectedExceptionLogMessage = new LogEvent (WARN ,
703
- "Failed metric ingestion: java.lang.RuntimeException: " + expectedException . getMessage (), null );
701
+ LogEvent expectedExceptionLogMessage = new LogEvent (WARN , "Failed metric ingestion: " + expectedException ,
702
+ null );
704
703
705
704
meterRegistry .gauge ("my.gauge" , 1d );
706
705
Gauge gauge = meterRegistry .find ("my.gauge" ).gauge ();
@@ -712,28 +711,18 @@ void failOnSendWithExceptionShouldHaveProperLogging_warnThenDebug() {
712
711
// debug event.
713
712
assertThat (logger .getLogEvents ()).containsOnlyOnce (expectedExceptionLogMessage );
714
713
715
- long countExceptionLogsFirstExport = logger .getLogEvents ()
716
- .stream ()
717
- .filter (event -> event .equals (expectedExceptionLogMessage ))
718
- .count ();
719
- assertThat (countExceptionLogsFirstExport ).isEqualTo (1 );
720
-
721
714
// the WarnThenDebugLogger only has one event so far.
722
- assertThat (stackTraceLogger .getLogEvents ()).hasSize ( 1 ). containsExactly (warnThenDebugWarningLog );
715
+ assertThat (stackTraceLogger .getLogEvents ()).containsExactly (warnThenDebugWarningLog );
723
716
724
717
// second export
725
718
exporter .export (Collections .singletonList (gauge ));
726
719
727
720
// after the second export, the general logger contains the warning log twice
728
- long countExceptionLogsSecondExport = logger .getLogEvents ()
729
- .stream ()
730
- .filter (event -> event .equals (expectedExceptionLogMessage ))
731
- .count ();
732
- assertThat (countExceptionLogsSecondExport ).isEqualTo (2 );
721
+ assertThat (logger .getLogEvents ().stream ().filter (event -> event .equals (expectedExceptionLogMessage )))
722
+ .hasSize (2 );
733
723
734
724
// the WarnThenDebugLogger now has two logs.
735
- assertThat (stackTraceLogger .getLogEvents ()).hasSize (2 )
736
- .containsExactly (warnThenDebugWarningLog , warnThenDebugDebugLog );
725
+ assertThat (stackTraceLogger .getLogEvents ()).containsExactly (warnThenDebugWarningLog , warnThenDebugDebugLog );
737
726
}
738
727
739
728
@ Test
@@ -1031,7 +1020,7 @@ void conflictingMetadataIsIgnored_testLogWarnThenDebug() {
1031
1020
+ "original metadata:\t #my.count count dt.meta.description=count\\ 1\\ description,dt.meta.unit=Bytes\n "
1032
1021
+ "tried to set new:\t #my.count count dt.meta.description=count\\ description\n "
1033
1022
+ "Metadata for metric key my.count will not be sent." ;
1034
- LogEvent warnEvent = new LogEvent (WARN , String .join (" " , expectedLogMessage , subsequentLogsAsDebug ), null );
1023
+ LogEvent warnEvent = new LogEvent (WARN , String .join (" " , expectedLogMessage , SUBSEQUENT_LOGS_AS_DEBUG ), null );
1035
1024
LogEvent debugEvent = new LogEvent (DEBUG , expectedLogMessage , null );
1036
1025
1037
1026
HttpSender .Request .Builder builder = mock (HttpSender .Request .Builder .class );
@@ -1056,12 +1045,11 @@ void conflictingMetadataIsIgnored_testLogWarnThenDebug() {
1056
1045
// first export
1057
1046
exporter .export (meterRegistry .getMeters ());
1058
1047
1059
- assertThat (metadataDiscrepancyLogger .getLogEvents ()).hasSize ( 1 ). containsExactly (warnEvent );
1048
+ assertThat (metadataDiscrepancyLogger .getLogEvents ()).containsExactly (warnEvent );
1060
1049
1061
1050
// second export
1062
1051
exporter .export (meterRegistry .getMeters ());
1063
- assertThat (metadataDiscrepancyLogger .getLogEvents ()).hasSize (2 ).containsExactly (warnEvent , debugEvent );
1064
-
1052
+ assertThat (metadataDiscrepancyLogger .getLogEvents ()).containsExactly (warnEvent , debugEvent );
1065
1053
}
1066
1054
1067
1055
@ Test
0 commit comments