Commit Graph

440 Commits

Author SHA1 Message Date
Marc Schäfer
9db7da4426 feat(metrics): NEWT_METRICS_INCLUDE_TUNNEL_ID toggle; conditionally drop tunnel_id across bytes/sessions/proxy/reconnect; docs and smoke test updated; examples/prometheus.yml with relabels; docker-compose defaults avoid double-scrape
Former-commit-id: b20f7a02b2
2025-10-08 00:53:40 +02:00
Marc Schäfer
9f682c3a5f fix(telemetry): adapt to RegisterCallback returning (Registration, error)
Former-commit-id: f28d90595b
2025-10-08 00:46:41 +02:00
Marc Schäfer
7f6d518604 docs+examples: document direction=ingress|egress, initiator and error_type enums; add cardinality relabel tips; provide Collector variants; add scripts/smoke-metrics.sh
Former-commit-id: 4a90e36a44
2025-10-08 00:46:01 +02:00
Marc Schäfer
eb87b24d13 fix(metrics): direction=ingress|egress for bytes; remove transport on tunnel_sessions; extend allow-list (msg_type, phase); add units for histograms and bytes; handle callback errors; normalize error_type taxonomy; HTTP error mapping to enums
Former-commit-id: 9ace45e71f
2025-10-08 00:43:53 +02:00
Marc Schäfer
967e8e6e4b fix: update IncReconnect for auth failures; import metric in proxy manager for observable callback
Former-commit-id: 75d5e695d6
2025-10-08 00:32:39 +02:00
Marc Schäfer
61489d46cd feat(phase2): websocket connect latency and message counters; proxy active/buffer/drops gauges and counters; config apply histogram; reconnect initiator label; update call-sites
Former-commit-id: d74065a71b
2025-10-08 00:30:07 +02:00
Marc Schäfer
0e4e2a6ca2 docs: update observability catalog to include site_id labels and clarify transport vs protocol; add METRICS_RECOMMENDATIONS.md with roadmap and ops guidance
Former-commit-id: f86031f458
2025-10-08 00:10:54 +02:00
Marc Schäfer
0c51a6d498 test(telemetry): assert allowed attribute site_id appears in metrics exposition
Former-commit-id: 31f70e5032
2025-10-08 00:10:17 +02:00
Marc Schäfer
ab83c071f8 feat(proxy): add site_id (and optional region) to bytes attribute sets for tunnel metrics
Former-commit-id: 31514f26df
2025-10-08 00:10:03 +02:00
Marc Schäfer
f9b824d227 fix(main): remove duplicate ClearTunnelID/State and call telemetry.UpdateSiteInfo after resolving client ID
Former-commit-id: 09fcb36963
2025-10-08 00:09:44 +02:00
Marc Schäfer
cbc7931bc4 feat(telemetry/state_view): add site_id label to gauges and set tunnel_sessions transport=wireguard (no hardcoded tcp)
Former-commit-id: 83c3ae5cf9
2025-10-08 00:09:30 +02:00
Marc Schäfer
3461fe2e09 feat(telemetry,metrics): allow site_id/region in attribute filter; read site_id from NEWT_SITE_ID/NEWT_ID or OTEL_RESOURCE_ATTRIBUTES; propagate site_id/region labels across metrics; include site labels in build_info; seed global site info
Former-commit-id: 1e88fb86b4
2025-10-08 00:09:17 +02:00
Marc Schäfer
f6be21c816 remove: removed test results
Former-commit-id: 62407b0c74
2025-10-08 00:02:44 +02:00
Marc Schäfer
7d62b6ceb3 fix: Update observability documentation to correct code block syntax and improve clarity
Former-commit-id: d91c6ef168
2025-10-08 00:00:56 +02:00
Marc Schäfer
27342ddf18 chore: Update docker-compose.metrics.yml for improved service configuration
Former-commit-id: 59e8d79404
2025-10-07 23:55:47 +02:00
Marc Schäfer
8e2f2b5acb fix: Remove unnecessary blank line in prometheus.yml
Former-commit-id: d907ae9e84
2025-10-07 23:55:23 +02:00
Marc Schäfer
c03f64a524 feat: Add Grafana dashboard and Prometheus datasource configuration files
Former-commit-id: d745aa79d4
2025-10-07 18:45:40 +02:00
Marc Schäfer
20068aa974 fix: Update observability documentation to clarify resource attributes and scraping strategy
Former-commit-id: 427ab67bb5
2025-10-07 18:45:02 +02:00
Marc Schäfer
2a80d1fd45 refactor: Simplify telemetry metrics by removing site_id and enhancing tunnel_id usage
Former-commit-id: a86b14d97d
2025-10-07 18:43:09 +02:00
Marc Schäfer
1561554fec fix: Update otel-collector.yaml and docker-compose to correct endpoint configurations and enhance resource detection
Former-commit-id: f8fd8e1bc5
2025-10-07 17:53:55 +02:00
Marc Schäfer
2f3be0a543 fix: Update otel-collector.yaml to correct resource attribute checks and streamline processor/exporter configuration
Former-commit-id: 0b5e662abc
2025-10-07 12:37:44 +02:00
Marc Schäfer
06963e01fc feat: Add .env.example file and update docker-compose to use environment variables
Former-commit-id: bd55269b39
2025-10-07 12:37:16 +02:00
Marc Schäfer
f859430fcd chore: Update OpenTelemetry collector image to version 0.136.0
Former-commit-id: 3e9c74a65b
2025-10-07 11:51:13 +02:00
Marc Schäfer
cf7ae26a39 chore: Update Dockerfile to enhance Go proxy settings and optimize build process
Former-commit-id: 922591b269
2025-10-07 11:36:23 +02:00
Marc Schäfer
a3c20711a3 chore: No code changes made to the Dockerfile
Former-commit-id: cfe52caa4a
2025-10-07 11:30:53 +02:00
Marc Schäfer
8dc644ca48 feat: Update Dockerfile to include installation of git and ca-certificates
Former-commit-id: d31d08c1c8
2025-10-07 11:25:07 +02:00
Marc Schäfer
044fd996fb feat: Add Docker Compose configuration for OpenTelemetry collector and Prometheus
Former-commit-id: 9ac4cee48d
2025-10-07 11:09:20 +02:00
Marc Schäfer
172b2816db feat: Implement telemetry for reconnect reasons and RTT reporting
- Added telemetry hooks to track reconnect reasons for WireGuard connections, including server requests and authentication errors.
- Introduced RTT reporting to telemetry for better latency monitoring.
- Enhanced metrics configuration with flags for Prometheus and OTLP exporters.
- Implemented graceful shutdown and signal handling in the main application.
- Updated WebSocket client to classify connection errors and report them to telemetry.
- Added support for async byte counting in metrics.
- Improved handling of reconnect scenarios in the WireGuard service.
- Added documentation for applying patches and rollback procedures.


