Налаштування SDK
Цей стартер Spring підтримує метадані конфігурації, що означає, що ви можете бачити та автоматично заповнювати всі доступні властивості у вашому IDE.
Загальна конфігурація
OpenTelemetry Starter підтримує всі Автоконфігурації SDK (з версії 2.2.0).
Ви можете оновити конфігурацію за допомогою властивостей у файлі application.properties або application.yaml, або за допомогою змінних середовища.
Приклад application.yaml:
otel:
propagators:
- tracecontext
- b3
resource:
attributes:
deployment.environment: dev
service:
name: cart
namespace: shop
Приклад змінних середовища:
export OTEL_PROPAGATORS="tracecontext,b3"
export OTEL_RESOURCE_ATTRIBUTES="deployment.environment=dev,service.name=cart,service.namespace=shop"
Параметри рівня SDK (ресурси, пропагатори, експортери) використовують стандартну схему декларативної конфігурації безпосередньо в application.yaml. Системні властивості та змінні середовища все ще працюють для перевизначення значень — див. Перевизначення змінних середовища.
otel:
file_format: '1.0'
resource:
attributes:
- name: deployment.environment
value: dev
- name: service.name
value: cart
- name: service.namespace
value: shop
propagator:
composite:
- tracecontext:
- b3:
Перевизначення атрибутів ресурсу
Як зазвичай у Spring Boot, ви можете перевизначити властивості у файлах application.properties та application.yaml за допомогою змінних середовища.
Наприклад, ви можете встановити або перевизначити атрибут ресурсу deployment.environment (не змінюючи service.name або service.namespace) шляхом встановлення стандартної змінної середовища OTEL_RESOURCE_ATTRIBUTES:
export OTEL_RESOURCE_ATTRIBUTES="deployment.environment=prod"
Альтернативно, ви можете використовувати змінну середовища OTEL_RESOURCE_ATTRIBUTES_DEPLOYMENT_ENVIRONMENT для встановлення або перевизначення одного атрибуту ресурсу:
export OTEL_RESOURCE_ATTRIBUTES_DEPLOYMENT_ENVIRONMENT="prod"
Другий варіант підтримує SpEL вирази.
Зверніть увагу, що DEPLOYMENT_ENVIRONMENT перетворюється на deployment.environment за допомогою Relaxed Binding Spring Boot.
Вимкнення OpenTelemetry Starter
Встановіть otel.sdk.disabled в true, щоб вимкнути стартер, наприклад, для тестування:
otel:
sdk:
disabled: true
Встановіть otel.disabled в true, щоб вимкнути стартер, наприклад, для тестування:
Примітка: з декларативною конфігурацією, імʼя властивості otel.disabled, а не otel.sdk.disabled.
otel:
file_format: '1.0'
disabled: true
Програмна конфігурація
Див. розділ Програмна конфігурація.
Провайдери ресурсів
OpenTelemetry Starter включає ті ж провайдери ресурсів, що і Java агент:
Крім того, OpenTelemetry Starter включає наступні специфічні для Spring Boot провайдери ресурсів:
Провайдер ресурсів дистрибуції
FQN: io.opentelemetry.instrumentation.spring.autoconfigure.resources.DistroVersionResourceProvider
| Атрибут | Значення |
|---|---|
telemetry.distro.name | opentelemetry-spring-boot-starter |
telemetry.distro.version | версія стартера |
Провайдер ресурсів Spring
FQN: io.opentelemetry.instrumentation.spring.autoconfigure.resources.SpringResourceProvider
| Атрибут | Значення |
|---|---|
service.name | spring.application.name або build.name з build-info.properties (див. Назва сервісу) |
service.version | build.version з build-info.properties |
З декларативною конфігурацією, провайдери ресурсів налаштовуються явно як детектори під resource.detection/development.detectors. Активні лише перелічені детектори — нічого не виявляється автоматично через SPI.
otel:
resource:
detection/development:
detectors:
- container: # container.id
- host: # host.name, host.arch
- host_id: # host.id
- os: # os.type, os.description
- process: # process.pid, process.executable.path, process.command_line
- process_runtime: # process.runtime.name/version/description
- service: # service.name, service.instance.id
- spring: # service.name (from spring.application.name), service.version (from build-info)
Атрибути telemetry.distro.name та telemetry.distro.version завжди додаються автоматично стартером для цілей налагодження.
Назва сервісу
Використовуючи ці провайдери ресурсів, назва сервісу визначається за наступними правилами пріоритету, відповідно специфікації OpenTelemetry:
- Властивість spring
otel.service.nameабо змінна середовищаOTEL_SERVICE_NAME(найвищий пріоритет) service.nameу системній/властивості springotel.resource.attributesабо змінна середовищаOTEL_RESOURCE_ATTRIBUTES- Властивість spring
spring.application.name build-info.propertiesImplementation-Titleз META-INF/MANIFEST.MF- Стандартне значення —
unknown_service:java(найнижчий пріоритет)
Назва сервісу залежить від того, які детектори ресурсів ви включаєте (див. Провайдери ресурсів):
service.nameуotel.resource.attributes(найвищий пріоритет):otel: resource: attributes: - name: service.name value: my-spring-appДетектор
service— якщо включено, автоматично визначає зOTEL_SERVICE_NAME:otel: resource: detection/development: detectors: - service:Детектор
spring— якщо включено, визначає зspring.application.nameтаbuild-info.properties:otel: resource: detection/development: detectors: - spring:Стандартне значення —
unknown_service:java(найнижчий пріоритет)
Використовуйте наступний фрагмент у вашому файлі pom.xml для генерації файлу build-info.properties:
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>build-info</goal>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
springBoot {
buildInfo {
}
}
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!