You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by GitBox <gi...@apache.org> on 2020/08/05 02:24:42 UTC

[GitHub] [incubator-pinot] suvodeep-pyne opened a new pull request #5808: [TE] Dashboard Resource Refactor

suvodeep-pyne opened a new pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808


   This change refactors the resource classes.
    - Created a RootResource to hold the "/" namespace
    - Most dependencies have been moved to this resource simplifying the DashboardServer
    - Most of the resource classes have been configured with relative paths hosted in there respective classes.
   
   There is no behavior change with this PR. All endpoints work as is


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] suvodeep-pyne edited a comment on pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
suvodeep-pyne edited a comment on pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808#issuecomment-670270234


   @jihaozh @akshayrai
   The way this was validated is by doing a diff between an existing set of APIs and the current set. This is logged by dropwizard during the server boot up.
   
   ```
       GET     /alerts (org.apache.pinot.thirdeye.dashboard.resources.v2.alerts.AlertResource)
       GET     /anomalies/search/anomalyIds/{startTime}/{endTime}/{pageNumber} (org.apache.pinot.thirdeye.dashboard.resources.v2.AnomaliesResource)
       GET     /anomalies/search/time/{startTime}/{endTime}/{pageNumber} (org.apache.pinot.thirdeye.dashboard.resources.v2.AnomaliesResource)
       GET     /anomaly-search (org.apache.pinot.thirdeye.dashboard.resources.v2.anomalies.AnomalySearchResource)
       DELETE  /application/delete/{application} (org.apache.pinot.thirdeye.api.application.ApplicationResource)
       GET     /auth (org.apache.pinot.thirdeye.dashboard.resources.v2.AuthResource)
       POST    /auth/authenticate (org.apache.pinot.thirdeye.dashboard.resources.v2.AuthResource)
       POST    /auth/create-token (org.apache.pinot.thirdeye.dashboard.resources.v2.AuthResource)
       GET     /auth/logout (org.apache.pinot.thirdeye.dashboard.resources.v2.AuthResource)
       POST    /autoOnboard/runAdhoc/{datasource} (org.apache.pinot.thirdeye.dashboard.resources.AutoOnboardResource)
       GET     /cache/ (org.apache.pinot.thirdeye.dashboard.resources.CacheResource)
       POST    /cache/refresh (org.apache.pinot.thirdeye.dashboard.resources.CacheResource)
       POST    /cache/refresh/datasetConfig (org.apache.pinot.thirdeye.dashboard.resources.CacheResource)
       POST    /cache/refresh/metricConfig (org.apache.pinot.thirdeye.dashboard.resources.CacheResource)
       GET     /config/{namespace}/ (org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource)
       DELETE  /config/{namespace}/{name} (org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource)
       GET     /config/{namespace}/{name} (org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource)
       POST    /config/{namespace}/{name} (org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource)
       GET     /dashboard/ (org.apache.pinot.thirdeye.dashboard.resources.DashboardResource)
       GET     /dashboard/anomalies/view (org.apache.pinot.thirdeye.dashboard.resources.AnomalyResource)
       GET     /dashboard/anomalies/view/{anomaly_merged_result_id} (org.apache.pinot.thirdeye.dashboard.resources.AnomalyResource)
       POST    /dashboard/anomaly-merged-result/feedback/{anomaly_merged_result_id} (org.apache.pinot.thirdeye.dashboard.resources.AnomalyResource)
       GET     /dashboard/data (org.apache.pinot.thirdeye.dashboard.resources.DashboardResource)
       GET     /dashboard/data/timeseries (org.apache.pinot.thirdeye.dashboard.resources.DashboardResource)
       GET     /dashboard/summary/autoDimensionOrder (org.apache.pinot.thirdeye.dashboard.resources.SummaryResource)
       GET     /dashboard/summary/autoDimensionOrder/v2 (org.apache.pinot.thirdeye.dashboard.resources.SummaryResource)
       GET     /dashboard/summary/manualDimensionOrder (org.apache.pinot.thirdeye.dashboard.resources.SummaryResource)
       GET     /data/agg/granularity/metric/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/anomalies/ranges (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/alert (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/anomalies (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/application (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/dataset (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/detection (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/detection-createdby (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/dimensions/metric/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/filters/metric/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/functionByAlertName (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/functionByAppname (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/functionByName (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/metric (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/subscription (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/datasets (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/heatmap/{metricId}/{currentStart}/{currentEnd}/{baselineStart}/{baselineEnd} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/maxDataTime/metricId/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/metric/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /dataset-auto-onboard/metrics (org.apache.pinot.thirdeye.dataset.DatasetAutoOnboardResource)
       GET     /dataset-auto-onboard/{detectionId} (org.apache.pinot.thirdeye.dataset.DatasetAutoOnboardResource)
       GET     /detection/dataset (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /detection/gridsearch (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/health/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/notification/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/predicted-baseline/{anomalyId} (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /detection/preview (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/preview/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /detection/replay/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /detection/report-anomaly/{detectionConfigId} (org.apache.pinot.thirdeye.detection.DetectionResource)
       DELETE  /detection/report-anomaly/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/rule (org.apache.pinot.thirdeye.detection.DetectionConfigurationResource)
       GET     /detection/subscription-groups (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/subscription-groups/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/{id}/anomalies (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /entityMapping/create (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       DELETE  /entityMapping/delete/{id} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       POST    /entityMapping/update/{id} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/all (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/fromURN/{fromURN} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/fromURN/{fromURN}/mappingType/{mappingType} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/fromURN/{fromURN}/toURN/{toURN} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/mappingType/{mappingType} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/toURN/{toURN} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/toURN/{toURN}/mappingType/{mappingType} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       POST    /events/create (org.apache.pinot.thirdeye.dashboard.resources.CustomizedEventResource)
       GET     /groups/batch (org.apache.pinot.thirdeye.dashboard.resources.v2.DetectionAlertResource)
       GET     /groups/query (org.apache.pinot.thirdeye.dashboard.resources.v2.DetectionAlertResource)
       GET     /groups/{id} (org.apache.pinot.thirdeye.dashboard.resources.v2.DetectionAlertResource)
       POST    /onboard/create (org.apache.pinot.thirdeye.dashboard.resources.OnboardDatasetMetricResource)
       DELETE  /onboard/delete/{id} (org.apache.pinot.thirdeye.dashboard.resources.OnboardDatasetMetricResource)
       POST    /onboard/update/{id}/{onboarded} (org.apache.pinot.thirdeye.dashboard.resources.OnboardDatasetMetricResource)
       GET     /onboard/view/dataSource/{dataSource}/onboarded/{onboarded} (org.apache.pinot.thirdeye.dashboard.resources.OnboardDatasetMetricResource)
       GET     /rootcause/highlights (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseResource)
       GET     /rootcause/metric/aggregate (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/metric/aggregate/batch (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/metric/aggregate/chunk (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/metric/breakdown (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/metric/timeseries (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/query (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseResource)
       GET     /rootcause/raw (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseResource)
       POST    /rootcause/template/saveDimensionAnalysis (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseTemplateResource)
       GET     /rootcause/template/search (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseTemplateResource)
       POST    /session/ (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseSessionResource)
       GET     /session/query (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseSessionResource)
       GET     /session/{sessionId} (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseSessionResource)
       GET     /sql-data-source/databases (org.apache.pinot.thirdeye.datasource.sql.resources.SqlDataSourceResource)
       POST    /sql-data-source/onboard (org.apache.pinot.thirdeye.datasource.sql.resources.SqlDataSourceResource)
       GET     /swagger (io.federecio.dropwizard.swagger.SwaggerResource)
       GET     /swagger.{type:json|yaml} (io.swagger.jaxrs.listing.ApiListingResource)
       GET     /thirdeye-admin/ (org.apache.pinot.thirdeye.dashboard.resources.AdminResource)
       GET     /thirdeye-admin/dataset-config/list (org.apache.pinot.thirdeye.dashboard.resources.DatasetConfigResource)
       GET     /thirdeye-admin/dataset-config/view/{dataset} (org.apache.pinot.thirdeye.dashboard.resources.DatasetConfigResource)
       GET     /thirdeye-admin/metric-config/create (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       POST    /thirdeye-admin/metric-config/create/payload (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/delete (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/list (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/metrics (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/update (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/view (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/view/dataset/{dataset} (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       PUT     /thirdeye-admin/metric-config/{id}/create-tag (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       PUT     /thirdeye-admin/metric-config/{id}/remove-tag (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye/ (org.apache.pinot.thirdeye.dashboard.resources.ThirdEyeResource)
       GET     /thirdeye/entity (org.apache.pinot.thirdeye.dashboard.resources.EntityManagerResource)
       POST    /thirdeye/entity (org.apache.pinot.thirdeye.dashboard.resources.EntityManagerResource)
       GET     /thirdeye/entity/{entityType} (org.apache.pinot.thirdeye.dashboard.resources.EntityManagerResource)
       GET     /thirdeye/table (org.apache.pinot.thirdeye.dashboard.resources.AnomalyFlattenResource)
       GET     /userdashboard/anomalies (org.apache.pinot.thirdeye.api.user.dashboard.UserDashboardResource)
       POST    /yaml (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       PUT     /yaml/activation/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/create-alert (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/create-or-update (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       GET     /yaml/list (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       PUT     /yaml/notify/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/preview (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/preview/baseline (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/preview/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/subscription (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/subscription/create-or-update (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       PUT     /yaml/subscription/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       PUT     /yaml/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
   ```
   
   Out of which I think these 2 were added recently in the last 2 days.
   ```
       GET     /anomaly-search (org.apache.pinot.thirdeye.dashboard.resources.v2.anomalies.AnomalySearchResource)
       GET     /dashboard/summary/autoDimensionOrder/v2 (org.apache.pinot.thirdeye.dashboard.resources.SummaryResource)
   ```
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] suvodeep-pyne commented on a change in pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
suvodeep-pyne commented on a change in pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808#discussion_r466602375



