feat: implement telemetry and crash reporting system #14

Open
opened 2025-04-23 19:26:42 +00:00 by lily · 0 comments
Owner

Zenyx Bug Report & System Information Collection

This should be implemented in a new subcrate named "telemetry".

CPU Information:

  • Vendor: e.g., "GenuineIntel", "AuthenticAMD", "Apple", "Qualcomm". specifically the VendorID of the CPU.
  • Brand: e.g., "Intel(R) Core(TM) i9-13900K", "AMD Ryzen 9 5950X3D", "Apple M3 Max".
  • Logical processor count: The total number of threads or logical cores available to the operating system.
  • Architecture: e.g., "x86_64" (64-bit Intel/AMD), "aarch64" (64-bit ARM). Specifies the instruction set architecture the CPU uses.
  • Byte order: e.g., "Little-endian", "Big-endian". Describes how bytes are ordered in memory.

Memory Information:

  • Total system memory: e.g., "32 GB", "64 GB". The total amount of physical RAM installed.
  • Available system memory at the time of the bug: e.g., "5 GB", "10 GB". The amount of free RAM when the issue occurred.

Operating System information:

  • Name: e.g., "Windows", "macOS", "Linux", "FreeBSD". The name of the operating system family.
  • Edition: e.g., "Windows 11", "macOS Sonoma", "Ubuntu (Jammy Jellyfish)".
  • Version: e.g., "23H2 (OS Build 22631.3447)", "14.4.1 (23E224)", "22.04.4 LTS". The specific version and build number of the OS.
  • Architecture: e.g., "64-bit". Indicates if the OS is running in 64-bit mode.
  • Kernel version (for Unix-like systems): e.g., "6.5.0-28-generic". The specific version of the OS kernel.
  • Desktop environment (for Linux, e.g., GNOME, KDE, XFCE, Wayland, X11): The graphical user interface layer.

Graphics Information:

  • GPU Vendor: e.g., "NVIDIA Corporation", "Advanced Micro Devices, Inc.", "Intel".
  • GPU Model: e.g., "NVIDIA GeForce RTX 4080", "AMD Radeon RX 7900 XTX", "Intel(R) Arc(TM) A770".
  • Graphics driver version,
  • VRAM amount: e.g., "16 GB", "24 GB",
  • Display resolution and refresh rate: e.g., "3840x2160 @ 120Hz". The resolution and refresh rate of the primary display, if not applicable, this value is the resolution of the display that contains the main window.

Storage Information:

  • Total storage capacity: e.g., "2 TB".
  • Available storage space on the installation drive: e.g.,
  • Type of primary storage: e.g., "SSD" (Solid State Drive), "HDD" (Hard Disk Drive). Indicates the speed and technology of the main storage.

Network Information:

  • Network adapter type: e.g., "Ethernet", "Wi-Fi".
  • Internet connection status,

Zenyx Version:

  • Full version number of the Zenyx software: e.g., "1.5.2", "2024.1.0".
  • Build date or commit hash (if applicable): More specific identifiers for development or testing builds.

External Software Information:

  • Names and versions of any other software interacting with Zenyx when the bug occurred: e.g., "Discord Overlay 1.0.5", "OBS Studio 29.1.3", "Steam Client", "Specific game launcher version".

NOTE:

Information about applications that are injected into our application is potentially sensitive. Even if sending crash-reports and telemetry is entirely opt-in the user should be REQUIRED to be notified if that information has been collected and given the option to omit the information, simply replacing the information with the amount of injected applications.

Input Device Information:

  • Type of input devices used: e.g., "Keyboard", "Mouse", "Xbox Controller", "Wacom Intuos Pro".
  • Manufacturer and model (if applicable): e.g., "Corsair K95", "Logitech MX Master 3", "Microsoft Xbox Wireless Controller".

System Locale and Language Settings:

  • Operating system language: The primary language configured in the OS, as well as the Locale code, such as EN_US
  • Zenyx configured language: The language setting within the Engine.

System Uptime:

  • How long the system has been running since the last reboot: e.g., "3 days, 4 hours".

Collecting this information systematically will greatly enhance the effectiveness of bug reports and the development team's ability to address issues.

Example JSON for telemetry:

