sentry logs: add github username and device_id (#521)

* add uid and username in main thread logs

* add more metadata to sentry client side logs

* add more logging

---------

Co-authored-by: neil molina <neil@neils-MacBook-Pro.local>
This commit is contained in:
Neil 2023-04-28 09:46:32 +08:00 committed by GitHub
parent c478c99539
commit a5c80d4d5c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 37 additions and 9 deletions

View file

@ -15,6 +15,7 @@ import initializePushNotification, {
} from "./libs/push-notification";
import init from "./libs/initialize";
import { readSessionData } from "./libs/auth";
log.info("App starting...");
if (app.isPackaged) {
@ -30,6 +31,13 @@ if (app.isPackaged) {
}
}
});
Sentry.configureScope(async (scope) => {
const session = await readSessionData();
scope.setUser({
id: session.device_id, // device_id this should exist in our pg db: developer_id is to many device_id
username: session?.user?.login || "" // github username or handler
});
});
setSentryLogging(Sentry);
}
@ -148,7 +156,7 @@ app.on("activate", () => {
createMainWindow();
}
});
app.on("window-all-closed", async () => {
app.on("window-all-closed", () => {
// mac ux is just minimize them when closed unless forced quite CMD+Q
macWindowClosed = true;
if (process.platform !== "darwin") {

View file

@ -18,15 +18,19 @@ let lastStatus: AutoUpdateStatus = { status: "up-to-date" };
export const getUpdater = () => autoUpdater;
export function checkUpdater(mainWindow: BrowserWindow): AppUpdater {
window = mainWindow;
autoUpdater.checkForUpdatesAndNotify();
try {
window = mainWindow;
autoUpdater.checkForUpdatesAndNotify();
if (!initalized) {
initalized = true;
if (!initalized) {
initalized = true;
setInterval(() => {
autoUpdater.checkForUpdatesAndNotify();
}, 1000 * 60 * 30); // check for updates every 30 minutes
setInterval(() => {
autoUpdater.checkForUpdatesAndNotify();
}, 1000 * 60 * 30); // check for updates every 30 minutes
}
} catch (error) {
log.error(error);
}
return autoUpdater;

View file

@ -94,6 +94,7 @@ export async function installPackage(pkg: GUIPackage, version?: string) {
const specificVersion = version || latestVersion;
log.info(`installing package: ${pkg.name} version: ${specificVersion}`);
const res = await ipcRenderer.invoke("install-package", {
full_name: pkg.full_name,
version: specificVersion

View file

@ -1,9 +1,19 @@
import * as Sentry from "@sentry/browser";
import type { Session } from "./types";
export function initSentry() {
export function initSentry(session?: Session) {
Sentry.init({
dsn: "https://5ff29bb5b3b64cd4bd4f4960ef1db2e3@o4504750197899264.ingest.sentry.io/4504750206746624"
});
if (session) {
console.log("sentry init", session);
Sentry.configureScope(async (scope) => {
scope.setUser({
id: session.device_id, // device_id this should exist in our pg db: developer_id is to many device_id
username: session?.user?.login || "" // github username or handler
});
});
}
}
export function captureException(exception: any) {

View file

@ -4,6 +4,7 @@ import { getDeviceAuth } from "@native";
import type { Developer } from "@tea/ui/types";
import type { Session } from "$libs/types";
import { getSession as electronGetSession, updateSession as electronUpdateSession } from "@native";
import { initSentry } from "../sentry";
export let session: Session | null = null;
export const getSession = async (): Promise<Session | null> => {
@ -22,6 +23,7 @@ export default function initAuthStore() {
getSession().then((sess) => {
if (sess) {
session = sess;
initSentry(sess);
sessionStore.set(sess);
deviceIdStore.set(sess.device_id!);
deviceId = sess.device_id!;
@ -36,6 +38,8 @@ export default function initAuthStore() {
...val,
...data
}));
initSentry(data);
await electronUpdateSession(data);
}

View file

@ -219,6 +219,7 @@ To read more about this package go to [${guiPkg.homepage}](${guiPkg.homepage}).
message: `Package ${pkg.full_name} v${versionToInstall} has been installed.`
});
} catch (error) {
log.error(error);
let message = "Unknown Error";
if (error instanceof Error) message = error.message;
trackInstallFailed(pkg.full_name, message || "unknown");