Skip to content

Commit 52c7a24

Browse files
committed
Add messaging exception event extractor helpers
1 parent b2035d0 commit 52c7a24

1 file changed

Lines changed: 56 additions & 0 deletions

File tree

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
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

Comments
 (0)