• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

nbari / dbpulse / 33536960217
74%
main: 74%

Build:
Build:
LAST BUILD BRANCH: sandbox
DEFAULT BRANCH: main
Ran 01 Sep 2026 05:22PM UTC
Jobs 1
Files 25
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

01 Sep 2026 05:12PM UTC coverage: 73.61% (+4.8%) from 68.77%
33536960217

push

github

nbari
0.10.0

Harden the monitoring loop against the failure modes dbpulse exists to
detect, update dependencies, and close the paths that silently disabled
TLS or reported false health.

A wedged database that accepts TCP and then goes silent used to stall the
loop indefinitely: no iteration, no error metric, no output. Checks are
now bounded by a client-side deadline. Compounding it, metrics are
LazyLock and so were absent from /metrics rather than 0 until a check
completed, meaning `dbpulse_pulse == 0` alerts never fired; every metric
and its label children are registered at startup. A check that overran
its interval also skipped its sleep entirely and hammered the database at
~25 iterations/second exactly when it was already struggling.

An unparseable, uppercase, or MySQL-spelled sslmode fell through to
TlsMode::Disable, so an operator asking for verified TLS silently got
plaintext. Parsing and parameter-key lookup now fail closed. The
certificate probe verifies under verify-ca and verify-full, matching what
the driver enforces rather than being stricter than it, and sizes its
budget against what is left of the check deadline.

A standby whose primary had died reported a replication lag of exactly 0
forever while serving stale data. Equal LSNs now count as caught up only
while a walreceiver row is present -- keyed off row existence, because
status is privilege-restricted and an unprivileged monitoring role would
otherwise see a growing lag on a healthy standby. Gauges that stop being
updated retire their series instead of freezing at their last value.

Concurrency on the shared table no longer looks like a fault: a drop
landing mid-check recreates and retries, and another instance overwriting
the read/write row is distinguished from a lost write.

sqlx 0.9 required auditing all 28 dynamic SQL call sites; dependency
count dropped from 303 to 258 and cargo-audit is clean. Adds a security
policy, a daily cargo-audit/cargo-deny workflow, and aarch64 RPM an... (continued)

1482 of 1882 new or added lines in 17 files covered. (78.75%)

11 existing lines in 4 files now uncovered.

4993 of 6783 relevant lines covered (73.61%)

108.94 hits per line

Uncovered Changes

Lines Coverage ∆ File
70
0.0
0.0% tests/mariadb_tls_test.rs
70
0.0
0.0% tests/postgres_tls_test.rs
66
77.03
0.3% src/queries/mysql.rs
58
81.77
-10.44% src/metrics.rs
56
68.43
0.36% src/queries/postgres.rs
22
85.2
16.46% src/pulse.rs
21
80.05
-0.63% src/tls/probe.rs
14
82.79
5.28% tests/postgres_test.rs
13
79.39
3.5% tests/mariadb_test.rs
3
99.01
-0.99% src/queries/mod.rs
3
85.51
47.69% src/tls/verifier.rs
3
97.17
tests/timeout_regression_test.rs
1
98.25
1.82% src/tls/config.rs

Coverage Regressions

Lines Coverage ∆ File
4
68.43
0.36% src/queries/postgres.rs
3
77.03
0.3% src/queries/mysql.rs
3
97.1
-0.36% tests/pulse_robustness_test.rs
1
85.2
16.46% src/pulse.rs
Jobs
ID Job ID Ran Files Coverage
1 33536960217.1 01 Sep 2026 05:22PM UTC 25
73.61
GitHub Action Run
Source Files on build 33536960217
  • Tree
  • List 25
  • Changed 18
  • Source Changed 17
  • Coverage Changed 17
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #33536960217
  • a49f7b31 on github
  • Prev Build on develop (#24604516590)
  • Next Build on develop (#33537155874)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc