Skip to content

[timeseries] Adding timeseries language endpoint and UI integration#16424

Merged
ankitsultana merged 3 commits intoapache:masterfrom
shauryachats:timeseries_language_pop
Jul 29, 2025
Merged

[timeseries] Adding timeseries language endpoint and UI integration#16424
ankitsultana merged 3 commits intoapache:masterfrom
shauryachats:timeseries_language_pop

Conversation

@shauryachats
Copy link
Collaborator

@shauryachats shauryachats commented Jul 24, 2025

Summary

This PR introduces support for retrieving and displaying enabled time series query languages configured at the broker level as a part of #16287.

  • Controller API: Created new /timeseries/languages API to fetch languages from controller config pinot.timeseries.languages. (the same timeseries configs as broker and server).
  • UI Enhancements: Updated the TimeseriesQueryPage React component to dynamically fetch and display supported timeseries query languages:
    • Query editor and form controls are disabled when no languages are enabled.
    • A warning banner is shown if no languages are configured.
    • Language selector dropdown is populated based on broker response.
  • Client API: Added getTimeSeriesLanguages() to requests/index.ts for UI to call the new controller endpoint.

Since the response from the broker can be variable, the UI components are not hidden but disabled for editing.

Testing

Verified for both cases where timeseries is enabled and not enabled.

Timeseries Enabled UI

Screenshot 2025-07-24 at 4 27 30 PM

Timeseries Disabled UI

Screenshot 2025-07-25 at 4 24 13 PM

@shauryachats shauryachats changed the title [timeseries] Adding timeseries language config endpoint and UI integration [timeseries] Adding timeseries language endpoint and UI integration Jul 24, 2025
@codecov-commenter
Copy link

codecov-commenter commented Jul 25, 2025

Codecov Report

❌ Patch coverage is 0% with 14 lines in your changes missing coverage. Please review.
✅ Project coverage is 63.18%. Comparing base (1a476de) to head (c0c16af).
⚠️ Report is 528 commits behind head on master.

Files with missing lines Patch % Lines
...va/org/apache/pinot/controller/ControllerConf.java 0.00% 7 Missing ⚠️
...i/resources/PinotControllerTimeseriesResource.java 0.00% 7 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master   #16424      +/-   ##
============================================
+ Coverage     62.90%   63.18%   +0.27%     
+ Complexity     1386     1363      -23     
============================================
  Files          2867     3004     +137     
  Lines        163354   174091   +10737     
  Branches      24952    26641    +1689     
============================================
+ Hits         102755   109993    +7238     
- Misses        52847    55709    +2862     
- Partials       7752     8389     +637     
Flag Coverage Δ
custom-integration1 100.00% <ø> (ø)
integration 100.00% <ø> (ø)
integration1 100.00% <ø> (ø)
integration2 0.00% <ø> (ø)
java-11 63.16% <0.00%> (+0.29%) ⬆️
java-21 63.15% <0.00%> (+0.33%) ⬆️
skip-bytebuffers-false ?
skip-bytebuffers-true ?
temurin 63.18% <0.00%> (+0.27%) ⬆️
unittests 63.17% <0.00%> (+0.27%) ⬆️
unittests1 56.31% <ø> (+0.49%) ⬆️
unittests2 33.18% <0.00%> (-0.39%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@shauryachats
Copy link
Collaborator Author

shauryachats commented Jul 27, 2025

The failing test org.apache.pinot.integration.tests.WindowResourceAccountingTest is failing on master branch as well.

Root caused it and looks like it happened due to #16360 after adding

Tracing.unregisterThreadAccountant();

in the aforementioned integration test. Removing this line fixes the test.
@vrajat could you please check?

@vrajat
Copy link
Contributor

vrajat commented Jul 28, 2025

I am checking the failure. I did repro on my laptop. Surprised - since all tests passed in my PR.

@vrajat
Copy link
Contributor

vrajat commented Jul 28, 2025

I know the root cause. I'll work on a fix and open a PR.
Also - this only affects tests since Tracing.unregisterThreadAccountant(); is only called in tests

@vrajat
Copy link
Contributor

vrajat commented Jul 28, 2025

Draft PR: #16439

@shauryachats shauryachats force-pushed the timeseries_language_pop branch from 41ae3ef to 1a2be4a Compare July 28, 2025 22:13
@shauryachats shauryachats force-pushed the timeseries_language_pop branch from 1a2be4a to c0c16af Compare July 29, 2025 04:23
@ankitsultana ankitsultana added timeseries-engine Tracking tag for generic time-series engine work timeseries-general-availability Work for making Timeseries Engine GA in Pinot (e.g. Controller UI support, debuggability, etc.) labels Jul 29, 2025
@ankitsultana ankitsultana merged commit 4538997 into apache:master Jul 29, 2025
35 of 36 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

timeseries-engine Tracking tag for generic time-series engine work timeseries-general-availability Work for making Timeseries Engine GA in Pinot (e.g. Controller UI support, debuggability, etc.)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants