@@ -248,7 +248,7 @@ private static Map<String, String> getAuthHeaders(Credentials credentials) {
248248 } catch (IOException e ) {
249249 // We log the warning and return an empty map, allowing the exporter to fail gracefully
250250 // with a standard OTLP response code (e.g., 401 Unauthorized) handled by OTel.
251- LOG .warning ("Failed to get auth headers: %s" , e . getMessage () );
251+ LOG .warning (e , "Failed to get auth headers" );
252252 return new HashMap <>();
253253 }
254254 }
@@ -331,15 +331,25 @@ public static OpenTelemetry getOpenTelemetry(
331331 .addSpanExporterCustomizer (
332332 (spanExporter , configProperties ) -> {
333333 if (gcpTelemetryCredentials != null ) {
334- Credentials credentials =
335- resolveCredentialsFromString (gcpTelemetryCredentials );
336- if (spanExporter instanceof OtlpHttpSpanExporter ) {
337- return ((OtlpHttpSpanExporter ) spanExporter )
338- .toBuilder ().setHeaders (() -> getAuthHeaders (credentials )).build ();
339- }
340- if (spanExporter instanceof OtlpGrpcSpanExporter ) {
341- return ((OtlpGrpcSpanExporter ) spanExporter )
342- .toBuilder ().setHeaders (() -> getAuthHeaders (credentials )).build ();
334+ try {
335+ Credentials credentials =
336+ resolveCredentialsFromString (gcpTelemetryCredentials );
337+ if (spanExporter instanceof OtlpHttpSpanExporter ) {
338+ return ((OtlpHttpSpanExporter ) spanExporter )
339+ .toBuilder ()
340+ .setHeaders (() -> getAuthHeaders (credentials ))
341+ .build ();
342+ }
343+ if (spanExporter instanceof OtlpGrpcSpanExporter ) {
344+ return ((OtlpGrpcSpanExporter ) spanExporter )
345+ .toBuilder ()
346+ .setHeaders (() -> getAuthHeaders (credentials ))
347+ .build ();
348+ }
349+ } catch (Exception e ) {
350+ LOG .warning (
351+ e ,
352+ "Failed to resolve telemetry credentials. Telemetry will be exported using default OpenTelemetry configuration (custom authentication headers will not be injected)." );
343353 }
344354 }
345355 return spanExporter ;
0 commit comments