发布

  • [OPIK-1763]: Add workspace-level timeout configuration for trace threads (#2792)

    frostbyte_neo 发布于 2025-07-22 16:12:11 +00:00

    • feat: Add workspace-level timeout configuration for trace threads
    • Add new WorkspaceConfiguration API with ISO-8601 duration support
    • Create REST endpoints for workspace configuration CRUD operations (GET/PUT/DELETE)
    • Implement MySQL storage for workspace configurations with Liquibase migration
    • Configure Jackson to properly handle ISO-8601 duration format with custom deserializer
    • Update ClickHouse queries to use workspace-specific timeouts with MySQL integration
    • Add comprehensive validation for duration fields (min 1 second, max 7 days)

    Testing:

    • Valid ISO-8601 duration strings: PT1S, PT30M, PT1H, P1D, P7D
    • Invalid duration validation: sub-second precision (PT0.5S), exceeding max (P8D, P30D)
    • Malformed ISO-8601 strings: empty string rejection, missing PT prefix
    • Null timeout handling: accepts null values for default behavior
    • CRUD operations: GET returns 404 for missing configs, PUT upserts correctly
    • DELETE operations: removes existing configs, returns 404 for non-existent
    • Duration object validation: @DurationValidation annotation enforcement
    • Jackson serialization: proper ISO-8601 format in API responses
    • OPIK-1763: Migrate workspace configuration from MySQL to ClickHouse
    • Move workspace_configurations table from MySQL to ClickHouse for efficient joins with trace_threads
    • Update WorkspaceConfigurationDAO and Service to use ClickHouse R2DBC instead of JDBI3
    • Modify TraceThreadDAO to join with workspace_configurations for custom timeout queries
    • Update API behavior: upsert returns 204 No Content, delete returns 204 for both existing/non-existing
    • Update tests to expect 204 for upsert operations and verify with separate GET calls
    • Add test for workspace-level custom timeout configuration in TraceThreadsClosingJobTest
    • Remove MySQL migration and replace with ClickHouse migration script
    • OPIK-1763: Add empty lines at end of files and improve ClickHouse migration
    • Add empty lines at end of WorkspaceConfigurationDAO.java and WorkspaceConfigurationService.java per coding standards
    • Improve ClickHouse migration: use DateTime64(9, 'UTC') for created_at precision consistency
    • Clean up unnecessary index comments in migration file
    • OPIK-1763: Fix query

    • OPIK-1763: Address PR feedback

    • OPIK-1763: Fix code review comments

    下载附件