# Інструментування з коробки

LLMS index: [llms.txt](/llms.txt)

---

<!-- markdownlint-disable blanks-around-fences -->
<?code-excerpt path-base="examples/java/spring-starter"?>

Інструментування з коробки доступне для кількох фреймворків:

   <ul class="nav nav-tabs" id="tabs-0" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"
          data-td-tp-persist="властивості" aria-controls="tabs-00-00" aria-selected="true">
        Властивості
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"
          data-td-tp-persist="декларативна конфігурація" aria-controls="tabs-00-01" aria-selected="false">
        Декларативна конфігурація
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-0-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0">
        <table>
  <thead>
      <tr>
          <th>Функція</th>
          <th>Властивість</th>
          <th>Стандартно</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>JDBC</td>
          <td><code>otel.instrumentation.jdbc.enabled</code></td>
          <td>true</td>
      </tr>
      <tr>
          <td>Logback</td>
          <td><code>otel.instrumentation.logback-appender.enabled</code></td>
          <td>true</td>
      </tr>
      <tr>
          <td>Logback MDC</td>
          <td><code>otel.instrumentation.logback-mdc.enabled</code></td>
          <td>true</td>
      </tr>
      <tr>
          <td>Spring Web</td>
          <td><code>otel.instrumentation.spring-web.enabled</code></td>
          <td>true</td>
      </tr>
      <tr>
          <td>Spring Web MVC</td>
          <td><code>otel.instrumentation.spring-webmvc.enabled</code></td>
          <td>true</td>
      </tr>
      <tr>
          <td>Spring WebFlux</td>
          <td><code>otel.instrumentation.spring-webflux.enabled</code></td>
          <td>true</td>
      </tr>
      <tr>
          <td>Kafka</td>
          <td><code>otel.instrumentation.kafka.enabled</code></td>
          <td>true</td>
      </tr>
      <tr>
          <td>MongoDB</td>
          <td><code>otel.instrumentation.mongo.enabled</code></td>
          <td>true</td>
      </tr>
      <tr>
          <td>Micrometer</td>
          <td><code>otel.instrumentation.micrometer.enabled</code></td>
          <td>false</td>
      </tr>
      <tr>
          <td>R2DBC (reactive JDBC)</td>
          <td><code>otel.instrumentation.r2dbc.enabled</code></td>
          <td>true</td>
      </tr>
  </tbody>
</table>
<p>Щоб вимкнути конкретне інструментування:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">logback-appender</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-00-01" role="tabpanel" aria-labelled-by="tabs-00-01-tab" tabindex="0">
        <p>У <a href="../declarative-configuration/">декларативній конфігурації</a>, увімкнення/вимкнення інструментування
використовує централізовані списки в <code>otel.distribution.spring_starter.instrumentation</code>. Назва інструментування
використовує <code>_</code> (snake_case), а не <code>-</code> (kebab-case).</p>
<table>
  <thead>
      <tr>
          <th>Функція</th>
          <th>Назва</th>
          <th>Стандартно</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>JDBC</td>
          <td><code>jdbc</code></td>
          <td>увімкнено</td>
      </tr>
      <tr>
          <td>Logback</td>
          <td><code>logback_appender</code></td>
          <td>увімкнено</td>
      </tr>
      <tr>
          <td>Logback MDC</td>
          <td><code>logback_mdc</code></td>
          <td>увімкнено</td>
      </tr>
      <tr>
          <td>Spring Web</td>
          <td><code>spring_web</code></td>
          <td>увімкнено</td>
      </tr>
      <tr>
          <td>Spring Web MVC</td>
          <td><code>spring_webmvc</code></td>
          <td>увімкнено</td>
      </tr>
      <tr>
          <td>Spring WebFlux</td>
          <td><code>spring_webflux</code></td>
          <td>увімкнено</td>
      </tr>
      <tr>
          <td>Kafka</td>
          <td><code>kafka</code></td>
          <td>увімкнено</td>
      </tr>
      <tr>
          <td>MongoDB</td>
          <td><code>mongo</code></td>
          <td>увімкнено</td>
      </tr>
      <tr>
          <td>Micrometer</td>
          <td><code>micrometer</code></td>
          <td>вимкнено</td>
      </tr>
      <tr>
          <td>R2DBC (reactive JDBC)</td>
          <td><code>r2dbc</code></td>
          <td>увімкнено</td>
      </tr>
  </tbody>
</table>
<p>Для вимкнення конкретного інструментування:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">distribution</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">spring_starter</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">instrumentation</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">disabled</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span>- <span class="l">logback_appender</span><span class="w">
</span></span></span></code></pre></div>
    </div>
