19
19
import io .opentelemetry .api .GlobalOpenTelemetry ;
20
20
import io .opentelemetry .api .OpenTelemetry ;
21
21
import io .opentelemetry .api .common .Attributes ;
22
+ import io .opentelemetry .api .trace .Span ;
22
23
import io .opentelemetry .api .trace .propagation .W3CTraceContextPropagator ;
24
+ import io .opentelemetry .context .Context ;
23
25
import io .opentelemetry .context .propagation .ContextPropagators ;
24
26
import io .opentelemetry .exporter .otlp .logs .OtlpGrpcLogRecordExporter ;
25
27
import io .opentelemetry .exporter .otlp .trace .OtlpGrpcSpanExporter ;
@@ -65,6 +67,7 @@ public static void createLogEvent(Main main, TenantIdentifier tenantIdentifier,
65
67
String logLevel ) {
66
68
getInstance (main ).openTelemetry .getTracer ("core-tracer" )
67
69
.spanBuilder (logLevel )
70
+ .setParent (Context .current ())
68
71
.setAttribute ("tenant.connectionUriDomain" , tenantIdentifier .getConnectionUriDomain ())
69
72
.setAttribute ("tenant.appId" , tenantIdentifier .getAppId ())
70
73
.setAttribute ("tenant.tenantId" , tenantIdentifier .getTenantId ())
@@ -77,6 +80,34 @@ public static void createLogEvent(Main main, TenantIdentifier tenantIdentifier,
77
80
.end ();
78
81
}
79
82
83
+ public static Span startSpan (Main main , TenantIdentifier tenantIdentifier , String spanName ) {
84
+ Span span = getInstance (main ).openTelemetry .getTracer ("core-tracer" )
85
+ .spanBuilder (spanName )
86
+ .setParent (Context .current ())
87
+ .setAttribute ("tenant.connectionUriDomain" , tenantIdentifier .getConnectionUriDomain ())
88
+ .setAttribute ("tenant.appId" , tenantIdentifier .getAppId ())
89
+ .setAttribute ("tenant.tenantId" , tenantIdentifier .getTenantId ())
90
+ .startSpan ();
91
+
92
+ span .makeCurrent (); // Set the span as the current context
93
+ return span ;
94
+ }
95
+
96
+ public static Span endSpan (Span span ) {
97
+ if (span != null ) {
98
+ span .end ();
99
+ }
100
+ return span ;
101
+ }
102
+
103
+ public static Span addEventToSpan (Span span , String eventName , Attributes attributes ) {
104
+ if (span != null ) {
105
+ span .addEvent (eventName , attributes , System .currentTimeMillis (), TimeUnit .MILLISECONDS );
106
+ }
107
+ return span ;
108
+ }
109
+
110
+
80
111
private static OpenTelemetry initializeOpenTelemetry (Main main ) {
81
112
if (getInstance (main ) != null && getInstance (main ).openTelemetry != null ) {
82
113
return getInstance (main ).openTelemetry ; // already initialized
0 commit comments