xiangfu0 opened a new issue, #19871:
URL: https://github.com/apache/pinot/issues/19871

   ## Proposal
   
   Deprecate the `pinot-yammer` module in favor of the existing 
`pinot-dropwizard` implementation, with a documented migration window before 
removal. The deprecation release, default-switch release, and removal release 
should be agreed on through the dev mailing list.
   
   ## Motivation and current state
   
   Maintaining both metrics backends adds adapter, dependency, packaging, and 
validation work. Consolidating on Dropwizard would simplify this without 
introducing another metrics backend.
   
   On current master (`f155d29de28c`):
   
   - Yammer is still the [default metrics 
factory](https://github.com/apache/pinot/blob/f155d29de28ce1b768d994d008b67edd149d275c/pinot-spi/src/main/java/org/apache/pinot/spi/utils/CommonConstants.java#L48-L54),
 including for deployments that do not explicitly configure a factory.
   - The build uses [Yammer metrics-core 2.2.0 and Dropwizard 
4.2.40](https://github.com/apache/pinot/blob/f155d29de28ce1b768d994d008b67edd149d275c/pom.xml#L212-L214),
 and the [binary distribution ships both 
modules](https://github.com/apache/pinot/blob/f155d29de28ce1b768d994d008b67edd149d275c/pinot-distribution/pinot-assembly.xml#L213-L224).
   - Dropwizard's role-specific Prometheus tests are currently disabled; for 
example, the [server 
suite](https://github.com/apache/pinot/blob/f155d29de28ce1b768d994d008b67edd149d275c/pinot-plugins/pinot-metrics/pinot-dropwizard/src/test/java/org/apache/pinot/plugin/metrics/dropwizard/prometheus/DropwizardServerPrometheusMetricsTest.java#L33-L65).
 Monitoring compatibility needs validation before changing the default.
   
   ## Proposed rollout
   
   1. Mark `pinot-yammer` deprecated in documentation and release notes in the 
next agreed release, while retaining it during the migration window.
   2. Validate Dropwizard for broker, server, controller, and minion, fixing 
and re-enabling the existing Prometheus tests as needed. Check JMX object names 
and attributes, exported metric names and labels, timer/histogram units and 
behavior, and existing dashboards and alerts. Document any differences.
   3. Publish migration instructions covering explicit Yammer configurations, 
deployments using the current default, custom reporters/listeners, and 
compound-metrics configurations that reference Yammer. Switch the default only 
after that validation, with an explicit upgrade notice.
   4. Remove the module in a later community-agreed release, after the 
deprecation notice has shipped in at least one stable release. Clean up 
current-module dependencies, reactor/BOM entries, distribution packaging, CI 
selectors, and Yammer-specific references. Historical plugin artifacts used as 
classloader test fixtures should be assessed separately.
   
   ## Migration configuration
   
   The existing Dropwizard factory can be selected with the following property 
in each applicable service configuration:
   
   ```properties
   
pinot.broker.metrics.factory.className=org.apache.pinot.plugin.metrics.dropwizard.DropwizardMetricsFactory
   
pinot.server.metrics.factory.className=org.apache.pinot.plugin.metrics.dropwizard.DropwizardMetricsFactory
   
pinot.controller.metrics.factory.className=org.apache.pinot.plugin.metrics.dropwizard.DropwizardMetricsFactory
   
pinot.minion.metrics.factory.className=org.apache.pinot.plugin.metrics.dropwizard.DropwizardMetricsFactory
   ```
   
   These settings select the backend; users should validate their monitoring 
and any Yammer-specific integrations before rolling them out.
   
   ## Community feedback
   
   Please share active Yammer dependencies, custom reporter requirements, 
monitoring incompatibilities, or constraints on the deprecation/removal 
timeline.
   
   Related discussions: #4224 (Dropwizard migration/support, closed) and #16708 
(confirmation that both backends were supported, closed). This proposal follows 
up on the remaining default and module lifecycle.
   
   


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to