1+ /*
2+ * Copyright The OpenTelemetry Authors
3+ * SPDX-License-Identifier: Apache-2.0
4+ */
5+
6+ package io .opentelemetry .instrumentation .api .incubator .semconv .messaging ;
7+
8+ import io .opentelemetry .api .logs .Severity ;
9+ import io .opentelemetry .instrumentation .api .instrumenter .InstrumenterBuilder ;
10+ import io .opentelemetry .instrumentation .api .internal .Experimental ;
11+
12+ /** Utilities for configuring messaging exception events. */
13+ public final class MessagingExceptionEventExtractors {
14+
15+ /** Configures the messaging create exception event name and severity. */
16+ public static <REQUEST > void setMessagingCreateExceptionEventExtractor (
17+ InstrumenterBuilder <REQUEST , ?> builder ) {
18+ setExceptionEventExtractor (builder , "messaging.create.exception" , Severity .WARN );
19+ }
20+
21+ /** Configures the messaging send exception event name and severity. */
22+ public static <REQUEST > void setMessagingSendExceptionEventExtractor (
23+ InstrumenterBuilder <REQUEST , ?> builder ) {
24+ setExceptionEventExtractor (builder , "messaging.send.exception" , Severity .WARN );
25+ }
26+
27+ /** Configures the messaging receive exception event name and severity. */
28+ public static <REQUEST > void setMessagingReceiveExceptionEventExtractor (
29+ InstrumenterBuilder <REQUEST , ?> builder ) {
30+ setExceptionEventExtractor (builder , "messaging.receive.exception" , Severity .WARN );
31+ }
32+
33+ /** Configures the messaging settle exception event name and severity. */
34+ public static <REQUEST > void setMessagingSettleExceptionEventExtractor (
35+ InstrumenterBuilder <REQUEST , ?> builder ) {
36+ setExceptionEventExtractor (builder , "messaging.settle.exception" , Severity .WARN );
37+ }
38+
39+ /** Configures the messaging process exception event name and severity. */
40+ public static <REQUEST > void setMessagingProcessExceptionEventExtractor (
41+ InstrumenterBuilder <REQUEST , ?> builder ) {
42+ setExceptionEventExtractor (builder , "messaging.process.exception" , Severity .ERROR );
43+ }
44+
45+ private static <REQUEST > void setExceptionEventExtractor (
46+ InstrumenterBuilder <REQUEST , ?> builder , String eventName , Severity severity ) {
47+ Experimental .setExceptionEventExtractor (
48+ builder ,
49+ (logRecordBuilder , context , request ) -> {
50+ logRecordBuilder .setEventName (eventName );
51+ logRecordBuilder .setSeverity (severity );
52+ });
53+ }
54+
55+ private MessagingExceptionEventExtractors () {}
56+ }
0 commit comments