<?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%A0%D1%83%D1%87%D0%BD%D0%BE%D0%B5_%D0%B2%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_OpenTelemetry_%D0%B2_Python-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5</id>
	<title>Ручное внедрение OpenTelemetry в Python-приложение - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D1%83%D1%87%D0%BD%D0%BE%D0%B5_%D0%B2%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_OpenTelemetry_%D0%B2_Python-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5"/>
	<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%A0%D1%83%D1%87%D0%BD%D0%BE%D0%B5_%D0%B2%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_OpenTelemetry_%D0%B2_Python-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5&amp;action=history"/>
	<updated>2026-05-02T12:09:25Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%A0%D1%83%D1%87%D0%BD%D0%BE%D0%B5_%D0%B2%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_OpenTelemetry_%D0%B2_Python-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=5854&amp;oldid=prev</id>
		<title>IKuznetsov: Новая страница: «В этом пошаговом руководстве показано, как добавить возможность наблюдения в ваше прило...»</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%A0%D1%83%D1%87%D0%BD%D0%BE%D0%B5_%D0%B2%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_OpenTelemetry_%D0%B2_Python-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=5854&amp;oldid=prev"/>
		<updated>2025-10-09T19:22:45Z</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;В этом пошаговом руководстве показано, как добавить возможность наблюдения в ваше приложение '''Python''' с помощью библиотек и инструментов '''OpenTelemetry''' '''Python'''.&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;
1. Используйте [https://pypi.org/project/pip/ pip]﻿ для установки пакетов '''OpenTelemetry''' '''SDK''' и '''API'''.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|pip install opentelemetry-api&lt;br /&gt;
&lt;br /&gt;
pip install opentelemetry-sdk&lt;br /&gt;
&lt;br /&gt;
pip install opentelemetry-exporter-otlp-proto-http&lt;br /&gt;
|}&lt;br /&gt;
2. Добавьте в свой код следующие импорты.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|import json&lt;br /&gt;
&lt;br /&gt;
import logging&lt;br /&gt;
&lt;br /&gt;
from opentelemetry.sdk.resources import Resource&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Import exporters&lt;br /&gt;
&lt;br /&gt;
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter&lt;br /&gt;
&lt;br /&gt;
from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter&lt;br /&gt;
&lt;br /&gt;
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Trace imports&lt;br /&gt;
&lt;br /&gt;
from opentelemetry.trace import set_tracer_provider, get_tracer_provider&lt;br /&gt;
&lt;br /&gt;
from opentelemetry.sdk.trace import TracerProvider, sampling&lt;br /&gt;
&lt;br /&gt;
from opentelemetry.sdk.trace.export import BatchSpanProcessor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Metric imports&lt;br /&gt;
&lt;br /&gt;
from opentelemetry import metrics as metrics&lt;br /&gt;
&lt;br /&gt;
from opentelemetry.sdk.metrics.export import (&lt;br /&gt;
&lt;br /&gt;
    AggregationTemporality,&lt;br /&gt;
&lt;br /&gt;
    PeriodicExportingMetricReader,&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
from opentelemetry.sdk.metrics import MeterProvider, Counter, UpDownCounter, Histogram, ObservableCounter, ObservableUpDownCounter&lt;br /&gt;
&lt;br /&gt;
from opentelemetry.metrics import set_meter_provider, get_meter_provider&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Logs import&lt;br /&gt;
&lt;br /&gt;
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler&lt;br /&gt;
&lt;br /&gt;
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor&lt;br /&gt;
&lt;br /&gt;
from opentelemetry._logs import set_logger_provider&lt;br /&gt;
|}&lt;br /&gt;
3. Добавьте следующий код в последовательность запуска, чтобы инициализировать '''OpenTelemetry''' сразу после запуска приложения. Укажите переменные &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;
|# ===== GENERAL SETUP =====&lt;br /&gt;
&lt;br /&gt;
DT_API_URL = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
DT_API_TOKEN = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
merged = dict()&lt;br /&gt;
&lt;br /&gt;
for name in [&amp;quot;dt_metadata_e617c525669e072eebe3d0f08212e8f2.json&amp;quot;, &amp;quot;/var/lib/astromkey/enrichment/dt_metadata.json&amp;quot;, &amp;quot;/var/lib/astromkey/enrichment/dt_host_metadata.json&amp;quot;]:&lt;br /&gt;
&lt;br /&gt;
  try:&lt;br /&gt;
