add basic crash analytics and very light telemetry to dioxus-cli (#4224)

* wip

* wip: basic telemetry

* fix merge

* keep errors for telemetry

* fix upload when queued events are empty

* add per session id and keep track of build timing

* keep track of what commands are run

* capture panics

* keep track of panics

* better path stripping

* better tracing error telemetry

* only sync every week and check settings before sending any telemetry

* keep track of the args passed to commands

* anonymize commands

* more error tolerant

* wip

* wip

* wip

* merge cnflict

* other merg conflict

* migrate everything from telemetry to logging

* update docs

* wip... about to merge trace controller

* lil bit more refactor to clean up tracer

* more performant log writer

* cleanup ci detecting

* wire up to posthog

* re-uploads work

* yoink out the anon from each file

* cleanup sig

* lil bit cleaner

* dont write empty files

* wip log handler

* fmt

* cleanup logging of backtraces

* add proper backtrace support

* use stable reporter

* adhere to posthog format

* fix stacktraces

* use anyhow for capturing backtraces

* I think we're done?

* cleanup logging

* properly collect!

* move out keycode handling

* she works

* typo

* add extra fields

* fix cargo doc

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
This commit is contained in:
Jonathan KelleyandEvan Almloff authored and GitHub committed 2025-08-08 19:00:00 -07:00
1 parent a610aaefc3
commit e43bf05b69
30 files changed
+1748 -441

No files matched your search

Generated
+93
View File
@@ -5073,6 +5073,7 @@ dependencies = [
"dioxus-check",
"dioxus-cli-config",
"dioxus-cli-opt",
"dioxus-cli-telemetry",
"dioxus-core",
"dioxus-core-types",
"dioxus-devtools-types",
@@ -5088,6 +5089,7 @@ dependencies = [
"env_logger 0.11.8",
"escargot",
"flate2",
"fs2",
"futures-channel",
"futures-util",
"handlebars",
@@ -5112,6 +5114,7 @@ dependencies = [
"path-absolutize",
"pdb",
"plist",
"posthog-rs",
"prettyplease",
"proc-macro2",
"ratatui",
@@ -5121,8 +5124,10 @@ dependencies = [
"rustls 0.23.29",
"self-replace",
"self_update",
"sentry-backtrace",
"serde",
"serde_json",
"serde_json5",
"shell-words",
"strum 0.27.1",
"subsecond-types",
@@ -5221,6 +5226,18 @@ dependencies = [
"tar",
]
[[package]]
name = "dioxus-cli-telemetry"
version = "0.7.0-alpha.3"
dependencies = [
"chrono",
"dirs 6.0.0",
"rand 0.9.1",
"serde",
"serde_json",
"uuid",
]
[[package]]
name = "dioxus-config-macro"
version = "0.7.0-alpha.3"
@@ -6990,6 +7007,16 @@ dependencies = [
"tokio",
]
[[package]]
name = "fs2"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213"
dependencies = [
"libc",
"winapi",
]
[[package]]
name = "fs_at"
version = "0.2.1"
@@ -12477,6 +12504,21 @@ dependencies = [
"portable-atomic",
]
[[package]]
name = "posthog-rs"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ead24e7bd3ce35a88fffe1f9a4747b4844335fa837eddecf9e7ad9708f3e26b3"
dependencies = [
"chrono",
"derive_builder",
"reqwest 0.11.27",
"semver",
"serde",
"serde_json",
"uuid",
]
[[package]]
name = "potential_utf"
version = "0.1.2"
@@ -14178,6 +14220,46 @@ dependencies = [
"futures-core",
]
[[package]]
name = "sentry-backtrace"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68e299dd3f7bcf676875eee852c9941e1d08278a743c32ca528e2debf846a653"
dependencies = [
"backtrace",
"regex",
"sentry-core",
]
[[package]]
name = "sentry-core"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "deaa38b94e70820ff3f1f9db3c8b0aef053b667be130f618e615e0ff2492cbcc"
dependencies = [
"sentry-types",
"serde",
"serde_json",
"url",
]
[[package]]
name = "sentry-types"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e477f4d4db08ddb4ab553717a8d3a511bc9e81dde0c808c680feacbb8105c412"
dependencies = [
"debugid",
"hex",
"rand 0.9.1",
"serde",
"serde_json",
"thiserror 2.0.12",
"time",
"url",
"uuid",
]
[[package]]
name = "separator"
version = "0.4.1"
@@ -14278,6 +14360,17 @@ dependencies = [
"serde",
]
[[package]]
name = "serde_json5"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d34d03f54462862f2a42918391c9526337f53171eaa4d8894562be7f252edd3"
dependencies = [
"pest",
"pest_derive",
"serde",
]
[[package]]
name = "serde_path_to_error"
version = "0.1.17"