</div>


## Вибіркове увімкнення інструментувань {#turn-on-instrumentations-selectively}

   <ul class="nav nav-tabs" id="tabs-1" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-01-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-00" role="tab"
          data-td-tp-persist="властивості" aria-controls="tabs-01-00" aria-selected="true">
        Властивості
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-01-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-01" role="tab"
          data-td-tp-persist="декларативна конфігурація" aria-controls="tabs-01-01" aria-selected="false">
        Декларативна конфігурація
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-1-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-01-00" role="tabpanel" aria-labelled-by="tabs-01-00-tab" tabindex="1">
        <p>Щоб використовувати лише певні інструментування, спочатку вимкніть усі інструментування, а потім увімкніть інструментування одне за одним:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">common</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">default-enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">jdbc</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-01-01" role="tabpanel" aria-labelled-by="tabs-01-01-tab" tabindex="1">
        <p>У <a href="../declarative-configuration/">декларативній конфігурації</a>, встановіть <code>default_enabled</code> у значення <code>false</code> та перелічіть інструментування, які ви хочете увімкнути, у <code>enabled</code>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">distribution</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">spring_starter</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">instrumentation</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">default_enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">enabled</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span>- <span class="l">jdbc</span><span class="w">
</span></span></span></code></pre></div>
    </div>
</div>


## Загальна конфігурація інструментування {#common-instrumentation-configuration}

Загальні властивості для всіх інструментувань баз даних:

   <ul class="nav nav-tabs" id="tabs-2" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-02-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-00" role="tab"
          data-td-tp-persist="властивості" aria-controls="tabs-02-00" aria-selected="true">
        Властивості
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-02-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-01" role="tab"
          data-td-tp-persist="декларативна конфігурація" aria-controls="tabs-02-01" aria-selected="false">
        Декларативна конфігурація
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-2-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-02-00" role="tabpanel" aria-labelled-by="tabs-02-00-tab" tabindex="2">
        <p>Увімкнення санітизації запитів до БД для всіх інструментувань баз даних:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">common</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">db-statement-sanitizer</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">enabled: true # стандартно</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-02-01" role="tabpanel" aria-labelled-by="tabs-02-01-tab" tabindex="2">
        <p>Увімкнення санітизації запитів до БД для всіх інструментувань баз даних:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation/development</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">java</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">common</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">database</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">statement_sanitizer</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">            </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span></code></pre></div>
    </div>
</div>


## Інструментування JDBC {#jdbc-instrumentation}

   <ul class="nav nav-tabs" id="tabs-3" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-03-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-03-00" role="tab"
          data-td-tp-persist="властивості" aria-controls="tabs-03-00" aria-selected="true">
        Властивості
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-03-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-03-01" role="tab"
          data-td-tp-persist="декларативна конфігурація" aria-controls="tabs-03-01" aria-selected="false">
        Декларативна конфігурація
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-3-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-03-00" role="tabpanel" aria-labelled-by="tabs-03-00-tab" tabindex="3">
        <p>Увімкнення санітизації запитів до БД для JDBC:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">jdbc</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">statement-sanitizer</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">enabled: true # стандартно</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-03-01" role="tabpanel" aria-labelled-by="tabs-03-01-tab" tabindex="3">
        <p>Увімкнення санітизації запитів до БД для JDBC:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation/development</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">java</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">jdbc</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">statement_sanitizer</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span></code></pre></div>
    </div>
</div>


## Logback