##########
File path: thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/dashboard/ThirdEyeDashboardApplication.java
##########
@@ -139,36 +114,11 @@ public void run(ThirdEyeDashboardConfiguration config, Environment env)
     final JerseyEnvironment jersey = env.jersey();
     injector = Guice.createInjector(new ThirdEyeDashboardModule(config, env, DAO_REGISTRY));
     Stream.of(
-        DetectionConfigurationResource.class,
-        DatasetAutoOnboardResource.class,
-        DashboardResource.class,
-        CacheResource.class,
         AnomalyResource.class,
-        EntityManagerResource.class,
-        MetricConfigResource.class,
-        DatasetConfigResource.class,
-        AdminResource.class,
-        SummaryResource.class,
-        ThirdEyeResource.class,
-        DataResource.class,
-        AnomaliesResource.class,
-        EntityMappingResource.class,
-        OnboardDatasetMetricResource.class,
-        AutoOnboardResource.class,
-        ConfigResource.class,
-        CustomizedEventResource.class,
-        AnomalyFlattenResource.class,
-        UserDashboardResource.class,
-        ApplicationResource.class,
-        DetectionResource.class,
-        DetectionAlertResource.class,
-        YamlResource.class,
-        SqlDataSourceResource.class,
-        AlertResource.class,
-        RootCauseTemplateResource.class,
-        RootCauseSessionResource.class,
         RootCauseMetricResource.class,
-        AnomalySearchResource.class
+        RootCauseSessionResource.class,
+        RootCauseTemplateResource.class,

Review comment:
       There are RCA classes and they need further refactor themselves which seemed a bit out of scope.
   For example,
   `RootCauseResource` initialization is conditional on the config but `RootCauseSessionResource` and `RootCauseTemplateResource` are not! Also, all of them contribute to the "/rootcause" namespace. I think this needs to be investigated and solved separately.
   
   Another example is `AnomalyResource` which maps to "/dashboard". Generally by convention, path namespaces and class names are kept very similar so as to understand context. Here, there is a DashboardResource and AnomalyResource both pointing to "/dashboard" with a different set of methods. This again seems a separate PR to me.
   
   I want to fix them but not in this PR. Currently, the changes in this PR are mostly limited to moving "@Path" from class level to method level.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] suvodeep-pyne commented on pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
