Анотації
Для більшості користувачів вбудована інструменталізація є цілком достатньою і нічого більше не потрібно робити. Однак іноді користувачі бажають створювати відрізки для свого власного коду без необхідності вносити багато змін у код.
Якщо додати анотацію WithSpan
до методу, метод буде обгорнутий у відрізок. Анотація SpanAttribute
дозволяє захоплювати аргументи методу як атрибути.
package otel;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.instrumentation.annotations.SpanAttribute;
import io.opentelemetry.instrumentation.annotations.WithSpan;
import org.springframework.stereotype.Component;
/** Тест WithSpan */
@Component
public class TracedClass {
@WithSpan
public void tracedMethod() {}
@WithSpan(value = "назва спану")
public void tracedMethodWithName() {
Span currentSpan = Span.current();
currentSpan.addEvent("ДОДАТИ ПОДІЮ ДО tracedMethodWithName SPAN");
currentSpan.setAttribute("isTestAttribute", true);
}
@WithSpan(kind = SpanKind.CLIENT)
public void tracedClientSpan() {}
public void tracedMethodWithAttribute(@SpanAttribute("attributeName") String parameter) {}
}
Анотації OpenTelemetry використовують Spring AOP на основі проксі.
Ці анотації працюють лише для методів проксі. Ви можете дізнатися більше у документації Spring.
У наступному прикладі анотація WithSpan
не буде нічого робити, коли викликається
GET-точка доступу:
@RestController
public class MyControllerManagedBySpring {
@GetMapping("/ping")
public void aMethod() {
anotherMethod();
}
@WithSpan
public void anotherMethod() {
}
}
Щоб мати можливість використовувати анотації OpenTelemetry, вам потрібно додати залежність Spring Boot Starter AOP до вашого проєкту:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
</dependencies>
dependencies {
implementation("org.springframework.boot:spring-boot-starter-aop")
}
Ви можете вимкнути анотації OpenTelemetry, встановивши властивість otel.instrumentation.annotations.enabled
у false
.
Ви можете налаштувати відрізок, використовуючи елементи анотації WithSpan
:
Назва | Тип | Опис | Стандартне значення |
---|---|---|---|
value | String | Назва відрізку | ClassName.Method |
kind | SpanKind | Тип відрізку | SpanKind.INTERNAL |
Ви можете встановити назву атрибута за допомогою елемента value
анотації SpanAttribute
:
Назва | Тип | Опис | Стандартне значення |
---|---|---|---|
value | String | Назва атрибута | Назва параметра методу |
Наступні кроки
Окрім використання анотацій, OpenTelemetry API дозволяє отримати трасувальник, який може бути використаний вашим власним інструментарієм.
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!