Former-commit-id: b53fb70778
2025-10-07 09:17:05 +02:00
Marc Schäfer
e7ed6a4a03 Add OpenTelemetry configuration and observability documentation
Former-commit-id: 0f83489f11
2025-10-07 09:16:44 +02:00
Marc Schäfer
984320dc27 Implement TelemetryView for thread-safe session management and observability
Former-commit-id: 09e9bd9493
2025-10-07 09:16:17 +02:00
Marc Schäfer
5fba5a110c Add telemetry metrics and constants for improved observability
Former-commit-id: 2d4f656852
2025-10-07 09:15:36 +02:00
Marc Schäfer
003b020037 Refactor WireGuard and netstack services for telemetry integration
Former-commit-id: 8f7f9c417c
2025-10-07 09:13:05 +02:00
Marc Schäfer
f35ec7e014 Instrument authentication and WebSocket connection logic for telemetry events
Former-commit-id: 660adcc72d
2025-10-07 09:13:04 +02:00
Marc Schäfer
1092c64e15 Add tunnel latency and reconnect telemetry to ping logic
Former-commit-id: 0d55e35784
2025-10-07 09:13:04 +02:00
Marc Schäfer
b0be472cc0 Refactor ProxyManager for per-tunnel metrics, async bytes collection, and session counting
Former-commit-id: ceef228665
2025-10-07 09:13:03 +02:00
Marc Schäfer
88c7fa097e Integrate tunnel metrics and telemetry reporting throughout main application logic
Former-commit-id: 496ff0734c
2025-10-07 09:13:03 +02:00
Marc Schäfer
845bb0a09f Initialize telemetry and start admin HTTP server for metrics export
Former-commit-id: a89f13870c
2025-10-07 09:13:03 +02:00
Marc Schäfer
5d175ea926 Add flags and environment variables for telemetry and metrics configuration
Former-commit-id: 85394d3255
2025-10-07 09:13:02 +02:00
Marc Schäfer
26d78f749a Expose admin/metrics endpoint in Dockerfile
Former-commit-id: 0405aebb45
2025-10-07 09:13:02 +02:00
Marc Schäfer
d96389a227 Update dependencies for telemetry and metrics support
Former-commit-id: 9c0f4599b8
2025-10-07 09:13:01 +02:00
Marc Schäfer
3c2a1b9235 Merge pull request #1 from marcschaeferger/dependabot/go_modules/golang.org/x/net-0.44.0
Bump golang.org/x/net from 0.43.0 to 0.44.0

