HikariCP-Datenbankverbindungspool, der in Play 2.5 verwendet wird supports Dropwizard Metrics. Der empfohlene Ansatz besteht darin, HikariConfig.setMetricRegistry(MetricRegistry)
zu verwenden, aber Play scheint Dependency Injection für HikariConfig nicht zu verwenden. Gibt es eine andere Möglichkeit, MetricRegistry auf Play HikariCP zu setzen?Wie kann man Dropwizard-Metriken in Play 2.5 HikariCP aktivieren?
3
A
Antwort
2
können Sie die HikaryDatasource zugreifen
@Singleton
class InitMetricRegistry @Inject() (@NamedDatabaseProvider("default") val defaultDB: Database){
val ds: HikariDataSource = defaultDB.dataSource.asInstanceOf[HikariDataSource]
ds.setMetricRegistry(???)
}
mit den Metriken beim Start eine eifrige Bindung https://www.playframework.com/documentation/2.5.x/ScalaDependencyInjection#Eager-bindings
2
verwenden Gelöst dies den von @JonasAnso erwähnte gleichen Ansatz zu initialisieren. Hier ist das Java-Snippet.
public class AppInitProcessor {
@Inject
public AppInitProcessor(Database db, MetricRegistry metricRegistry) {
if (db.getDataSource() instanceof HikariDataSource) {
HikariDataSource dataSource = ((HikariDataSource) db.getDataSource());
if (dataSource.getMetricRegistry() == null) {
dataSource.setMetricRegistry(metricRegistry);
}
}
}
}
AppInitProcessor wird dann als ein eifriger Singleton von benutzerdefinierten Guice-Modul gebunden.
MetricRegistry metrics = new MetricRegistry();
// configure MetricsRegistry ...
bind(MetricRegistry.class).toInstance(metrics);
// bind app startup
bind(AppInitProcessor.class).asEagerSingleton();
Verwandte Themen
- 1. Play Framework 2.5 Formularfeldüberprüfung
- 2. Java Play 2.5 fehlt Ebean
- 3. play framework 2.5 scala i18n
- 4. Wie werden zirkuläre Abhängigkeiten in Play 2.5 aktiviert?
- 5. Play 2.5 Anwendung Anforderungen hängen
- 6. Javascript-Routing in Play 2.5 für Java?
- 7. Verwendung von implicits in Play 2.5 ActionRefiner
- 8. Play.current ist in Play veraltet 2.5
- 9. Deadlocks mit Play 2.5 scala, deadbolt 2.5 und MongoDB/Morphia
- 10. Play framework 2.5 JPAApi: java.lang.NoSuchFieldError: KEINE
- 11. Session-Cookie nicht erstellt - Play 2.5
- 12. Play-Framework 2.5.x WebSocket Java
- 13. Wie schreibe ich asynchrone Aktionen in Play Framework 2.5?
- 14. Play Framework 2.5 mit Couchbase 4.5
- 15. Play-Framework-2.5-Port-Konfiguration Teilprojekt
- 16. Play Framework 2.5 dienen node_modules Dateien
- 17. Play WS Standalone für 2.5.x
- 18. ReactiveMongo Datenbank-Dump mit Play Framework 2.5
- 19. Play Framework 2.5 JavaAsync werfen CompletionException
- 20. Wie man Schauspieler mit von Guice in Play injizierten Komponenten testet! scala 2.5
- 21. Play 2.5 und Fluentlenium: Wie HtmlUnit Warnungen deaktivieren
- 22. HikariCP Verbindungsleck
- 23. Automatisch injizieren WebJarAssets in Play 2.5 HTML-Vorlage?
- 24. Programmatisch Routen in Play erhalten! Rahmen 2.5.x
- 25. Post Methode funktioniert nicht mit Class Object in Play 2.5
- 26. ToggleSwitch - wie kann man Text aktivieren?
- 27. injizierte Variablen null in UntypedActor Play 2.5 Java
- 28. ReactiveMongo ConnectionNotInitialized im Test nach der Migration auf Play 2.5
- 29. Wie man event.preventDefault wieder aktivieren kann?
- 30. Wie kann man jackson SerializationFeature.WRAP_ROOT_VALUE deaktivieren/aktivieren?
Danke. In der Tat, das ist, was ich gestern getan habe, werde ich meine Lösung (in Java) als eine separate Antwort veröffentlichen. – bravo2
Gern geschehen. Gute Arbeit mit der Java-Lösung. Viel Spaß beim Spielen. –