Skip to content

Changelog

1.19.0 (2026/08/27)

New Features

  • New /v2/tail_sampling zstd reporting endpoint, compatible with the uncompressed negotiation header zstd packet sent by Datakit 2.10 via /v1/tail_sampling (#110)
  • Added bounded batch sending and failure retry for retained data in tail sampling; changed out-of-memory fallback to disk to asynchronous processing, and improved restart recovery and shutdown finalization mechanisms (#110)

Optimizations

  • Tail sampling extracts trace_id after decompression and re-evaluates predicates; downstream batch sends use gzip compression to reduce request count and transmission overhead (#110)
  • Improved metric coverage for tail sampling queue submission results, wait duration, disk depth, and batch processing status (#110)

Security and Observability

  • Fixed the token label in metrics to redacted; no longer retains original token fragments to avoid credential leakage and high-cardinality time series (#90)
  • Redacted error messages in aggregation, tail sampling, and multi-backend forwarding; no longer exposes backend URLs, response content, or authentication information (#90)

1.18.0 (2026/08/12)

Optimizations

  • Optimized the trace_id extraction path in tail sampling to avoid redundant payload traversal when RawGroupId is available, while maintaining unchanged sampling behavior (#108)
  • Upgraded cliutils; disk cache automatically initializes capacity metrics when enabled, and improved shutdown and file lock release behavior (#111)

Bug Fixes

  • Unified token validation and passing semantics for Aggregate and Tail Sampling special APIs (#88)
  • Isolated invalid token negative cache by token, write route, and main/headless mode to prevent cross-scenario false blocking (#106)
  • Fixed concurrent access issues in the failure cache and tail sampling disk fallback path, eliminating data races during disk queue initialization, reading, and shutdown (#111)
  • Isolated pprof and Prometheus HTTP mux; pprof is disabled by default, and when enabled, only listens on loopback, with restrictions on diagnostic request duration and concurrency (#89)
  • Redacted token, credentials, global tags, and rule content from logs of request forwarding, cache replay, aggregation, tail sampling, and Sinker (#104)
  • Fixed system workspace URL determination and added regression validation for token injection in normal and cascading modes (#104)
  • Corrected main HTTP Server request header timeout, Gin mode, IP blacklist configuration examples, and API wrapper error handling (#104)

Security and Observability

  • Fixed Go and golangci-lint download packages used in CI; verified SHA-256 by architecture, and removed the direct execution path of remote installation scripts (#101)
  • Updated DataWay default dashboard to add queue, tail sampling, Sinker cache, and runtime monitoring (#85)

1.17.0 (2026/07/14)

New Features

  • New OTLP HTTP/protobuf endpoints: /otel/v1/traces, /otel/v1/metrics, and /otel/v1/logs (#81)
  • OTLP requests support query token, X-Token, and Bearer token, and are integrated with the Kodo queue and disk cache (#81)
  • OTLP requests support passing through Kodo status codes, body, and necessary headers (#81)

Optimizations

  • Optimized Sinker splitting for aggregation and tail sampling; a failure in one group no longer affects other groups (#71)
  • Invalid token negative cache only applies to qualified write requests (#77)
  • Optimized memory usage and concurrency stability of aggregation
  • Optimized tail sampling backlog handling; when the in-memory queue is full, data can be temporarily stored to disk
  • Improved stability under disk cache anomaly scenarios

Bug Fixes

  • Fixed race condition and capacity issues in the Sinker rule cache (#93)

Observability

  • New file descriptor metric dataway_open_files_by_type and TCP metric dataway_tcp_connections
  • New metrics for tail sampling, send queue, worker, and disk staging

1.16.1 (2026/07/09)

Bug Fixes

  • /v1/write/rum rejects empty bodies and returns 400 with dataway.emptyBody; non-empty bodies are still forwarded as-is (#82)
  • When the Kodo queue is full, cacheable requests are written to disk; returns 503 when cache is unavailable (#83)
  • "Cached" is only returned after a successful write, and the recording of cache failure reasons is improved (#83)

1.16.0 (2026/07/02)

New Features

  • Added IPv6 and dual-stack deployment support; IP whitelist supports IPv4, IPv6, and CIDR (#79)
  • New bind_ipv6/DW_BIND_IPV6 and trusted_proxies/DW_TRUSTED_PROXIES configuration options (#78, #79)

Optimizations

  • When the Kodo successful response is empty, no longer returns an empty body and Content-Type (#78)
  • CORS headers are returned only for requests with Origin; added X-Content-Type-Options: nosniff to forwarding responses (#78)

1.15.0 (2026/05/27)

New Features

  • Added Kodo bounded queue, covering write, upload, and Firehose requests
  • Queue is enabled by default and supports DW_KODO_QUEUE_* environment variables
  • When the queue is full, cacheable requests are cached; returns 503 when cache is unavailable
  • Added invalid token negative cache, supporting DW_TOKEN_NEGATIVE_CACHE_* environment variables
  • Default TTL for negative cache is 5m, with a maximum of 1000 tokens

Optimizations

  • Added token and payload validation to the aggregation endpoint
  • Aggregation sending uses a background queue with 3 retries and added Content-MD5
  • Aggregation proxy reuses the reverse proxy and validates related configurations
  • Cache replay uses the current remote_host; default cleanup interval changed to 1s
  • Updated Sinker documentation. Starting from DataKit 2.0.0, non-point write APIs generally do not require __dataway_api rules

Observability

  • New Kodo queue-related metrics: dataway_kodo_queue_wait_seconds, dataway_kodo_queue_depth, dataway_kodo_queue_bytes, dataway_kodo_queue_enqueued_total, dataway_kodo_queue_full_total, dataway_kodo_queue_dispatch_total
  • New invalid token negative cache metrics: dataway_token_negative_cache_added_total, dataway_token_negative_cache_blocked_total
  • New aggregation/tail sampling-related metrics: dataway_http_api_body_size_bytes_total, dataway_http_aggr_point_total, dataway_http_tail_sampling_trace_total, dataway_http_tail_sampling_span_total, dataway_http_tail_sampling_packet_send_total
  • New disk cache lock contention metrics: diskcache_lock_wait_seconds, diskcache_lock_contention_total
  • Fixed the sinked label in latency metrics under Sinker scenarios

1.14.0 (2026/04/17)

  • Added session replay image processing endpoint

1.13.0 (2026/04/10)

  • Added DataWay sidecar aggregation and sampling support (#67)

1.12.3 (2026/03/26)

  • Added v2 Sinker header format to resolve HTTP standard violations caused by abnormal values in split headers (#68)

1.12.2 (2026/03/17)

  • Updated DataWay image SSL certificates to avoid failure to recognize Openaway SSL certificates in cascading scenarios (#69)

1.12.1 (2025/12/25)

  • Fixed the inability to copy requests in Sinker splitting in version 1.12.0 (#66)

1.12.0 (2025/12/19)

New Features

  • Optimized Sinker cache mechanism (#34)

    • The new Sinker cache mechanism caches requests based on their hash signature (16 bytes) instead of the entire request signature. Two-way hashing is used to minimize hash collisions. The theoretical collision probability is n/2^128, where n is the number of cached keys.
    • Added TTL and capacity mechanisms to the Sinker cache to further limit memory usage: the TTL mechanism purges inactive cache entries, while the capacity mechanism ensures the number of cached keys does not exceed the specified limit. Both TTL and capacity further reduce the hash collision probability mentioned above.
  • Added configuration optimization for DataWay HTTP header responses to reduce DataWay public network traffic (#65)


1.11.2 (2025/11/25)

  • Optimized DataWay HTTP requests forwarded to Kodo (#64)

1.11.1 (2025/11/15)

  • Fixed __internal__ token invalidity issue (#63)

1.11.0 (2025/11/12)

New Features

  • Upgraded DataWay base image to Ubuntu 22.04 (#62)
  • DataWay supports blocking invalid traffic (#61)

Bug Fixes

  • Fixed session replay and profile splitting not copying data to different workspaces (#59)

1.10.0 (2025/09/03)

New Features

  • Added Langfuse data ingestion support (#57)

1.9.0 (2025/04/25)

New Features

  • DataWay adds X-Pkg-Id to data upload requests for data tracing (#53)
  • Improved program logs; more error codes returned by Kodo are now passed through to DataKit (#52)
  • Added API to pull environment variables autonomously (#55)
  • Updated disk cache code to locate the invalid argument error that occurs in some cases (#56)

1.8.0 (2025/02/19)

New Features

  • When DataWay Sinker mode is enabled, it now supports simultaneously processing data upload requests from clients such as DataKit/Function (#50)

1.7.0 (2024/12/18)

New Features

  • Added AWS Firehose ingestion endpoint (#47)
  • Supports passing token via X-Token (#43)

Optimizations

  • Adjusted default parameters for internal recycling to optimize memory usage (#49)
  • Optimized default YAML for Kubernetes deployment; adjusted disk cache mount configuration (#48)
  • Adjusted and added some internal metrics; updated DataWay default view

1.6.2 (2024/12/03)

Optimizations

  • Added HTTP-level connection configuration entry (#46)

1.6.1 (2024/11/19)

Optimizations

  • Added option to disable the 404 page (#44)

1.6.0 (2024/09/19)

Optimizations

  • Optimized environment variable configuration related to disk cache
  • Added more self-metrics exposure, and optimized memory usage at the HTTP forwarding layer (#39)
  • DataWay supports configuring its own SNI (#42)
  • Added a time synchronization endpoint for DataKit to obtain a relatively accurate Unix timestamp (#40)
  • Sinker:
    • Filter conditions support nil judgment, i.e., determining whether a specific field exists (#41)
    • Added default rule setting, where requests that do not match existing splitting rules are routed to the workspace of the default rule (#30)

1.5.0 (2024/07/05)

Optimizations

  • Optimized installation script (#33)

Breaking Changes

  • The new version removes the ability to directly configure Sinker in host installation mode. This feature will be supported in a new way in the future.

1.4.1 (2024/06/19)

  • Fixed missing DW_ENABLE_TLS in Kubernetes installation mode
  • Changed build image address

1.4.0 (2024/05/15)

  • Added DataKit metering endpoint (#29)
  • Fixed potential data loss in cache (#31)
  • Supports configuring HTTP TLS certificates directly on the DataWay side (#32)
  • Exposed more metrics

1.3.9 (2024/03/28)

  • When Sink discards a request, returns HTTP 406 Not Acceptable error for easier troubleshooting (#82)

1.3.8 (2024/01/24)

  • Exposed more metrics
  • Significantly improved Sinker rule matching performance (#26)

1.3.7 (2023/12/14)

  • Exposed more metrics
  • Optimized disk cache cleanup strategy to follow the principle of immediate consumption:
    • Avoid data being actively discarded due to storage limit
    • Send cached data as early as possible
  • Added observability related to oversized request discarding (metrics/logs)
  • Adjusted DataWay POD yaml to improve metric and log collection

1.3.6 (2023/10/24)


1.3.5 (2023/09/13)


1.3.4 (2023/09/01)

  • Upgraded Golang to 1.9
  • Fixed inner token having no data issue
  • Adjusted the following configurations in the default configuration:
    • Default API rate limit increased to 100K
    • Default max body size increased to 64MB
    • Added HTTP timeout setting (DataWay to center), default 30s
    • Added configuration to ignore TLS 509 errors

1.3.3 (2023/09/01)

  • Fixed curl issue in image packaging

1.3.2 (2023/08/30)

  • Added curl command in the image for easier self-metrics viewing

1.3.1 (2023/08/28)

  • Added URL-based Sinker functionality

1.3.0 (2023/08/24)

  • Refactored the entire DataWay implementation, adding Sinker functionality

1.2.12 (2023/08/28)

  • Refactored CI release process to implement dual release of install scripts

1.2.8 (2022/09/18)

  • /v1/write endpoint updates:

    • Removed redundant /v1/write/xxx APIs, added /v1/write/:category endpoint
    • Write data no longer undergoes line protocol decoding, but still reads the body for signature
  • Disk cache:

    • When sending to the center fails during cache cleanup, added a consumption pause strategy; the next cache entry is cleaned only after the current cached request is successfully sent
    • Updated pbcache proto file

Feedback

Is this page helpful?