Commit Graph
443 Commits
Author SHA1 Message Date
Marc Schäfer 166335b30d refactor(telemetry): reduce cognitive complexity by splitting registerInstruments and Init; add unregister stoppers; extract state_view helpers
Former-commit-id: ee2f8899ff545abba1f6e37fc9ed240f9311ff0a
2025-10-08 01:06:13 +02:00
Marc Schäfer 781ab23aef docs(README): add Observability Quickstart section and link to docs/observability.md
Former-commit-id: 744a74155610529e339b60d5d59a8217524bbd01
2025-10-08 01:01:33 +02:00
Marc Schäfer 38b52b0fbd docs: add Quickstart in observability; examples: add docker-compose.metrics.collector.yml and prometheus.with-collector.yml (collector-only scrape)
Former-commit-id: aea80200e002a31e60ba94da551411804b2d8db3
2025-10-08 00:58:30 +02:00
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: b20f7a02b2fe861d27111f8c7716a225866ee025
2025-10-08 00:53:40 +02:00
Marc Schäfer 9f682c3a5f fix(telemetry): adapt to RegisterCallback returning (Registration, error)
Former-commit-id: f28d90595ba47cbb54c3b8a1515da7cd0c47400f
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: 4a90e36a442afbb46fe3c027eae205d11bf02d62
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: 9ace45e71f388477d493eb87d9b9758d4a43290e
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: 75d5e695d623fe292acceb586d2ecd6fb0052308
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: d74065a71b0b9558caeab5ede4bc0c05a483692e
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: f86031f4583575fe885ddab8eeeff6477802b47c
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: 31f70e50320ada1b37044158d8cbfe48d9748391
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: 31514f26df6684b3b7359951754ef49e5f2e5994
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: 09fcb369633f3b3e69ba666514c8477aa7d8cd4d
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: 83c3ae5cf950416fe4d72ba8ead309c183487a21
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: 1e88fb86b40ec6c774a8f1a7e7f01ddad8787ffc
2025-10-08 00:09:17 +02:00
Marc Schäfer f6be21c816 remove: removed test results
Former-commit-id: 62407b0c740168623a8b27d4f71c357954d225e5
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: d91c6ef1689922799125d25db8ac841f41ff3fd6
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: 59e8d79404f57428ecf2f38111b685c3608238e5
2025-10-07 23:55:47 +02:00
Marc Schäfer 8e2f2b5acb fix: Remove unnecessary blank line in prometheus.yml
Former-commit-id: d907ae9e84637cd8976915983c5734f7d96acb7a
2025-10-07 23:55:23 +02:00
Marc Schäfer c03f64a524 feat: Add Grafana dashboard and Prometheus datasource configuration files
Former-commit-id: d745aa79d4c0873c709d31aade0fc510f8198b7b
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: 427ab67bb5391670092669f482a2859f9e493cc5
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: a86b14d97dbea5610705141fa8b8b6fea625b036
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: f8fd8e1bc50924a8dda0228624f616a599aaf00a
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: 0b5e662abc9b269e8e7e4c9a018ed1c020734288
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: bd55269b39131a111c5070c763bf9d1718b1f2f0
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: 3e9c74a65b1a9170cccab56b5d224ccd28e494ac
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: 922591b26928d3125977e13e5d9cdf5b87cff3a8
2025-10-07 11:36:23 +02:00
Marc Schäfer a3c20711a3 chore: No code changes made to the Dockerfile
Former-commit-id: cfe52caa4a89db9fb4e4ec2eaf8e473106d81cce
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: d31d08c1c8d08ac62d973e004ba63d71e1d1af97
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: 9ac4cee48d55b0636c0bcd6ba998828f49e89703
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: b53fb70778908560154c56323d7cc0e136186c88
2025-10-07 09:17:05 +02:00
Marc Schäfer e7ed6a4a03 Add OpenTelemetry configuration and observability documentation
Former-commit-id: 0f83489f11c74f04561ce996f43652d24dd59f9f
2025-10-07 09:16:44 +02:00
Marc Schäfer 984320dc27 Implement TelemetryView for thread-safe session management and observability
Former-commit-id: 09e9bd9493b9e52df854772992ee5c5390b49e22
2025-10-07 09:16:17 +02:00
Marc Schäfer 5fba5a110c Add telemetry metrics and constants for improved observability
Former-commit-id: 2d4f656852f69cc5466ba76363d8301f07aec354
2025-10-07 09:15:36 +02:00
Marc Schäfer 003b020037 Refactor WireGuard and netstack services for telemetry integration
Former-commit-id: 8f7f9c417ce3e68fa2a2cc08a364a5ab5aaab671
2025-10-07 09:13:05 +02:00
Marc Schäfer f35ec7e014 Instrument authentication and WebSocket connection logic for telemetry events
Former-commit-id: 660adcc72d12d7b3466d65750032c5c3c3a74a21
2025-10-07 09:13:04 +02:00
Marc Schäfer 1092c64e15 Add tunnel latency and reconnect telemetry to ping logic
Former-commit-id: 0d55e35784b850fd8847a46fe1653d69c1466e1e
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: ceef228665e88233b159b9273adf75d454ea4723
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: 496ff0734c9d476927fd4e51b641a0891ddb06bd
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: a89f13870ca11ab6813a668228123efee42da229
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: 85394d3255d1f7c22e21f2b87d4619da6fc6ae21
2025-10-07 09:13:02 +02:00
Marc Schäfer 26d78f749a Expose admin/metrics endpoint in Dockerfile
Former-commit-id: 0405aebb45490da598bd1bb70026893d39670a06
2025-10-07 09:13:02 +02:00
Marc Schäfer d96389a227 Update dependencies for telemetry and metrics support
Former-commit-id: 9c0f4599b8667d6955b0c32ae549d81f66a05598
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