Вступ до OpenTelemetry Java
OpenTelemetry Java — це набір інструментів спостереження OpenTelemetry для екосистеми Java. На високому рівні він складається з API, SDK та інструментів.
Ця сторінка представляє екосистему, з концептуальним оглядом, керівництвом по навігації по документації, списком репозиторіїв з ключовими деталями про випуски та артефакти.
Огляд
API — це набір класів та інтерфейсів для запису телеметрії через ключові сигнали спостереження. Він підтримує кілька реалізацій, з невибагливим мінімалістичним Noop (тобто вимовляється “no-op”) та SDK референсною реалізацією, що надається з коробки. Він призначений бути прямою залежністю для бібліотек, фреймворків та власників застосунків, які хочуть додати інструментування. Він має сильні гарантії зворотної сумісності, нульові транзитивні залежності та підтримує Java 8+.
SDK — це вбудована референсна реалізація API, яка обробляє та експортує телеметрію, створену викликами API інструментування. Налаштування SDK для належної обробки та експорту є важливим кроком для інтеграції OpenTelemetry у застосунок. SDK має автоконфігурацію та програмні опції конфігурації.
Інструментування записує телеметрію за допомогою API. Існує кілька категорій інструментування, включаючи: агент Java без коду, стартер Spring Boot без коду, бібліотеку, native, керівництво shim.
Для огляду, незалежного від мови, дивіться концепції OpenTelemetry.
Навігація по документації
Документація OpenTelemetry Java організована наступним чином:
- Початок роботи на прикладі: Приклад для швидкого старту з OpenTelemetry Java, демонструючи інтеграцію агента OpenTelemetry Java у простий вебзастосунок.
- Екосистема інструментування: Керівництво по екосистемі інструментування OpenTelemetry Java. Це ключовий ресурс для авторів застосунків, які хочуть інтегрувати OpenTelemetry Java у свої застосунки. Дізнайтеся про різні категорії інструментування та виберіть, яка підходить вам.
- Запис телеметрії за допомогою API: Технічний довідник по API OpenTelemetry, що досліджує всі ключові аспекти API з робочими прикладами коду. Більшість користувачів використовуватимуть цю сторінку як енциклопедію, звертаючись до індексу розділів за потреби, а не читаючи від початку до кінця.
- Управління телеметрією за допомогою SDK: Технічний довідник по SDK OpenTelemetry, що досліджує всі точки розширення втулків SDK та програмний API конфігурації з робочими прикладами коду. Більшість користувачів використовуватимуть цю сторінку як енциклопедію, звертаючись до індексу розділів за потреби, а не читаючи від початку до кінця.
- Налаштування SDK: Технічний довідник по налаштуванню SDK, зосереджуючись на автоконфігурації без коду. Включає довідник по всіх підтримуваних змінних середовища та системних властивостях для налаштування SDK. Досліджує всі програмні точки налаштування з робочими прикладами коду. Більшість користувачів використовуватимуть цю сторінку як енциклопедію, звертаючись до індексу розділів за потреби, а не читаючи від початку до кінця.
- Дізнатися більше: Додаткові ресурси, включаючи приклади, Javadoc, компонент реєстр та довідник по продуктивності.
Репозиторії
Вихідний код OpenTelemetry Java організований у кілька репозиторіїв:
| Репозиторій | Опис | Group ID | Поточна версія | Частота випусків |
|---|---|---|---|---|
| opentelemetry-java | Основні компоненти API та SDK | io.opentelemetry | 1.56.0 | Пʼятниця після першого понеділка місяця |
| opentelemetry-java-instrumentation | Інструментування, підтримуване OpenTelemetry, включаючи агента OpenTelemetry Java | io.opentelemetry.instrumentation | 2.21.0 | Середа після другого понеділка місяця |
| opentelemetry-java-contrib | Компоненти, підтримувані спільнотою, які не входять до явного обсягу інших репозиторіїв | io.opentelemetry.contrib | 1.51.0 | Пʼятниця після другого понеділка місяця |
| semantic-conventions-java | Згенерований код для семантичних конвенцій | io.opentelemetry.semconv | 1.37.0 | Слідом за випусками semantic-conventions |
| opentelemetry-proto-java | Згенеровані привʼязки для OTLP | io.opentelemetry.proto | 1.3.2-alpha | Слідом за випусками opentelemetry-proto |
| opentelemetry-java-examples | Кінцеві приклади коду, що демонструють різні шаблони використання API, SDK та інструментування | н/д | н/д | н/д |
opentelemetry-java, opentelemetry-java-instrumentation та opentelemetry-java-contrib кожен публікує великі каталоги артефактів. Будь ласка, зверніться до репозиторіїв для деталей, або дивіться колонку “Керовані залежності” у таблиці Bill of Materials для повного списку керованих залежностей.
Як загальне правило, артефакти, опубліковані з одного репозиторію, мають однакову версію. Винятком є opentelemetry-java-contrib, який можна вважати групою незалежних проєктів, що співіснують в одному репозиторії для використання спільних інструментів. Наразі артефакти opentelemetry-java-contrib узгоджені, але це збіг і зміниться в майбутньому.
Репозиторії мають частоту випусків, яка відображає їхню високорівневу структуру залежностей:
opentelemetry-javaє ядром і випускається першим кожного місяця.opentelemetry-java-instrumentationзалежить відopentelemetry-javaі випускається наступним.opentelemetry-java-contribзалежить відopentelemetry-java-instrumentationтаopentelemetry-javaі випускається останнім.- Хоча
semantic-conventions-javaє залежністюopentelemetry-java-instrumentation, це незалежний артефакт з незалежним графіком випусків.
Залежності та BOMs
Bill of materials, або BOM скорочено, це артефакт, який допомагає підтримувати версії повʼязаних залежностей узгодженими. OpenTelemetry Java публікує кілька BOMs, що відповідають різним випадкам використання, перелічених нижче в порядку зростання обсягу. Ми наполегливо рекомендуємо використовувати BOM.
Оскільки BOMs є ієрархічними, додавання залежностей до кількох BOMs не рекомендується, оскільки це є надлишковим і може призвести до неінтуїтивного вирішення версій залежностей.
Натисніть на посилання в колонці “Керовані залежності”, щоб побачити список артефактів, керованих BOM.
| Опис | Репозиторій | Group ID | Artifact ID | Поточна версія | Керовані залежності |
|---|---|---|---|---|---|
| Стабільні артефакти ядра API та SDK | opentelemetry-java | io.opentelemetry | opentelemetry-bom | 1.56.0 | latest pom.xml |
Експериментальні артефакти ядра API та SDK, включаючи всі opentelemetry-bom | opentelemetry-java | io.opentelemetry | opentelemetry-bom-alpha | 1.56.0-alpha | latest pom.xml |
Стабільні артефакти інструментування, включаючи всі opentelemetry-bom | opentelemetry-java-instrumentation | io.opentelemetry.instrumentation | opentelemetry-instrumentation-bom | 2.21.0 | latest pom.xml |
Експериментальні артефакти інструментування, включаючи всі opentelemetry-instrumentation-bom | opentelemetry-java-instrumentation | io.opentelemetry.instrumentation | opentelemetry-instrumentation-bom-alpha | 2.21.0-alpha | latest pom.xml |
Наступний фрагмент коду демонструє додавання залежності BOM, з{{bomGroupId}}, {{bomArtifactId}} та {{bomVersion}}, що відносяться до колонок таблиці “Group ID”, “Artifact ID” та “Current Version”, відповідно.
dependencies {
implementation(platform("{{bomGroupId}}:{{bomArtifactId}}:{{bomVersion}}"))
// Додайте залежність від артефакту, версія якого керується BOM
implementation("io.opentelemetry:opentelemetry-api")
}
<project>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>{{bomGroupId}}</groupId>
<artifactId>{{bomArtifactId}}</artifactId>
<version>{{bomVersion}}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Додайте залежність від артефакту, версія якого керується BOM -->
<dependencies>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-api</artifactId>
</dependency>
</dependencies>
</project>
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!