This version of the Pinecone Java SDK introduces observability support for dataplane operations. You can now capture performance metrics and operational metadata for all vector operations (upsert, query, fetch, update, delete), enabling seamless integration with your preferred observability tools.
Features
ResponseMetadataListener for operation observability
Register a callback to receive detailed metrics after each dataplane operation completes:
- Client duration - Total round-trip time measured by the SDK
- Server duration - Processing time from x-pinecone-response-duration-ms header
- Network overhead - Computed difference (client - server)
- Operation details - Name, index, namespace, server address, status, and error info
Below code shows how to capture and log response metadata for dataplane operations:
import io.pinecone.clients.Pinecone;
import io.pinecone.clients.Index;
import java.util.Arrays;
Pinecone pinecone = new Pinecone.Builder(System.getenv("PINECONE_API_KEY"))
.withResponseMetadataListener(metadata -> {
System.out.printf("Operation: %s | Client: %dms | Server: %dms | Network: %dms%n",
metadata.getOperationName(),
metadata.getClientDurationMs(),
metadata.getServerDurationMs(),
metadata.getNetworkOverheadMs());
})
.build();
Index index = pinecone.getIndexConnection("example-index");
// All operations now report metrics via the listener
index.upsert("v1", Arrays.asList(1.0f, 2.0f, 3.0f));
// Output: Operation: upsert | Client: 52ms | Server: 38ms | Network: 14ms
index.fetch(Arrays.asList("v1"));
// Output: Operation: fetch | Client: 35ms | Server: 22ms | Network: 13msFor a complete OpenTelemetry integration example with Prometheus and Grafana, see examples/java-otel-metrics.
What's Changed
- Add ResponseMetadataListener for dataplane operation observability by @rohanshah18 in #208
- Prepare to release v6.1.0 by @rohanshah18 in #209
Full Changelog: v6.0.0...v6.1.0