<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A2%D1%80%D0%B0%D1%81%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8_OpenTelemetry_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_%D0%95%D0%B4%D0%B8%D0%BD%D0%BE%D0%B3%D0%BE%D0%90%D0%B3%D0%B5%D0%BD%D1%82%D0%B0</id>
	<title>Трассировки OpenTelemetry с помощью ЕдиногоАгента - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A2%D1%80%D0%B0%D1%81%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8_OpenTelemetry_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_%D0%95%D0%B4%D0%B8%D0%BD%D0%BE%D0%B3%D0%BE%D0%90%D0%B3%D0%B5%D0%BD%D1%82%D0%B0"/>
	<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%A2%D1%80%D0%B0%D1%81%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8_OpenTelemetry_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_%D0%95%D0%B4%D0%B8%D0%BD%D0%BE%D0%B3%D0%BE%D0%90%D0%B3%D0%B5%D0%BD%D1%82%D0%B0&amp;action=history"/>
	<updated>2026-09-16T15:24:44Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%A2%D1%80%D0%B0%D1%81%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8_OpenTelemetry_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_%D0%95%D0%B4%D0%B8%D0%BD%D0%BE%D0%B3%D0%BE%D0%90%D0%B3%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=5788&amp;oldid=prev</id>
		<title>IKuznetsov: Новая страница: «Модули кода Ключ-АСТРОМ ЕдиныйАгент для &#039;&#039;&#039;Java, .NET, PHP, Python, Node.js&#039;&#039;&#039; и &#039;&#039;&#039;Go&#039;&#039;&#039; автоматически собир...»</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%A2%D1%80%D0%B0%D1%81%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8_OpenTelemetry_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_%D0%95%D0%B4%D0%B8%D0%BD%D0%BE%D0%B3%D0%BE%D0%90%D0%B3%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=5788&amp;oldid=prev"/>
		<updated>2025-09-26T17:55:52Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Модули кода Ключ-АСТРОМ ЕдиныйАгент для &amp;#039;&amp;#039;&amp;#039;Java, .NET, PHP, Python, Node.js&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;Go&amp;#039;&amp;#039;&amp;#039; автоматически собир...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Модули кода Ключ-АСТРОМ ЕдиныйАгент для &amp;#039;&amp;#039;&amp;#039;Java, .NET, PHP, Python, Node.js&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;Go&amp;#039;&amp;#039;&amp;#039; автоматически собирают данные о интервалах &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; и интегрируют их в сквозные распределенные трассировки.&lt;br /&gt;
