Marc Schäfer
5cbda35637
fix(docker-compose): update newt service configuration to use local build and environment file
2025-10-08 07:34:27 +02:00
Marc Schäfer
60196455d1
fix(telemetry): improve error handling and formatting in telemetry setup functions
2025-10-08 07:33:11 +02:00
Marc Schäfer
84e659acde
docs(observability): update code blocks to specify language for better syntax highlighting
2025-10-08 01:12:51 +02:00
Marc Schäfer
e16881b7c8
fix(sonar): SetObservableCallback uses unregister stopper instead of empty function to satisfy S1186
2025-10-08 01:09:18 +02:00
Marc Schäfer
587e829e42
fix(build): use Registration.Unregister() without context; return tracer shutdown func from setupTracing
2025-10-08 01:07:08 +02:00
Marc Schäfer
ee2f8899ff
refactor(telemetry): reduce cognitive complexity by splitting registerInstruments and Init; add unregister stoppers; extract state_view helpers
2025-10-08 01:06:13 +02:00
Marc Schäfer
744a741556
docs(README): add Observability Quickstart section and link to docs/observability.md
2025-10-08 01:01:33 +02:00
Marc Schäfer
aea80200e0
docs: add Quickstart in observability; examples: add docker-compose.metrics.collector.yml and prometheus.with-collector.yml (collector-only scrape)
2025-10-08 00:58:30 +02:00
Marc Schäfer
b20f7a02b2
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
2025-10-08 00:53:40 +02:00
Marc Schäfer
f28d90595b
fix(telemetry): adapt to RegisterCallback returning (Registration, error)
2025-10-08 00:46:41 +02:00
Marc Schäfer
4a90e36a44
docs+examples: document direction=ingress|egress, initiator and error_type enums; add cardinality relabel tips; provide Collector variants; add scripts/smoke-metrics.sh
2025-10-08 00:46:01 +02:00
Marc Schäfer
9ace45e71f
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
2025-10-08 00:43:53 +02:00
Marc Schäfer
75d5e695d6
fix: update IncReconnect for auth failures; import metric in proxy manager for observable callback
2025-10-08 00:32:39 +02:00
Marc Schäfer
d74065a71b
feat(phase2): websocket connect latency and message counters; proxy active/buffer/drops gauges and counters; config apply histogram; reconnect initiator label; update call-sites
2025-10-08 00:30:07 +02:00
Marc Schäfer
f86031f458
docs: update observability catalog to include site_id labels and clarify transport vs protocol; add METRICS_RECOMMENDATIONS.md with roadmap and ops guidance
2025-10-08 00:10:54 +02:00
Marc Schäfer
31f70e5032
test(telemetry): assert allowed attribute site_id appears in metrics exposition
2025-10-08 00:10:17 +02:00
Marc Schäfer
31514f26df
feat(proxy): add site_id (and optional region) to bytes attribute sets for tunnel metrics
2025-10-08 00:10:03 +02:00
Marc Schäfer
09fcb36963
fix(main): remove duplicate ClearTunnelID/State and call telemetry.UpdateSiteInfo after resolving client ID
2025-10-08 00:09:44 +02:00
Marc Schäfer
83c3ae5cf9
feat(telemetry/state_view): add site_id label to gauges and set tunnel_sessions transport=wireguard (no hardcoded tcp)
2025-10-08 00:09:30 +02:00
Marc Schäfer
1e88fb86b4
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
2025-10-08 00:09:17 +02:00
Marc Schäfer
62407b0c74
remove: removed test results
2025-10-08 00:02:44 +02:00
Marc Schäfer
d91c6ef168
fix: Update observability documentation to correct code block syntax and improve clarity
2025-10-08 00:00:56 +02:00
Marc Schäfer
59e8d79404
chore: Update docker-compose.metrics.yml for improved service configuration
2025-10-07 23:55:47 +02:00
Marc Schäfer
d907ae9e84
fix: Remove unnecessary blank line in prometheus.yml
2025-10-07 23:55:23 +02:00
Marc Schäfer
d745aa79d4
feat: Add Grafana dashboard and Prometheus datasource configuration files
2025-10-07 18:45:40 +02:00
Marc Schäfer
427ab67bb5
fix: Update observability documentation to clarify resource attributes and scraping strategy
2025-10-07 18:45:02 +02:00
Marc Schäfer
a86b14d97d
refactor: Simplify telemetry metrics by removing site_id and enhancing tunnel_id usage
2025-10-07 18:43:09 +02:00
Marc Schäfer
f8fd8e1bc5
fix: Update otel-collector.yaml and docker-compose to correct endpoint configurations and enhance resource detection
2025-10-07 17:53:55 +02:00
Marc Schäfer
0b5e662abc
fix: Update otel-collector.yaml to correct resource attribute checks and streamline processor/exporter configuration
2025-10-07 12:37:44 +02:00
Marc Schäfer
bd55269b39
feat: Add .env.example file and update docker-compose to use environment variables
2025-10-07 12:37:16 +02:00
Marc Schäfer
3e9c74a65b
chore: Update OpenTelemetry collector image to version 0.136.0
2025-10-07 11:51:13 +02:00
Marc Schäfer
922591b269
chore: Update Dockerfile to enhance Go proxy settings and optimize build process
2025-10-07 11:36:23 +02:00
Marc Schäfer
cfe52caa4a
chore: No code changes made to the Dockerfile
2025-10-07 11:30:53 +02:00
Marc Schäfer
d31d08c1c8
feat: Update Dockerfile to include installation of git and ca-certificates
2025-10-07 11:25:07 +02:00
Marc Schäfer
9ac4cee48d
feat: Add Docker Compose configuration for OpenTelemetry collector and Prometheus
2025-10-07 11:09:20 +02:00
Marc Schäfer
b53fb70778
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.
2025-10-07 09:17:05 +02:00
Marc Schäfer
0f83489f11
Add OpenTelemetry configuration and observability documentation
2025-10-07 09:16:44 +02:00
Marc Schäfer
09e9bd9493
Implement TelemetryView for thread-safe session management and observability
2025-10-07 09:16:17 +02:00
Marc Schäfer
2d4f656852
Add telemetry metrics and constants for improved observability
2025-10-07 09:15:36 +02:00
Marc Schäfer
8f7f9c417c
Refactor WireGuard and netstack services for telemetry integration
2025-10-07 09:13:05 +02:00
Marc Schäfer
660adcc72d
Instrument authentication and WebSocket connection logic for telemetry events
2025-10-07 09:13:04 +02:00
Marc Schäfer
0d55e35784
Add tunnel latency and reconnect telemetry to ping logic
2025-10-07 09:13:04 +02:00
Marc Schäfer
ceef228665
Refactor ProxyManager for per-tunnel metrics, async bytes collection, and session counting
2025-10-07 09:13:03 +02:00
Marc Schäfer
496ff0734c
Integrate tunnel metrics and telemetry reporting throughout main application logic
2025-10-07 09:13:03 +02:00
Marc Schäfer
a89f13870c
Initialize telemetry and start admin HTTP server for metrics export
2025-10-07 09:13:03 +02:00
Marc Schäfer
85394d3255
Add flags and environment variables for telemetry and metrics configuration
2025-10-07 09:13:02 +02:00
Marc Schäfer
0405aebb45
Expose admin/metrics endpoint in Dockerfile
2025-10-07 09:13:02 +02:00
Marc Schäfer
9c0f4599b8
Update dependencies for telemetry and metrics support
2025-10-07 09:13:01 +02:00
Marc Schäfer
fd6b1ae323
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
2025-09-21 21:47:59 +02:00
Marc Schäfer
831ae2d9c5
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
2025-09-21 21:47:45 +02:00