* draft of client data collection
* refactor gateway stats collection to fit client stats collection in same common crate
* moved client stats event and reporter to common crate
* basic os reporting
* add stats reporting address in sdk
* integrate stats scaffolding changes
* remove tokio spawn to potentially accomodate wasm32
* fmt
* fix typo
* add client_stats_id
* unify stats reporting
* avoid shutdown handle drop
* add client_type to stats reporting
* better way to build statsReportingconfig
* disarm shutdown on sink
* remove sink reporter and env dev-dependency
* cherrypick from jon/send-packet-stats
* uncoditionally start controller + licensing
* improve ClientStatsReport serialization
* better time handling
* reintroduce proper local reporting
* Let task wait for shutdown when exiting
* Log tweak
---------
Co-authored-by: jmwample <jmwample@users.noreply.github.com>
Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
* add stats storage to gateways
* config fix
* add stats storage model and logic
* adapt stats collection to new storage
* stats cleanup on start
* change to linux only code
* tweaks
* modified stats cleanup + change session started
* change wrong table name
* store crashed session as 0 duration
* adapt for sqlx 0.7
* remove unused dependencies
* revert changes from gateway config, as it is broken anyway
* copyright and misc stuff
---------
Co-authored-by: Simon Wicky <simon@linode2-2.net>
* added explicit SP suffix to started tasks
* added 'GatewayTopologyProvider' that always injects itself into the network
* use the new topology provider to bypass described bootstrapping problem
* add session type based on ecash ticket collection
* avoid setting session type if already set
* change duration type to duration
* add a cap for finished sessions
* add stats model
* add stats collection
* add stats route
* propagate stuff and run stuff
* cargo stuff
* sqlx unused what?
* add sessions started stat
* session durations in miliseconds
* apply Jon's comments
* [Product Data] Second step in gateway usage data collection (#4964)
* turn stats collection into event based
* move events into a common crate for future use elsewhere
* apply Jon's comments
* Create credential verifier in authenticator
* Add new version of peer storage with client id
* Fix v1 to what it was before
* Compact storage into ecash verifier
* Fix non-linux build
* Less overlapping conditions
* Remove moved code
* Use handler thread for each peer
* Re-spawn stored handles at startup
* Keep new function without async & Result
* Put query peer in function too
* Query bandwidth
* Fix clippy
* Replace tap with inspect_err
* Fix copyright year
* Handle version 2 on the reqeust deser
* Add protocol type in req/resp messages
* Use ecash credential type for bandwidth value
* Fill explicit default value for args
* Use up-to-date values for tickets
* Fix sdk example default value
* Another default
* Fix sdk test
* Fix TicketTypeRepr default
* Store wireguard peers in db
* Add update to nym-node
* Move gateway-requests and gateway-storage to common
* Carry storage to PeerController field
* Double kernel modifications with storage ones
* Take storage peers at boot
* Link storage query for registration flow
* Move authenticator peer comms in peer manager
* Modify template too
* Remove unused
* Fix clippy
* Fix clippy non-linux
* Keep storage data up-to-date on every check
* Check for staleness in storage timestamps
* Remove potential for panic in unwrap
* Fix clippy
* Fmt
* Clippy after rebase
* Remove in memory test structure