&lt;br /&gt;
    data = &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    with open(name) as f:&lt;br /&gt;
&lt;br /&gt;
      data = json.load(f if name.startswith(&amp;quot;/var&amp;quot;) else open(f.read()))&lt;br /&gt;
&lt;br /&gt;
      merged.update(data)&lt;br /&gt;
&lt;br /&gt;
  except:&lt;br /&gt;
&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
merged.update({&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;service.name&amp;quot;: &amp;quot;python-quickstart&amp;quot;, #TODO Replace with the name of your application&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;service.version&amp;quot;: &amp;quot;1.0.1&amp;quot;, #TODO Replace with the version of your application&lt;br /&gt;
&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
resource = Resource.create(merged)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; ===== TRACING SETUP =====&lt;br /&gt;
&lt;br /&gt;
tracer_provider = TracerProvider(sampler=sampling.ALWAYS_ON, resource=resource)&lt;br /&gt;
&lt;br /&gt;
set_tracer_provider(tracer_provider)&lt;br /&gt;
&lt;br /&gt;
tracer_provider.add_span_processor(&lt;br /&gt;
&lt;br /&gt;
  BatchSpanProcessor(&lt;br /&gt;
&lt;br /&gt;
    OTLPSpanExporter(&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;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; ===== METRIC SETUP =====&lt;br /&gt;
&lt;br /&gt;
exporter = OTLPMetricExporter(&lt;br /&gt;
&lt;br /&gt;
  endpoint = DT_API_URL + &amp;quot;/v1/metrics&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  headers = {&amp;quot;Authorization&amp;quot;: &amp;quot;Api-Token &amp;quot; + DT_API_TOKEN},&lt;br /&gt;
&lt;br /&gt;
  preferred_temporality = {&lt;br /&gt;
&lt;br /&gt;
    Counter: AggregationTemporality.DELTA,&lt;br /&gt;
&lt;br /&gt;
    UpDownCounter: AggregationTemporality.CUMULATIVE,&lt;br /&gt;
&lt;br /&gt;
    Histogram: AggregationTemporality.DELTA,&lt;br /&gt;
&lt;br /&gt;
    ObservableCounter: AggregationTemporality.DELTA,&lt;br /&gt;
&lt;br /&gt;
    ObservableUpDownCounter: AggregationTemporality.CUMULATIVE,&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
reader = PeriodicExportingMetricReader(exporter)&lt;br /&gt;
&lt;br /&gt;
provider = MeterProvider(metric_readers=[reader], resource=resource)&lt;br /&gt;
&lt;br /&gt;
set_meter_provider(provider)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; ===== LOG SETUP =====&lt;br /&gt;
&lt;br /&gt;
logger_provider = LoggerProvider(resource=resource)&lt;br /&gt;
&lt;br /&gt;
set_logger_provider(logger_provider)&lt;br /&gt;
&lt;br /&gt;
logger_provider.add_log_record_processor(&lt;br /&gt;
&lt;br /&gt;
  BatchLogRecordProcessor(OTLPLogExporter(&lt;br /&gt;
&lt;br /&gt;
    endpoint = DT_API_URL + &amp;quot;/v1/logs&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
headers = {&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;
handler = LoggingHandler(level=logging.NOTSET, logger_provider=logger_provider)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Attach OTLP handler to root logger&lt;br /&gt;
&lt;br /&gt;
logging.getLogger().addHandler(handler)&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;
== Добавление телеметрических сигналов вручную (необязательно) ==&lt;br /&gt;
&lt;br /&gt;
=== Создание интервалов ===&lt;br /&gt;
1. Для создания новых интервалов нам сначала нужен объект трассировки.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|tracer = get_tracer_provider().get_tracer(&amp;quot;my-tracer&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
2. С помощью &amp;lt;code&amp;gt;tracer&amp;lt;/code&amp;gt; теперь можно создавать и запускать новые интервалы &amp;lt;code&amp;gt;start_as_current_span()&amp;lt;/code&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|with tracer.start_as_current_span(&amp;quot;Call to /myendpoint&amp;quot;) as span:&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;
    #TODO your code goes here&lt;br /&gt;
|}&lt;br /&gt;
В приведенном выше коде мы:&lt;br /&gt;
&lt;br /&gt;
* Создали новый диапазон и назовите его «'''Call to /myendpoint'''».&lt;br /&gt;
* Добавили два атрибута, следуя [https://opentelemetry.io/docs/specs/semconv/general/trace/ семантическому соглашению об именовании]﻿, специфичные для действия этого диапазона: информацию о методе '''HTTP''' и версии.&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;
|meter = get_meter_provider().get_meter(&amp;quot;my-meter&amp;quot;, &amp;quot;0.1.2&amp;quot;) #TODO Replace with the name of your meter&lt;br /&gt;
|}&lt;br /&gt;
2. С помощью &amp;lt;code&amp;gt;meter&amp;lt;/code&amp;gt; мы теперь можем создавать отдельные инструменты, например, счетчик.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|counter = meter.create_counter(&lt;br /&gt;
&lt;br /&gt;
  name=&amp;quot;request_counter&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  description=&amp;quot;The number of requests we received&amp;quot;&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
|}&lt;br /&gt;
3. Теперь мы можем вызвать метод &amp;lt;code&amp;gt;add()&amp;lt;/code&amp;gt; для записи новых значений &amp;lt;code&amp;gt;counter&amp;lt;/code&amp;gt; с помощью нашего счетчика и сохранения дополнительных атрибутов (например, &amp;lt;code&amp;gt;action.type&amp;lt;/code&amp;gt;).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|attributes = {&amp;quot;action.type&amp;quot;: &amp;quot;create&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
counter.add(1, attributes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Подключение логов ===&lt;br /&gt;
Используя переменную &amp;lt;code&amp;gt;logging&amp;lt;/code&amp;gt;, инициализированную в разделе «'''Настройка'''», мы можем напрямую подключаться к настроенной конечной точке '''OpenTelemetry''' в Ключ-АСТРОМ.&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;traceparent&amp;lt;/code&amp;gt; и используем метод &amp;lt;code&amp;gt;extract()&amp;lt;/code&amp;gt; для извлечения предоставленной контекстной информации &amp;lt;code&amp;gt;TraceContextTextMapPropagator&amp;lt;/code&amp;gt;, которую затем передаем &amp;lt;code&amp;gt;start_as_current_span()&amp;lt;/code&amp;gt; для продолжения трассировки.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator&lt;br /&gt;
&lt;br /&gt;
traceparent = request.headers.get_all(&amp;quot;traceparent&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
carrier = {&amp;quot;traceparent&amp;quot;: traceparent}&lt;br /&gt;
&lt;br /&gt;
ctx = TraceContextTextMapPropagator().extract(carrier)&lt;br /&gt;
&lt;br /&gt;
with tracer.start_as_current_span(&amp;quot;my-span&amp;quot;, context=ctx) as span:&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;
&lt;br /&gt;
=== Внедрение контекста при отправке запросов ===&lt;br /&gt;
В следующем примере мы отправляем '''REST-запрос''' к другой службе и предоставляем наш существующий контекст как часть '''HTTP-заголовков''' нашего запроса.&lt;br /&gt;
&lt;br /&gt;
Для этого мы передаём пустой объект в &amp;lt;code&amp;gt;TraceContextTextMapPropagator.inject()&amp;lt;/code&amp;gt;, который затем получает необходимое значение заголовка &amp;lt;code&amp;gt;traceparent&amp;lt;/code&amp;gt;. Затем мы включаем это значение в вызов нашего [https://pypi.org/project/requests/ запроса]﻿ к другой службе.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator&lt;br /&gt;
&lt;br /&gt;
with tracer.start_as_current_span(&amp;quot;my-span&amp;quot;) as span:&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;
    try:&lt;br /&gt;
&lt;br /&gt;
        carrier = {}&lt;br /&gt;
&lt;br /&gt;
        TraceContextTextMapPropagator().inject(carrier)&lt;br /&gt;
&lt;br /&gt;
        header = {&amp;quot;traceparent&amp;quot;: carrier[&amp;quot;traceparent&amp;quot;]}&lt;br /&gt;
&lt;br /&gt;
        response = requests.get(url, headers=header)&lt;br /&gt;
&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
&lt;br /&gt;
        pass&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>