Former-commit-id: fd6b1ae323
2025-09-21 21:47:59 +02:00
Marc Schäfer
e3eab6849d Merge pull request #2 from marcschaeferger/dependabot/go_modules/golang.org/x/crypto-0.42.0
Bump golang.org/x/crypto from 0.41.0 to 0.42.0

Former-commit-id: 831ae2d9c5
2025-09-21 21:47:45 +02:00
dependabot[bot]
b0de64cb67 Bump golang.org/x/crypto from 0.41.0 to 0.42.0
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.41.0 to 0.42.0.
- [Commits](https://github.com/golang/crypto/compare/v0.41.0...v0.42.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.42.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Former-commit-id: a63a27e3ab
2025-09-21 19:40:14 +00:00
dependabot[bot]
2a54a867a4 Bump golang.org/x/net from 0.43.0 to 0.44.0
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.43.0 to 0.44.0.
- [Commits](https://github.com/golang/net/compare/v0.43.0...v0.44.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-version: 0.44.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Former-commit-id: 34d558a5a2
2025-09-21 19:40:11 +00:00
Marc Schäfer
9a03dbbe12 feat(Docs): Add License Badge and PkgGo Badge
Former-commit-id: a08a3b9665
2025-09-19 16:34:44 +02:00
Marc Schäfer
3208e42c69 feat(Docs): Addding GoReport Badge
Former-commit-id: 0fc13be413
2025-09-19 16:25:04 +02:00
Owen Schwartz
594748cb74 Merge pull request #129 from l3pr-org/main
Implement more privacy-respecting DNS service

Former-commit-id: 58412a7a61
2025-09-04 10:39:33 -07:00
Stanley Wisnioski
6f71f0345b Update README.md
Updated README.md to reflect change of default DNS server from Google to Quad9.

Former-commit-id: 2675b812aa
2025-09-04 10:03:58 -04:00
Stanley Wisnioski
d97cf01ad4 Change DNS Server in clients.go
Changed DNS server from Google (8.8.8.8) to Quad9 (9.9.9.9)

Former-commit-id: 217a9346c6
2025-09-04 10:00:48 -04:00
Stanley Wisnioski
39ee3d05aa Change DNS Server
Changed DNS server from Google (8.8.8.8) to Quad9 (9.9.9.9)

Former-commit-id: eda8073bce
2025-09-04 09:58:43 -04:00