<?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=Ruby_OpenTelemetry</id>
	<title>Ruby OpenTelemetry - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=Ruby_OpenTelemetry"/>
	<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=Ruby_OpenTelemetry&amp;action=history"/>
	<updated>2026-05-02T12:06:01Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=Ruby_OpenTelemetry&amp;diff=6311&amp;oldid=prev</id>
		<title>ENetrebin в 05:46, 6 апреля 2026</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=Ruby_OpenTelemetry&amp;diff=6311&amp;oldid=prev"/>
		<updated>2026-04-06T05:46:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия 05:46, 6 апреля 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l172&quot;&gt;Строка 172:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 172:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Парсеры помогают улучшить фильтрацию, устранение неполадок, метрики, оповещения и дашборды, эффективно извлекая уровни логов и соответствующие атрибуты. Вы также можете использовать пакеты технологий для структурирования логов, созданных с использованием технологий, которые не поддерживаются Ключ-АСТРОМ изначально.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Парсеры помогают улучшить фильтрацию, устранение неполадок, метрики, оповещения и дашборды, эффективно извлекая уровни логов и соответствующие атрибуты. Вы также можете использовать пакеты технологий для структурирования логов, созданных с использованием технологий, которые не поддерживаются Ключ-АСТРОМ изначально.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Файл:Image4080.png|граница]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Сбор метрик ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Сбор метрик ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ENetrebin</name></author>
	</entry>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=Ruby_OpenTelemetry&amp;diff=5867&amp;oldid=prev</id>
		<title>IKuznetsov: Новая страница: «В этом пошаговом руководстве показано, как добавить возможность наблюдения в ваше прило...»</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=Ruby_OpenTelemetry&amp;diff=5867&amp;oldid=prev"/>
		<updated>2025-10-16T15:19:58Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «В этом пошаговом руководстве показано, как добавить возможность наблюдения в ваше прило...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;В этом пошаговом руководстве показано, как добавить возможность наблюдения в ваше приложение '''Ruby''' с помощью библиотек и инструментов '''OpenTelemetry''' '''Ruby'''.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Особенность&lt;br /&gt;
!Поддержка&lt;br /&gt;
|-&lt;br /&gt;
|Автоматические инструменты&lt;br /&gt;
|Да&lt;br /&gt;
|-&lt;br /&gt;
|Трассировки&lt;br /&gt;
|Да&lt;br /&gt;
|-&lt;br /&gt;
|Метрики&lt;br /&gt;
|Нет&lt;br /&gt;
|-&lt;br /&gt;
|Логи&lt;br /&gt;
|Нет&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Предустановка ==&lt;br /&gt;
&lt;br /&gt;
* Ключ-АСТРОМ версии '''1.222+'''&lt;br /&gt;
* Для трассировки включен контекст трассировки '''W3C'''.&lt;br /&gt;
*# Перейдите в '''Настройки &amp;gt; Предпочтения &amp;gt; Функции ЕдиногоАгента'''.&lt;br /&gt;
*# Включите опцию '''Отправлять HTTP-заголовки контекста трассировки W3C'''.&lt;br /&gt;
&lt;br /&gt;
== Получение данных для доступа к Ключ-АСТРОМ ==&lt;br /&gt;
&lt;br /&gt;
=== Определение базового URL API ===&lt;br /&gt;
Подробную информацию о сборке базового '''URL-адреса''' конечной точки OTLP см. в разделе [[Экспорт с помощью OTLP]]. '''URL-адрес''' должен заканчиваться на &amp;lt;code&amp;gt;/api/v2/otlp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Получение токена доступа API ===&lt;br /&gt;
Токен доступа для сбора трассировок, логов и метрик можно создать в разделе [[Токен доступа|Токены доступа]].&lt;br /&gt;
&lt;br /&gt;
Экспорт с помощью '''OTLP''' содержит более подробную информацию о формате и необходимых областях доступа.&lt;br /&gt;
&lt;br /&gt;
== Выберите, как вы хотите инструментировать свое приложение ==&lt;br /&gt;
'''OpenTelemetry''' поддерживает на '''Ruby''' автоматическое и ручное инструментирование, а также их комбинацию.&lt;br /&gt;
&lt;br /&gt;
== Инициализация OpenTelementry ==&lt;br /&gt;
1. Добавьте следующие зависимости в ваш '''Gemfile'''.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|gem 'opentelemetry-sdk'&lt;br /&gt;
&lt;br /&gt;
gem 'opentelemetry-exporter-otlp'&lt;br /&gt;
|}&lt;br /&gt;
2. Добавьте следующее заявление &amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|require 'opentelemetry/sdk'&lt;br /&gt;
&lt;br /&gt;
require 'opentelemetry/exporter/otlp'&lt;br /&gt;
|}&lt;br /&gt;
3. Добавьте функцию &amp;lt;code&amp;gt;init_opentelemetry&amp;lt;/code&amp;gt; в стартовый код и укажите переменные &amp;lt;code&amp;gt;DT_API_URL&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;DT_API_TOKEN&amp;lt;/code&amp;gt; значения для URL-адреса Ключ-АСТРОМ и токена доступа.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|DT_API_URL = ENV['DT_API_URL']&lt;br /&gt;
&lt;br /&gt;
DT_API_TOKEN = ENV['DT_API_TOKEN']&lt;br /&gt;
&lt;br /&gt;
def init_opentelemetry&lt;br /&gt;
&lt;br /&gt;
  OpenTelemetry::SDK.configure do |c|&lt;br /&gt;
