# 計装の設定

Site [llms.txt](/ja/llms.txt)

---

このページでは、複数の計装に同時に適用される共通設定について説明します。

## ピアサービス名 {#peer-service-name}

[ピアサービス名](/docs/specs/semconv/general/attributes/#general-remote-service-attributes)は、接続先のリモートサービスの名前です。
ローカルサービスの[リソース](/docs/specs/semconv/resource/#service)における `service.name` に対応します。

<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 ステートメントのサニタイズ {#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 ?` として表示されます。

この動作はすべてのデータベース計装でデフォルトで有効になっています。

> [!WARNING] :warning: この機能を無効にすることは推奨されません。
>
> 無効にすると、個人を特定できる情報（PII）やセキュリティ資格情報などの機密情報がアプリケーションの境界外に漏洩する可能性があります。

無効にするには、以下のプロパティを使用してください：

<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>:
DB ステートメントのサニタイズを有効にします。
</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>


これにより、コンシューマー側で新しいトレースが開始され、プロデューサーのトレースとはスパンリンクのみで接続されることに注意してください。

> **Note**: テーブルに記載されているプロパティ/環境変数名はまだ実験的なものであり、変更される可能性があります。

## エンドユーザー属性のキャプチャ {#capturing-enduser-attributes}

[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) などの計装ライブラリから、[一般的な ID 属性](/docs/specs/semconv/registry/attributes/enduser/)（`enduser.id`、`enduser.role`、`enduser.scope`）をキャプチャするようにエージェントを設定できます。

> **Note**: 関係するデータの機密性を考慮して、この機能はデフォルトで無効になっていますが、特定の属性に対して選択的に有効化できます。
> データの収集を有効にする前に、各属性のプライバシーへの影響を慎重に評価する必要があります。

<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)を使用する Spring Security ユーザーは、以下のプロパティを使用して `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 計装の設定](/ja/docs/zero-code/java/agent/instrumentation/http/)
