# Конфігурація інструментування

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

---

Ця сторінка описує загальні налаштування, які застосовуються до кількох інструментів одночасно.

## Імʼя сервісу-партнера {#peer-service-name}

[Імʼя сервісу-партнера](/docs/specs/semconv/general/attributes/#general-remote-service-attributes) це імʼя віддаленого сервісу, до якого здійснюється підключення. Воно відповідає `service.name` у [ресурсі](/docs/specs/semconv/resource/#service) для локального сервісу.

<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.common.peer-service-mapping</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_COMMON_PEER_SERVICE_MAPPING</code>
</details>

<span class="label">Description</span>:
Використовується для вказівки відповідності між іменами хостів або IP-адресами та сервісами-партнерами у вигляді списку пар `&lt;host_or_ip&gt;=&lt;user_assigned_name&gt;`, розділених комами. Сервіс-партнер додається як атрибут до відрізка, хост або IP-адреса якого є відповідним.

Наприклад, якщо встановлено наступне:

```text
1.2.3.4=cats-service,dogs-abcdef123.serverlessapis.com=dogs-api
```

Тоді запити до `1.2.3.4` матимуть атрибут `peer.service` зі значенням `cats-service`, а запити до `dogs-abcdef123.serverlessapis.com` матимуть атрибут `dogs-api`.

З версії Java агента `1.31.0` можна вказати порт і шлях для визначення `peer.service`.

Наприклад, якщо встановлено наступне:

```text
1.2.3.4:443=cats-service,dogs-abcdef123.serverlessapis.com:80/api=dogs-api
```

Тоді запити до `1.2.3.4` не матимуть перевизначення для атрибуту `peer.service`, тоді як `1.2.3.4:443` матиме `peer.service` зі значенням `cats-service`, а запити до `dogs-abcdef123.serverlessapis.com:80/api/v1` матимуть атрибут `dogs-api`.
</div>


## Очищення операторів БД {#db-statement-sanitization}

Агент очищує всі запити/заяви до бази даних перед встановленням семантичного атрибута `db.statement`. Усі значення (рядки, числа) у рядку запиту замінюються знаком питання (`?`).

Примітка: Параметри привʼязки JDBC не захоплюються у `db.statement`. Дивіться [відповідне питання](https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/7413) якщо ви хочете захопити параметри привʼязки.

Приклади:

- SQL запит `SELECT a from b where password="secret"` буде виглядати як `SELECT a from b where password=?` в експортованому відрізку;
- Команда Redis `HSET map password "secret"` буде виглядати як `HSET map password ?` у експортованому відрізку.

Ця поведінка стандартно увімкнена для всіх інструментів бази даних. Використовуйте наступну властивість, щоб вимкнути її:

<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.common.db-statement-sanitizer.enabled</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_COMMON_DB_STATEMENT_SANITIZER_ENABLED</code>
</details>

<span class="label">Default</span>: true<br>
<span class="label">Description</span>:
Увімкнення очищення запитів до бази даних.
</div>


## Захоплення телеметрії отримання повідомлень споживачем в інструментах обміну повідомленнями {#capturing-consumer-message-receive-telemetry-in-messaging-instrumentations}

Ви можете налаштувати агент для захоплення телеметрії отримання повідомлень споживачем в інструментах обміну повідомленнями. Використовуйте наступну властивість, щоб увімкнути її:

<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.messaging.experimental.receive-telemetry.enabled</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_MESSAGING_EXPERIMENTAL_RECEIVE_TELEMETRY_ENABLED</code>
</details>

<span class="label">Default</span>: false<br>
<span class="label">Description</span>:
Увімкнення телеметрії отримання повідомлень споживачем.
</div>


Зверніть увагу, що це призведе до того, що на стороні споживача розпочнеться новий трейс, з лише посиланням на відрізок, що зʼєднує його з трейсом продюсера.

> **Примітка**: Імена властивостей/змінних середовища, зазначені в таблиці, все ще є експериментальними, і тому можуть змінюватися.

## Захоплення атрибутів кінцевого користувача {#capturing-enduser-attributes}

Ви можете налаштувати агент для захоплення [загальних атрибутів ідентифікації](/docs/specs/semconv/registry/attributes/enduser/) (`enduser.id`, `enduser.role`, `enduser.scope`) з бібліотек інструментування таких як [JavaEE/JakartaEE Servlet](https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/servlet) та [Spring Security](https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/spring/spring-security-config-6.0).

> **Примітка**: З огляду на чутливий характер даних, ця функція стандартно вимкнена, дозволяючи вибіркову активацію для конкретних атрибутів. Ви повинні ретельно оцінити наслідки для конфіденційності кожного атрибуту перед увімкненням збору даних.

<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.common.enduser.id.enabled</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_COMMON_ENDUSER_ID_ENABLED</code>
</details>

<span class="label">Default</span>: false<br>
<span class="label">Description</span>:
Визначає, чи захоплювати семантичний атрибут `enduser.id`.
</div>


<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.common.enduser.role.enabled</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_COMMON_ENDUSER_ROLE_ENABLED</code>
</details>

<span class="label">Default</span>: false<br>
<span class="label">Description</span>:
Визначає, чи захоплювати семантичний атрибут `enduser.role`.
</div>


<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.common.enduser.scope.enabled</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_COMMON_ENDUSER_SCOPE_ENABLED</code>
</details>

<span class="label">Default</span>: false<br>
<span class="label">Description</span>:
Визначає, чи захоплювати семантичний атрибут `enduser.scope`.
</div>


### Spring Security

Для користувачів Spring Security, які використовують користувацькі [префікси наданих повноважень](https://docs.spring.io/spring-security/reference/servlet/authorization/architecture.html#authz-authorities), ви можете використовувати наступні властивості, щоб видалити ці префікси з значень атрибутів `enduser.*`, щоб краще представляти фактичні імена ролей та обсягів:

<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.spring-security.enduser.role.granted-authority-prefix</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_SPRING_SECURITY_ENDUSER_ROLE_GRANTED_AUTHORITY_PREFIX</code>
</details>

<span class="label">Default</span>: ROLE_<br>
<span class="label">Description</span>:
Префікс наданих повноважень, що ідентифікують ролі для захоплення у семантичному атрибуті `enduser.role`.
</div>


<div class="config-option">
<details>
  <summary title="Expand to view environment variable">
    <span class="label">System property</span>:
      <code>otel.instrumentation.spring-security.enduser.scope.granted-authority-prefix</code>
  </summary>
  <span class="label">Environment variable</span>:
    <code>OTEL_INSTRUMENTATION_SPRING_SECURITY_ENDUSER_SCOPE_GRANTED_AUTHORITY_PREFIX</code>
</details>

<span class="label">Default</span>: SCOPE_<br>
<span class="label">Description</span>:
Префікс наданих повноважень, що ідентифікують обсяги для захоплення у семантичному атрибуті `enduser.scopes`.
</div>

---

Section pages:

- [Конфігурація інструментування HTTP](/uk/docs/zero-code/java/agent/instrumentation/http/)