Ви можете увімкнути експериментальні функції за допомогою системних властивостей для захоплення атрибутів:

   <ul class="nav nav-tabs" id="tabs-4" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-04-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-04-00" role="tab"
          data-td-tp-persist="властивості" aria-controls="tabs-04-00" aria-selected="true">
        Властивості
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-04-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-04-01" role="tab"
          data-td-tp-persist="декларативна конфігурація" aria-controls="tabs-04-01" aria-selected="false">
        Декларативна конфігурація
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-4-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-04-00" role="tabpanel" aria-labelled-by="tabs-04-00-tab" tabindex="4">
        <table>
  <thead>
      <tr>
          <th>Властивість</th>
          <th>Тип</th>
          <th>Значення за замовчуванням</th>
          <th>Опис</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>experimental-log-attributes</code></td>
          <td>Boolean</td>
          <td>false</td>
          <td>Увімкнення захоплення експериментальних атрибутів журналу <code>thread.name</code> та <code>thread.id</code>.</td>
      </tr>
      <tr>
          <td><code>experimental.capture-code-attributes</code></td>
          <td>Boolean</td>
          <td>false</td>
          <td>Увімкнення захоплення <a href="/docs/specs/semconv/general/attributes/#source-code-attributes">атрибутів вихідного коду</a>. Зверніть увагу, що захоплення атрибутів вихідного коду на місцях журналювання може додати накладні витрати на продуктивність.</td>
      </tr>
      <tr>
          <td><code>experimental.capture-marker-attribute</code></td>
          <td>Boolean</td>
          <td>false</td>
          <td>Увімкнення захоплення маркерів Logback як атрибутів.</td>
      </tr>
      <tr>
          <td><code>experimental.capture-key-value-pair-attributes</code></td>
          <td>Boolean</td>
          <td>false</td>
          <td>Увімкнення захоплення пар ключ-значення Logback як атрибутів.</td>
      </tr>
      <tr>
          <td><code>experimental.capture-logger-context-attributes</code></td>
          <td>Boolean</td>
          <td>false</td>
          <td>Увімкнення захоплення властивостей контексту логера Logback як атрибутів.</td>
      </tr>
      <tr>
          <td><code>experimental.capture-mdc-attributes</code></td>
          <td>String</td>
          <td></td>
          <td>Список атрибутів MDC для захоплення, розділених комами. Використовуйте символ підстановки <code>*</code>, щоб захопити всі атрибути.</td>
      </tr>
  </tbody>
</table>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">logback-appender</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">experimental-log-attributes</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">experimental</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">capture-code-attributes</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">capture-marker-attribute</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">capture-key-value-pair-attributes</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">capture-logger-context-attributes</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">capture-mdc-attributes</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;*&#39;</span><span class="w">
</span></span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-04-01" role="tabpanel" aria-labelled-by="tabs-04-01-tab" tabindex="4">
        <table>
  <thead>
      <tr>
          <th>Property</th>
          <th>Type</th>
          <th>Default</th>
          <th>Description</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>experimental_log_attributes/development</code></td>
          <td>Boolean</td>
          <td>false</td>
          <td>Увімкнення захоплення експериментальних атрибутів журналу <code>thread.name</code> та <code>thread.id</code>.</td>
      </tr>
      <tr>
          <td><code>capture_code_attributes/development</code></td>
          <td>Boolean</td>
          <td>false</td>
          <td>Увімкнення захоплення <a href="/docs/specs/semconv/general/attributes/#source-code-attributes">атрибутів вихідного коду</a>. Зверніть увагу, що захоплення атрибутів вихідного коду на місцях журналювання може додати накладні витрати на продуктивність.</td>
      </tr>
      <tr>
          <td><code>capture_marker_attribute/development</code></td>
          <td>Boolean</td>
          <td>false</td>
          <td>Увімкнення захоплення маркерів Logback як атрибутів.</td>
      </tr>
      <tr>
          <td><code>capture_key_value_pair_attributes/development</code></td>
          <td>Boolean</td>
          <td>false</td>
          <td>Увімкнення захоплення пар ключ-значення Logback як атрибутів.</td>
      </tr>
      <tr>
          <td><code>capture_logger_context_attributes/development</code></td>
          <td>Boolean</td>
          <td>false</td>
          <td>Увімкнення захоплення властивостей контексту логера Logback як атрибутів.</td>
      </tr>
      <tr>
          <td><code>capture_mdc_attributes/development</code></td>
          <td>String</td>
          <td></td>
          <td>Список атрибутів MDC для захоплення, розділених комами. Використовуйте символ підстановки <code>*</code>, щоб захопити всі атрибути.</td>
      </tr>
  </tbody>
</table>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation/development</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">java</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">logback_appender</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">experimental_log_attributes/development</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">capture_code_attributes/development</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">capture_marker_attribute/development</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">capture_key_value_pair_attributes/development</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">capture_logger_context_attributes/development</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">capture_mdc_attributes/development</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;*&#39;</span><span class="w">
</span></span></span></code></pre></div><!-- [source_code_attributes]: /docs/specs/semconv/general/attributes/#source-code-attributes -->

    </div>
</div>


Альтернативно, ви можете увімкнути ці функції, додавши доповнювач OpenTelemetry Logback у ваш файл `logback.xml` або `logback-spring.xml`:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            </pattern>
        </encoder>
    </appender>
    <appender name="OpenTelemetry"
        class="io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender">
        <captureExperimentalAttributes>false</captureExperimentalAttributes>
        <captureCodeAttributes>true</captureCodeAttributes>
        <captureMarkerAttribute>true</captureMarkerAttribute>
        <captureKeyValuePairAttributes>true</captureKeyValuePairAttributes>
        <captureLoggerContext>true</captureLoggerContext>
        <captureMdcAttributes>*</captureMdcAttributes>
    </appender>
    <root level="INFO">
        <appender-ref ref="console"/>
        <appender-ref ref="OpenTelemetry"/>
    </root>
