Private
Public Access
1
0
Commit Graph

93 Commits

Author SHA1 Message Date
989b20fedd fix(ci): add vendor step for private Go module authentication
Add a vendor step that uses gitea_token to fetch private modules
from gitea.develooper.com, then subsequent steps use the vendored
dependencies without needing credentials.
2026-03-07 17:09:31 -08:00
0dfa41da8e build(ci): migrate from Drone to Woodpecker
Some checks failed
ci/woodpecker/tag/woodpecker Pipeline failed
Replace .drone.yml with .woodpecker.yaml and update
scripts/run-goreleaser to use CI_COMMIT_TAG instead
of DRONE_TAG.
v0.6.5
2026-03-07 16:18:53 -08:00
e4f6d8cafb fix(chdb): rename geodns references to dns
All checks were successful
continuous-integration/drone/push Build is passing
ClickHouse DNS tables moved from geodns/geodns3 to
a single dns database.
2026-03-07 16:07:20 -08:00
1b1413a632 build: Use go 1.26
All checks were successful
continuous-integration/drone/push Build is passing
2026-03-07 16:05:28 -08:00
85d86bc837 build: update go and dependencies
All checks were successful
continuous-integration/drone/push Build is passing
2025-09-27 08:17:04 -07:00
196f90a2b9 fix(db): use int for netspeed_active to prevent overflow
All checks were successful
continuous-integration/drone/push Build is passing
GetZoneStatsData and GetZoneStatsV2's netspeed_active values can
exceed 2 billion, causing 32-bit integer overflow. Changed from
int32/uint32 to int (64-bit on modern systems) to handle large
network speed totals.

- Update sqlc column overrides to use int type
- Fix type compatibility in dnsanswers.go zoneTotals map
- Regenerate database code with new types

Fixes https://community.ntppool.org/t/error-message-displayed-on-the-monitoring-score-page/4063
2025-09-21 00:08:21 -07:00
02a6f587bb Update schema 2025-09-20 10:29:53 -07:00
2dfc355f7c style: format Go code with gofumpt
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Apply consistent formatting to Go source files using gofumpt
as required by pre-commit guidelines.
v0.6.4
2025-08-03 16:06:59 -07:00
3e6a0f9e63 fix(api): include deleted monitors in name-based lookups
Remove status filter from GetMonitorByNameAndIPVersion query to allow
historical score data for deleted monitors to be accessible when
querying by monitor name/TLS name, making behavior consistent with
ID-based queries.
2025-08-03 14:53:21 -07:00
9c6b8d1867 fix(api): handle score monitors in name-based lookups
Score monitors have type='score' and ip_version=NULL, but the
GetMonitorByNameAndIPVersion query required ip_version to match.
This broke monitor lookups by name for score monitors.

Modified query to match either:
- Regular monitors with specified ip_version
- Score monitors with NULL ip_version

Fixes issue reported by Ben Harris at:
https://community.ntppool.org/t/monitor-recentmedian-no-longer-works/4002
2025-08-04 20:43:53 -07:00
393d532ce2 feat(api): add relative time support to v2 scores endpoint
- Add parseRelativeTime function supporting "-3d", "-2h", "-30m" format
- Update parseTimeRangeParams to handle Unix timestamps and relative times
- Add unit tests with comprehensive coverage for all time formats
- Document v2 API in API.md with examples and migration guide

Enables intuitive time queries like from=-3d&to=-1h instead of
Unix timestamps, improving developer experience for the enhanced
v2 endpoint that supports 50k records vs legacy 10k limit.
2025-08-03 12:12:22 -07:00
267c279f3d Update dependencies
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
v0.6.3
2025-08-02 19:48:42 -07:00
eb5459abf3 fix(api): protocol-aware monitor filtering for multi-protocol monitors
All checks were successful
continuous-integration/drone/push Build is passing
Servers with monitor filtering returned incorrect results when monitors
have same names but different protocols (v4/v6). Monitor lookup now
considers both name and IP version to match the correct protocol.

- Add GetMonitorByNameAndIPVersion SQL query with protocol matching
- Update history parameter parsing to use server IP version context
- Fix both /scores/{ip}/log and Grafana endpoints
- Remove unused GetMonitorByName query

Fixes abh/ntppool#264
Reported-by: Anssi Johansson <https://github.com/avijc>
2025-07-27 00:37:49 -07:00
8262b1442f feat(api): add Grafana time range endpoint for scores
- Add /api/v2/server/scores/{server}/{mode} endpoint
- Support time range queries with from/to parameters
- Return data in Grafana table format for visualization
- Fix routing pattern to handle IP addresses correctly
- Add comprehensive parameter validation and error handling
2025-07-27 02:18:32 -07:00
d4bf8d9e16 feat(api): add Grafana test endpoint for table format
Add `/api/v2/test/grafana-table` endpoint to validate Grafana
table format compatibility before implementing the full time
range API.

- Create server/grafana.go with table format structures
- Add structured logging and OpenTelemetry tracing
- Include realistic NTP Pool sample data with null handling
- Set proper CORS and cache headers for testing
- Update implementation plan with Phase 0 completion status