&lt;br /&gt;
    c.service_name = 'ruby-quickstart' #TODO Replace with the name of your application&lt;br /&gt;
&lt;br /&gt;
    c.service_version = '1.0.1' #TODO Replace with the version of your application&lt;br /&gt;
&lt;br /&gt;
    # TODO: add automatic instrumentation here (step 3 - optional)&lt;br /&gt;
&lt;br /&gt;
    for name in [&amp;quot;dt_metadata_e617c525669e072eebe3d0f08212e8f2.properties&amp;quot;, &amp;quot;/var/lib/astromkey/enrichment/dt_metadata.properties&amp;quot;, &amp;quot;/var/lib/astromkey/enrichment/dt_host_metadata.properties&amp;quot;] do&lt;br /&gt;
&lt;br /&gt;
      begin&lt;br /&gt;
&lt;br /&gt;
        c.resource = OpenTelemetry::SDK::Resources::Resource.create(Hash[*File.read(name.start_with?(&amp;quot;/var&amp;quot;) ? name : File.read(name)).split(/[=\n]+/)])&lt;br /&gt;
&lt;br /&gt;
      rescue&lt;br /&gt;
&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    c.add_span_processor(&lt;br /&gt;
&lt;br /&gt;
      OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new(&lt;br /&gt;
&lt;br /&gt;
        OpenTelemetry::Exporter::OTLP::Exporter.new(&lt;br /&gt;
&lt;br /&gt;
          endpoint: DT_API_URL + &amp;quot;/v1/traces&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
          headers: {&lt;br /&gt;
&lt;br /&gt;
            &amp;quot;Authorization&amp;quot;: &amp;quot;Api-Token &amp;quot; + DT_API_TOKEN&lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
      )&lt;br /&gt;
&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;u&amp;gt;Расширение данных Ключ-АСТРОМ&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Операции чтения файлов, анализирующие файлы &amp;lt;code&amp;gt;dt_metadata&amp;lt;/code&amp;gt; в примере кода, пытаются прочитать файлы данных ЕдиногоАгента, чтобы расширить запрос '''OTLP''' и гарантировать, что вся соответствующая информация о топологии доступна в Ключ-АСТРОМ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Экспорт в ЕдиныйАгент&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ruby SDK''' по умолчанию использует сжатие контента, которое пока не поддерживается ЕдинымАгентом.&lt;br /&gt;
&lt;br /&gt;
При экспорте в ЕдиныйАгент добавьте &amp;lt;code&amp;gt;compression: &amp;quot;none&amp;quot;&amp;lt;/code&amp;gt; в вызов &amp;lt;code&amp;gt;Exporter.new()&amp;lt;/code&amp;gt;, чтобы отключить эту функцию. В противном случае экспортируйте в АктивныйШлюз .&lt;br /&gt;
&lt;br /&gt;
4. Вызовите  &amp;lt;code&amp;gt;init_opentelemetry&amp;lt;/code&amp;gt; как можно раньше при запуске приложения, чтобы обеспечить инициализацию '''OpenTelemetry''' с самого начала.&lt;br /&gt;
&lt;br /&gt;
== Автоматически инструментируйте свое приложение (необязательно) ==&lt;br /&gt;
1. Добавьте следующую зависимость в ваш '''Gemfile'''.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|gem 'opentelemetry-instrumentation-all'&lt;br /&gt;
|}&lt;br /&gt;
2. Добавьте следующее заявление &amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|require 'opentelemetry/instrumentation/all'&lt;br /&gt;
|}&lt;br /&gt;
3. Добавьте следующую строку &amp;lt;code&amp;gt;c.service_version&amp;lt;/code&amp;gt; после функции &amp;lt;code&amp;gt;init_opentelemetry&amp;lt;/code&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|c.use_all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Инструментирование приложения вручную (необязательно) ==&lt;br /&gt;
&lt;br /&gt;
=== Добавление трассировки ===&lt;br /&gt;
1. Для создания новых интервалов нам сначала нужен объект трассировки.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|tracer = OpenTelemetry.tracer_provider.tracer('my-tracer')&lt;br /&gt;
|}&lt;br /&gt;
2. С помощью &amp;lt;code&amp;gt;tracer&amp;lt;/code&amp;gt; теперь можно &amp;lt;code&amp;gt;start_span()&amp;lt;/code&amp;gt; создавать и запускать новые интервалы.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|span = tracer.start_span(&amp;quot;Call to /myendpoint&amp;quot;, kind: :internal)&lt;br /&gt;
&lt;br /&gt;
OpenTelemetry::Trace.with_span(span) do |span, context|&lt;br /&gt;
&lt;br /&gt;
  span.set_attribute(&amp;quot;http.method&amp;quot;, &amp;quot;GET&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  span.set_attribute(&amp;quot;net.protocol.version&amp;quot;, &amp;quot;1.1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; TODO your code goes here&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
rescue Exception =&amp;gt; e&lt;br /&gt;
&lt;br /&gt;
  span&amp;amp;.record_exception(e)&lt;br /&gt;
&lt;br /&gt;
  span&amp;amp;.status = OpenTelemetry::Trace::Status.error(&amp;quot;Unhandled exception of type: #{e.class}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  raise e&lt;br /&gt;
&lt;br /&gt;
ensure&lt;br /&gt;
&lt;br /&gt;
  span&amp;amp;.finish&lt;br /&gt;
|}&lt;br /&gt;
В приведенном выше коде мы:&lt;br /&gt;
&lt;br /&gt;
* Создали новый span и назвали его «'''Call to /myendpoint'''».&lt;br /&gt;
* Добавили два атрибута, следуя [https://opentelemetry.io/docs/specs/semconv/general/trace/ семантическому соглашению об именовании]﻿, специфичные для действия этого span: информацию о методе '''HTTP''' и версии.&lt;br /&gt;
* Добавили &amp;lt;code&amp;gt;TODO&amp;lt;/code&amp;gt; вместо конечной бизнес-логики&lt;br /&gt;
* Вызвали метод span &amp;lt;code&amp;gt;finish()&amp;lt;/code&amp;gt; для завершения span (в блоке &amp;lt;code&amp;gt;ensure&amp;lt;/code&amp;gt;, чтобы гарантировать вызов метода)&lt;br /&gt;
&lt;br /&gt;
== Логи процессов с помощью анализаторов технологических пакетов ==&lt;br /&gt;
Через '''OpenPipeline''' можно использовать и настраивать технологические пакеты. Технологический пакет — это библиотека парсеров (правил обработки), которые обрабатывают логи различных технологий, таких как '''Java''', '''.NET''', '''Microsoft''' '''IIS''' и т. д.&lt;br /&gt;
&lt;br /&gt;
Парсеры помогают улучшить фильтрацию, устранение неполадок, метрики, оповещения и дашборды, эффективно извлекая уровни логов и соответствующие атрибуты. Вы также можете использовать пакеты технологий для структурирования логов, созданных с использованием технологий, которые не поддерживаются Ключ-АСТРОМ изначально.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Image4080.png|граница]]&lt;br /&gt;
&lt;br /&gt;
=== Сбор метрик ===&lt;br /&gt;
Примера пока нет, поскольку '''OpenTelemetry''' для '''Ruby''' пока не имеет стабильной поддержки метрик.&lt;br /&gt;
&lt;br /&gt;
=== Подключение логов ===&lt;br /&gt;
Примера пока нет, поскольку '''OpenTelemetry''' для '''Ruby''' пока не имеет стабильной поддержки логов.&lt;br /&gt;
&lt;br /&gt;
В зависимости от статуса '''OpenTelemetry''' '''SDK''' предварительная версия может уже разрешать прием ваших логов.&lt;br /&gt;
&lt;br /&gt;
=== Обеспечение распространения контекста (необязательно) ===&lt;br /&gt;
Распространение контекста особенно важно, когда задействованы сетевые вызовы (например, '''REST''').&lt;br /&gt;
&lt;br /&gt;
Если вы используете автоматическое инструментирование и ваши сетевые библиотеки также им охватываются, то это будет автоматически реализовано библиотеками инструментирования. В противном случае ваш код должен это учитывать.&lt;br /&gt;
&lt;br /&gt;
==== Извлечение контекста при получении запроса ====&lt;br /&gt;
В следующем примере используется метод распространителя по умолчанию &amp;lt;code&amp;gt;extract()&amp;lt;/code&amp;gt; для извлечения и воссоздания контекста из запроса в &amp;lt;code&amp;gt;parent_context&amp;lt;/code&amp;gt;. Затем мы можем передать этот контекст вызову &amp;lt;code&amp;gt;start_span&amp;lt;/code&amp;gt; для продолжения предыдущей трассировки с нашими интервалами.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|parent_context = OpenTelemetry.propagation.extract(&lt;br /&gt;
&lt;br /&gt;
  env,&lt;br /&gt;
&lt;br /&gt;
  getter: OpenTelemetry::Common::Propagation.rack_env_getter&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
span = tracer.start_span(&amp;quot;hello world&amp;quot;, with_parent: parent_context)&lt;br /&gt;
&lt;br /&gt;
OpenTelemetry::Trace.with_span(span) do |span, context|&lt;br /&gt;
&lt;br /&gt;
  span.set_attribute(&amp;quot;my-key-1&amp;quot;, &amp;quot;my-value-1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  # ... expansive query&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
ensure&lt;br /&gt;
&lt;br /&gt;
  span&amp;amp;.finish&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Внедрение контекста при отправке запросов ====&lt;br /&gt;
В следующем примере используется стандартная библиотека [https://ruby-doc.org/stdlib-2.7.0/libdoc/net/http/rdoc/Net/HTTP.html Ruby Net:HTTP]﻿ для вызова стороннего сервиса с инструментированным кодом. Для добавления необходимых заголовков трассировки мы используем метод &amp;lt;code&amp;gt;inject()&amp;lt;/code&amp;gt; распространителя по умолчанию.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|request = Net::HTTP::Get.new(uri.request_uri)&lt;br /&gt;
&lt;br /&gt;
OpenTelemetry.propagation.inject(request)&lt;br /&gt;
&lt;br /&gt;
response = http.request(request)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Настройте сбор данных в соответствии с требованиями конфиденциальности (необязательно) ==&lt;br /&gt;
Хотя Ключ-АСТРОМ автоматически собирает все атрибуты '''OpenTelemetry''', в веб-интерфейсе Ключ-АСТРОМ сохраняются и отображаются только значения атрибутов, указанные в списке разрешенных. Это предотвращает случайное сохранение персональных данных, позволяя вам соблюдать требования к конфиденциальности и контролировать объем хранимых данных мониторинга.&lt;br /&gt;
&lt;br /&gt;
Чтобы просматривать пользовательские атрибуты, необходимо сначала разрешить их использование в веб-интерфейсе Ключ-АСТРОМ.&lt;br /&gt;
&lt;br /&gt;
== Проверка загрузки данных в Ключ-АСТРОМ ==&lt;br /&gt;
После завершения инструментирования вашего приложения выполните несколько тестовых действий для создания и отправки демонстрационных трассировок, метрик и логов, а также проверьте, что они были правильно загружены в Ключ-АСТРОМ.&lt;br /&gt;
&lt;br /&gt;
Чтобы сделать это для трассировок, перейдите в раздел '''Трассировки''' и выберите вкладку '''Распределенные трассировки'''. Если вы используете ЕдиныйАгент, выберите '''PurePaths''' .&lt;br /&gt;
&lt;br /&gt;
Для просмотра метрик и логов перейдите в раздел '''Метрики''' или '''Логов''' или '''Логи и события'''.&lt;/div&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
</feed>