suvodeep-pyne commented on pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808#issuecomment-670270234


   @jihaozh @akshayrai
   The way this was validated is by doing a diff between an existing set of APIs and the current set.
   
   ```
       GET     /alerts (org.apache.pinot.thirdeye.dashboard.resources.v2.alerts.AlertResource)
       GET     /anomalies/search/anomalyIds/{startTime}/{endTime}/{pageNumber} (org.apache.pinot.thirdeye.dashboard.resources.v2.AnomaliesResource)
       GET     /anomalies/search/time/{startTime}/{endTime}/{pageNumber} (org.apache.pinot.thirdeye.dashboard.resources.v2.AnomaliesResource)
       DELETE  /application/delete/{application} (org.apache.pinot.thirdeye.api.application.ApplicationResource)
       GET     /auth (org.apache.pinot.thirdeye.dashboard.resources.v2.AuthResource)
       POST    /auth/authenticate (org.apache.pinot.thirdeye.dashboard.resources.v2.AuthResource)
       POST    /auth/create-token (org.apache.pinot.thirdeye.dashboard.resources.v2.AuthResource)
       GET     /auth/logout (org.apache.pinot.thirdeye.dashboard.resources.v2.AuthResource)
       POST    /autoOnboard/runAdhoc/{datasource} (org.apache.pinot.thirdeye.dashboard.resources.AutoOnboardResource)
       GET     /cache/ (org.apache.pinot.thirdeye.dashboard.resources.CacheResource)
       POST    /cache/refresh (org.apache.pinot.thirdeye.dashboard.resources.CacheResource)
       POST    /cache/refresh/datasetConfig (org.apache.pinot.thirdeye.dashboard.resources.CacheResource)
       POST    /cache/refresh/metricConfig (org.apache.pinot.thirdeye.dashboard.resources.CacheResource)
       GET     /config/{namespace}/ (org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource)
       DELETE  /config/{namespace}/{name} (org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource)
       GET     /config/{namespace}/{name} (org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource)
       POST    /config/{namespace}/{name} (org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource)
       GET     /dashboard/ (org.apache.pinot.thirdeye.dashboard.resources.DashboardResource)
       GET     /dashboard/anomalies/view (org.apache.pinot.thirdeye.dashboard.resources.AnomalyResource)
       GET     /dashboard/anomalies/view/{anomaly_merged_result_id} (org.apache.pinot.thirdeye.dashboard.resources.AnomalyResource)
       POST    /dashboard/anomaly-merged-result/feedback/{anomaly_merged_result_id} (org.apache.pinot.thirdeye.dashboard.resources.AnomalyResource)
       GET     /dashboard/data (org.apache.pinot.thirdeye.dashboard.resources.DashboardResource)
       GET     /dashboard/data/timeseries (org.apache.pinot.thirdeye.dashboard.resources.DashboardResource)
       GET     /dashboard/summary/autoDimensionOrder (org.apache.pinot.thirdeye.dashboard.resources.SummaryResource)
       GET     /dashboard/summary/autoDimensionOrder/v2 (org.apache.pinot.thirdeye.dashboard.resources.SummaryResource)
       GET     /dashboard/summary/manualDimensionOrder (org.apache.pinot.thirdeye.dashboard.resources.SummaryResource)
       GET     /data/agg/granularity/metric/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/anomalies/ranges (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/alert (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/anomalies (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/application (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/dataset (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/detection (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/detection-createdby (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/dimensions/metric/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/filters/metric/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/functionByAlertName (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/functionByAppname (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/functionByName (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/metric (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/subscription (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/datasets (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/heatmap/{metricId}/{currentStart}/{currentEnd}/{baselineStart}/{baselineEnd} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/maxDataTime/metricId/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/metric/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /dataset-auto-onboard/metrics (org.apache.pinot.thirdeye.dataset.DatasetAutoOnboardResource)
       GET     /dataset-auto-onboard/{detectionId} (org.apache.pinot.thirdeye.dataset.DatasetAutoOnboardResource)
       GET     /detection/dataset (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /detection/gridsearch (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/health/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/notification/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/predicted-baseline/{anomalyId} (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /detection/preview (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/preview/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /detection/replay/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /detection/report-anomaly/{detectionConfigId} (org.apache.pinot.thirdeye.detection.DetectionResource)
       DELETE  /detection/report-anomaly/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/rule (org.apache.pinot.thirdeye.detection.DetectionConfigurationResource)
       GET     /detection/subscription-groups (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/subscription-groups/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/{id}/anomalies (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /entityMapping/create (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       DELETE  /entityMapping/delete/{id} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       POST    /entityMapping/update/{id} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/all (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/fromURN/{fromURN} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/fromURN/{fromURN}/mappingType/{mappingType} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/fromURN/{fromURN}/toURN/{toURN} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/mappingType/{mappingType} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/toURN/{toURN} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/toURN/{toURN}/mappingType/{mappingType} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       POST    /events/create (org.apache.pinot.thirdeye.dashboard.resources.CustomizedEventResource)
       GET     /groups/batch (org.apache.pinot.thirdeye.dashboard.resources.v2.DetectionAlertResource)
       GET     /groups/query (org.apache.pinot.thirdeye.dashboard.resources.v2.DetectionAlertResource)
       GET     /groups/{id} (org.apache.pinot.thirdeye.dashboard.resources.v2.DetectionAlertResource)
       POST    /onboard/create (org.apache.pinot.thirdeye.dashboard.resources.OnboardDatasetMetricResource)
       DELETE  /onboard/delete/{id} (org.apache.pinot.thirdeye.dashboard.resources.OnboardDatasetMetricResource)
       POST    /onboard/update/{id}/{onboarded} (org.apache.pinot.thirdeye.dashboard.resources.OnboardDatasetMetricResource)
       GET     /onboard/view/dataSource/{dataSource}/onboarded/{onboarded} (org.apache.pinot.thirdeye.dashboard.resources.OnboardDatasetMetricResource)
       GET     /rootcause/highlights (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseResource)
       GET     /rootcause/metric/aggregate (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/metric/aggregate/batch (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/metric/aggregate/chunk (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/metric/breakdown (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/metric/timeseries (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/query (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseResource)
       GET     /rootcause/raw (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseResource)
       POST    /rootcause/template/saveDimensionAnalysis (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseTemplateResource)
       GET     /rootcause/template/search (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseTemplateResource)
       POST    /session/ (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseSessionResource)
       GET     /session/query (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseSessionResource)
       GET     /session/{sessionId} (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseSessionResource)
       GET     /sql-data-source/databases (org.apache.pinot.thirdeye.datasource.sql.resources.SqlDataSourceResource)
       POST    /sql-data-source/onboard (org.apache.pinot.thirdeye.datasource.sql.resources.SqlDataSourceResource)
       GET     /swagger (io.federecio.dropwizard.swagger.SwaggerResource)
       GET     /swagger.{type:json|yaml} (io.swagger.jaxrs.listing.ApiListingResource)
       GET     /thirdeye-admin/ (org.apache.pinot.thirdeye.dashboard.resources.AdminResource)
       GET     /thirdeye-admin/dataset-config/list (org.apache.pinot.thirdeye.dashboard.resources.DatasetConfigResource)
       GET     /thirdeye-admin/dataset-config/view/{dataset} (org.apache.pinot.thirdeye.dashboard.resources.DatasetConfigResource)
       GET     /thirdeye-admin/metric-config/create (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       POST    /thirdeye-admin/metric-config/create/payload (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/delete (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/list (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/metrics (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/update (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/view (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/view/dataset/{dataset} (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       PUT     /thirdeye-admin/metric-config/{id}/create-tag (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       PUT     /thirdeye-admin/metric-config/{id}/remove-tag (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye/ (org.apache.pinot.thirdeye.dashboard.resources.ThirdEyeResource)
       GET     /thirdeye/entity (org.apache.pinot.thirdeye.dashboard.resources.EntityManagerResource)
       POST    /thirdeye/entity (org.apache.pinot.thirdeye.dashboard.resources.EntityManagerResource)
       GET     /thirdeye/entity/{entityType} (org.apache.pinot.thirdeye.dashboard.resources.EntityManagerResource)
       GET     /thirdeye/table (org.apache.pinot.thirdeye.dashboard.resources.AnomalyFlattenResource)
       GET     /userdashboard/anomalies (org.apache.pinot.thirdeye.api.user.dashboard.UserDashboardResource)
       POST    /yaml (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       PUT     /yaml/activation/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/create-alert (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/create-or-update (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       GET     /yaml/list (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       PUT     /yaml/notify/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/preview (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/preview/baseline (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/preview/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/subscription (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/subscription/create-or-update (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       PUT     /yaml/subscription/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       PUT     /yaml/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
   ```
   
   Out of which I think the one below was added recently,
   ```
       GET     /dashboard/summary/autoDimensionOrder/v2 (org.apache.pinot.thirdeye.dashboard.resources.SummaryResource)
   ```
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] kishoreg merged pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
kishoreg merged pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] suvodeep-pyne commented on a change in pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
suvodeep-pyne commented on a change in pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808#discussion_r466773098