Ready for Grafana JSON API data source integration testing.
2025-07-26 09:03:46 -07:00
6c5b762a57 Update dependencies
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
v0.6.2
2025-07-05 12:29:51 -07:00
fd6e87cf2d fix(history): sanitize NULL bytes in CSV error output 2025-07-05 12:27:35 -07:00
a22d5ebc7e feat(api): add RTT data to history endpoints
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
- Add RTT column to CSV output (before leap column)
- Add RTT field to JSON ScoresEntry
- Add avg_rtt field to JSON MonitorEntry
- Convert RTT from microseconds to milliseconds
- Calculate average RTT per monitor from history data
v0.6.1
2025-07-04 09:41:17 -07:00
42ce22e83e adjust cache-control for history api
All checks were successful
continuous-integration/drone/push Build is passing
it seems like there's a bug in the data calculations so many
servers get the too long maximum cache time; make it shorter
while we debug
2025-06-27 17:48:40 +08:00
087d253d90 Update schema for monitors v4; use go tool
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
v0.6.0
2025-06-21 03:49:02 -07:00
ae7acb4111 Update schema dump from development
All checks were successful
continuous-integration/drone/push Build is passing
2025-04-08 00:30:52 -07:00
bd4e52a73b Update Go to 1.24 + dependencies
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-08 10:21:44 -08:00
118e596098 build: update goreleaser to 2.7.0
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
v0.5.0
2025-02-23 09:49:39 -08:00
e6f39f201c dns queries: set cache-control header 2025-02-23 09:48:56 -08:00
962839ed89 add dns query count endpoint 2025-02-23 09:28:30 -08:00
f8662fbda5 Support DSN config and auth for clickhouse connection
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
v0.4.9
2025-02-22 22:41:06 -08:00
a5b1f9ef08 Upgrade Go & dependencies
All checks were successful
continuous-integration/drone/push Build is passing
2025-01-17 21:03:31 -08:00
e316aeee99 db: less logging when opening a database connection
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
v0.4.8
2025-01-06 19:33:45 +01:00
3a9879b793 ch: add healtcheck for logs database
All checks were successful
continuous-integration/drone/push Build is passing
2025-01-06 19:21:17 +01:00
9fb3edacef data-api: fix health check shutdown; adjust db idle reset feature
All checks were successful
continuous-integration/drone/push Build is passing
2025-01-03 14:28:36 +01:00
d206f9d20e history: fix the more nuanced cache-control max-age logic
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
v0.4.7
2024-12-30 17:33:29 -08:00
dc8adc1aea health: fix noisy logs
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
v0.4.6
2024-12-28 00:52:11 -08:00
35ea262b99 go lint tweaks; update common
All checks were successful
continuous-integration/drone/push Build is passing
2024-12-27 18:45:28 -08:00
058531c362 Update Go and dependencies
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
v0.4.5
2024-12-27 17:38:58 -08:00
801d685940 health: ping databases for health checks 2024-12-27 17:37:16 -08:00
904f4b1df5 remove slightly less debugging 2024-11-03 07:15:25 +00:00
78432679ec Update Go & dependencies
All checks were successful
continuous-integration/drone/push Build is passing
2024-10-05 01:31:02 -07:00
397dd13c38 Fix 500 errors when requesting with an invalid or unknown monitor parameter
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
v0.4.4
2024-07-21 04:31:42 -07:00
79eea1d0f8 scores: improve error handling for invalid monitor parameters
All checks were successful
continuous-integration/drone/push Build is passing
2024-07-20 00:29:36 -07:00
8dfd7c8a4e Update Go and dependencies
All checks were successful
continuous-integration/drone/push Build is passing
2024-07-20 00:24:17 -07:00
574c7cfbf0 Fix lint warnings
All checks were successful
continuous-integration/drone/push Build is passing
v0.4.3
2024-03-09 09:03:41 -08:00
3cbef93607 Update schema, Go 1.22.1, and dependencies
All checks were successful
continuous-integration/drone/push Build is passing
2024-03-09 09:59:29 -08:00
675e993353 scorer: fix parsing leap column
All checks were successful
continuous-integration/drone/push Build is passing
v0.4.2
2024-01-20 23:43:22 -07:00
e1398e7472 scores: full_history option for internal clients
All checks were successful
continuous-integration/drone/push Build is passing
(somewhat inefficient, but for now rarely used ...)
2024-01-20 23:21:21 -07:00
b786ed6986 metrics: add echo metrics
All checks were successful
continuous-integration/drone/push Build is passing
v0.4.1
2024-01-20 21:35:49 -07:00
2f2a407409 scorer: configurable default source 2024-01-20 21:35:18 -07:00
6df51fc19f scores: clickhouse support
All checks were successful
continuous-integration/drone/push Build is passing
v0.4.0
2024-01-20 19:41:02 -07:00
5682c86837 Set environment in tracing, minor dependency updates 2024-01-13 21:49:10 -08:00
9428c1a227 Minor logging tweak 2024-01-12 22:39:19 -08:00
6b84bbe5e1 Update Go and dependencies
All checks were successful
continuous-integration/drone/push Build is passing
v0.3.3
2024-01-12 22:14:15 -08:00