</configuration>
```

## Автоконфігурація Spring Web {#spring-web-autoconfiguration}

Забезпечує автоконфігурацію для перехоплювача трасування `RestTemplate`, визначеного в [opentelemetry-spring-web-3.1](https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/spring/spring-web/spring-web-3.1/library). Ця автоконфігурація інструментує всі запити, що надсилаються за допомогою Spring `RestTemplate` бінів, застосовуючи постпроцесор бінів `RestTemplate`. Ця функція підтримується для версій spring web 3.1+. Щоб дізнатися більше про перехоплювач `RestTemplate` OpenTelemetry, дивіться [opentelemetry-spring-web-3.1](https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/spring/spring-web/spring-web-3.1/library).

Підтримуються наступні способи створення `RestTemplate`:

<!-- prettier-ignore-start -->
<?code-excerpt "src/main/java/otel/RestTemplateConfig.java"?>
```java
package otel;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateConfig {

  @Bean
  public RestTemplate restTemplate() {
    return new RestTemplate();
  }
}
```

<?code-excerpt "src/main/java/otel/RestTemplateController.java"?>
```java
package otel;

import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class RestTemplateController {

  private final RestTemplate restTemplate;

  public RestTemplateController(RestTemplateBuilder restTemplateBuilder) {
    restTemplate = restTemplateBuilder.rootUri("http://localhost:8080").build();
  }
}
```
<!-- prettier-ignore-end -->

Підтримуються наступні способи створення `RestClient`:

<!-- prettier-ignore-start -->
<?code-excerpt "src/main/java/otel/RestClientConfig.java"?>
```java
package otel;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestClient;

@Configuration
public class RestClientConfig {

  @Bean
  public RestClient restClient() {
    return RestClient.create();
  }
}
```

<?code-excerpt "src/main/java/otel/RestClientController.java"?>
```java
package otel;

import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestClient;

@RestController
public class RestClientController {

  private final RestClient restClient;

  public RestClientController(RestClient.Builder restClientBuilder) {
    restClient = restClientBuilder.baseUrl("http://localhost:8080").build();
  }
}
```
<!-- prettier-ignore-end -->

Як і у випадку з Java агентом, ви можете налаштувати захоплення наступних сутностей:

- [Заголовки HTTP запитів та відповідей](/docs/zero-code/java/agent/instrumentation/http/#capturing-http-request-and-response-headers)
- [Відомі методи HTTP](/docs/zero-code/java/agent/instrumentation/http/#configuring-known-http-methods)
- [Експериментальна телеметрія HTTP](/docs/zero-code/java/agent/instrumentation/http/#enabling-experimental-http-telemetry)

## Автоконфігурація Spring Web MVC {#spring-web-mvc-autoconfiguration}

Ця функція автоматично конфігурує інструментування для контролерів Spring WebMVC, додаючи [фільтр, що створює телеметрію](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/instrumentation/spring/spring-webmvc/spring-webmvc-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/v5_3/WebMvcTelemetryProducingFilter.java) бін до контексту застосунку. Фільтр декорує виконання запиту відрізком сервера, передаючи вхідний контекст трасування, якщо він отриманий у HTTP запиті. Щоб дізнатися більше про інструментування Spring WebMVC OpenTelemetry, дивіться [бібліотеку інструментування opentelemetry-spring-webmvc-5.3](https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/spring/spring-webmvc/spring-webmvc-5.3/library).

Як і у випадку з Java агентом, ви можете налаштувати захоплення наступних сутностей:

- [Заголовки HTTP запитів та відповідей](/docs/zero-code/java/agent/instrumentation/http/#capturing-http-request-and-response-headers)
- [Відомі методи HTTP](/docs/zero-code/java/agent/instrumentation/http/#configuring-known-http-methods)
- [Експериментальна телеметрія HTTP](/docs/zero-code/java/agent/instrumentation/http/#enabling-experimental-http-telemetry)

## Автоконфігурація Spring WebFlux {#spring-webflux-autoconfiguration}

Забезпечує автоконфігурації для фільтра обміну WebClient OpenTelemetry, визначеного в [opentelemetry-spring-webflux-5.3](https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/spring/spring-webflux/spring-webflux-5.3/library).
Ця автоконфігурація інструментує всі вихідні HTTP запити, що надсилаються за допомогою бінів WebClient та WebClient Builder Spring, застосовуючи постпроцесор бінів. Ця функція підтримується для версій spring webflux 5.0+. Для деталей дивіться [opentelemetry-spring-webflux-5.3](https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/spring/spring-webflux/spring-webflux-5.3/library).

Підтримуються наступні способи створення `WebClient`:

<!-- prettier-ignore-start -->
<?code-excerpt "src/main/java/otel/WebClientConfig.java"?>
```java
package otel;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.client.WebClient;

