mirror of
https://github.com/zed-industries/zed.git
synced 2024-09-19 18:41:56 +03:00
Send installation id with crashes (#11032)
This will let us prioritize crashes that affect many users. Release Notes: - N/A
This commit is contained in:
parent
a4ad3bcc08
commit
d9d509a2bb
@ -136,6 +136,13 @@ pub async fn post_crash(
|
|||||||
.get("x-zed-panicked-on")
|
.get("x-zed-panicked-on")
|
||||||
.and_then(|h| h.to_str().ok())
|
.and_then(|h| h.to_str().ok())
|
||||||
.and_then(|s| s.parse().ok());
|
.and_then(|s| s.parse().ok());
|
||||||
|
|
||||||
|
let installation_id = headers
|
||||||
|
.get("x-zed-installation-id")
|
||||||
|
.and_then(|h| h.to_str().ok())
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.unwrap_or_default();
|
||||||
|
|
||||||
let mut recent_panic = None;
|
let mut recent_panic = None;
|
||||||
|
|
||||||
if let Some(recent_panic_on) = recent_panic_on {
|
if let Some(recent_panic_on) = recent_panic_on {
|
||||||
@ -160,6 +167,7 @@ pub async fn post_crash(
|
|||||||
os_version = %report.header.os_version,
|
os_version = %report.header.os_version,
|
||||||
bundle_id = %report.header.bundle_id,
|
bundle_id = %report.header.bundle_id,
|
||||||
incident_id = %report.header.incident_id,
|
incident_id = %report.header.incident_id,
|
||||||
|
installation_id = %installation_id,
|
||||||
description = %description,
|
description = %description,
|
||||||
backtrace = %summary,
|
backtrace = %summary,
|
||||||
"crash report");
|
"crash report");
|
||||||
|
@ -145,6 +145,13 @@ fn init_headless(dev_server_token: DevServerToken) {
|
|||||||
);
|
);
|
||||||
handle_settings_file_changes(user_settings_file_rx, cx);
|
handle_settings_file_changes(user_settings_file_rx, cx);
|
||||||
|
|
||||||
|
let (installation_id, _) = cx
|
||||||
|
.background_executor()
|
||||||
|
.block(installation_id())
|
||||||
|
.ok()
|
||||||
|
.unzip();
|
||||||
|
upload_panics_and_crashes(client.http_client(), installation_id, cx);
|
||||||
|
|
||||||
headless::init(
|
headless::init(
|
||||||
client.clone(),
|
client.clone(),
|
||||||
headless::AppState {
|
headless::AppState {
|
||||||
@ -323,7 +330,7 @@ fn init_ui(args: Args) {
|
|||||||
.detach();
|
.detach();
|
||||||
|
|
||||||
let telemetry = client.telemetry();
|
let telemetry = client.telemetry();
|
||||||
telemetry.start(installation_id, session_id, cx);
|
telemetry.start(installation_id.clone(), session_id, cx);
|
||||||
telemetry.report_setting_event("theme", cx.theme().name.to_string());
|
telemetry.report_setting_event("theme", cx.theme().name.to_string());
|
||||||
telemetry.report_setting_event("keymap", BaseKeymap::get_global(cx).to_string());
|
telemetry.report_setting_event("keymap", BaseKeymap::get_global(cx).to_string());
|
||||||
telemetry.report_app_event(
|
telemetry.report_app_event(
|
||||||
@ -378,8 +385,7 @@ fn init_ui(args: Args) {
|
|||||||
cx.set_menus(app_menus());
|
cx.set_menus(app_menus());
|
||||||
initialize_workspace(app_state.clone(), cx);
|
initialize_workspace(app_state.clone(), cx);
|
||||||
|
|
||||||
// todo(linux): unblock this
|
upload_panics_and_crashes(client.http_client(), installation_id, cx);
|
||||||
upload_panics_and_crashes(client.http_client(), cx);
|
|
||||||
|
|
||||||
cx.activate(true);
|
cx.activate(true);
|
||||||
|
|
||||||
@ -824,7 +830,11 @@ fn init_panic_hook(app: &App, installation_id: Option<String>, session_id: Strin
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
fn upload_panics_and_crashes(http: Arc<HttpClientWithUrl>, cx: &mut AppContext) {
|
fn upload_panics_and_crashes(
|
||||||
|
http: Arc<HttpClientWithUrl>,
|
||||||
|
installation_id: Option<String>,
|
||||||
|
cx: &mut AppContext,
|
||||||
|
) {
|
||||||
let telemetry_settings = *client::TelemetrySettings::get_global(cx);
|
let telemetry_settings = *client::TelemetrySettings::get_global(cx);
|
||||||
cx.background_executor()
|
cx.background_executor()
|
||||||
.spawn(async move {
|
.spawn(async move {
|
||||||
@ -832,7 +842,7 @@ fn upload_panics_and_crashes(http: Arc<HttpClientWithUrl>, cx: &mut AppContext)
|
|||||||
.await
|
.await
|
||||||
.log_err()
|
.log_err()
|
||||||
.flatten();
|
.flatten();
|
||||||
upload_previous_crashes(http, most_recent_panic, telemetry_settings)
|
upload_previous_crashes(http, most_recent_panic, installation_id, telemetry_settings)
|
||||||
.await
|
.await
|
||||||
.log_err()
|
.log_err()
|
||||||
})
|
})
|
||||||
@ -915,6 +925,7 @@ static LAST_CRASH_UPLOADED: &'static str = "LAST_CRASH_UPLOADED";
|
|||||||
async fn upload_previous_crashes(
|
async fn upload_previous_crashes(
|
||||||
http: Arc<HttpClientWithUrl>,
|
http: Arc<HttpClientWithUrl>,
|
||||||
most_recent_panic: Option<(i64, String)>,
|
most_recent_panic: Option<(i64, String)>,
|
||||||
|
installation_id: Option<String>,
|
||||||
telemetry_settings: client::TelemetrySettings,
|
telemetry_settings: client::TelemetrySettings,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
if !telemetry_settings.diagnostics {
|
if !telemetry_settings.diagnostics {
|
||||||
@ -964,6 +975,9 @@ async fn upload_previous_crashes(
|
|||||||
.header("x-zed-panicked-on", format!("{}", panicked_on))
|
.header("x-zed-panicked-on", format!("{}", panicked_on))
|
||||||
.header("x-zed-panic", payload)
|
.header("x-zed-panic", payload)
|
||||||
}
|
}
|
||||||
|
if let Some(installation_id) = installation_id.as_ref() {
|
||||||
|
request = request.header("x-zed-installation-id", installation_id);
|
||||||
|
}
|
||||||
|
|
||||||
let request = request.body(body.into())?;
|
let request = request.body(body.into())?;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user