监控

Ebean 收集事务、查询和缓存命中的指标。然后可以收集和报告这些指标。

转储指标

查看收集了哪些指标的快速方法是在服务器通过 dumpMetricsOnShutdown 关闭时转储这些指标(通常在运行所有测试之后)。

示例 application-test.yaml

ebean:
  dumpMetricsOnShutdown: true
  dumpMetricsOptions: loc,sql,hash
  test:
    platform: h2 # h2, postgres, mysql, oracle, sqlserver, sqlite
    ddlMode: dropCreate # none | dropCreate | migrations | create
    dbName: my_app

示例输出

以下是带有 loc、sql、hash 选项的小示例输出。

  • loc - 包含配置文件位置
  • hash - 包含 SQL 查询的哈希
  • sql - 包含查询的 SQL
-- Dumping metrics for db --
txn.main                                        count:10       total:117459   mean:11745    max:32894

-- ORM queries --
query:CustomerFinder.findByName                 count:1        total:4089     mean:4089     max:4089
hash:8c314fa1f6dbecfcdd449ccd021c8980
loc:CustomerFinder.findByName(CustomerFinder.kt:17)

sql:select t0.id, t0.name from customer t0 where lower(t0.name) like ? escape'|'

query:ProductFinder.findMapBySku                count:1        total:2364     mean:2364     max:2364
hash:aeda919cc69bea1026543d5307276eeb
loc:ProductFinder.findMapBySku(ProductFinder.kt:12)

sql:select t0.id, t0.sku, t0.name, t0.version, t0.when_created, t0.when_modified from product t0

...

指标

我们可以通过 MetaInfoManager 获取指标。当我们调用 collectMetrics() 时,将返回非空指标,并且指标计数器将重置。

// Collect the metrics
ServerMetrics serverMetrics = database.getMetaInfoManager().collectMetrics();

// Transactions, L2 cache, SQL updates and queries
List<MetaTimedMetric> timedMetrics : serverMetrics.getTimedMetrics()

// ORM queries
List<MetaOrmQueryMetric> ormQueryMetrics = serverMetrics.getOrmQueryMetrics();

// DTO queries
List<MetaQueryMetric> dtoQueryMetrics = serverMetrics.getDtoQueryMetrics();

编辑页面