File tree Expand file tree Collapse file tree 4 files changed +42
-3
lines changed
src/main/java/io/opentelemetry/contrib/generator/telemetry Expand file tree Collapse file tree 4 files changed +42
-3
lines changed Original file line number Diff line number Diff line change 20
20
import io .opentelemetry .contrib .generator .telemetry .dto .GeneratorState ;
21
21
import io .opentelemetry .contrib .generator .telemetry .logs .dto .LogDefinition ;
22
22
import io .opentelemetry .contrib .generator .telemetry .logs .dto .Logs ;
23
+ import io .opentelemetry .contrib .generator .telemetry .misc .GeneratorExceptionHandler ;
23
24
import io .opentelemetry .contrib .generator .telemetry .transport .PayloadHandler ;
24
25
import io .opentelemetry .contrib .generator .telemetry .transport .TransportStorage ;
25
26
import lombok .extern .slf4j .Slf4j ;
28
29
import java .util .Map ;
29
30
import java .util .concurrent .ConcurrentHashMap ;
30
31
import java .util .concurrent .Executors ;
32
+ import java .util .concurrent .ScheduledExecutorService ;
31
33
import java .util .concurrent .TimeUnit ;
32
34
33
35
/**
@@ -62,7 +64,14 @@ public void runGenerator() {
62
64
}
63
65
64
66
private void initGeneratorState (int totalPayloadCount ) {
65
- generatorState = new GeneratorState <>(Executors .newScheduledThreadPool (logs .getLogs ().size ()));
67
+ ScheduledExecutorService executorService = Executors .newScheduledThreadPool (
68
+ logs .getLogs ().size (),
69
+ runnable -> {
70
+ Thread t = Executors .defaultThreadFactory ().newThread (runnable );
71
+ t .setUncaughtExceptionHandler (new GeneratorExceptionHandler ());
72
+ return t ;
73
+ });
74
+ generatorState = new GeneratorState <>(executorService );
66
75
generatorState .setTotalPayloadCount (totalPayloadCount );
67
76
generatorState .setThreadPayloadCounts (new ConcurrentHashMap <>());
68
77
if (transportStorage != null ) {
Original file line number Diff line number Diff line change 18
18
19
19
import io .opentelemetry .contrib .generator .telemetry .GeneratorsStateProvider ;
20
20
import io .opentelemetry .contrib .generator .telemetry .dto .GeneratorState ;
21
+ import io .opentelemetry .contrib .generator .telemetry .misc .GeneratorExceptionHandler ;
21
22
import io .opentelemetry .contrib .generator .telemetry .transport .PayloadHandler ;
22
23
import io .opentelemetry .contrib .generator .telemetry .transport .TransportStorage ;
23
24
import io .opentelemetry .contrib .generator .telemetry .metrics .dto .MetricDefinition ;
29
30
import java .util .*;
30
31
import java .util .concurrent .ConcurrentHashMap ;
31
32
import java .util .concurrent .Executors ;
33
+ import java .util .concurrent .ScheduledExecutorService ;
32
34
import java .util .concurrent .TimeUnit ;
33
35
34
36
/**
@@ -70,7 +72,14 @@ public void runGenerator() {
70
72
}
71
73
72
74
private void initGeneratorState () {
73
- generatorState = new GeneratorState <>(Executors .newScheduledThreadPool (metricThreadGroups .size ()));
75
+ ScheduledExecutorService executorService = Executors .newScheduledThreadPool (
76
+ metricThreadGroups .size (),
77
+ runnable -> {
78
+ Thread t = Executors .defaultThreadFactory ().newThread (runnable );
79
+ t .setUncaughtExceptionHandler (new GeneratorExceptionHandler ());
80
+ return t ;
81
+ });
82
+ generatorState = new GeneratorState <>(executorService );
74
83
generatorState .setThreadPayloadCounts (new ConcurrentHashMap <>());
75
84
if (transportStorage != null ) {
76
85
transportStorage .initMetricResponseMaps ();
Original file line number Diff line number Diff line change
1
+ package io .opentelemetry .contrib .generator .telemetry .misc ;
2
+
3
+ import lombok .extern .slf4j .Slf4j ;
4
+
5
+ @ Slf4j
6
+ public class GeneratorExceptionHandler implements Thread .UncaughtExceptionHandler {
7
+
8
+ @ Override
9
+ public void uncaughtException (Thread t , Throwable e ) {
10
+ log .error ("Error occurred in thread " + t .getName (), e );
11
+ }
12
+ }
Original file line number Diff line number Diff line change 18
18
19
19
import io .opentelemetry .contrib .generator .telemetry .GeneratorsStateProvider ;
20
20
import io .opentelemetry .contrib .generator .telemetry .dto .GeneratorState ;
21
+ import io .opentelemetry .contrib .generator .telemetry .misc .GeneratorExceptionHandler ;
21
22
import io .opentelemetry .contrib .generator .telemetry .transport .PayloadHandler ;
22
23
import io .opentelemetry .contrib .generator .telemetry .transport .TransportStorage ;
23
24
import io .opentelemetry .contrib .generator .telemetry .traces .dto .RootSpanDefinition ;
27
28
import java .util .*;
28
29
import java .util .concurrent .ConcurrentHashMap ;
29
30
import java .util .concurrent .Executors ;
31
+ import java .util .concurrent .ScheduledExecutorService ;
30
32
import java .util .concurrent .TimeUnit ;
31
33
32
34
/**
@@ -66,7 +68,14 @@ public void runGenerator() {
66
68
}
67
69
68
70
private void initGeneratorState () {
69
- generatorState = new GeneratorState <>(Executors .newScheduledThreadPool (traceGroups .size ()));
71
+ ScheduledExecutorService executorService = Executors .newScheduledThreadPool (
72
+ traceGroups .size (),
73
+ runnable -> {
74
+ Thread t = Executors .defaultThreadFactory ().newThread (runnable );
75
+ t .setUncaughtExceptionHandler (new GeneratorExceptionHandler ());
76
+ return t ;
77
+ });
78
+ generatorState = new GeneratorState <>(executorService );
70
79
generatorState .setThreadPayloadCounts (new ConcurrentHashMap <>());
71
80
if (transportStorage != null ) {
72
81
transportStorage .initTraceResponseMaps ();
You can’t perform that action at this time.
0 commit comments