Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
ce4a48e
Revert "Remove support for the reindexing timeline creation from app …
capistrant Feb 24, 2026
b1a5854
Revert "Remove web-console changes from this PR"
capistrant Feb 24, 2026
3144518
fixup tests
capistrant Feb 24, 2026
b610bd0
Improve web console code
capistrant Feb 24, 2026
d14ca99
refactor some reindexing timeline code and update supervisor api doc …
capistrant Feb 24, 2026
76d01bb
Refactor compaction supervisor embedded tests. create new tests for s…
capistrant Feb 25, 2026
dd615fc
refactorings
capistrant Feb 25, 2026
49dd1f6
Refactoring the web console a bit
capistrant Feb 25, 2026
984371a
Apply suggestions from code review
capistrant Feb 25, 2026
0b1ae3c
fixup formatting and some linter checks
capistrant Feb 25, 2026
e975bbd
Some refactoring of the timeline view around skip offsets
capistrant Feb 25, 2026
52e016b
fix some string formatting issues
capistrant Feb 25, 2026
9a6fe4a
fix UTs
capistrant Feb 25, 2026
b2daa0e
Add a serde test for the new timeline view and fix a jackson bug for …
capistrant Feb 26, 2026
e56bd9b
Refactor reindexing-timeline ui to improve UX
capistrant Feb 27, 2026
5ca0852
Merge branch 'master' into reindexing-timeline-ui
capistrant Mar 5, 2026
d11b89b
fixup after merging master
capistrant Mar 5, 2026
7e2f292
fixup tests
capistrant Mar 5, 2026
acdfdbc
Merge branch 'master' into reindexing-timeline-ui
capistrant Mar 27, 2026
477fe71
cleanup after merge with master got wonky
capistrant Mar 27, 2026
9205b6e
checkstyle fixup
capistrant Mar 27, 2026
2323b63
console fixups
capistrant Mar 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 132 additions & 0 deletions docs/api-reference/supervisor-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -1521,6 +1521,138 @@ In the example below, the outer key (`"0"`) is a **task group ID**; the inner ke

**For automation clients:** If you need to map task IDs to group IDs (for handoff, draining, or observability), use the `/stats` response keys directly instead of re-deriving group IDs from partition data. This avoids coupling to internal supervisor assignment logic.

### Get reindexing timeline for a supervisor

Returns the reindexing timeline for a compaction supervisor that uses a cascading reindexing template. The timeline shows how reindexing rules are applied across time intervals, including skip offset information and per-interval configuration.

:::info
This endpoint is only available for compaction supervisors that use a cascading reindexing template.
:::

#### URL

`GET` `/druid/indexer/v1/supervisor/{supervisorId}/reindexingTimeline`

#### Query parameters

* `referenceTime` (optional)
* Type: String (ISO-8601 datetime)
* The reference time to use for computing the timeline. Defaults to the current UTC time if not specified.

#### Responses

<Tabs>

<TabItem value="57" label="200 SUCCESS">


*Successfully retrieved reindexing timeline*

</TabItem>
<TabItem value="58" label="400 BAD REQUEST">


*Supervisor is not a compaction supervisor, does not use a cascading reindexing template, or the `referenceTime` parameter is not a valid ISO-8601 datetime*

</TabItem>
<TabItem value="59" label="404 NOT FOUND">


*Invalid supervisor ID*

</TabItem>
</Tabs>

---

#### Sample request

The following example shows how to retrieve the reindexing timeline for a compaction supervisor for the datasource `my_datasource`. Note that compaction supervisor IDs follow the pattern `autocompact__<datasource>`.

<Tabs>

<TabItem value="60" label="cURL">


```shell
curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/autocompact__my_datasource/reindexingTimeline?referenceTime=2024-01-15T00:00:00.000Z"
```

</TabItem>
<TabItem value="61" label="HTTP">


```HTTP
GET /druid/indexer/v1/supervisor/autocompact__my_datasource/reindexingTimeline?referenceTime=2024-01-15T00:00:00.000Z HTTP/1.1
Host: http://ROUTER_IP:ROUTER_PORT
```

</TabItem>
</Tabs>

#### Sample response

<details>
<summary>View the response</summary>

```json
{
"dataSource": "my_datasource",
"referenceTime": "2024-01-15T00:00:00.000Z",
"skipOffset": {
"type": "skipOffsetFromNow",
"period": "P1D",
"isApplied": true,
"effectiveEndTime": "2024-01-14T00:00:00.000Z"
},
"intervals": [
{
"interval": "2024-01-14T00:00:00.000Z/2024-01-15T00:00:00.000Z",
"ruleCount": 0,
"config": null,
"appliedRules": []
},
{
"interval": "2024-01-01T00:00:00.000Z/2024-01-14T00:00:00.000Z",
"ruleCount": 2,
"config": {
"dataSource": "my_datasource",
"taskPriority": 25,
"inputSegmentSizeBytes": 100000000000,
"maxRowsPerSegment": 5000000,
"skipOffsetFromLatest": "PT0S",
"tuningConfig": null,
"taskContext": null,
"granularitySpec": {
"segmentGranularity": "DAY",
"queryGranularity": "HOUR",
"rollup": true
},
"ioConfig": null
},
"appliedRules": [
{
"type": "segmentGranularity",
"id": "compact-to-daily",
"description": "Compact to daily segments for data older than 1 day",
"olderThan": "P1D",
"segmentGranularity": "DAY"
},
{
"type": "dataSchema",
"id": "rollup-hourly",
"description": "Roll up to hourly query granularity for data older than 1 day",
"olderThan": "P1D",
"queryGranularity": "HOUR",
"rollup": true
}
]
}
]
}
```
</details>

## Audit history

An audit history provides a comprehensive log of events, including supervisor configuration, creation, suspension, and modification history.
Expand Down
Loading
Loading