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

+14 -6
View File
@@ -6,6 +6,8 @@ members = [
"packages/core-types",
"packages/cli",
"packages/cli-opt",
"packages/cli-config",
"packages/cli-telemetry",
"packages/core-types",
"packages/core-macro",
"packages/config-macro",
@@ -22,8 +24,6 @@ members = [
"packages/liveview",
"packages/autofmt",
"packages/check",
"packages/cli-config",
"packages/cli",
"packages/config-macro",
"packages/core-macro",
"packages/core-types",
@@ -140,6 +140,7 @@ version = "0.7.0-alpha.3"
# dependencies that are shared across packages
[workspace.dependencies]
dioxus = { path = "packages/dioxus", version = "0.7.0-alpha.3" }
dioxus-lib = { path = "packages/dioxus-lib", version = "0.7.0-alpha.3" }
dioxus-core = { path = "packages/core", version = "0.7.0-alpha.3" }
dioxus-core-types = { path = "packages/core-types", version = "0.7.0-alpha.3" }
dioxus-core-macro = { path = "packages/core-macro", version = "0.7.0-alpha.3" }
@@ -155,6 +156,7 @@ dioxus-web = { path = "packages/web", version = "0.7.0-alpha.3", default-feature
dioxus-isrg = { path = "packages/isrg", version = "0.7.0-alpha.3" }
dioxus-ssr = { path = "packages/ssr", version = "0.7.0-alpha.3", default-features = false }
dioxus-desktop = { path = "packages/desktop", version = "0.7.0-alpha.3", default-features = false }
dioxus-mobile = { path = "packages/mobile", version = "0.7.0-alpha.3" }
dioxus-interpreter-js = { path = "packages/interpreter", version = "0.7.0-alpha.3" }
dioxus-liveview = { path = "packages/liveview", version = "0.7.0-alpha.3" }
dioxus-autofmt = { path = "packages/autofmt", version = "0.7.0-alpha.3" }
@@ -165,8 +167,6 @@ dioxus-rsx-rosetta = { path = "packages/rsx-rosetta", version = "0.7.0-alpha.3"
dioxus-signals = { path = "packages/signals", version = "0.7.0-alpha.3" }
dioxus-stores = { path = "packages/stores", version = "0.7.0-alpha.3" }
dioxus-stores-macro = { path = "packages/stores-macro", version = "0.7.0-alpha.3" }
dioxus-cli-config = { path = "packages/cli-config", version = "0.7.0-alpha.3" }
dioxus-cli-opt = { path = "packages/cli-opt", version = "0.7.0-alpha.3" }
dioxus-devtools = { path = "packages/devtools", version = "0.7.0-alpha.3" }
dioxus-devtools-types = { path = "packages/devtools-types", version = "0.7.0-alpha.3" }
dioxus-server = { path = "packages/server", version = "0.7.0-alpha.3" }
@@ -180,11 +180,19 @@ dioxus-native = { path = "packages/native", version = "0.7.0-alpha.3" }
dioxus-native-dom = { path = "packages/native-dom", version = "0.7.0-alpha.3" }
dioxus-asset-resolver = { path = "packages/asset-resolver", version = "0.7.0-alpha.3" }
dioxus-config-macros = { path = "packages/config-macros", version = "0.7.0-alpha.3" }
const-serialize = { path = "packages/const-serialize", version = "0.7.0-alpha.3" }
const-serialize-macro = { path = "packages/const-serialize-macro", version = "0.7.0-alpha.3" }
generational-box = { path = "packages/generational-box", version = "0.7.0-alpha.3" }
lazy-js-bundle = { path = "packages/lazy-js-bundle", version = "0.7.0-alpha.3" }
# cli
dioxus-cli-opt = { path = "packages/cli-opt", version = "0.7.0-alpha.0" }
dioxus-cli-telemetry = { path = "packages/cli-telemetry", version = "0.7.0-alpha.0" }
dioxus-cli-config = { path = "packages/cli-config", version = "0.7.0-alpha.0" }
# const-serializea
const-serialize = { path = "packages/const-serialize", version = "0.7.0-alpha.0" }
const-serialize-macro = { path = "packages/const-serialize-macro", version = "0.7.0-alpha.0" }
# subsecond
subsecond-types = { path = "packages/subsecond/subsecond-types", version = "0.7.0-alpha.3" }
subsecond = { path = "packages/subsecond/subsecond", version = "0.7.0-alpha.3" }