• 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: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • 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
  • main
  • 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
26843017723 fix/hot-paths Merge branch 'main' of github.com:rm-hull/dot-block into fix/hot-paths * 'main' of github.com:rm-hull/dot-block: fix: buffer metrics collection in RequestContext (#136) Pull #137 02 Jun 2026 07:29PM UTC rm-hull 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
26842254699 fix/hot-paths refactor: optimize telemetry tracking for request types - Change `requestTypes` slice to a boolean `forwarded` field. - Encapsulate request type logic within `TelemetryData.Record`. - Unexport internal telemetry structs to improve encapsulation. ... Pull #136 02 Jun 2026 07:14PM UTC rm-hull github
47.39
26841673853 fix/hot-paths 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. - Improv... Pull #136 02 Jun 2026 07:03PM UTC rm-hull github
47.39
26836185932 fix/hot-paths refactor: remove unused metrics structs Clean up `dispatcher.go` by removing `queryCountInfo` and `upstreamTTLInfo` structs which are no longer utilized in the forwarder logic. Pull #136 02 Jun 2026 05:19PM UTC rm-hull github
46.71
26836002001 fix/hot-paths 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 exte... Pull #136 02 Jun 2026 05:16PM UTC rm-hull github
46.71
26834817848 fix/hot-paths 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 th... Pull #136 02 Jun 2026 04:53PM UTC rm-hull github
45.92
26831205721 fix/hot-paths 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` st... Pull #136 02 Jun 2026 03:48PM UTC rm-hull github
46.2
26825938798 fix/hot-paths 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. Pull #136 02 Jun 2026 02:20PM UTC rm-hull github
46.27
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