##########
File path: thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/dashboard/ThirdEyeDashboardApplication.java
##########
@@ -139,36 +114,11 @@ public void run(ThirdEyeDashboardConfiguration config, Environment env)
     final JerseyEnvironment jersey = env.jersey();
     injector = Guice.createInjector(new ThirdEyeDashboardModule(config, env, DAO_REGISTRY));
     Stream.of(
-        DetectionConfigurationResource.class,
-        DatasetAutoOnboardResource.class,
-        DashboardResource.class,
-        CacheResource.class,
         AnomalyResource.class,
-        EntityManagerResource.class,
-        MetricConfigResource.class,
-        DatasetConfigResource.class,
-        AdminResource.class,
-        SummaryResource.class,
-        ThirdEyeResource.class,
-        DataResource.class,
-        AnomaliesResource.class,
-        EntityMappingResource.class,
-        OnboardDatasetMetricResource.class,
-        AutoOnboardResource.class,
-        ConfigResource.class,
-        CustomizedEventResource.class,
-        AnomalyFlattenResource.class,
-        UserDashboardResource.class,
-        ApplicationResource.class,
-        DetectionResource.class,
-        DetectionAlertResource.class,
-        YamlResource.class,
-        SqlDataSourceResource.class,
-        AlertResource.class,
-        RootCauseTemplateResource.class,
-        RootCauseSessionResource.class,
         RootCauseMetricResource.class,
-        AnomalySearchResource.class

Review comment:
       Yes. Fixed it. I figured out that this one was added in the last couple of days. So the problem for this PR is that since it refactors Resource classes, it needs to be merged quickly else it has to be updated with every incoming resource PR.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] suvodeep-pyne commented on a change in pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
suvodeep-pyne commented on a change in pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808#discussion_r466770549



