Pinpoint v3.1.0 Release Notes

Release Date: 2026-05-20 // 26 days ago
  • Highlights

    👍 ApplicationName: 254-Character Support

    The maximum length of applicationName has been expanded from 24 to 254 characters, aligning it with SERVICE_NAME_MAX_LEN.

    Impact : Users with long, structured application identifiers (e.g., team.service.environment.region) can now register them as-is, removing the prior naming constraint that forced abbreviations.

    🐎 ServerMap V3 — Performance Improvements

    ServerMap has been rebuilt as ServerMap V3 with a redesigned storage layout and query path.

    Impact : Faster initial render and time-range navigation on large topologies, lower HBase read amplification, and improved support for 254-character ApplicationName values.

    GrpcBatchDataSender — Unary Span Transport

    A new span transport, SpanBatchGrpcDataSender, replaces the long-lived gRPC bidirectional stream (SpanGrpcDataSender) with a unary SendSpanList RPC that ships spans in independent batches.

    🚀 Starting from 3.1.0, BATCH is the default in both local and release profiles:

    # pinpoint-root.configprofiler.transport.grpc.span.sender.type=BATCH# BATCH | STREAM
    

    👍 Collector-side support : the receiver-side SpanService exposes the new SendSpanList RPC and returns batch-level results.
    Requires a 3.1.0+ collector. Older collectors should keep sender.type=STREAM.

    Impact : simpler operational model (no stream restarts on partial failures), better resilience behind L7 proxies and rolling collector deploys,
    🚤 and tunable batching that lets operators trade latency versus RPC overhead per workload.

    OpenTelemetry Metric Collection

    Pinpoint Collector now supports receiving metrics via the OTLP protocol.
    Applications can send metrics using the OpenTelemetry SDK or OpenTelemetry Collector without requiring the Pinpoint Agent.

    Heatmap View

    A new Heatmap view is now available alongside Scatter Chart.
    While Scatter Chart plots individual transactions, Heatmap provides a statistics-based visualization for faster data overview.

    image

    Error Reason Categorization

    💻 Errors are now categorized (e.g. exception, http-status, sql) and the category is shown on the call stack in the web UI,
    so you can tell at a glance why a span was marked as an error.

    997ae8c6-66a9-4542-8198-f77b7455a94e

    🔧 Opt-in via agent configuration:

    profiler.error.enable=true
    

    0️⃣ Choose which categories should mark a span as an error (default: all enabled):

    # Allow-listprofiler.error.mark=http-status,sql# Or deny-listprofiler.error.mark.exclude=exception
    

    JDBC SQL Cache Expiration

    📇 The SQL cache now expires entries after a configurable time, causing the agent to re-send the metadata periodically.

    # Default: 168 hours (7 days). Set 0 or negative to disable.profiler.jdbc.sqlcacheexpirehours=168
    

    🐎 TraceIndex — Scatter Chart and Transaction List Performance Improvements

    Scatter Chart and Transaction List now use the new TraceIndex table for transaction lookup and filtering.

    Impact : Faster scatter chart loading, improved filtering efficiency for large transaction volumes, and support for longer applicationName values.

    🐎 Application and Agent List Performance Improvements

    ⚡️ Application List and Agent List now use the new Application and AgentId tables with optimized lookup and active agent validation.

    Impact : Faster application and agent list queries with reduced backend processing overhead.

    System Metric — Multi-table Mode

    System Metric now supports multi-table mode for improved performance and scalability in large environments.


    🗄 Deprecation

    Flink-based Inspector

    🗄 The legacy Inspector that relied on Apache Flink for statistics aggregation has been deprecated.
    The new Inspector uses Apache Pinot for data collection and display. Please migrate to the new Pinot-based Inspector.


    Compatibility Improvements

    • Apache HttpClient 5.6
    • MongoDB Java Driver 5.6
    • Kafka 4.x
    • async-http-client 3.x
    • ClickHouse Java Client V2 (0.8.0)
    • 🔌 Spring R2DBC plugin: io.asyncer:r2dbc-mysql support
    • New plugin: IBM DB2

    Observability and Tracing Improvements

    • Reactor / reactor-netty : reduced excessive span event generation to lower trace noise
    • Kafka Streams : entry point changed so requests are traced individually rather than only at the queue polling level
    • Spring Kafka : new entry point options for KafkaMessageListenerContainer, including container-level tracing and error marking
    • Lettuce Pub/Sub : transaction tracing for RedisPubSubListener implementations
    • HTTP clients (Apache HttpClient, JDK HTTP, Ning, Google, OkHttp): configurable mark.error option to control whether client-side errors mark a transaction as failed

    What's Changed


Previous changes from v3.0.5