# OpenSearch Java Client

<!-- llms-txt-link: /llms.txt -->

> OpenTelemetry Java agent instrumentation

This instrumentation enables database client spans and database client metrics for the OpenSearch Java client.

- **Name**: `opensearch-java-3.0`
- **Scope**: `io.opentelemetry.opensearch-java-3.0`
- **Target versions**: `org.opensearch.client:opensearch-java:[3.0,)`
- **Library**: https://docs.opensearch.org/latest/clients/java/

## Telemetry

### When `default`

**Spans**

| Span kind | Attributes |
| --- | --- |
| CLIENT | `db.operation` (STRING), `db.statement` (STRING), `db.system` (STRING) |

### When `otel.semconv-stability.opt-in=database`

**Metrics**

| Metric | Instrument | Type | Unit | Description |
| --- | --- | --- | --- | --- |
| `db.client.operation.duration` | histogram | HISTOGRAM | s | Duration of database client operations. |

| Metric | Attributes |
| --- | --- |
| `db.client.operation.duration` | `db.operation.name` (STRING), `db.system.name` (STRING) |

**Spans**

| Span kind | Attributes |
| --- | --- |
| CLIENT | `db.operation.name` (STRING), `db.query.text` (STRING), `db.system.name` (STRING) |

## Configuration

| Option | Type | Default | Description |
| --- | --- | --- | --- |
| `otel.instrumentation.opensearch.capture-search-query` | boolean | true | Enable the capture of sanitized search query bodies. Search queries may contain personal or sensitive information. |

## Data

- **JSON (latest)**: [/data/javaagent/instrumentations/opensearch-java-3.0/latest.json](/data/javaagent/instrumentations/opensearch-java-3.0/latest.json)
- **JSON (pinned)**: [/data/javaagent/instrumentations/opensearch-java-3.0/opensearch-java-3.0-1df26a9b41e7.json](/data/javaagent/instrumentations/opensearch-java-3.0/opensearch-java-3.0-1df26a9b41e7.json)
- **Explore**: [/java-agent/instrumentation/opensearch-java-3.0](/java-agent/instrumentation/opensearch-java-3.0)