##########
File path: thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/dashboard/ThirdEyeDashboardApplication.java
##########
@@ -139,36 +114,11 @@ public void run(ThirdEyeDashboardConfiguration config, Environment env)
     final JerseyEnvironment jersey = env.jersey();
     injector = Guice.createInjector(new ThirdEyeDashboardModule(config, env, DAO_REGISTRY));
     Stream.of(
-        DetectionConfigurationResource.class,
-        DatasetAutoOnboardResource.class,
-        DashboardResource.class,
-        CacheResource.class,
         AnomalyResource.class,
-        EntityManagerResource.class,
-        MetricConfigResource.class,
-        DatasetConfigResource.class,
-        AdminResource.class,
-        SummaryResource.class,
-        ThirdEyeResource.class,
-        DataResource.class,
-        AnomaliesResource.class,
-        EntityMappingResource.class,
-        OnboardDatasetMetricResource.class,
-        AutoOnboardResource.class,
-        ConfigResource.class,
-        CustomizedEventResource.class,
-        AnomalyFlattenResource.class,
-        UserDashboardResource.class,
-        ApplicationResource.class,
-        DetectionResource.class,
-        DetectionAlertResource.class,
-        YamlResource.class,
-        SqlDataSourceResource.class,
-        AlertResource.class,
-        RootCauseTemplateResource.class,
-        RootCauseSessionResource.class,
         RootCauseMetricResource.class,
-        AnomalySearchResource.class

Review comment:
       @jihaozh 
   correct. That's because it didn't seem to exist prior to my changes (before #5792 ). There was no usage of the `AnomalySearch` class and it wasn't registered in jersey. Hence, I didn't add it. Let me know and I can add it back.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] jihaozh commented on a change in pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
jihaozh commented on a change in pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808#discussion_r466589749



##########
File path: thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/dashboard/resources/RootResource.java
##########
@@ -0,0 +1,201 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.pinot.thirdeye.dashboard.resources;
+
+import com.google.inject.Inject;
+import javax.ws.rs.Path;
+import org.apache.pinot.thirdeye.api.application.ApplicationResource;
+import org.apache.pinot.thirdeye.api.user.dashboard.UserDashboardResource;
+import org.apache.pinot.thirdeye.dashboard.resources.v2.AnomaliesResource;
+import org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource;
+import org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource;
+import org.apache.pinot.thirdeye.dashboard.resources.v2.DetectionAlertResource;
+import org.apache.pinot.thirdeye.dashboard.resources.v2.alerts.AlertResource;
+import org.apache.pinot.thirdeye.dataset.DatasetAutoOnboardResource;
+import org.apache.pinot.thirdeye.datasource.sql.resources.SqlDataSourceResource;
+import org.apache.pinot.thirdeye.detection.DetectionResource;
+import org.apache.pinot.thirdeye.detection.yaml.YamlResource;
+
+/**
+ * This is the Jersey root endpoint "/"
+ * All child endpoints should be registered here with method level @Path annotations.
+ *
+ */
+@Path("/")
+public class RootResource {
+
+  private final AlertResource alertResource;
+  private final AdminResource adminResource;
+  private final AnomaliesResource anomaliesResource;
+  private final ApplicationResource applicationResource;
+  private final AutoOnboardResource autoOnboardResource;
+  private final CacheResource cacheResource;
+  private final ConfigResource configResource;
+  private final CustomizedEventResource customizedEventResource;
+  private final DashboardResource dashboardResource;
+  private final DataResource dataResource;
+  private final DatasetAutoOnboardResource datasetAutoOnboardResource;
+  private final DetectionResource detectionResource;
+  private final DetectionAlertResource detectionAlertResource;
+  private final EntityMappingResource entityMappingResource;
+  private final OnboardDatasetMetricResource onboardDatasetMetricResource;
+  private final SqlDataSourceResource sqlDataSourceResource;
+  private final ThirdEyeResource thirdEyeResource;
+  private final UserDashboardResource userDashboardResource;
+  private final YamlResource yamlResource;
+
+  @Inject
+  public RootResource(

Review comment:
       Swagger isn't working if the resources are put under this class.

##########
File path: thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/dashboard/ThirdEyeDashboardApplication.java
##########
@@ -139,36 +114,11 @@ public void run(ThirdEyeDashboardConfiguration config, Environment env)
     final JerseyEnvironment jersey = env.jersey();
     injector = Guice.createInjector(new ThirdEyeDashboardModule(config, env, DAO_REGISTRY));
     Stream.of(
-        DetectionConfigurationResource.class,
-        DatasetAutoOnboardResource.class,
-        DashboardResource.class,
-        CacheResource.class,
         AnomalyResource.class,
-        EntityManagerResource.class,
-        MetricConfigResource.class,
-        DatasetConfigResource.class,
-        AdminResource.class,
-        SummaryResource.class,
-        ThirdEyeResource.class,
-        DataResource.class,
-        AnomaliesResource.class,
-        EntityMappingResource.class,
-        OnboardDatasetMetricResource.class,
-        AutoOnboardResource.class,
-        ConfigResource.class,
-        CustomizedEventResource.class,
-        AnomalyFlattenResource.class,
-        UserDashboardResource.class,
-        ApplicationResource.class,
-        DetectionResource.class,
-        DetectionAlertResource.class,
-        YamlResource.class,
-        SqlDataSourceResource.class,
-        AlertResource.class,
-        RootCauseTemplateResource.class,
-        RootCauseSessionResource.class,
         RootCauseMetricResource.class,
-        AnomalySearchResource.class
+        RootCauseSessionResource.class,
+        RootCauseTemplateResource.class,

Review comment:
       why these resources are not moved to `RootResource`?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] suvodeep-pyne commented on pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
suvodeep-pyne commented on pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808#issuecomment-672266277


   You are very welcome @akshayrai ! And thanks a lot for the approval.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] suvodeep-pyne commented on a change in pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
suvodeep-pyne commented on a change in pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808#discussion_r466610993



##########
File path: thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/dashboard/resources/RootResource.java
##########
@@ -0,0 +1,201 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.pinot.thirdeye.dashboard.resources;
+
+import com.google.inject.Inject;
+import javax.ws.rs.Path;
+import org.apache.pinot.thirdeye.api.application.ApplicationResource;
+import org.apache.pinot.thirdeye.api.user.dashboard.UserDashboardResource;
+import org.apache.pinot.thirdeye.dashboard.resources.v2.AnomaliesResource;
+import org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource;
+import org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource;
+import org.apache.pinot.thirdeye.dashboard.resources.v2.DetectionAlertResource;
+import org.apache.pinot.thirdeye.dashboard.resources.v2.alerts.AlertResource;
+import org.apache.pinot.thirdeye.dataset.DatasetAutoOnboardResource;
+import org.apache.pinot.thirdeye.datasource.sql.resources.SqlDataSourceResource;
+import org.apache.pinot.thirdeye.detection.DetectionResource;
+import org.apache.pinot.thirdeye.detection.yaml.YamlResource;
+
+/**
+ * This is the Jersey root endpoint "/"
+ * All child endpoints should be registered here with method level @Path annotations.
+ *
+ */
+@Path("/")
+public class RootResource {
+
+  private final AlertResource alertResource;
+  private final AdminResource adminResource;
+  private final AnomaliesResource anomaliesResource;
+  private final ApplicationResource applicationResource;
+  private final AutoOnboardResource autoOnboardResource;
+  private final CacheResource cacheResource;
+  private final ConfigResource configResource;
+  private final CustomizedEventResource customizedEventResource;
+  private final DashboardResource dashboardResource;
+  private final DataResource dataResource;
+  private final DatasetAutoOnboardResource datasetAutoOnboardResource;
+  private final DetectionResource detectionResource;
+  private final DetectionAlertResource detectionAlertResource;
+  private final EntityMappingResource entityMappingResource;
+  private final OnboardDatasetMetricResource onboardDatasetMetricResource;
+  private final SqlDataSourceResource sqlDataSourceResource;
+  private final ThirdEyeResource thirdEyeResource;
+  private final UserDashboardResource userDashboardResource;
+  private final YamlResource yamlResource;
+
+  @Inject
+  public RootResource(

Review comment:
       Thanks for trying this out. Really appreciate it. I missed adding the @Api Tag to the RootResource. Fixed it.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] suvodeep-pyne edited a comment on pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
suvodeep-pyne edited a comment on pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808#issuecomment-670270234


   @jihaozh @akshayrai
   The way this was validated is by doing a diff between an existing set of APIs and the current set.
   
   ```
       GET     /alerts (org.apache.pinot.thirdeye.dashboard.resources.v2.alerts.AlertResource)
       GET     /anomalies/search/anomalyIds/{startTime}/{endTime}/{pageNumber} (org.apache.pinot.thirdeye.dashboard.resources.v2.AnomaliesResource)
       GET     /anomalies/search/time/{startTime}/{endTime}/{pageNumber} (org.apache.pinot.thirdeye.dashboard.resources.v2.AnomaliesResource)
       GET     /anomaly-search (org.apache.pinot.thirdeye.dashboard.resources.v2.anomalies.AnomalySearchResource)
       DELETE  /application/delete/{application} (org.apache.pinot.thirdeye.api.application.ApplicationResource)
       GET     /auth (org.apache.pinot.thirdeye.dashboard.resources.v2.AuthResource)
       POST    /auth/authenticate (org.apache.pinot.thirdeye.dashboard.resources.v2.AuthResource)
       POST    /auth/create-token (org.apache.pinot.thirdeye.dashboard.resources.v2.AuthResource)
       GET     /auth/logout (org.apache.pinot.thirdeye.dashboard.resources.v2.AuthResource)
       POST    /autoOnboard/runAdhoc/{datasource} (org.apache.pinot.thirdeye.dashboard.resources.AutoOnboardResource)
       GET     /cache/ (org.apache.pinot.thirdeye.dashboard.resources.CacheResource)
       POST    /cache/refresh (org.apache.pinot.thirdeye.dashboard.resources.CacheResource)
       POST    /cache/refresh/datasetConfig (org.apache.pinot.thirdeye.dashboard.resources.CacheResource)
       POST    /cache/refresh/metricConfig (org.apache.pinot.thirdeye.dashboard.resources.CacheResource)
       GET     /config/{namespace}/ (org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource)
       DELETE  /config/{namespace}/{name} (org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource)
       GET     /config/{namespace}/{name} (org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource)
       POST    /config/{namespace}/{name} (org.apache.pinot.thirdeye.dashboard.resources.v2.ConfigResource)
       GET     /dashboard/ (org.apache.pinot.thirdeye.dashboard.resources.DashboardResource)
       GET     /dashboard/anomalies/view (org.apache.pinot.thirdeye.dashboard.resources.AnomalyResource)
       GET     /dashboard/anomalies/view/{anomaly_merged_result_id} (org.apache.pinot.thirdeye.dashboard.resources.AnomalyResource)
       POST    /dashboard/anomaly-merged-result/feedback/{anomaly_merged_result_id} (org.apache.pinot.thirdeye.dashboard.resources.AnomalyResource)
       GET     /dashboard/data (org.apache.pinot.thirdeye.dashboard.resources.DashboardResource)
       GET     /dashboard/data/timeseries (org.apache.pinot.thirdeye.dashboard.resources.DashboardResource)
       GET     /dashboard/summary/autoDimensionOrder (org.apache.pinot.thirdeye.dashboard.resources.SummaryResource)
       GET     /dashboard/summary/autoDimensionOrder/v2 (org.apache.pinot.thirdeye.dashboard.resources.SummaryResource)
       GET     /dashboard/summary/manualDimensionOrder (org.apache.pinot.thirdeye.dashboard.resources.SummaryResource)
       GET     /data/agg/granularity/metric/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/anomalies/ranges (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/alert (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/anomalies (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/application (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/dataset (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/detection (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/detection-createdby (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/dimensions/metric/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/filters/metric/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/functionByAlertName (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/functionByAppname (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/functionByName (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/metric (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/autocomplete/subscription (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/datasets (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/heatmap/{metricId}/{currentStart}/{currentEnd}/{baselineStart}/{baselineEnd} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/maxDataTime/metricId/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /data/metric/{metricId} (org.apache.pinot.thirdeye.dashboard.resources.v2.DataResource)
       GET     /dataset-auto-onboard/metrics (org.apache.pinot.thirdeye.dataset.DatasetAutoOnboardResource)
       GET     /dataset-auto-onboard/{detectionId} (org.apache.pinot.thirdeye.dataset.DatasetAutoOnboardResource)
       GET     /detection/dataset (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /detection/gridsearch (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/health/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/notification/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/predicted-baseline/{anomalyId} (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /detection/preview (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/preview/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /detection/replay/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /detection/report-anomaly/{detectionConfigId} (org.apache.pinot.thirdeye.detection.DetectionResource)
       DELETE  /detection/report-anomaly/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/rule (org.apache.pinot.thirdeye.detection.DetectionConfigurationResource)
       GET     /detection/subscription-groups (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/subscription-groups/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/{id} (org.apache.pinot.thirdeye.detection.DetectionResource)
       GET     /detection/{id}/anomalies (org.apache.pinot.thirdeye.detection.DetectionResource)
       POST    /entityMapping/create (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       DELETE  /entityMapping/delete/{id} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       POST    /entityMapping/update/{id} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/all (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/fromURN/{fromURN} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/fromURN/{fromURN}/mappingType/{mappingType} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/fromURN/{fromURN}/toURN/{toURN} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/mappingType/{mappingType} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/toURN/{toURN} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       GET     /entityMapping/view/toURN/{toURN}/mappingType/{mappingType} (org.apache.pinot.thirdeye.dashboard.resources.EntityMappingResource)
       POST    /events/create (org.apache.pinot.thirdeye.dashboard.resources.CustomizedEventResource)
       GET     /groups/batch (org.apache.pinot.thirdeye.dashboard.resources.v2.DetectionAlertResource)
       GET     /groups/query (org.apache.pinot.thirdeye.dashboard.resources.v2.DetectionAlertResource)
       GET     /groups/{id} (org.apache.pinot.thirdeye.dashboard.resources.v2.DetectionAlertResource)
       POST    /onboard/create (org.apache.pinot.thirdeye.dashboard.resources.OnboardDatasetMetricResource)
       DELETE  /onboard/delete/{id} (org.apache.pinot.thirdeye.dashboard.resources.OnboardDatasetMetricResource)
       POST    /onboard/update/{id}/{onboarded} (org.apache.pinot.thirdeye.dashboard.resources.OnboardDatasetMetricResource)
       GET     /onboard/view/dataSource/{dataSource}/onboarded/{onboarded} (org.apache.pinot.thirdeye.dashboard.resources.OnboardDatasetMetricResource)
       GET     /rootcause/highlights (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseResource)
       GET     /rootcause/metric/aggregate (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/metric/aggregate/batch (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/metric/aggregate/chunk (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/metric/breakdown (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/metric/timeseries (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseMetricResource)
       GET     /rootcause/query (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseResource)
       GET     /rootcause/raw (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseResource)
       POST    /rootcause/template/saveDimensionAnalysis (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseTemplateResource)
       GET     /rootcause/template/search (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseTemplateResource)
       POST    /session/ (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseSessionResource)
       GET     /session/query (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseSessionResource)
       GET     /session/{sessionId} (org.apache.pinot.thirdeye.dashboard.resources.v2.RootCauseSessionResource)
       GET     /sql-data-source/databases (org.apache.pinot.thirdeye.datasource.sql.resources.SqlDataSourceResource)
       POST    /sql-data-source/onboard (org.apache.pinot.thirdeye.datasource.sql.resources.SqlDataSourceResource)
       GET     /swagger (io.federecio.dropwizard.swagger.SwaggerResource)
       GET     /swagger.{type:json|yaml} (io.swagger.jaxrs.listing.ApiListingResource)
       GET     /thirdeye-admin/ (org.apache.pinot.thirdeye.dashboard.resources.AdminResource)
       GET     /thirdeye-admin/dataset-config/list (org.apache.pinot.thirdeye.dashboard.resources.DatasetConfigResource)
       GET     /thirdeye-admin/dataset-config/view/{dataset} (org.apache.pinot.thirdeye.dashboard.resources.DatasetConfigResource)
       GET     /thirdeye-admin/metric-config/create (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       POST    /thirdeye-admin/metric-config/create/payload (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/delete (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/list (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/metrics (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/update (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/view (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye-admin/metric-config/view/dataset/{dataset} (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       PUT     /thirdeye-admin/metric-config/{id}/create-tag (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       PUT     /thirdeye-admin/metric-config/{id}/remove-tag (org.apache.pinot.thirdeye.dashboard.resources.MetricConfigResource)
       GET     /thirdeye/ (org.apache.pinot.thirdeye.dashboard.resources.ThirdEyeResource)
       GET     /thirdeye/entity (org.apache.pinot.thirdeye.dashboard.resources.EntityManagerResource)
       POST    /thirdeye/entity (org.apache.pinot.thirdeye.dashboard.resources.EntityManagerResource)
       GET     /thirdeye/entity/{entityType} (org.apache.pinot.thirdeye.dashboard.resources.EntityManagerResource)
       GET     /thirdeye/table (org.apache.pinot.thirdeye.dashboard.resources.AnomalyFlattenResource)
       GET     /userdashboard/anomalies (org.apache.pinot.thirdeye.api.user.dashboard.UserDashboardResource)
       POST    /yaml (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       PUT     /yaml/activation/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/create-alert (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/create-or-update (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       GET     /yaml/list (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       PUT     /yaml/notify/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/preview (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/preview/baseline (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/preview/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/subscription (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       POST    /yaml/subscription/create-or-update (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       PUT     /yaml/subscription/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
       PUT     /yaml/{id} (org.apache.pinot.thirdeye.detection.yaml.YamlResource)
   ```
   
   Out of which I think these 2 were added recently in the last 2 days.
   ```
       GET     /anomaly-search (org.apache.pinot.thirdeye.dashboard.resources.v2.anomalies.AnomalySearchResource)
       GET     /dashboard/summary/autoDimensionOrder/v2 (org.apache.pinot.thirdeye.dashboard.resources.SummaryResource)
   ```
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] suvodeep-pyne commented on a change in pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
suvodeep-pyne commented on a change in pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808#discussion_r466770549



##########
File path: thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/dashboard/ThirdEyeDashboardApplication.java
##########
@@ -139,36 +114,11 @@ public void run(ThirdEyeDashboardConfiguration config, Environment env)
     final JerseyEnvironment jersey = env.jersey();
     injector = Guice.createInjector(new ThirdEyeDashboardModule(config, env, DAO_REGISTRY));
     Stream.of(
-        DetectionConfigurationResource.class,
-        DatasetAutoOnboardResource.class,
-        DashboardResource.class,
-        CacheResource.class,
         AnomalyResource.class,
-        EntityManagerResource.class,
-        MetricConfigResource.class,
-        DatasetConfigResource.class,
-        AdminResource.class,
-        SummaryResource.class,
-        ThirdEyeResource.class,
-        DataResource.class,
-        AnomaliesResource.class,
-        EntityMappingResource.class,
-        OnboardDatasetMetricResource.class,
-        AutoOnboardResource.class,
-        ConfigResource.class,
-        CustomizedEventResource.class,
-        AnomalyFlattenResource.class,
-        UserDashboardResource.class,
-        ApplicationResource.class,
-        DetectionResource.class,
-        DetectionAlertResource.class,
-        YamlResource.class,
-        SqlDataSourceResource.class,
-        AlertResource.class,
-        RootCauseTemplateResource.class,
-        RootCauseSessionResource.class,
         RootCauseMetricResource.class,
-        AnomalySearchResource.class

Review comment:
       @jihaozh 
   correct. That's because it didn't seem to exist prior to my changes (before #5792 ). There was no usage of the `AnomalySearch` class and it wasn't registered in jersey. Hence, I didn't add it. Let me know and I can add it back.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] suvodeep-pyne commented on a change in pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
suvodeep-pyne commented on a change in pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808#discussion_r466773098



##########
File path: thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/dashboard/ThirdEyeDashboardApplication.java
##########
@@ -139,36 +114,11 @@ public void run(ThirdEyeDashboardConfiguration config, Environment env)
     final JerseyEnvironment jersey = env.jersey();
     injector = Guice.createInjector(new ThirdEyeDashboardModule(config, env, DAO_REGISTRY));
     Stream.of(
-        DetectionConfigurationResource.class,
-        DatasetAutoOnboardResource.class,
-        DashboardResource.class,
-        CacheResource.class,
         AnomalyResource.class,
-        EntityManagerResource.class,
-        MetricConfigResource.class,
-        DatasetConfigResource.class,
-        AdminResource.class,
-        SummaryResource.class,
-        ThirdEyeResource.class,
-        DataResource.class,
-        AnomaliesResource.class,
-        EntityMappingResource.class,
-        OnboardDatasetMetricResource.class,
-        AutoOnboardResource.class,
-        ConfigResource.class,
-        CustomizedEventResource.class,
-        AnomalyFlattenResource.class,
-        UserDashboardResource.class,
-        ApplicationResource.class,
-        DetectionResource.class,
-        DetectionAlertResource.class,
-        YamlResource.class,
-        SqlDataSourceResource.class,
-        AlertResource.class,
-        RootCauseTemplateResource.class,
-        RootCauseSessionResource.class,
         RootCauseMetricResource.class,
-        AnomalySearchResource.class

Review comment:
       Yes. I figured out that this one was added in the last couple of days. So the problem for this PR is that since it refactors Resource classes, it needs to be merged quickly else it has to be updated with every incoming resource PR.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] suvodeep-pyne commented on pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
suvodeep-pyne commented on pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808#issuecomment-671486383


   Thanks @vincentchenjl 
   
   The core idea of this refactor is to have a coherence between the url path and the Resource class. Why? Because the goal of Jersey Resource class is provide a binding from a url to a java method. So for example, `RootResource` implies `/`, `ThirdEyeResource` inside `RootResource` implies the path `/thirdeye`, etc. That way you have a clear hierarchy in the code as to how the urls are set up. There are still anomalies in the code like `DetectionAlertResource` which is hosted at `/groups` which is really difficult to correlate.
   
   Grouping business logic can be done in 2 ways.
   - Documentation level: Use Swagger tags to group a set of APIs together. We already do this.
   - Code Level: Have core logic classes which hold the business logic instead of the Resource classes. This resources can delegate calls to these core logic classes.
   
   I agree with your idea to have a way of grouping things into bins like detection, RCA, etc. We should do this in our business logic. However, keeping all the business logic in Jersey Resource classes is not the best approach as the codebase grows. Also, it gets messy when you need to share logic in one Resource with another.
   
   Let me know what you think.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org


[GitHub] [incubator-pinot] jihaozh commented on a change in pull request #5808: [TE] Dashboard Resource Refactor

Posted by GitBox <gi...@apache.org>.
jihaozh commented on a change in pull request #5808:
URL: https://github.com/apache/incubator-pinot/pull/5808#discussion_r466707307



##########
File path: thirdeye/thirdeye-pinot/src/main/java/org/apache/pinot/thirdeye/dashboard/ThirdEyeDashboardApplication.java
##########
@@ -139,36 +114,11 @@ public void run(ThirdEyeDashboardConfiguration config, Environment env)
     final JerseyEnvironment jersey = env.jersey();
     injector = Guice.createInjector(new ThirdEyeDashboardModule(config, env, DAO_REGISTRY));
     Stream.of(
-        DetectionConfigurationResource.class,
-        DatasetAutoOnboardResource.class,
-        DashboardResource.class,
-        CacheResource.class,
         AnomalyResource.class,
-        EntityManagerResource.class,
-        MetricConfigResource.class,
-        DatasetConfigResource.class,
-        AdminResource.class,
-        SummaryResource.class,
-        ThirdEyeResource.class,
-        DataResource.class,
-        AnomaliesResource.class,
-        EntityMappingResource.class,
-        OnboardDatasetMetricResource.class,
-        AutoOnboardResource.class,
-        ConfigResource.class,
-        CustomizedEventResource.class,
-        AnomalyFlattenResource.class,
-        UserDashboardResource.class,
-        ApplicationResource.class,
-        DetectionResource.class,
-        DetectionAlertResource.class,
-        YamlResource.class,
-        SqlDataSourceResource.class,
-        AlertResource.class,
-        RootCauseTemplateResource.class,
-        RootCauseSessionResource.class,
         RootCauseMetricResource.class,
-        AnomalySearchResource.class

Review comment:
       it seems this one - `AnomalySearchResource`  is not added to the RootResource. 




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org