&lt;br /&gt;
Модуль кода ЕдиногоАгента позволяет вам:&lt;br /&gt;
&lt;br /&gt;
* Получать представление о сторонних библиотеках или фреймворках, которые изначально не поддерживаются ЕдинымАгентом, но поставляются с предварительным инструментарием &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Расширять данные мониторинга с помощью дополнений, специфичных для проекта (например, специализированного инструментария, который добавляет бизнес-данные или собирает диагностические точки, специфичные для разработчика).&lt;br /&gt;
* Объединять независимые, несвязанные транзакции, чтобы расширить сквозные трассировки (например, добавляя нейтральные по отношению к поставщику пользовательские инструменты для получения сквозных сведений о транзакциях, специфичных для бизнес-процесса или домена).&lt;br /&gt;
&lt;br /&gt;
Качество диапазонов &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039;, захватываемых ЕдинымАгентом, зависит от качества инструментария, предоставляемого сторонней библиотекой.&lt;br /&gt;
&lt;br /&gt;
== Требования ==&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Структура мониторинга&lt;br /&gt;
!Версии&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/open-telemetry/opentelemetry-java/ OpenTelemetry]﻿&lt;br /&gt;
|1,0 - 1,3&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; ,1,4 - 1,54&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[https://opentracing.io/guides/java/ OpenTracing]﻿&lt;br /&gt;
|0,33,0,32,0,31&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; Поддерживается в &amp;#039;&amp;#039;&amp;#039;AWS Lambda&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Go ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Структура мониторинга&lt;br /&gt;
!Версии&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/open-telemetry/opentelemetry-go/ OpenTelemetry]﻿&lt;br /&gt;
|1,0 - 1,7,1.8 - 1.11.0,1.11.1 - 1.27,1.28 - 1.38&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Node.js ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Структура мониторинга&lt;br /&gt;
!Версии&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.npmjs.com/package/@opentelemetry/api OpenTelemetry]﻿&lt;br /&gt;
|1&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; Поддерживается в AWS Lambda.&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Структура мониторинга&lt;br /&gt;
!Версии&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/open-telemetry/opentelemetry-php OpenTelemetry]﻿&lt;br /&gt;
|1.0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== .NET and .NET Core ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Структура мониторинга&lt;br /&gt;
!Версии&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/open-telemetry/opentelemetry-dotnet OpenTelemetry]﻿&lt;br /&gt;
|1.0.1+,1.1+&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== .NET Framework ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Структура мониторинга&lt;br /&gt;
!Версии&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/open-telemetry/opentelemetry-dotnet OpenTelemetry]﻿&lt;br /&gt;
|1.0.1+,1.1+&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Структура мониторинга&lt;br /&gt;
!Версии&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/open-telemetry/opentelemetry-python OpenTelemetry]﻿&lt;br /&gt;
|1.1+&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Включение интеграции OpenTelemetry в кодовом модуле ЕдиногоАгента ==&lt;br /&gt;
ЕдиныйАгента автоматически подключается к трассировкам, полученным с помощью пользовательского или предварительного инструментария &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039;, и отправляет данные телеметрии на платформу Ключ-АСТРОМ.&lt;br /&gt;
&lt;br /&gt;
За исключением &amp;#039;&amp;#039;&amp;#039;Java&amp;#039;&amp;#039;&amp;#039; (где эта функция включена по умолчанию), автоматическое получение трассировок &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; в настоящее время является дополнительной функцией и должно быть специально включено пользователем, чтобы ЕдиныйАгент мог получать трассировки со следующих платформ:&lt;br /&gt;
&lt;br /&gt;
* Go&lt;br /&gt;
* .NET&lt;br /&gt;
* Node.js&lt;br /&gt;
* PHP&lt;br /&gt;
* Python&lt;br /&gt;
&lt;br /&gt;
=== OpenTelemetry Java ===&lt;br /&gt;
Чтобы включить &amp;#039;&amp;#039;&amp;#039;OpenTelemetry Java&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# Перейдите в &amp;#039;&amp;#039;&amp;#039;Настройки &amp;gt; Предпочтения &amp;gt; Функции ЕдиногоАгента&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Найдите и включите &amp;#039;&amp;#039;&amp;#039;OpenTelemetry (Java)&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Существующие трассировщики заменяются и больше не будут работать после включения &amp;#039;&amp;#039;&amp;#039;OpenTelemetry Java&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== OpenTelemetry Go ===&lt;br /&gt;
Чтобы включить &amp;#039;&amp;#039;&amp;#039;OpenTelemetry Go&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# Перейдите в &amp;#039;&amp;#039;&amp;#039;Настройки &amp;gt; Предпочтения &amp;gt; Функции ЕдиногоАгента.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Найдите и включите &amp;#039;&amp;#039;&amp;#039;OpenTelemetry (Go)&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Для ЕдиногоАгента версии 1.217 и более ранних версий датчик &amp;#039;&amp;#039;&amp;#039;OpenTelemetry Go&amp;#039;&amp;#039;&amp;#039; распространяет контекст Ключ-АСТРОМ между процессами только в том случае, если включена опция &amp;#039;&amp;#039;&amp;#039;Send W3C Trace Context HTTP-заголовков&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
# Перейдите в &amp;#039;&amp;#039;&amp;#039;Настройки &amp;gt; Предпочтения &amp;gt; Функции ЕдиногоАгента&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Включите опцию &amp;#039;&amp;#039;&amp;#039;Отправлять заголовки HTTP контекста трассировки W3C&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Существующие трассировки не подвержены влиянию поддержки &amp;#039;&amp;#039;&amp;#039;ЕдиногоАгента&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;OpenTelemetry for Go&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== OpenTelemetry Node.js ===&lt;br /&gt;
Чтобы включить &amp;#039;&amp;#039;&amp;#039;OpenTelemetry Node.js&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# Перейдите в &amp;#039;&amp;#039;&amp;#039;Настройки &amp;gt; Предпочтения &amp;gt; Функции ЕдиногоАгента.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Найдите и включите &amp;#039;&amp;#039;&amp;#039;OpenTelemetry (Node.js)&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== OpenTelemetry PHP ===&lt;br /&gt;
Чтобы включить &amp;#039;&amp;#039;&amp;#039;OpenTelemetry PHP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# Перейдите в &amp;#039;&amp;#039;&amp;#039;Настройки &amp;gt; Предпочтения &amp;gt; Функции ЕдиногоАгента.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Найдите и включите &amp;#039;&amp;#039;&amp;#039;OpenTelemetry (PHP).&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Существующие трассировки не подвержены влиянию поддержки &amp;#039;&amp;#039;&amp;#039;ЕдиногоАгента OpenTelemetry для PHP&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== OpenTelemetry .NET ===&lt;br /&gt;
Чтобы включить &amp;#039;&amp;#039;&amp;#039;OpenTelemetry .NET&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# Перейдите в &amp;#039;&amp;#039;&amp;#039;Настройки &amp;gt; Предпочтения &amp;gt; Функции ЕдиногоАгента.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Найдите и включите &amp;#039;&amp;#039;&amp;#039;OpenTelemetry (.NET)&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Существующие трассировки не подвержены влиянию поддержки &amp;#039;&amp;#039;&amp;#039;ЕдиногоАгента&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;OpenTelemetry для .NET&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== OpenTelemetry Python ===&lt;br /&gt;
Чтобы включить &amp;#039;&amp;#039;&amp;#039;OpenTelemetry Python&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# Перейдите в &amp;#039;&amp;#039;&amp;#039;Настройки &amp;gt; Предпочтения &amp;gt; Функции ЕдиногоАгента.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Найдите и включите &amp;#039;&amp;#039;&amp;#039;OpenTelemetry (Python)&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Существующие трассировки не подвержены влиянию поддержки &amp;#039;&amp;#039;&amp;#039;ЕдиногоАгента&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;OpenTelemetry для Python&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Различия между захватом ЕдиногоАгента и экспортом OTLP ==&lt;br /&gt;
Оба подхода, автоматический захват данных с помощью ЕдиногоАгента и экспорт через OTLP, преследуют примерно одну и ту же цель — отправку трассировок и их диапазонов в Ключ-АСТРОМ, но между ними есть небольшие различия. Они в первую очередь касаются следующих областей:&lt;br /&gt;
&lt;br /&gt;
* Как интервалы фиксируются и передаются в Ключ-АСТРОМ.&lt;br /&gt;
* Что считается периодом входа и как он обрабатывается.&lt;br /&gt;
* Иерархия промежутков.&lt;br /&gt;
* Обработка любых возможных присутствующих атрибутов.&lt;br /&gt;
&lt;br /&gt;
=== Точка внедрения ===&lt;br /&gt;
Одно из основных различий между приемом данных через ЕдиныйАгент и экспортом через &amp;#039;&amp;#039;&amp;#039;OTLP&amp;#039;&amp;#039;&amp;#039; заключается в точке приема данных. При экспорте через &amp;#039;&amp;#039;&amp;#039;OTLP&amp;#039;&amp;#039;&amp;#039; экспортер отправляет информацию о диапазоне в бэкенд только после завершения диапазона.&lt;br /&gt;
&lt;br /&gt;
ЕдиныйАгент, с другой стороны, получает информацию о диапазоне в момент его создания и анализа ЕдинымАгентом. Поскольку этот объект диапазона может содержать только предварительную информацию, ЕдиныйАгент будет постоянно обновлять бэкенд о любых изменениях диапазона, происходящих на протяжении всего процесса трассировки.&lt;br /&gt;
&lt;br /&gt;
=== Точки входа ===&lt;br /&gt;
Ещё одно отличие заключается в обработке интервалов точек входа (первый интервал трассировки). Во избежание возможных конфликтов с существующими трассировками &amp;#039;&amp;#039;&amp;#039;PurePath&amp;#039;&amp;#039;&amp;#039;, ЕдиныйАгент по умолчанию принимает только интервалы с [https://opentelemetry.io/docs/concepts/signals/traces/#span-kind типом интервала]﻿ &amp;lt;code&amp;gt;Server&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;Consumer&amp;lt;/code&amp;gt;. Обычно это не является проблемой, поскольку библиотеки инструментирования обычно настраивают соответствующий тип интервала, однако это следует учитывать, если ваше приложение полностью использует ручное инструментирование.&lt;br /&gt;
&lt;br /&gt;
Это поведение можно настроить с помощью &amp;#039;&amp;#039;&amp;#039;правила точки входа&amp;#039;&amp;#039;&amp;#039;. Для этого в Ключ-АСТРОМ перейдите в раздел &amp;#039;&amp;#039;&amp;#039;Настройки &amp;gt; Мониторинг сервисов &amp;gt; Точки входа в Span&amp;#039;&amp;#039;&amp;#039; и создайте новое правило с соответствующим действием и записью сопоставления.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Image4054.png|граница]]&lt;br /&gt;
&lt;br /&gt;
=== Иерархия охвата ===&lt;br /&gt;
В зависимости от настроек вы также можете столкнуться с «обогащением плоских интервалов». Это происходит, когда интервалы отображаются в Ключ-АСТРОМ в виде плоского списка, а не древовидной иерархии. Хотя это, как правило, является поведением по умолчанию при использовании ЕдининымАгентом трассировок &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039;, иерархия может по-прежнему отражать фактические отношения интервалов, определенные инструментированием, в зависимости от задействованных модулей кода ЕдиногоАгента и их поддержки инструментируемых технологий.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Объединение диапазонов&lt;br /&gt;
&lt;br /&gt;
При объединении диапазонов &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; с трассировками датчиков ЕдиногоАгента убедитесь, что диапазоны &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; являются конечными диапазонами, а не промежуточными диапазонами ЕдиногоАгента.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Сбор атрибутов ===&lt;br /&gt;
Поскольку ЕдиныйАгент принимает интервалы сразу после их создания, не все атрибуты могут присутствовать при первоначальном приеме. Любые атрибуты, добавленные позднее, выделяются в Ключ-АСТРОМ примечанием &amp;lt;code&amp;gt;initial value not set&amp;lt;/code&amp;gt; и не могут быть использованы для правил захвата интервалов, поскольку они ещё не были доступны на момент оценки правил.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Image4055.png|граница]]&lt;br /&gt;
&lt;br /&gt;
=== Распространение контекста ===&lt;br /&gt;
При автоматическом приеме трассировок &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; с помощью сенсора ЕдиногоАгента существует разница между распространением контекста трассировок &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; и трассировок ЕдиногоАгента.&lt;br /&gt;
&lt;br /&gt;
Хотя ваше приложение может уже корректно обрабатывать распространение трассировок &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039;, важно также объединить их с трассировкой ЕдиногоАгента. Этого можно добиться с помощью &amp;#039;&amp;#039;&amp;#039;правила распространения контекста&amp;#039;&amp;#039;&amp;#039;. Чтобы настроить это, в Ключ-АСТРОМ перейдите в раздел &amp;#039;&amp;#039;&amp;#039;Настройки &amp;gt; Мониторинг сервисов &amp;gt; Распространение контекста Span&amp;#039;&amp;#039;&amp;#039; и создайте правило распространения контекста &amp;lt;code&amp;gt;Propagate&amp;lt;/code&amp;gt; с действием и записью сопоставления для рассматриваемого диапазона (например, на основе имени диапазона или библиотеки инструментирования).&lt;br /&gt;
&lt;br /&gt;
[[Файл:Image4057.png|граница]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Постарайтесь избегать объединения трассировок для технологий, уже изначально охватываемых датчиками ЕдиногоАгента. Объединение таких областей &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; в трассировку ЕдиногоАгента может привести к неопределённым состояниям.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Экспорт в сторонние бэкэнды с использованием ЕдиногоАгента ==&lt;br /&gt;
Хотя трассировки &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; всегда экспортируются в другие бэкенды в исходном виде, при запуске новой трассировки &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; приложением, управляемым ЕдинымАгентом, происходит небольшая корректировка данных. Это относится только к новым трассировкам, а не к трассировкам, продолжающимся через распространение контекста.&lt;br /&gt;
&lt;br /&gt;
В этом случае ЕдиныйАгент мог уже создать новый объект трассировки при инициализации &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039;. Если эти две трассировки (с разными идентификаторами) не согласованы, данные телеметрии могут дублироваться или фрагментироваться. Чтобы избежать этого и при этом обеспечить согласованность трассировок Ключ-АСТРОМ &amp;#039;&amp;#039;&amp;#039;PurePath&amp;#039;&amp;#039;&amp;#039;, ЕдиныйАгент использует следующий подход:&lt;br /&gt;
&lt;br /&gt;
* Идентификатор трассировки &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; имеет приоритет при экспорте третьим лицам.&lt;br /&gt;
* На сервере Ключ-АСТРОМ вместо этого назначается идентификатор трассировки &amp;#039;&amp;#039;&amp;#039;PurePath&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Чтобы обеспечить корреляцию между этими двумя идентификаторами, Ключ-АСТРОМ создает дополнительные [https://opentelemetry.io/docs/specs/otel/overview/#links-between-spans ссылки﻿ для каждого диапазона], ссылаясь на трассировку &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Переопределение идентификатора применяется только к вновь запущенным трассировкам (не к распространению контекста) и к пакетам &amp;#039;&amp;#039;&amp;#039;SDK OpenTelemetry&amp;#039;&amp;#039;&amp;#039; для &amp;#039;&amp;#039;&amp;#039;Go, Java, JavaScript, PHP и Python&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;но не к .NET.&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Ограничения ==&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;u&amp;gt;В версиях до 1.259&amp;lt;/u&amp;gt;&amp;lt;/code&amp;gt; ЕдиныйАгент заменяет установленные глобальные компоненты &amp;#039;&amp;#039;&amp;#039;OpenTelemetry SDK&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;TracerProvider&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Propagator&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;ContextManager&amp;lt;/code&amp;gt;. Поэтому при включении &amp;#039;&amp;#039;&amp;#039;OpenTelemetry Java&amp;#039;&amp;#039;&amp;#039; трассировки больше не отображаются этим &amp;#039;&amp;#039;&amp;#039;SDK&amp;#039;&amp;#039;&amp;#039; и не экспортируются в бэкенды, такие как &amp;#039;&amp;#039;&amp;#039;Jaeger&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;u&amp;gt;ЕдиныйАгент версии 1.259+&amp;lt;/u&amp;gt;&amp;lt;/code&amp;gt; Чтобы избежать дубликатов, ЕдиныйАгент будет игнорировать интервалы из некоторых библиотек автоматического инструментирования.&lt;br /&gt;
* Если для одной и той же технологии используются как датчики ЕдиногоАгента, так и датчики &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039;, могут возникнуть дополнительные накладные расходы.&lt;br /&gt;
&lt;br /&gt;
=== Go ===&lt;br /&gt;
&lt;br /&gt;
* ЕдиныйАгент может инструментировать только реализацию &amp;#039;&amp;#039;&amp;#039;Tracer&amp;#039;&amp;#039;&amp;#039; стандартного &amp;#039;&amp;#039;&amp;#039;OpenTelemetry SDK&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* При наличии датчиков ЕдиногоАгента и &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; для одной и той же технологии могут возникнуть следующие ограничения:&lt;br /&gt;
** Дублирующиеся узлы в распределенных трассировках&lt;br /&gt;
** Дополнительные накладные расходы&lt;br /&gt;
&lt;br /&gt;
=== Node.js ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;u&amp;gt;В версиях до 1.261&amp;lt;/u&amp;gt;&amp;lt;/code&amp;gt; ЕдиныйАгент заменяет установленные глобальные компоненты &amp;#039;&amp;#039;&amp;#039;OpenTelemetry SDK&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;TracerProvider&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Propagator&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;ContextManager&amp;lt;/code&amp;gt;. Поэтому при включении &amp;#039;&amp;#039;&amp;#039;OpenTelemetry Node.js&amp;#039;&amp;#039;&amp;#039; трассировки больше не отображаются этим &amp;#039;&amp;#039;&amp;#039;SDK&amp;#039;&amp;#039;&amp;#039; и не экспортируются в бэкенды, такие как &amp;#039;&amp;#039;&amp;#039;Jaeger&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Когда ЕдиныйАгент и &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; используют один и тот же модуль (например, &amp;#039;&amp;#039;&amp;#039;HTTP&amp;#039;&amp;#039;&amp;#039; или &amp;#039;&amp;#039;&amp;#039;GRPC&amp;#039;&amp;#039;&amp;#039;), вы можете столкнуться со следующими ограничениями:&lt;br /&gt;
** Дублирующиеся узлы в распределенных трассировках&lt;br /&gt;
** Разъединенные распределенные трассы&lt;br /&gt;
** Дополнительные накладные расходы&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;u&amp;gt;ЕдиныйАГент версии 1.313+&amp;lt;/u&amp;gt;&amp;lt;/code&amp;gt; Чтобы избежать дубликатов, ЕдиныйАгент будет игнорировать интервалы из некоторых библиотек автоматического инструментирования .&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
* При наличии датчиков ЕдиногоАгента и &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; для одной и той же технологии могут возникнуть следующие ограничения:&lt;br /&gt;
** Дублирующиеся узлы в распределенных трассировках&lt;br /&gt;
** Разъединенные распределенные трассировки&lt;br /&gt;
** Дополнительные накладные расходы&lt;br /&gt;
&lt;br /&gt;
=== Все языки ===&lt;br /&gt;
&lt;br /&gt;
* ЕдиныйАгент захватывает атрибуты ресурсов &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; только в том случае, если они предоставлены через переменные среды &amp;lt;code&amp;gt;OTEL_SERVICE_NAME&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;OTEL_RESOURCE_ATTRIBUTES&amp;lt;/code&amp;gt;. При использовании &amp;#039;&amp;#039;&amp;#039;API&amp;#039;&amp;#039;&amp;#039; сбора трассировки &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; это ограничение не применяется.&lt;br /&gt;
* На основе атрибутов ресурсов &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; невозможно создать атрибуты запроса (обычно используемые для поиска и фильтрации трассировок).&lt;br /&gt;
* ЕдиныйАгент обрезает значения атрибутов, превышающие &amp;lt;u&amp;gt;4096 символов&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Предотвращение дублирования span в Java ==&lt;br /&gt;
&amp;lt;code&amp;gt;ЕдиныйАгент версии 1.259+&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы избежать возможных дубликатов диапазонов для областей, охватываемых &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; и ЕдинымАгентом, ЕдиныйАгент пропускает диапазоны из следующих библиотек &amp;#039;&amp;#039;&amp;#039;Java&amp;#039;&amp;#039;&amp;#039; с автоматическим инструментированием, если ЕдиныйАгент настроен на инструментирование вашего приложения &amp;#039;&amp;#039;&amp;#039;Java&amp;#039;&amp;#039;&amp;#039; и прием диапазонов &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Такие интервалы пропускаются только ЕдиныйАгент. Экспорт в третьи стороны (например, в другие бэкенды или Collector) остаётся без изменений.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|io.opentelemetry.akka-http-10.0&lt;br /&gt;
|io.opentelemetry.apache-dbcp-2.0&lt;br /&gt;
|io.opentelemetry.apache-httpasyncclient-4.1&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.apache-httpclient-2.0&lt;br /&gt;
|io.opentelemetry.apache-httpclient-4.0&lt;br /&gt;
|io.opentelemetry.apache-httpclient-4.3&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.apache-httpclient-5.0&lt;br /&gt;
|io.opentelemetry.async-http-client-1.9&lt;br /&gt;
|io.opentelemetry.async-http-client-2.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.c3p0-0.9&lt;br /&gt;
|io.opentelemetry.cassandra-3.0&lt;br /&gt;
|io.opentelemetry.cassandra-4.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.cassandra-4.4&lt;br /&gt;
|io.opentelemetry.cxf-jaxrs-3.2&lt;br /&gt;
|io.opentelemetry.google-http-client-1.19&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.grpc-1.6&lt;br /&gt;
|io.opentelemetry.http-url-connection&lt;br /&gt;
|io.opentelemetry.java-http-client&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.jaxrs-1.0&lt;br /&gt;
|io.opentelemetry.jaxrs-1.0-common&lt;br /&gt;
|io.opentelemetry.jaxrs-2.0-аннотации&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.jaxrs-2.0-common&lt;br /&gt;
|io.opentelemetry.jaxrs-2.0-cxf-3.2&lt;br /&gt;
|io.opentelemetry.jaxrs-2.0-jersey-2.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.jaxrs-2.0-resteasy-3.0&lt;br /&gt;
|io.opentelemetry.jaxrs-2.0-resteasy-3.1&lt;br /&gt;
|io.opentelemetry.jaxrs-3.0-аннотации&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.jaxrs-3.0-jersey-3.0&lt;br /&gt;
|io.opentelemetry.jaxrs-3.0-resteasy-6.0&lt;br /&gt;
|io.opentelemetry.jaxrs-annotations-2.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.jaxrs-annotations-3.0&lt;br /&gt;
|io.opentelemetry.jaxrs-client-1.1&lt;br /&gt;
|io.opentelemetry.jaxrs-client-2.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.jaxrs-client-2.0-resteasy-3.0&lt;br /&gt;
|io.opentelemetry.jaxws-2.0&lt;br /&gt;
|io.opentelemetry.jaxws-2.0-axis2-1.6&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.jaxws-2.0-cxf-3.0&lt;br /&gt;
|io.opentelemetry.jaxws-2.0-metro-2.2&lt;br /&gt;
|io.opentelemetry.jaxws-cxf-3.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.jaxws-common&lt;br /&gt;
|io.opentelemetry.jaxws-jws-api-1.1&lt;br /&gt;
|io.opentelemetry.jdbc&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.jedis-1.4&lt;br /&gt;
|io.opentelemetry.jedis-3.0&lt;br /&gt;
|io.opentelemetry.jedis-4.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.jersey-2.0&lt;br /&gt;
|io.opentelemetry.jetty-11.0&lt;br /&gt;
|io.opentelemetry.jetty-8.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.jetty-httpclient-9.2&lt;br /&gt;
|io.opentelemetry.jms-1.1&lt;br /&gt;
|io.opentelemetry.jms-3.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.jsp-2.3&lt;br /&gt;
|io.opentelemetry.kafka-clients&lt;br /&gt;
|io.opentelemetry.kafka-clients-0.11&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.kafka-clients-2.6&lt;br /&gt;
|io.opentelemetry.kafka-streams-0.11&lt;br /&gt;
|io.opentelemetry.lettuce-5.1&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.liberty&lt;br /&gt;
|io.opentelemetry.liberty-20.0&lt;br /&gt;
|io.opentelemetry.mongo-3.1&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.netty-3.8&lt;br /&gt;
|io.opentelemetry.netty-4.0&lt;br /&gt;
|io.opentelemetry.netty-4.1&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.okhttp-2.2&lt;br /&gt;
|io.opentelemetry.okhttp-3.0&lt;br /&gt;
|io.opentelemetry.orcale-ucp-11.2 ( sic!﻿ )&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.rabbitmq-2.7&lt;br /&gt;
|io.opentelemetry.reactor-kafka-1.0&lt;br /&gt;
|io.opentelemetry.reactor-netty-1.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.resteasy-3.0&lt;br /&gt;
|io.opentelemetry.resteasy-3.1&lt;br /&gt;
|io.opentelemetry.resteasy-6.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.rmi&lt;br /&gt;
|io.opentelemetry.servlet-2.2&lt;br /&gt;
|io.opentelemetry.servlet-3.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.servlet-5.0&lt;br /&gt;
|io.opentelemetry.servlet-javax-common&lt;br /&gt;
|io.opentelemetry.spring-jms-2.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.spring-jms-6.0&lt;br /&gt;
|io.opentelemetry.spring-kafka-2.7&lt;br /&gt;
|io.opentelemetry.spring-rabbit-1.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.spring-rmi-4.0&lt;br /&gt;
|io.opentelemetry.spring-webflux-5.0&lt;br /&gt;
|io.opentelemetry.spring-webflux-5.3&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.spring-ws-2.0&lt;br /&gt;
|io.opentelemetry.tomcat-10.0&lt;br /&gt;
|io.opentelemetry.tomcat-7.0&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.tomcat-jdbc&lt;br /&gt;
|io.opentelemetry.undertow-1.4&lt;br /&gt;
|io.opentelemetry.vibur-dbcp-11.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Предотвращение дублирования span в PHP ==&lt;br /&gt;
&amp;lt;code&amp;gt;ЕдиныйАгент версии 1.313+&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы избежать возможных дубликатов диапазонов для областей, охватываемых &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; и ЕдинымАгентом, ЕдиныйАгент пропускает диапазоны из следующих автоматических библиотек &amp;#039;&amp;#039;&amp;#039;PHP-инструментации&amp;#039;&amp;#039;&amp;#039;, если ЕдиныйАгент настроен на инструментирование вашего &amp;#039;&amp;#039;&amp;#039;PHP-приложения&amp;#039;&amp;#039;&amp;#039; и прием диапазонов &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Такие интервалы пропускаются только ЕдинымАгентом. Экспорт в третьи стороны (например, в другие бэкенды или Collector) остаётся без изменений.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|io.opentelemetry.contrib.php.curl&lt;br /&gt;
|io.opentelemetry.contrib.php.laravel&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.contrib.php.mongodb&lt;br /&gt;
|io.opentelemetry.contrib.php.mysqli&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.contrib.php.pdo&lt;br /&gt;
|io.opentelemetry.contrib.php.slim&lt;br /&gt;
|-&lt;br /&gt;
|io.opentelemetry.contrib.php.symfony&lt;br /&gt;
|io.opentelemetry.contrib.php.wordpress&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
</feed>