2016-03-31 8 views

cevap

2

bu kullanmak başlangıçta ölçümleri başlatmak için

@Singleton 
class InitMetricRegistry @Inject() (@NamedDatabaseProvider("default") val defaultDB: Database){ 
    val ds: HikariDataSource = defaultDB.dataSource.asInstanceOf[HikariDataSource] 
    ds.setMetricRegistry(???) 
} 

kullanarak HikaryDatasource erişebilirler. İşte Java pasajı.

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, özel Guice modülünden istekli bir singleton olarak bağlanır.

MetricRegistry metrics = new MetricRegistry(); 
// configure MetricsRegistry ... 
bind(MetricRegistry.class).toInstance(metrics); 
// bind app startup 
bind(AppInitProcessor.class).asEagerSingleton();