From 59fcc3d366d86059b763a3c40bfaa97063a7bb42 Mon Sep 17 00:00:00 2001 From: Sjoerd Talsma Date: Sun, 24 Nov 2024 15:52:14 +0100 Subject: [PATCH] Add javadoc for the opentelemetry context timer. Signed-off-by: Sjoerd Talsma --- .../timers/micrometer/package-info.java | 24 ++++++++++++++++ .../OpenTelemetryContextTimer.java | 27 ++++++++++++++++++ .../timers/opentelemetry/package-info.java | 28 +++++++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 timers/context-timer-micrometer/src/main/java/nl/talsmasoftware/context/timers/micrometer/package-info.java create mode 100644 timers/context-timer-opentelemetry/src/main/java/nl/talsmasoftware/context/timers/opentelemetry/package-info.java diff --git a/timers/context-timer-micrometer/src/main/java/nl/talsmasoftware/context/timers/micrometer/package-info.java b/timers/context-timer-micrometer/src/main/java/nl/talsmasoftware/context/timers/micrometer/package-info.java new file mode 100644 index 00000000..166ee9be --- /dev/null +++ b/timers/context-timer-micrometer/src/main/java/nl/talsmasoftware/context/timers/micrometer/package-info.java @@ -0,0 +1,24 @@ +/* + * Copyright 2016-2024 Talsma ICT + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * {@link nl.talsmasoftware.context.api.ContextTimer Context timer} that + * updates a {@linkplain io.micrometer.core.instrument.Timer micrometer Timer} + * to {@linkplain io.micrometer.core.instrument.Timer#record(long, TimeUnit) record} + * the context switching durations. + */ +package nl.talsmasoftware.context.timers.micrometer; + +import java.util.concurrent.TimeUnit; diff --git a/timers/context-timer-opentelemetry/src/main/java/nl/talsmasoftware/context/timers/opentelemetry/OpenTelemetryContextTimer.java b/timers/context-timer-opentelemetry/src/main/java/nl/talsmasoftware/context/timers/opentelemetry/OpenTelemetryContextTimer.java index cd57ad0e..f2674e81 100644 --- a/timers/context-timer-opentelemetry/src/main/java/nl/talsmasoftware/context/timers/opentelemetry/OpenTelemetryContextTimer.java +++ b/timers/context-timer-opentelemetry/src/main/java/nl/talsmasoftware/context/timers/opentelemetry/OpenTelemetryContextTimer.java @@ -32,11 +32,38 @@ import static io.opentelemetry.api.common.AttributeKey.stringKey; +/** + * {@link nl.talsmasoftware.context.api.ContextTimer Context timer} that + * creates a {@linkplain io.opentelemetry.api.trace.Span Span} + * using the {@linkplain io.opentelemetry.api.GlobalOpenTelemetry GlobalOpenTelemetry} + * for context switches. + * + *

+ * Individual {@linkplain nl.talsmasoftware.context.api.ContextManager context managers} + * are not traced, only the operations regarding {@linkplain ContextSnapshot} + * are traced. + * + * @author Sjoerd Talsma + */ public class OpenTelemetryContextTimer implements ContextTimer { private static final Logger LOGGER = Logger.getLogger(OpenTelemetryContextTimer.class.getName()); private static final String INSTRUMENTATION_SCOPE = "nl.talsmasoftware.context"; private static final String INSTRUMENTATION_VERSION = Optional.ofNullable(readVersion()).orElse("2.0.0"); + /** + * Creates a {@linkplain Span} using the {@linkplain GlobalOpenTelemetry} for context switches. + * + *

+ * Individual {@linkplain nl.talsmasoftware.context.api.ContextManager context managers} + * are not traced, only the operations regarding {@linkplain ContextSnapshot} + * are traced. + * + * @param type Class that was called + * @param method Method that was called + * @param duration Duration of the call + * @param unit Unit of the duration + * @param error Error that was thrown in the call (optional, normally {@code null}) + */ @Override public void update(Class type, String method, long duration, TimeUnit unit, Throwable error) { if (mustTrace(type)) { diff --git a/timers/context-timer-opentelemetry/src/main/java/nl/talsmasoftware/context/timers/opentelemetry/package-info.java b/timers/context-timer-opentelemetry/src/main/java/nl/talsmasoftware/context/timers/opentelemetry/package-info.java new file mode 100644 index 00000000..d943d0c9 --- /dev/null +++ b/timers/context-timer-opentelemetry/src/main/java/nl/talsmasoftware/context/timers/opentelemetry/package-info.java @@ -0,0 +1,28 @@ +/* + * Copyright 2016-2024 Talsma ICT + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * {@link nl.talsmasoftware.context.api.ContextTimer Context timer} that + * creates a {@linkplain io.opentelemetry.api.trace.Span Span} + * using the {@linkplain io.opentelemetry.api.GlobalOpenTelemetry GlobalOpenTelemetry} + * for context switches. + * + *

+ * Individual {@linkplain nl.talsmasoftware.context.api.ContextManager context managers} + * are not traced, only the operations regarding {@linkplain nl.talsmasoftware.context.api.ContextSnapshot} + * are traced. + */ +package nl.talsmasoftware.context.timers.opentelemetry; +