<?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-09-16T11:52:41Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.9</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; class=&quot;diff-side-added&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; class=&quot;diff-side-added&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;!-- diff cache key ka_db:diff:1.41:old-5867:rev-6311:php=table --&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;В этом пошаговом руководстве показано, как добавить возможность наблюдения в ваше приложение &amp;#039;&amp;#039;&amp;#039;Ruby&amp;#039;&amp;#039;&amp;#039; с помощью библиотек и инструментов &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Ruby&amp;#039;&amp;#039;&amp;#039;.&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;
* Ключ-АСТРОМ версии &amp;#039;&amp;#039;&amp;#039;1.222+&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Для трассировки включен контекст трассировки &amp;#039;&amp;#039;&amp;#039;W3C&amp;#039;&amp;#039;&amp;#039;.&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;
== Получение данных для доступа к Ключ-АСТРОМ ==&lt;br /&gt;
&lt;br /&gt;
=== Определение базового URL API ===&lt;br /&gt;
Подробную информацию о сборке базового &amp;#039;&amp;#039;&amp;#039;URL-адреса&amp;#039;&amp;#039;&amp;#039; конечной точки OTLP см. в разделе [[Экспорт с помощью OTLP]]. &amp;#039;&amp;#039;&amp;#039;URL-адрес&amp;#039;&amp;#039;&amp;#039; должен заканчиваться на &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;
Экспорт с помощью &amp;#039;&amp;#039;&amp;#039;OTLP&amp;#039;&amp;#039;&amp;#039; содержит более подробную информацию о формате и необходимых областях доступа.&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;Ruby&amp;#039;&amp;#039;&amp;#039; автоматическое и ручное инструментирование, а также их комбинацию.&lt;br /&gt;
&lt;br /&gt;
== Инициализация OpenTelementry ==&lt;br /&gt;
1. Добавьте следующие зависимости в ваш &amp;#039;&amp;#039;&amp;#039;Gemfile&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|gem &amp;#039;opentelemetry-sdk&amp;#039;&lt;br /&gt;
&lt;br /&gt;
gem &amp;#039;opentelemetry-exporter-otlp&amp;#039;&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 &amp;#039;opentelemetry/sdk&amp;#039;&lt;br /&gt;
&lt;br /&gt;
require &amp;#039;opentelemetry/exporter/otlp&amp;#039;&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[&amp;#039;DT_API_URL&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
DT_API_TOKEN = ENV[&amp;#039;DT_API_TOKEN&amp;#039;]&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 = &amp;#039;ruby-quickstart&amp;#039; #TODO Replace with the name of your application&lt;br /&gt;
&lt;br /&gt;
    c.service_version = &amp;#039;1.0.1&amp;#039; #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; в примере кода, пытаются прочитать файлы данных ЕдиногоАгента, чтобы расширить запрос &amp;#039;&amp;#039;&amp;#039;OTLP&amp;#039;&amp;#039;&amp;#039; и гарантировать, что вся соответствующая информация о топологии доступна в Ключ-АСТРОМ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Экспорт в ЕдиныйАгент&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ruby SDK&amp;#039;&amp;#039;&amp;#039; по умолчанию использует сжатие контента, которое пока не поддерживается ЕдинымАгентом.&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; как можно раньше при запуске приложения, чтобы обеспечить инициализацию &amp;#039;&amp;#039;&amp;#039;OpenTelemetry&amp;#039;&amp;#039;&amp;#039; с самого начала.&lt;br /&gt;
&lt;br /&gt;
== Автоматически инструментируйте свое приложение (необязательно) ==&lt;br /&gt;
1. Добавьте следующую зависимость в ваш &amp;#039;&amp;#039;&amp;#039;Gemfile&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|gem &amp;#039;opentelemetry-instrumentation-all&amp;#039;&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 &amp;#039;opentelemetry/instrumentation/all&amp;#039;&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(&amp;#039;my-tracer&amp;#039;)&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 и назвали его «&amp;#039;&amp;#039;&amp;#039;Call to /myendpoint&amp;#039;&amp;#039;&amp;#039;».&lt;br /&gt;
* Добавили два атрибута, следуя [https://opentelemetry.io/docs/specs/semconv/general/trace/ семантическому соглашению об именовании]﻿, специфичные для действия этого span: информацию о методе &amp;#039;&amp;#039;&amp;#039;HTTP&amp;#039;&amp;#039;&amp;#039; и версии.&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;
Через &amp;#039;&amp;#039;&amp;#039;OpenPipeline&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;.NET&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Microsoft&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;IIS&amp;#039;&amp;#039;&amp;#039; и т. д.&lt;br /&gt;
&lt;br /&gt;
Парсеры помогают улучшить фильтрацию, устранение неполадок, метрики, оповещения и дашборды, эффективно извлекая уровни логов и соответствующие атрибуты. Вы также можете использовать пакеты технологий для структурирования логов, созданных с использованием технологий, которые не поддерживаются Ключ-АСТРОМ изначально.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Image4080.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;Ruby&amp;#039;&amp;#039;&amp;#039; пока не имеет стабильной поддержки метрик.&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;Ruby&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;SDK&amp;#039;&amp;#039;&amp;#039; предварительная версия может уже разрешать прием ваших логов.&lt;br /&gt;
&lt;br /&gt;
=== Обеспечение распространения контекста (необязательно) ===&lt;br /&gt;
Распространение контекста особенно важно, когда задействованы сетевые вызовы (например, &amp;#039;&amp;#039;&amp;#039;REST&amp;#039;&amp;#039;&amp;#039;).&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;
Хотя Ключ-АСТРОМ автоматически собирает все атрибуты &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;Трассировки&amp;#039;&amp;#039;&amp;#039; и выберите вкладку &amp;#039;&amp;#039;&amp;#039;Распределенные трассировки&amp;#039;&amp;#039;&amp;#039;. Если вы используете ЕдиныйАгент, выберите &amp;#039;&amp;#039;&amp;#039;PurePaths&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;Логов&amp;#039;&amp;#039;&amp;#039; или &amp;#039;&amp;#039;&amp;#039;Логи и события&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
</feed>