@Configuration
public class WebClientConfig {

  @Bean
  public WebClient webClient() {
    return WebClient.create();
  }
}
```

<?code-excerpt "src/main/java/otel/WebClientController.java"?>
```java
package otel;

import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.reactive.function.client.WebClient;

@RestController
public class WebClientController {

  private final WebClient webClient;

  public WebClientController(WebClient.Builder webClientBuilder) {
    webClient = webClientBuilder.baseUrl("http://localhost:8080").build();
  }
}
```
<!-- prettier-ignore-end -->

## Інструментування Kafka {#kafka-instrumentation}

Забезпечує автоконфігурацію для інструментування клієнта Kafka.

   <ul class="nav nav-tabs" id="tabs-5" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-05-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-05-00" role="tab"
          data-td-tp-persist="властивості" aria-controls="tabs-05-00" aria-selected="true">
        Властивості
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-05-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-05-01" role="tab"
          data-td-tp-persist="декларативна конфігурація" aria-controls="tabs-05-01" aria-selected="false">
        Декларативна конфігурація
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-5-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-05-00" role="tabpanel" aria-labelled-by="tabs-05-00-tab" tabindex="5">
        <p>Вмикає захоплення експериментальних атрибутів відрізків для Kafka:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">kafka</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">experimental-span-attributes: false # стандартно</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-05-01" role="tabpanel" aria-labelled-by="tabs-05-01-tab" tabindex="5">
        <p>Вмикає захоплення експериментальних атрибутів відрізків для Kafka:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation/development</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">java</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">kafka</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">experimental_span_attributes/development</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span></code></pre></div>
    </div>
</div>


## Інструментування Micrometer {#micrometer-instrumentation}

Забезпечує автоконфігурацію для мосту Micrometer до OpenTelemetry.

## Інструментування MongoDB {#mongodb-instrumentation}

Забезпечує автоконфігурацію для інструментування клієнта MongoDB.

   <ul class="nav nav-tabs" id="tabs-6" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-06-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-06-00" role="tab"
          data-td-tp-persist="властивості" aria-controls="tabs-06-00" aria-selected="true">
        Властивості
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-06-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-06-01" role="tab"
          data-td-tp-persist="декларативна конфігурація" aria-controls="tabs-06-01" aria-selected="false">
        Декларативна конфігурація
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-6-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-06-00" role="tabpanel" aria-labelled-by="tabs-06-00-tab" tabindex="6">
        <p>Вмикає санітизацію запитів до БД для MongoDB:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">mongo</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">statement-sanitizer</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">enabled: true # стандартно</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-06-01" role="tabpanel" aria-labelled-by="tabs-06-01-tab" tabindex="6">
        <p>Вмикає санітизацію запитів до БД для MongoDB:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation/development</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">java</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">mongo</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">statement_sanitizer</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span></code></pre></div>
    </div>
</div>


## Інструментування R2DBC {#r2dbc-instrumentation}

Забезпечує автоконфігурацію для інструментування OpenTelemetry R2DBC.

   <ul class="nav nav-tabs" id="tabs-7" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-07-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-07-00" role="tab"
          data-td-tp-persist="властивості" aria-controls="tabs-07-00" aria-selected="true">
        Властивості
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-07-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-07-01" role="tab"
          data-td-tp-persist="декларативна конфігурація" aria-controls="tabs-07-01" aria-selected="false">
        Декларативна конфігурація
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-7-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-07-00" role="tabpanel" aria-labelled-by="tabs-07-00-tab" tabindex="7">
        <p>Вмикає санітизацію запитів до БД для R2DBC:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">r2dbc</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">statement-sanitizer</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">enabled: true # стандартно</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-07-01" role="tabpanel" aria-labelled-by="tabs-07-01-tab" tabindex="7">
        <p>Вмикає санітизацію запитів до БД для R2DBC:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">otel</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">instrumentation/development</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">java</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">r2dbc</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">statement_sanitizer</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">          </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span></code></pre></div>
    </div>
</div>
