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]
