Openstatus www.openstatus.dev

chore: improve event tracking (#1321)

authored by

Maximilian Kaske and committed by
GitHub
b2044779 e1ad48e2

+33 -3
+1 -1
apps/dashboard/src/app/(dashboard)/onboarding/client.tsx
··· 220 220 onSubmit={async (values) => { 221 221 await createFeedbackMutation.mutateAsync({ 222 222 message: `I learned about OpenStatus from *${values.from}${ 223 - values.other ? `: ${values.other}` : "" 223 + values.other ? `: ${values.other || "others"}` : "" 224 224 }*`, 225 225 }); 226 226 }}
+16
packages/analytics/src/events.ts
··· 52 52 name: "page_updated", 53 53 channel: "page", 54 54 }, 55 + UpdatePageDomain: { 56 + name: "page_domain_updated", 57 + channel: "page", 58 + }, 55 59 DeletePage: { 56 60 name: "page_deleted", 57 61 channel: "page", ··· 70 74 }, 71 75 DeleteReport: { 72 76 name: "report_deleted", 77 + channel: "report", 78 + }, 79 + CreateReportUpdate: { 80 + name: "report_update_created", 81 + channel: "report", 82 + }, 83 + UpdateReportUpdate: { 84 + name: "report_update_updated", 85 + channel: "report", 86 + }, 87 + DeleteReportUpdate: { 88 + name: "report_update_deleted", 73 89 channel: "report", 74 90 }, 75 91 CreateMaintenance: {
+1 -1
packages/api/src/router/invitation.ts
··· 17 17 18 18 export const invitationRouter = createTRPCRouter({ 19 19 create: protectedProcedure 20 + .meta({ track: Events.InviteUser, trackProps: ["email"] }) 20 21 .input(insertInvitationSchema.pick({ email: true })) 21 - .meta({ track: Events.InviteUser }) 22 22 .mutation(async (opts) => { 23 23 const { email } = opts.input; 24 24
+10
packages/api/src/router/monitor.ts
··· 912 912 }), 913 913 914 914 clone: protectedProcedure 915 + .meta({ track: Events.CloneMonitor }) 915 916 .input(z.object({ id: z.number() })) 916 917 .mutation(async ({ ctx, input }) => { 917 918 const whereConditions: SQL[] = [ ··· 967 968 }), 968 969 969 970 updateRetry: protectedProcedure 971 + .meta({ track: Events.UpdateMonitor }) 970 972 .input(z.object({ id: z.number(), retry: z.number() })) 971 973 .mutation(async ({ ctx, input }) => { 972 974 const whereConditions: SQL[] = [ ··· 983 985 }), 984 986 985 987 updateOtel: protectedProcedure 988 + .meta({ track: Events.UpdateMonitor }) 986 989 .input( 987 990 z.object({ 988 991 id: z.number(), ··· 1013 1016 }), 1014 1017 1015 1018 updatePublic: protectedProcedure 1019 + .meta({ track: Events.UpdateMonitor }) 1016 1020 .input(z.object({ id: z.number(), public: z.boolean() })) 1017 1021 .mutation(async ({ ctx, input }) => { 1018 1022 const whereConditions: SQL[] = [ ··· 1029 1033 }), 1030 1034 1031 1035 updateSchedulingRegions: protectedProcedure 1036 + .meta({ track: Events.UpdateMonitor }) 1032 1037 .input( 1033 1038 z.object({ 1034 1039 id: z.number(), ··· 1085 1090 }), 1086 1091 1087 1092 updateResponseTime: protectedProcedure 1093 + .meta({ track: Events.UpdateMonitor }) 1088 1094 .input( 1089 1095 z.object({ 1090 1096 id: z.number(), ··· 1111 1117 }), 1112 1118 1113 1119 updateTags: protectedProcedure 1120 + .meta({ track: Events.UpdateMonitor }) 1114 1121 .input(z.object({ id: z.number(), tags: z.array(z.number()) })) 1115 1122 .mutation(async ({ ctx, input }) => { 1116 1123 const allTags = await ctx.db.query.monitorTag.findMany({ ··· 1144 1151 }), 1145 1152 1146 1153 updateStatusPages: protectedProcedure 1154 + .meta({ track: Events.UpdateMonitor }) 1147 1155 .input( 1148 1156 z.object({ 1149 1157 id: z.number(), ··· 1191 1199 }), 1192 1200 1193 1201 updateGeneral: protectedProcedure 1202 + .meta({ track: Events.UpdateMonitor }) 1194 1203 .input( 1195 1204 z.object({ 1196 1205 id: z.number(), ··· 1272 1281 }), 1273 1282 1274 1283 updateNotifiers: protectedProcedure 1284 + .meta({ track: Events.UpdateMonitor }) 1275 1285 .input(z.object({ id: z.number(), notifiers: z.array(z.number()) })) 1276 1286 .mutation(async ({ ctx, input }) => { 1277 1287 const allNotifiers = await ctx.db.query.notification.findMany({
+1 -1
packages/api/src/router/page.ts
··· 607 607 }), 608 608 609 609 updateCustomDomain: protectedProcedure 610 - .meta({ track: Events.UpdatePage }) 610 + .meta({ track: Events.UpdatePageDomain, trackProps: ["customDomain"] }) 611 611 .input(z.object({ id: z.number(), customDomain: z.string().toLowerCase() })) 612 612 .mutation(async (opts) => { 613 613 const whereConditions: SQL[] = [
+4
packages/api/src/router/statusReport.ts
··· 63 63 }), 64 64 65 65 createStatusReportUpdate: protectedProcedure 66 + .meta({ track: Events.CreateReportUpdate }) 66 67 .input(insertStatusReportUpdateSchema) 67 68 .mutation(async (opts) => { 68 69 // update parent status report with latest status ··· 157 158 }), 158 159 159 160 updateStatusReportUpdate: protectedProcedure 161 + .meta({ track: Events.UpdateReportUpdate }) 160 162 .input(insertStatusReportUpdateSchema) 161 163 .mutation(async (opts) => { 162 164 const statusReportUpdateInput = opts.input; ··· 196 198 }), 197 199 198 200 deleteStatusReportUpdate: protectedProcedure 201 + .meta({ track: Events.DeleteReportUpdate }) 199 202 .input(z.object({ id: z.number() })) 200 203 .mutation(async (opts) => { 201 204 const statusReportUpdateToDelete = await opts.ctx.db ··· 535 538 }), 536 539 537 540 deleteUpdate: protectedProcedure 541 + .meta({ track: Events.DeleteReportUpdate }) 538 542 .input(z.object({ id: z.number() })) 539 543 .mutation(async (opts) => { 540 544 await opts.ctx.db.transaction(async (tx) => {