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

rm-hull / dot-block
47%

Build:
DEFAULT BRANCH: main
Repo Added 04 Nov 2025 11:40PM UTC
Token cvDVr9xcMoQ9KcOEGYMi4bscx67euTREm regen
Build 379 Last
Files 22
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

LAST BUILD ON BRANCH main
branch: main
CHANGE BRANCH
x
Reset
Sync Branches
  • main
  • chore/correct-package-name
  • chore/slog
  • chore/update-deps
  • chore/update-go-deps
  • dependabot/docker/golang-1.26-alpine
  • dependabot/github_actions/actions/cache-5
  • dependabot/github_actions/actions/checkout-6
  • dependabot/github_actions/actions/upload-artifact-6
  • dependabot/github_actions/docker/build-push-action-7
  • dependabot/github_actions/docker/login-action-4
  • dependabot/github_actions/docker/metadata-action-6
  • dependabot/github_actions/docker/setup-buildx-action-4
  • dependabot/github_actions/golangci/golangci-lint-action-9
  • dependabot/github_actions/mikepenz/action-junit-report-6
  • dependabot/go_modules/github.com/Depado/ginprom-1.8.3
  • dependabot/go_modules/github.com/axiomhq/hyperloglog-0.2.6
  • dependabot/go_modules/github.com/caddyserver/certmagic-0.25.2
  • dependabot/go_modules/github.com/caddyserver/certmagic-0.25.3
  • dependabot/go_modules/github.com/getsentry/sentry-go-0.37.0
  • dependabot/go_modules/github.com/getsentry/sentry-go-0.38.0
  • dependabot/go_modules/github.com/getsentry/sentry-go-0.39.0
  • dependabot/go_modules/github.com/getsentry/sentry-go-0.40.0
  • dependabot/go_modules/github.com/getsentry/sentry-go-0.41.0
  • dependabot/go_modules/github.com/getsentry/sentry-go-0.42.0
  • dependabot/go_modules/github.com/getsentry/sentry-go-0.44.1
  • dependabot/go_modules/github.com/getsentry/sentry-go-0.45.0
  • dependabot/go_modules/github.com/getsentry/sentry-go-0.45.1
  • dependabot/go_modules/github.com/getsentry/sentry-go-0.46.0
  • dependabot/go_modules/github.com/getsentry/sentry-go-0.46.1
  • dependabot/go_modules/github.com/getsentry/sentry-go-0.46.2
  • dependabot/go_modules/github.com/getsentry/sentry-go/gin-0.37.0
  • dependabot/go_modules/github.com/getsentry/sentry-go/gin-0.38.0
  • dependabot/go_modules/github.com/getsentry/sentry-go/gin-0.39.0
  • dependabot/go_modules/github.com/getsentry/sentry-go/gin-0.40.0
  • dependabot/go_modules/github.com/getsentry/sentry-go/gin-0.41.0
  • dependabot/go_modules/github.com/getsentry/sentry-go/gin-0.42.0
  • dependabot/go_modules/github.com/getsentry/sentry-go/gin-0.44.1
  • dependabot/go_modules/github.com/getsentry/sentry-go/gin-0.45.0
  • dependabot/go_modules/github.com/getsentry/sentry-go/gin-0.45.1
  • dependabot/go_modules/github.com/getsentry/sentry-go/gin-0.46.1
  • dependabot/go_modules/github.com/getsentry/sentry-go/gin-0.46.2
  • dependabot/go_modules/github.com/gin-contrib/pprof-1.5.4
  • dependabot/go_modules/github.com/gin-gonic/gin-1.12.0
  • dependabot/go_modules/github.com/miekg/dns-1.1.69
  • dependabot/go_modules/github.com/miekg/dns-1.1.72
  • dependabot/go_modules/github.com/rm-hull/godx-0.0.10
  • dependabot/go_modules/github.com/rm-hull/godx-0.0.7
  • dependabot/go_modules/github.com/rm-hull/godx-0.0.8
  • dependabot/go_modules/github.com/rm-hull/godx-0.2.1
  • dependabot/go_modules/github.com/rm-hull/godx-0.2.2
  • dependabot/go_modules/github.com/samber/slog-gin-1.19.1
  • dependabot/go_modules/github.com/samber/slog-gin-1.20.0
  • dependabot/go_modules/github.com/samber/slog-gin-1.20.1
  • dependabot/go_modules/github.com/samber/slog-gin-1.21.0
  • dependabot/go_modules/github.com/samber/slog-gin-1.21.1
  • dependabot/go_modules/github.com/spf13/cobra-1.10.2
  • dependabot/go_modules/github.com/tavsec/gin-healthcheck-1.7.12
  • dependabot/go_modules/github.com/tavsec/gin-healthcheck-1.7.13
  • dependabot/go_modules/github.com/tavsec/gin-healthcheck-1.7.14
  • dependabot/go_modules/github.com/tavsec/gin-healthcheck-1.7.15
  • dependabot/go_modules/go.uber.org/zap-1.28.0
  • dependabot/go_modules/golang.org/x/crypto-0.44.0
  • dependabot/go_modules/golang.org/x/crypto-0.45.0
  • dependabot/go_modules/golang.org/x/crypto-0.46.0
  • dependabot/go_modules/golang.org/x/net-0.47.0
  • dependabot/go_modules/golang.org/x/net-0.48.0
  • dependabot/go_modules/golang.org/x/net-0.49.0
  • dependabot/go_modules/golang.org/x/net-0.50.0
  • dependabot/go_modules/golang.org/x/net-0.52.0
  • dependabot/go_modules/golang.org/x/net-0.53.0
  • dependabot/go_modules/golang.org/x/net-0.55.0
  • dependabot/go_modules/golang.org/x/sync-0.20.0
  • feat/acme-DNS-01-challenge
  • feat/cache-reaper
  • feat/cache-ttl-floor
  • feat/connection-pool
  • feat/dispatcher-source
  • feat/dns-listener
  • feat/dns-metrics-skill
  • feat/geoblock
  • feat/ip2location-cronjob
  • feat/mobileconfig
  • feat/multiple-blocklists
  • feat/proxy-protocol
  • feat/reduce-info-level-logging
  • feat/reload
  • feat/reload-blocklist
  • feat/sentry-integration
  • feat/top-blocked-domains
  • feat/top-domains
  • feat/upstream-latency
  • feat/upstream-ttl-metrics
  • fix/blocklist-age-gauge
  • fix/data-races
  • fix/hot-paths
  • fix/improved-error-reporting
  • fix/no-NXDOMAIN-errors
  • fix/round-robin-error-observability
  • fix/round-robin-retry
  • fix/use-spacesaver-error
  • gemini/patch-issue-129-b1f017a
  • gemini/patch-issue-131-4aba170
  • refactor/error-wrap
  • refactor/handle-multiple-questions
  • refactor/log-adapters
  • refactor/p99-latency-spikes
  • refactor/telemetry-goroutine
  • test/pi-agent
  • testing/integration

