Copy as Markdown
Other Tools
// -*- mode: Rust -*-
// AUTOGENERATED BY glean_parser v18.1.0. DO NOT EDIT. DO NOT COMMIT.
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
#[allow(non_upper_case_globals, dead_code)]
/// A ping to report crash information. This information is sent as soon as
/// possible after a crash occurs (whether the crash is a background/content
/// process or the main process). It is expected to be used for crash report
/// analysis and to reduce blind spots in crash reporting.
#[rustfmt::skip]
pub static crash: ::glean::private::__export::Lazy<::glean::private::PingType> =
::glean::private::__export::Lazy::new(|| ::glean::private::PingType::new("crash", true, false, true, true, true, vec![], vec!["crash".into(), "event_found".into()], true, vec![]));
pub mod crash {
#[allow(unused_imports)] // HistogramType might be unusued, let's avoid warnings
use glean::{private::*, traits::ExtraKeys, traits::NoExtraKeys, CommonMetricData, HistogramType, LabeledMetricData, Lifetime, TimeUnit, MemoryUnit};
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.app_build
///
/// Product application's build ID.
pub static app_build: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "app_build".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.app_channel
///
/// Application release channel (e.g. default, beta, ...)
pub static app_channel: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "app_channel".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.app_display_version
///
/// Product version.
pub static app_display_version: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "app_display_version".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[derive(Debug, Hash, Eq, PartialEq, Clone, ::glean::traits::__serde::Serialize, ::glean::traits::__serde::Deserialize)]
#[serde(crate = "::glean::traits::__serde")]
#[serde(deny_unknown_fields)]
pub struct AsyncShutdownTimeoutObject {
#[serde(skip_serializing_if = "Vec::is_empty", default = "Vec::new", deserialize_with = "::glean::traits::__serde_helper::vec_null")]
pub broken_add_blockers: AsyncShutdownTimeoutObjectBrokenAddBlockers,
#[serde(skip_serializing_if = "Option::is_none")]
pub conditions: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub phase: Option<String>,
}
pub type AsyncShutdownTimeoutObjectBrokenAddBlockers = Vec<AsyncShutdownTimeoutObjectBrokenAddBlockersItem>;
pub type AsyncShutdownTimeoutObjectBrokenAddBlockersItem = String;
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.async_shutdown_timeout
///
/// This annotation is present if a shutdown blocker was not released in time and
/// the browser was crashed instead of waiting for shutdown to finish. The
/// condition that caused the hang is contained in the annotation.
pub static async_shutdown_timeout: ::glean::private::__export::Lazy<ObjectMetric<AsyncShutdownTimeoutObject>> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "async_shutdown_timeout".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
ObjectMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.background_task_name
///
/// If the app was invoked in background task mode via `--backgroundtask <task
/// name>`, the string "task name".
pub static background_task_name: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "background_task_name".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.build_id
///
/// Application build ID, the format is YYYYMMDDHHMMSS.
pub static build_id: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "build_id".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.crash_type
///
/// The type of crash that occurred (Android-only).
pub static crash_type: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "crash_type".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.dom_fission_enabled
///
/// Set to 1 when DOM fission is enabled, and subframes are potentially loaded in a
/// separate process.
pub static dom_fission_enabled: ::glean::private::__export::Lazy<BooleanMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "dom_fission_enabled".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
BooleanMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.event_loop_nesting_level
///
/// Present only if higher than 0, indicates that we're running in a nested event
/// loop and indicates the nesting level.
pub static event_loop_nesting_level: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "event_loop_nesting_level".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.font_name
///
/// Set before attempting to load a font to help diagnose crashes during loading.
pub static font_name: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "font_name".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.gpu_process_launch
///
/// Number of times the GPU process was launched.
pub static gpu_process_launch: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "gpu_process_launch".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.hang
///
/// Set if the crash was the result of a hang, with a value which describes the
/// type of hang (e.g. "ui" or "shutdown").
pub static hang: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "hang".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.ipc_channel_error
///
/// Set before a content process crashes because of an IPC channel error. Holds a
/// description of the error.
pub static ipc_channel_error: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "ipc_channel_error".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.is_garbage_collecting
///
/// If true then the JavaScript garbage collector was running when the crash
/// occurred.
pub static is_garbage_collecting: ::glean::private::__export::Lazy<BooleanMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "is_garbage_collecting".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
BooleanMetric::new(meta)
});
#[derive(Debug, Hash, Eq, PartialEq, Clone, ::glean::traits::__serde::Serialize, ::glean::traits::__serde::Deserialize)]
#[serde(crate = "::glean::traits::__serde")]
#[serde(deny_unknown_fields)]
pub struct JavaExceptionObject {
#[serde(skip_serializing_if = "Vec::is_empty", default = "Vec::new", deserialize_with = "::glean::traits::__serde_helper::vec_null")]
pub throwables: JavaExceptionObjectThrowables,
}
pub type JavaExceptionObjectThrowables = Vec<JavaExceptionObjectThrowablesItem>;
#[derive(Debug, Hash, Eq, PartialEq, Clone, ::glean::traits::__serde::Serialize, ::glean::traits::__serde::Deserialize)]
#[serde(crate = "::glean::traits::__serde")]
#[serde(deny_unknown_fields)]
pub struct JavaExceptionObjectThrowablesItem {
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Vec::is_empty", default = "Vec::new", deserialize_with = "::glean::traits::__serde_helper::vec_null")]
pub stack: JavaExceptionObjectThrowablesItemStack,
#[serde(skip_serializing_if = "Option::is_none")]
pub type_name: Option<String>,
}
pub type JavaExceptionObjectThrowablesItemStack = Vec<JavaExceptionObjectThrowablesItemStackItem>;
#[derive(Debug, Hash, Eq, PartialEq, Clone, ::glean::traits::__serde::Serialize, ::glean::traits::__serde::Deserialize)]
#[serde(crate = "::glean::traits::__serde")]
#[serde(deny_unknown_fields)]
pub struct JavaExceptionObjectThrowablesItemStackItem {
#[serde(skip_serializing_if = "Option::is_none")]
pub class_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_native: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub line: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub method_name: Option<String>,
}
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.java_exception
///
/// JSON structured Java stack trace, only present on Firefox for Android if we
/// encounter an uncaught Java exception.
pub static java_exception: ::glean::private::__export::Lazy<ObjectMetric<JavaExceptionObject>> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "java_exception".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
ObjectMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.last_interaction_duration
///
/// How long the user had been inactive in seconds if the user was inactive at
/// crash. The value is not set if the user state was active.
pub static last_interaction_duration: ::glean::private::__export::Lazy<TimespanMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "last_interaction_duration".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
TimespanMetric::new(meta, TimeUnit::Second)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.linux_memory_psi
///
/// Memory PSI (Pressure Stall Information) values from /proc/pressure/memory as
/// comma-separated list: some_avg10,some_avg60,some_avg300,some_total,full_avg10,f
/// ull_avg60,full_avg300,full_total
pub static linux_memory_psi: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "linux_memory_psi".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.main_thread_runnable_name
///
/// Name of the currently executing nsIRunnable on the main thread.
pub static main_thread_runnable_name: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "main_thread_runnable_name".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.minidump_sha_256_hash
///
/// The sha256 hash of the minidump file, if available.
pub static minidump_sha_256_hash: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "minidump_sha_256_hash".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.moz_crash_reason
///
/// Plaintext description of why Firefox crashed, this is usually set by assertions
/// and the like.
pub static moz_crash_reason: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "moz_crash_reason".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.process_type
///
/// Type of the process that crashed, the possible values are defined in
/// GeckoProcessTypes.h.
pub static process_type: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "process_type".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.product_id
///
/// Application UUID (e.g. ec8030f7-c20a-464f-9b0e-13a3a9e97384).
pub static product_id: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "product_id".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.product_name
///
/// Application name (e.g. Firefox).
pub static product_name: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "product_name".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.profiler_child_shutdown_phase
///
/// When a child process shuts down, this describes if the profiler is running, and
/// the point the profiler shutdown sequence has reached.
pub static profiler_child_shutdown_phase: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "profiler_child_shutdown_phase".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
pub type QuotaManagerShutdownTimeoutObject = Vec<QuotaManagerShutdownTimeoutObjectItem>;
pub type QuotaManagerShutdownTimeoutObjectItem = String;
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.quota_manager_shutdown_timeout
///
/// This annotation is present if the quota manager shutdown (resp. the shutdown of
/// the quota manager clients) was not finished in time and the browser was crashed
/// instead of waiting for the shutdown to finish. The status of objects which were
/// blocking completion of the shutdown when reaching the timeout is contained in
/// the annotation.
/// In the case of IndexedDB, objects are divided into three groups:
/// FactoryOperations, LiveDatabases and DatabaseMaintenances.
/// In the case of LocalStorage, objects are divided into three groups:
/// PrepareDatastoreOperations, Datastores and LiveDatabases.
/// In the case of Cache API, objects are in one group only: Managers.
/// Each group is reported separately and contains the number of objects in the
/// group and the status of individual objects in the group (duplicate entries are
/// removed): "GroupName: N (objectStatus1, objectStatus2, ...)" where N is the
/// number of objects in the group.
/// The status of individual objects is constructed by taking selected object
/// properties. Properties which contain origin strings are anonymized.
/// In addition, intermediate steps are recorded for change events after shutdown
/// started. These include the time difference and the type of object.
pub static quota_manager_shutdown_timeout: ::glean::private::__export::Lazy<ObjectMetric<QuotaManagerShutdownTimeoutObject>> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "quota_manager_shutdown_timeout".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
ObjectMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.remote_type
///
/// Type of the content process, can be set to "web", "file" or "extension".
pub static remote_type: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "remote_type".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.shutdown_progress
///
/// Shutdown step at which the browser crashed, can be set to "quit-application",
/// "profile-change-teardown", "profile-before-change", "xpcom-will-shutdown" or
/// "xpcom-shutdown".
pub static shutdown_progress: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "shutdown_progress".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.shutdown_reason
///
/// One out of "Unknown", "AppClose", "AppRestart", "OSForceClose", "OSSessionEnd"
/// or "OSShutdown".
pub static shutdown_reason: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "shutdown_reason".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[derive(Debug, Hash, Eq, PartialEq, Clone, ::glean::traits::__serde::Serialize, ::glean::traits::__serde::Deserialize)]
#[serde(crate = "::glean::traits::__serde")]
#[serde(deny_unknown_fields)]
pub struct StackTracesObject {
#[serde(skip_serializing_if = "Option::is_none")]
pub crash_address: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub crash_thread: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub crash_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub main_module: Option<i64>,
#[serde(skip_serializing_if = "Vec::is_empty", default = "Vec::new", deserialize_with = "::glean::traits::__serde_helper::vec_null")]
pub modules: StackTracesObjectModules,
#[serde(skip_serializing_if = "Vec::is_empty", default = "Vec::new", deserialize_with = "::glean::traits::__serde_helper::vec_null")]
pub threads: StackTracesObjectThreads,
}
pub type StackTracesObjectModules = Vec<StackTracesObjectModulesItem>;
#[derive(Debug, Hash, Eq, PartialEq, Clone, ::glean::traits::__serde::Serialize, ::glean::traits::__serde::Deserialize)]
#[serde(crate = "::glean::traits::__serde")]
#[serde(deny_unknown_fields)]
pub struct StackTracesObjectModulesItem {
#[serde(skip_serializing_if = "Option::is_none")]
pub base_address: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub debug_file: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub debug_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub end_address: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filename: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
pub type StackTracesObjectThreads = Vec<StackTracesObjectThreadsItem>;
#[derive(Debug, Hash, Eq, PartialEq, Clone, ::glean::traits::__serde::Serialize, ::glean::traits::__serde::Deserialize)]
#[serde(crate = "::glean::traits::__serde")]
#[serde(deny_unknown_fields)]
pub struct StackTracesObjectThreadsItem {
#[serde(skip_serializing_if = "Vec::is_empty", default = "Vec::new", deserialize_with = "::glean::traits::__serde_helper::vec_null")]
pub frames: StackTracesObjectThreadsItemFrames,
}
pub type StackTracesObjectThreadsItemFrames = Vec<StackTracesObjectThreadsItemFramesItem>;
#[derive(Debug, Hash, Eq, PartialEq, Clone, ::glean::traits::__serde::Serialize, ::glean::traits::__serde::Deserialize)]
#[serde(crate = "::glean::traits::__serde")]
#[serde(deny_unknown_fields)]
pub struct StackTracesObjectThreadsItemFramesItem {
#[serde(skip_serializing_if = "Option::is_none")]
pub ip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub module_index: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub trust: Option<String>,
}
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.stack_traces
///
/// Stack traces extracted from the crash minidump, if available. These are sent in
/// pings, however they are extracted and transformed into a different format. The
/// field in the extra file is meant only for client use.
pub static stack_traces: ::glean::private::__export::Lazy<ObjectMetric<StackTracesObject>> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "stack_traces".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
ObjectMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.startup
///
/// If set to 1 then this crash occurred during startup.
pub static startup: ::glean::private::__export::Lazy<BooleanMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "startup".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
BooleanMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.time
///
/// Crash time in seconds since the Epoch.
pub static time: ::glean::private::__export::Lazy<DatetimeMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "time".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
DatetimeMetric::new(meta, TimeUnit::Second)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.time_since_last_crash
///
/// Time in seconds since the last crash occurred.
pub static time_since_last_crash: ::glean::private::__export::Lazy<TimespanMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "time_since_last_crash".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
TimespanMetric::new(meta, TimeUnit::Second)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.utility_actors_name
///
/// Comma-separated list of IPC actors name running on this Utility process
/// instance
pub static utility_actors_name: ::glean::private::__export::Lazy<StringListMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash".into(),
name: "utility_actors_name".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringListMetric::new(meta)
});
}
pub mod crash_windows {
#[allow(unused_imports)] // HistogramType might be unusued, let's avoid warnings
use glean::{private::*, traits::ExtraKeys, traits::NoExtraKeys, CommonMetricData, HistogramType, LabeledMetricData, Lifetime, TimeUnit, MemoryUnit};
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.windows.error_reporting
///
/// Set to 1 if this crash was intercepted via the Windows Error Reporting runtime
/// exception module.
pub static error_reporting: ::glean::private::__export::Lazy<BooleanMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash.windows".into(),
name: "error_reporting".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
BooleanMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from crash.windows.file_dialog_error_code
///
/// The HRESULT returned from a Win32 system call leading to termination of the
/// file-dialog utility process. MozCrashReason is expected to provide context for
/// the value.
pub static file_dialog_error_code: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "crash.windows".into(),
name: "file_dialog_error_code".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
}
pub mod dll_blocklist {
#[allow(unused_imports)] // HistogramType might be unusued, let's avoid warnings
use glean::{private::*, traits::ExtraKeys, traits::NoExtraKeys, CommonMetricData, HistogramType, LabeledMetricData, Lifetime, TimeUnit, MemoryUnit};
#[allow(non_upper_case_globals, dead_code)]
/// generated from dll_blocklist.init_failed
///
/// Set to 1 if the DLL blocklist could not be initialized.
pub static init_failed: ::glean::private::__export::Lazy<BooleanMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "dll_blocklist".into(),
name: "init_failed".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
BooleanMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from dll_blocklist.list
///
/// Semicolon-separated list of blocked DLLS, Windows-only
pub static list: ::glean::private::__export::Lazy<StringListMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "dll_blocklist".into(),
name: "list".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringListMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from dll_blocklist.user32_loaded_before
///
/// Set to 1 if user32.dll was loaded before we could install the DLL blocklist.
pub static user32_loaded_before: ::glean::private::__export::Lazy<BooleanMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "dll_blocklist".into(),
name: "user32_loaded_before".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
BooleanMetric::new(meta)
});
}
pub mod environment {
#[allow(unused_imports)] // HistogramType might be unusued, let's avoid warnings
use glean::{private::*, traits::ExtraKeys, traits::NoExtraKeys, CommonMetricData, HistogramType, LabeledMetricData, Lifetime, TimeUnit, MemoryUnit};
#[allow(non_upper_case_globals, dead_code)]
/// generated from environment.headless_mode
///
/// True if the app was invoked in headless mode via `--headless ...` or
/// `--backgroundtask ...`, false otherwise.
pub static headless_mode: ::glean::private::__export::Lazy<BooleanMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "environment".into(),
name: "headless_mode".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
BooleanMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from environment.nimbus_enrollments
///
/// A comma-separated string that specifies the active Nimbus experiments and
/// rollouts, as well as their branches.
pub static nimbus_enrollments: ::glean::private::__export::Lazy<StringListMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "environment".into(),
name: "nimbus_enrollments".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringListMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from environment.uptime
///
/// Uptime in seconds. This annotation uses a string instead of an integer because
/// it has a fractional component.
pub static uptime: ::glean::private::__export::Lazy<TimespanMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "environment".into(),
name: "uptime".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
TimespanMetric::new(meta, TimeUnit::Millisecond)
});
}
pub mod memory {
#[allow(unused_imports)] // HistogramType might be unusued, let's avoid warnings
use glean::{private::*, traits::ExtraKeys, traits::NoExtraKeys, CommonMetricData, HistogramType, LabeledMetricData, Lifetime, TimeUnit, MemoryUnit};
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.available_commit
///
/// Available commit-space in bytes. - Under Windows, computed from the
/// PERFORMANCE_INFORMATION structure by substracting
/// the CommitTotal field from the CommitLimit field.
/// - Under Linux, computed from /proc/meminfo's CommitLimit - Committed_AS. Note
/// that
/// the kernel is not guaranteed to enforce that CommittedLimit >= Committed_AS.
/// If
/// Committed_AS > CommittedLimit, this value is set to 0.
/// - Not available on other platforms.
pub static available_commit: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "available_commit".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.available_physical
///
/// Amount of free physical memory in bytes. - Under Windows, populated with the
/// contents of the MEMORYSTATUSEX's structure ullAvailPhys field. - Under macOS,
/// populated with vm_statistics64_data_t::free_count. - Under Linux, populated
/// with /proc/meminfo's MemFree. - Not available on other platforms.
pub static available_physical: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "available_physical".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.available_swap
///
/// Amount of free swap space in bytes. - Under macOS, populated with the contents
/// of
/// sysctl "vm.swapusage" :: xsu_avail.
/// - Under Linux, populated with /proc/meminfo's SwapFree. - Not available on
/// other platforms.
pub static available_swap: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "available_swap".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.available_virtual
///
/// Amount of free virtual memory in bytes - Under Windows, populated with the
/// contents of the MEMORYSTATUSEX's structure ullAvailVirtual field. - Under
/// Linux, populated with /proc/meminfo's MemAvailable. - Not available on other
/// platforms. - For macOS, see AvailableSwapMemory, AvailablePhysicalMemory and
/// PurgeablePhysicalMemory.
pub static available_virtual: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "available_virtual".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.js_large_allocation_failure
///
/// A large allocation couldn't be satisfied, check the JSOutOfMemory description
/// for the possible values of this annotation.
pub static js_large_allocation_failure: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "js_large_allocation_failure".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.js_out_of_memory
///
/// A small allocation couldn't be satisfied, the annotation may contain the
/// "Reporting", "Reported" or "Recovered" value. The first one means that we
/// crashed while responding to the OOM condition (possibly while running a memory-
/// pressure observers), the second that we crashed after having tried to free some
/// memory, and the last that the GC had managed to free enough memory to satisfy
/// the allocation.
pub static js_out_of_memory: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "js_out_of_memory".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.low_physical
///
/// Number of times the available memory tracker has detected that free physical
/// memory is running low. This is a Windows-specific annotation.
pub static low_physical: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "low_physical".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.oom_allocation_size
///
/// Size of the allocation that caused an out-of-memory condition.
pub static oom_allocation_size: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "oom_allocation_size".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.purgeable_physical
///
/// macOS only. Amount of physical memory currently allocated but which may be
/// deallocated by the system in case of memory pressure. Populated from
/// vm_statistics64_data_t::purgeable_count * vm_page_size.
pub static purgeable_physical: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "purgeable_physical".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.system_use_percentage
///
/// Windows-only, percentage of physical memory in use. This annotation is
/// populated with the contents of the MEMORYSTATUSEX's structure dwMemoryLoad
/// field.
pub static system_use_percentage: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "system_use_percentage".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.texture
///
/// Amount of memory in bytes consumed by textures.
pub static texture: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "texture".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.total_page_file
///
/// Maximum amount of memory that can be committed without extending the swap/page
/// file. - Under Windows, populated with the contents of the
/// PERFORMANCE_INFORMATION's
/// structure CommitLimit field.
/// - Under Linux, populated with /proc/meminfo MemTotal + SwapTotal. The swap file
/// typically cannot be extended, so that's a hard limit.
/// - Not available on other systems.
pub static total_page_file: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "total_page_file".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.total_physical
///
/// Amount of physical memory in bytes. - Under Windows, populated with the
/// contents of the MEMORYSTATUSEX's structure ullTotalPhys field. - Under macOS,
/// populated with sysctl "hw.memsize". - Under Linux, populated with
/// /proc/meminfo's "MemTotal". - Not available on other systems.
pub static total_physical: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "total_physical".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
#[allow(non_upper_case_globals, dead_code)]
/// generated from memory.total_virtual
///
/// Size of the virtual address space. - Under Windows, populated with the contents
/// of the MEMORYSTATUSEX's structure
/// ullTotalVirtual field.
/// - Not available on other platforms.
pub static total_virtual: ::glean::private::__export::Lazy<QuantityMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "memory".into(),
name: "total_virtual".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
QuantityMetric::new(meta)
});
}
pub mod windows {
#[allow(unused_imports)] // HistogramType might be unusued, let's avoid warnings
use glean::{private::*, traits::ExtraKeys, traits::NoExtraKeys, CommonMetricData, HistogramType, LabeledMetricData, Lifetime, TimeUnit, MemoryUnit};
#[allow(non_upper_case_globals, dead_code)]
/// generated from windows.package_family_name
///
/// If running in a Windows package context, the package family name, per
/// getcurrentpackagefamilyname.
/// The package family name is only included when it is likely to have been
/// produced by Mozilla: it starts "Mozilla." or "MozillaCorporation.".
pub static package_family_name: ::glean::private::__export::Lazy<StringMetric> = ::glean::private::__export::Lazy::new(|| {
let meta =
CommonMetricData {
category: "windows".into(),
name: "package_family_name".into(),
send_in_pings: vec!["crash".into()],
lifetime: Lifetime::Ping,
disabled: false,
..Default::default()
};
StringMetric::new(meta)
});
}