{
  "telemetry": {
    "uptime": {
      "boot": "2025-04-23T15:16:50-04:00",
      "now": "2025-04-23T22:16:50-04:00",
      "relative": "7 hours",
    },
    "locale": "en_US",
    "cpu": [{
      "vendor": "AuthenticAMD",
      "brand": "AMD Ryzen 9 5950X3D",
      "processors": 32,
      "architecture": "x86_64",
      "byte_order": "little-endian"
    }],
    "gpu": [{
      "vendor": "Advanced Micro Devices, Inc.",
      "model": "Radeon RX 7700 XT",
      "driver": {
        "version": "25.3.2",
        "name": "standard",
      },
      "vram": "12GB",
      "display": {
        "resolution": "1920x1080",
        "refresh_rate": 60.0,
      },
    }],
    "memory": {
      "physical": "16GB",
      "virtual": "2GB",
    },
    "storage": {
      "capacity": "1TB",
      "type": "SSD",
    },
    "network": {
      "adapter": "ethernet",
      "connected": true,
    },
    "os": {
      "name": "Linux",
      "edition": "NixOS",
      "version": "unstable",
      "architecture": 64,
      "kernel": "6.14.3",
      "de": "KDE Plasma",
    },
    "devices": ["Keyboard", "Mouse"],
    "meta": {
      "version": "0.1.0",
      "commit": "2d704652b5",
      "locale": "en_US",
    },
    "external": ["Discord Overlay 1.0.5"],
  }
}
# Zenyx Bug Report & System Information Collection This should be implemented in a new subcrate named "telemetry". ## **CPU Information:** - [ ] Vendor: e.g., "GenuineIntel", "AuthenticAMD", "Apple", "Qualcomm". specifically the VendorID of the CPU. - [ ] Brand: e.g., "Intel(R) Core(TM) i9-13900K", "AMD Ryzen 9 5950X3D", "Apple M3 Max". - [ ] Logical processor count: The total number of threads or logical cores available to the operating system. - [ ] Architecture: e.g., "x86_64" (64-bit Intel/AMD), "aarch64" (64-bit ARM). Specifies the instruction set architecture the CPU uses. - [ ] Byte order: e.g., "Little-endian", "Big-endian". Describes how bytes are ordered in memory. ## **Memory Information:** - [ ] Total system memory: e.g., "32 GB", "64 GB". The total amount of physical RAM installed. - [ ] Available system memory at the time of the bug: e.g., "5 GB", "10 GB". The amount of free RAM when the issue occurred. ## **Operating System information:** - [ ] Name: e.g., "Windows", "macOS", "Linux", "FreeBSD". The name of the operating system family. - [ ] Edition: e.g., "Windows 11", "macOS Sonoma", "Ubuntu (Jammy Jellyfish)". - [ ] Version: e.g., "23H2 (OS Build 22631.3447)", "14.4.1 (23E224)", "22.04.4 LTS". The specific version and build number of the OS. - [ ] Architecture: e.g., "64-bit". Indicates if the OS is running in 64-bit mode. - [ ] Kernel version (for Unix-like systems): e.g., "6.5.0-28-generic". The specific version of the OS kernel. - [ ] Desktop environment (for Linux, e.g., GNOME, KDE, XFCE, Wayland, X11): The graphical user interface layer. ## **Graphics Information:** - [ ] GPU Vendor: e.g., "NVIDIA Corporation", "Advanced Micro Devices, Inc.", "Intel". - [ ] GPU Model: e.g., "NVIDIA GeForce RTX 4080", "AMD Radeon RX 7900 XTX", "Intel(R) Arc(TM) A770". - [ ] Graphics driver version, - [ ] VRAM amount: e.g., "16 GB", "24 GB", - [ ] Display resolution and refresh rate: e.g., "3840x2160 @ 120Hz". The resolution and refresh rate of the primary display, if not applicable, this value is the resolution of the display that contains the main window. ## **Storage Information:** - [ ] Total storage capacity: e.g., "2 TB". - [ ] Available storage space on the installation drive: e.g., - [ ] Type of primary storage: e.g., "SSD" (Solid State Drive), "HDD" (Hard Disk Drive). Indicates the speed and technology of the main storage. ## **Network Information:** - [ ] Network adapter type: e.g., "Ethernet", "Wi-Fi". - [ ] Internet connection status, ## **Zenyx Version:** - [ ] Full version number of the Zenyx software: e.g., "1.5.2", "2024.1.0". - [ ] Build date or commit hash (if applicable): More specific identifiers for development or testing builds. ## **External Software Information:** - [ ] Names and versions of any other software interacting with Zenyx when the bug occurred: e.g., "Discord Overlay 1.0.5", "OBS Studio 29.1.3", "Steam Client", "Specific game launcher version". ### **NOTE:** Information about applications that are injected into our application is potentially sensitive. Even if sending crash-reports and telemetry is entirely opt-in the user should be ***REQUIRED*** to be notified if that information has been collected and given the option to omit the information, simply replacing the information with the amount of injected applications. ## **Input Device Information:** - [ ] Type of input devices used: e.g., "Keyboard", "Mouse", "Xbox Controller", "Wacom Intuos Pro". - [ ] Manufacturer and model (if applicable): e.g., "Corsair K95", "Logitech MX Master 3", "Microsoft Xbox Wireless Controller". ## **System Locale and Language Settings:** - [ ] Operating system language: The primary language configured in the OS, as well as the Locale code, such as EN_US - [ ] Zenyx configured language: The language setting within the Engine. ## **System Uptime:** - [ ] How long the system has been running since the last reboot: e.g., "3 days, 4 hours". Collecting this information systematically will greatly enhance the effectiveness of bug reports and the development team's ability to address issues. Example JSON for telemetry: ```json { "telemetry": { "uptime": { "boot": "2025-04-23T15:16:50-04:00", "now": "2025-04-23T22:16:50-04:00", "relative": "7 hours", }, "locale": "en_US", "cpu": [{ "vendor": "AuthenticAMD", "brand": "AMD Ryzen 9 5950X3D", "processors": 32, "architecture": "x86_64", "byte_order": "little-endian" }], "gpu": [{ "vendor": "Advanced Micro Devices, Inc.", "model": "Radeon RX 7700 XT", "driver": { "version": "25.3.2", "name": "standard", }, "vram": "12GB", "display": { "resolution": "1920x1080", "refresh_rate": 60.0, }, }], "memory": { "physical": "16GB", "virtual": "2GB", }, "storage": { "capacity": "1TB", "type": "SSD", }, "network": { "adapter": "ethernet", "connected": true, }, "os": { "name": "Linux", "edition": "NixOS", "version": "unstable", "architecture": 64, "kernel": "6.14.3", "de": "KDE Plasma", }, "devices": ["Keyboard", "Mouse"], "meta": { "version": "0.1.0", "commit": "2d704652b5", "locale": "en_US", }, "external": ["Discord Overlay 1.0.5"], } } ```
lily added the
Kind/Feature
Priority
Low
labels 2025-04-23 19:26:42 +00:00
lily added this to the Zenyx project 2025-04-23 19:26:42 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: nonsensical-dev/zenyx-engine#14
No description provided.