02 Jun 2026 07:30PM UTC coverage: 47.324% (-0.06%) from 47.388%
26843098957

push

github

web-flow
refactor: relocate error metric increment (#137)

* feat: buffer metrics collection in RequestContext

Refactored telemetry recording to collect data within `RequestContext`
instead of immediate metric emission. This ensures consistency and
avoids partial updates during request processing.

* refactor: centralize telemetry recording in metrics package

Move the telemetry recording logic from `DNSDispatcher` to
`metrics.DnsMetrics` to encapsulate metric operations and reduce
dependency on the dispatcher.

- Introduced `TelemetryData` struct to hold request-scoped telemetry.
- Migrated all `prometheus` recording operations into
`DnsMetrics.RecordTelemetry`.
- Moved geolocation lookup to the background worker to ensure cleaner
data collection flow.

* refactor: move geo-ip lookup logic into metrics

Centralize geolocation logic within the `metrics` package by injecting
the `GeoIpLookup` interface directly into `DnsMetrics`. This removes the
 dependency from the `DNSDispatcher` and simplifies the telemetry
recording flow.

* refactor: encapsulate TelemetryData fields

- Encapsulated `TelemetryData` fields to private to ensure controlled
  access.
- Added setter and helper methods to manage state, improving
  encapsulation and preventing direct field mutation from external
  packages.

* refactor: remove unused metrics structs

Clean up `dispatcher.go` by removing `queryCountInfo` and
`upstreamTTLInfo` structs which are no longer utilized in the
forwarder logic.

* refactor: improve telemetry recording and structure

- Move telemetry state management into `metrics.TelemetryData`.
- Encapsulate metric recording within the `TelemetryData` struct.
- Simplify `GeoIpLookup` usage by removing the wrapper.
- Improve `RequestContext` by delegating telemetry life-cycle
management.

* refactor: optimize telemetry tracking for request types

- Change `requestTypes` slice to a boolean `forwarded` field.
- Encapsulate request type logic within `TelemetryData.Record`.
-... (continued)

1 of 1 new or added line in 1 file covered. (100.0%)

778 of 1644 relevant lines covered (47.32%)

1095.6 hits per line

Relevant lines Covered
Build:
Build:
1644 RELEVANT LINES 778 COVERED LINES
1095.6 HITS PER LINE
Source Files on main
  • Tree
  • List 22
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
26843098957 main refactor: relocate error metric increment (#137) * feat: buffer metrics collection in RequestContext Refactored telemetry recording to collect data within `RequestContext` instead of immediate metric emission. This ensures consistency and avoids... push 02 Jun 2026 07:30PM UTC web-flow github
47.32
26842860598 main fix: buffer metrics collection in RequestContext (#136) * feat: buffer metrics collection in RequestContext Refactored telemetry recording to collect data within `RequestContext` instead of immediate metric emission. This ensures consistency and... push 02 Jun 2026 07:26PM UTC web-flow github
47.39
26784595023 main feat: filter noise in DNS error logging (#134) * feat: filter noise in DNS error logging - Introduce `RcodeError` to categorize DNS errors. - Update `reportError` to check `ShouldLog` before logging and sending to Sentry. - Suppress logs and Sen... push 01 Jun 2026 09:59PM UTC web-flow github
45.39
26782665238 main feat: add upstream failure logging and metrics (#133) * feat: add upstream failure logging and metrics - Inject `*slog.Logger` into `RoundRobinClient` to enable failure logging. - Add `dns_upstream_failures_total` Prometheus metric to track upst... push 01 Jun 2026 09:18PM UTC web-flow github
45.07
26778567768 main fix: short circuit DNS-SD queries (#132) * feat: short circuit DNS-SD queries (RFC 6763) Prevent DNS-SD queries (matching *._dns-sd._udp.*, excluding _services.*) from being forwarded upstream by returning NXDOMAIN. * chore: iterative updates f... push 01 Jun 2026 07:59PM UTC web-flow github
45.03
26748997607 main fix: automated code generation from Gemini for #129 (#130) Co-authored-by: gemini-pr-agent[bot] <285455830+gemini-pr-agent[bot]@users.noreply.github.com> push 01 Jun 2026 10:20AM UTC web-flow github
43.28
26746646219 main chore: update Go dependencies (#128) * chore: go get -u && go mod tidy * chore: iterative updates from Gemini based on PR comment I have investigated the intermittent failure in `internal/forwarder/TestDNSDispatcher_HandleDNSRequest_CacheHit` a... push 01 Jun 2026 09:30AM UTC web-flow github
43.28
26727174512 main feat: implement upstream connection pooling (#127) * feat: implement upstream connection pooling - Introduce `ConnPool` to reuse DNS upstream connections. - Add `--connection-pool-size` flag (default 10) to configure the pool. - Add `dns_pool_ev... push 31 May 2026 11:10PM UTC web-flow github
43.48
26725516311 main feat: implement asynchronous telemetry workers (#126) * feat: implement asynchronous telemetry workers Introduced a worker pool pattern for telemetry recording to prevent blocking the main request path. - Added `telemetryCh` and `NUM_WORKERS` t... push 31 May 2026 09:53PM UTC web-flow github
42.94
26724406601 main feat: add configurable upstream connection timeout (#125) * feat: add configurable upstream connection timeout - Added `connection-timeout` flag to control upstream DNS query timeouts. - Implemented retry logic in `RoundRobinClient` to fall over... push 31 May 2026 09:04PM UTC web-flow github
41.94
See All Builds (379)

Badge your Repo: dot-block

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc