@iann29/rastro 0.1.0-alpha.0 → 0.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +98 -18
- package/dist/component/_generated/api.d.ts +7 -1
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/constants.d.ts +11 -6
- package/dist/component/constants.d.ts.map +1 -1
- package/dist/component/constants.js +11 -6
- package/dist/component/constants.js.map +1 -1
- package/dist/component/convex.config.d.ts +2 -2
- package/dist/component/convex.config.d.ts.map +1 -1
- package/dist/component/convex.config.js +4 -1
- package/dist/component/convex.config.js.map +1 -1
- package/dist/component/eventStore.d.ts +102 -0
- package/dist/component/eventStore.d.ts.map +1 -0
- package/dist/component/eventStore.js +463 -0
- package/dist/component/eventStore.js.map +1 -0
- package/dist/component/goals.d.ts.map +1 -1
- package/dist/component/goals.js +17 -4
- package/dist/component/goals.js.map +1 -1
- package/dist/component/http.d.ts.map +1 -1
- package/dist/component/http.js +39 -7
- package/dist/component/http.js.map +1 -1
- package/dist/component/ingest.d.ts.map +1 -1
- package/dist/component/ingest.js +520 -207
- package/dist/component/ingest.js.map +1 -1
- package/dist/component/live.d.ts +8 -0
- package/dist/component/live.d.ts.map +1 -1
- package/dist/component/live.js +72 -8
- package/dist/component/live.js.map +1 -1
- package/dist/component/migrations.d.ts +17 -0
- package/dist/component/migrations.d.ts.map +1 -0
- package/dist/component/migrations.js +44 -0
- package/dist/component/migrations.js.map +1 -0
- package/dist/component/reports.d.ts +16 -16
- package/dist/component/reports.d.ts.map +1 -1
- package/dist/component/reports.js +228 -65
- package/dist/component/reports.js.map +1 -1
- package/dist/component/retention.d.ts.map +1 -1
- package/dist/component/retention.js +15 -10
- package/dist/component/retention.js.map +1 -1
- package/dist/component/sanitize.d.ts.map +1 -1
- package/dist/component/sanitize.js +11 -3
- package/dist/component/sanitize.js.map +1 -1
- package/dist/component/schema.d.ts +132 -9
- package/dist/component/schema.js +32 -7
- package/dist/component/schema.js.map +1 -1
- package/dist/component/sites.d.ts.map +1 -1
- package/dist/component/sites.js +27 -18
- package/dist/component/sites.js.map +1 -1
- package/dist/component/validators.d.ts +96 -0
- package/dist/component/validators.d.ts.map +1 -1
- package/dist/component/validators.js +12 -0
- package/dist/component/validators.js.map +1 -1
- package/dist/tracker/generated.d.ts +4 -4
- package/dist/tracker/generated.d.ts.map +1 -1
- package/dist/tracker/generated.js +4 -4
- package/dist/tracker/generated.js.map +1 -1
- package/dist/tracker/tracker.js +33 -22
- package/dist/tracker/tracker.js.map +1 -1
- package/dist/tracker.min.js +1 -1
- package/docs/benchmarks/2026-08-20-realistic.md +171 -0
- package/package.json +15 -5
- package/scripts/benchmark-ingest.mjs +499 -0
- package/src/component/_generated/api.ts +7 -1
- package/src/component/constants.ts +11 -6
- package/src/component/convex.config.ts +5 -1
- package/src/component/eventStore.ts +684 -0
- package/src/component/goals.ts +25 -4
- package/src/component/http.ts +49 -6
- package/src/component/ingest.ts +671 -215
- package/src/component/live.ts +83 -8
- package/src/component/migrations.ts +52 -0
- package/src/component/reports.ts +295 -86
- package/src/component/retention.ts +15 -12
- package/src/component/sanitize.ts +10 -3
- package/src/component/schema.ts +35 -7
- package/src/component/sites.ts +31 -18
- package/src/component/validators.ts +16 -0
- package/src/test.ts +2 -0
|
@@ -28,6 +28,7 @@ export const ingestContextValidator = v.object({
|
|
|
28
28
|
os: v.optional(v.string()),
|
|
29
29
|
device: v.optional(v.string()),
|
|
30
30
|
});
|
|
31
|
+
export const batchedEventValidator = trackerEventValidator.extend(ingestContextValidator.fields);
|
|
31
32
|
export const siteFieldsValidator = v.object({
|
|
32
33
|
ownerId: v.string(),
|
|
33
34
|
name: v.string(),
|
|
@@ -95,6 +96,17 @@ export const eventFieldsValidator = v.object({
|
|
|
95
96
|
os: v.string(),
|
|
96
97
|
device: v.string(),
|
|
97
98
|
});
|
|
99
|
+
export const storedEventFieldsValidator = eventFieldsValidator
|
|
100
|
+
.omit("country", "city", "latitude", "longitude", "browser", "os", "device")
|
|
101
|
+
.extend({
|
|
102
|
+
country: v.optional(v.string()),
|
|
103
|
+
city: v.optional(v.string()),
|
|
104
|
+
latitude: v.optional(v.number()),
|
|
105
|
+
longitude: v.optional(v.number()),
|
|
106
|
+
browser: v.optional(v.string()),
|
|
107
|
+
os: v.optional(v.string()),
|
|
108
|
+
device: v.optional(v.string()),
|
|
109
|
+
});
|
|
98
110
|
export const dimensionTypeValidator = v.union(v.literal("source"), v.literal("page"), v.literal("country"), v.literal("device"), v.literal("browser"), v.literal("event"), v.literal("goal"));
|
|
99
111
|
export const dimensionSlotValidator = v.object({
|
|
100
112
|
type: dimensionTypeValidator,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/component/validators.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/component/validators.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const TRACKER_SOURCE = "\"use strict\";(()=>{const
|
|
2
|
-
export declare const TRACKER_GZIP_BASE64 = "
|
|
3
|
-
export declare const TRACKER_RAW_BYTES =
|
|
4
|
-
export declare const TRACKER_GZIP_BYTES =
|
|
1
|
+
export declare const TRACKER_SOURCE = "\"use strict\";(()=>{const t=document.currentScript,e=t?.dataset.site,o=t?.dataset.endpoint||t?.src.replace(/tracker\\.js.*$/,\"events\");if(!e||!o)return;const s=()=>crypto.randomUUID?.()||Math.random()+\"\",n=new URLSearchParams(location.search).get(\"ref\")?.slice(0,64);let r,a;try{r=sessionStorage._r||s(),sessionStorage._r=r,a=n||sessionStorage._a,a&&(sessionStorage._a=a)}catch{r=s(),a=n}const i=t.dataset.visitor||r;let c,d=0;const l=[],h=document.referrer?new URL(document.referrer).origin:void 0,p=t=>{const s=l.splice(0,50);if(!s.length)return;const n=()=>new Blob([JSON.stringify({siteId:e,events:s})]);let r=n();for(;r.size>64e3&&s.length>1;)l.unshift(s.pop()),r=n();t&&navigator.sendBeacon(o,r)||fetch(o,{method:\"POST\",body:r,keepalive:1}).catch(()=>{}),l.length&&p(t)},g=(t,e,o)=>{const s=Date.now();l.push({eventId:`${r}.${s.toString(36)}.${d.toString(36)}`,sessionId:r,visitorId:i,type:t,name:e,path:location.pathname.slice(0,256),referrer:h,timestamp:s,sequence:d++,affiliateSlug:a,...o}),clearTimeout(c),c=setTimeout(p,1200)};let u;const v=()=>{const t=location.pathname;t!==u&&(u=t,g(\"pageview\"))};window.rastro=(t,e,o)=>{if(\"context\"===t)return{sessionId:r,visitorId:i};\"event\"===t&&g(\"custom\",`${e||\"event\"}`.slice(0,80),o&&JSON.stringify(o).length>2e4?void 0:{properties:o})},document.addEventListener(\"click\",t=>{const e=t.target?.closest(\"a,button,[data-rastro-event]\");if(!e)return;const o=e.dataset.rastroEvent,s=e.href,n=s?new URL(s):void 0,r=\"http:\"===n?.protocol||\"https:\"===n?.protocol;g(o?\"custom\":r&&n.origin!==location.origin?\"outbound\":\"click\",o,{target:(e.dataset.rastroLabel||e.tagName).slice(0,80),href:r?n.pathname.slice(0,256):void 0})},1);const m=t=>{const e=history[t];history[t]=function(t,o,s){e.call(history,t,o,s),v()}};m(\"pushState\"),m(\"replaceState\"),addEventListener(\"popstate\",v),addEventListener(\"pagehide\",()=>p(1)),setInterval(()=>{g(\"heartbeat\"),p()},2e4),v()})();";
|
|
2
|
+
export declare const TRACKER_GZIP_BASE64 = "H4sIAAAAAAACA3VV227cNhD9FZswBLKZMGvHMQoJ9AJB+uDCTYJu8uQaNU3NSqwlUiVH67or/Xuhy65vzdvqDLWcOZcRayMeRArWEMs4F+p8a7yLdEAq96at0ZE0bQjoaGWCbQhQ0VLmmnREktESgn+KoMsbbx11HS1lDEYGbCptkL+joM0dhj/kX1H+dPQOGG7QUWQis2t+iF136EVAaoPLphaiGvox4aEhL4N2ua+/f7/4tJRcdN1vmsoZ5OINY+CUw/uD779frlAHU37VQdeRV95ost7JOKJCFkicBVwzsZSxsgb5As5ORVYhHQTQGYWHbVARY7TercgHXaD8M3Rd5AJewSqAVq7rXhY06CThr1ClRW80mXK4govh3X6a1SraU7ix0ZIPXRfGrgzkajFTUqmraygfpQm4xhAwLOfZ+auKkD7Ywrp0421+sIBG0V7jqCoZm5mED4tJiCgrdAWVz7VwoxbDLR8rf8uvfl19+SwH37jCrh/4djDCRZ4iTKKmsRfXM6nKcZGtfeBZkNH+i+dnp/g+SXb3nB9nopKti6VdE4+y8Q0XAqbXKEmc3thCkw8yoss/ojbecQ9BdN0ayZTcw7ZGKn2esq9fVt8Y3Pr8IQ1wh9joym4wPe6FHGmfDN4LqObLk6ThJHooFCdA8OIJN580oXT+nouskk0bS74dh7vI05ujbejl0TZK8quRBP7+TAxI/hy52VnmIk8DzMJe5KkFemgwJXC6xhSh0VSme68OT0Nhb9CTD2cCdoqmJZCtMZKumzRCxL9bdAbT/M0b0Ou1rawmXFVtkWqQUvpegKlQh2+2Rt8SNwKMiki75waOTxYL0Y9qtbPeG/VsF7xqLaNDpdok4a0iKDhrdIEbi/dMiD67ty739zLoSME/YdauOTPeEf5DTClFs8W2P+Coz6YVMZ5NkoIz00byNYOboy123Vztb/Y8/bwQ4JPkhTm92FntBE+XUw7SbRN8g4EsxtT3ood9cnSe/zL88aWNhA4DZ6ay5o7BY3BQkSQdCqSlNJWPGIkzDbctkXdwNQT57TT927HH692Sex4qr3Af+un4eDFEhbIMuAan4j7ZUewiHBQriZp04MUtZRM8eeOrrhvh+BLPCu6XO+rSkCRuXgmH6lHXCVky39Ktb13O0t3UHrbTqCl/2e2lvsWq61CSLj7rGsUzIYYJ0rD8gZ3nYQbmj8XMR62eUlzaSD48XNF19vhTrVtnho45gYcotiiNrio+n4AJhQ0XfZ/VnA25XZEmZALqYfGPH6Md8lrqxjdxLMLmf8u6wNLmyGCIR8OPxfBRoAtHGDa6mvZLwVmJOtAtamICGi56OMHTqSvBRfYfmqHy1nUHAAA=";
|
|
3
|
+
export declare const TRACKER_RAW_BYTES = 1909;
|
|
4
|
+
export declare const TRACKER_GZIP_BYTES = 1022;
|
|
5
5
|
//# sourceMappingURL=generated.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../src/tracker/generated.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../src/tracker/generated.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,u6DAAu6D,CAAC;AACn8D,eAAO,MAAM,mBAAmB,y1CAAy1C,CAAC;AAC13C,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,kBAAkB,OAAO,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Generated by scripts/build-tracker.mjs. Do not edit.
|
|
2
|
-
export const TRACKER_SOURCE = "\"use strict\";(()=>{const
|
|
3
|
-
export const TRACKER_GZIP_BASE64 = "
|
|
4
|
-
export const TRACKER_RAW_BYTES =
|
|
5
|
-
export const TRACKER_GZIP_BYTES =
|
|
2
|
+
export const TRACKER_SOURCE = "\"use strict\";(()=>{const t=document.currentScript,e=t?.dataset.site,o=t?.dataset.endpoint||t?.src.replace(/tracker\\.js.*$/,\"events\");if(!e||!o)return;const s=()=>crypto.randomUUID?.()||Math.random()+\"\",n=new URLSearchParams(location.search).get(\"ref\")?.slice(0,64);let r,a;try{r=sessionStorage._r||s(),sessionStorage._r=r,a=n||sessionStorage._a,a&&(sessionStorage._a=a)}catch{r=s(),a=n}const i=t.dataset.visitor||r;let c,d=0;const l=[],h=document.referrer?new URL(document.referrer).origin:void 0,p=t=>{const s=l.splice(0,50);if(!s.length)return;const n=()=>new Blob([JSON.stringify({siteId:e,events:s})]);let r=n();for(;r.size>64e3&&s.length>1;)l.unshift(s.pop()),r=n();t&&navigator.sendBeacon(o,r)||fetch(o,{method:\"POST\",body:r,keepalive:1}).catch(()=>{}),l.length&&p(t)},g=(t,e,o)=>{const s=Date.now();l.push({eventId:`${r}.${s.toString(36)}.${d.toString(36)}`,sessionId:r,visitorId:i,type:t,name:e,path:location.pathname.slice(0,256),referrer:h,timestamp:s,sequence:d++,affiliateSlug:a,...o}),clearTimeout(c),c=setTimeout(p,1200)};let u;const v=()=>{const t=location.pathname;t!==u&&(u=t,g(\"pageview\"))};window.rastro=(t,e,o)=>{if(\"context\"===t)return{sessionId:r,visitorId:i};\"event\"===t&&g(\"custom\",`${e||\"event\"}`.slice(0,80),o&&JSON.stringify(o).length>2e4?void 0:{properties:o})},document.addEventListener(\"click\",t=>{const e=t.target?.closest(\"a,button,[data-rastro-event]\");if(!e)return;const o=e.dataset.rastroEvent,s=e.href,n=s?new URL(s):void 0,r=\"http:\"===n?.protocol||\"https:\"===n?.protocol;g(o?\"custom\":r&&n.origin!==location.origin?\"outbound\":\"click\",o,{target:(e.dataset.rastroLabel||e.tagName).slice(0,80),href:r?n.pathname.slice(0,256):void 0})},1);const m=t=>{const e=history[t];history[t]=function(t,o,s){e.call(history,t,o,s),v()}};m(\"pushState\"),m(\"replaceState\"),addEventListener(\"popstate\",v),addEventListener(\"pagehide\",()=>p(1)),setInterval(()=>{g(\"heartbeat\"),p()},2e4),v()})();";
|
|
3
|
+
export const TRACKER_GZIP_BASE64 = "H4sIAAAAAAACA3VV227cNhD9FZswBLKZMGvHMQoJ9AJB+uDCTYJu8uQaNU3NSqwlUiVH67or/Xuhy65vzdvqDLWcOZcRayMeRArWEMs4F+p8a7yLdEAq96at0ZE0bQjoaGWCbQhQ0VLmmnREktESgn+KoMsbbx11HS1lDEYGbCptkL+joM0dhj/kX1H+dPQOGG7QUWQis2t+iF136EVAaoPLphaiGvox4aEhL4N2ua+/f7/4tJRcdN1vmsoZ5OINY+CUw/uD779frlAHU37VQdeRV95ost7JOKJCFkicBVwzsZSxsgb5As5ORVYhHQTQGYWHbVARY7TercgHXaD8M3Rd5AJewSqAVq7rXhY06CThr1ClRW80mXK4govh3X6a1SraU7ix0ZIPXRfGrgzkajFTUqmraygfpQm4xhAwLOfZ+auKkD7Ywrp0421+sIBG0V7jqCoZm5mED4tJiCgrdAWVz7VwoxbDLR8rf8uvfl19+SwH37jCrh/4djDCRZ4iTKKmsRfXM6nKcZGtfeBZkNH+i+dnp/g+SXb3nB9nopKti6VdE4+y8Q0XAqbXKEmc3thCkw8yoss/ojbecQ9BdN0ayZTcw7ZGKn2esq9fVt8Y3Pr8IQ1wh9joym4wPe6FHGmfDN4LqObLk6ThJHooFCdA8OIJN580oXT+nouskk0bS74dh7vI05ujbejl0TZK8quRBP7+TAxI/hy52VnmIk8DzMJe5KkFemgwJXC6xhSh0VSme68OT0Nhb9CTD2cCdoqmJZCtMZKumzRCxL9bdAbT/M0b0Ou1rawmXFVtkWqQUvpegKlQh2+2Rt8SNwKMiki75waOTxYL0Y9qtbPeG/VsF7xqLaNDpdok4a0iKDhrdIEbi/dMiD67ty739zLoSME/YdauOTPeEf5DTClFs8W2P+Coz6YVMZ5NkoIz00byNYOboy123Vztb/Y8/bwQ4JPkhTm92FntBE+XUw7SbRN8g4EsxtT3ood9cnSe/zL88aWNhA4DZ6ay5o7BY3BQkSQdCqSlNJWPGIkzDbctkXdwNQT57TT927HH692Sex4qr3Af+un4eDFEhbIMuAan4j7ZUewiHBQriZp04MUtZRM8eeOrrhvh+BLPCu6XO+rSkCRuXgmH6lHXCVky39Ktb13O0t3UHrbTqCl/2e2lvsWq61CSLj7rGsUzIYYJ0rD8gZ3nYQbmj8XMR62eUlzaSD48XNF19vhTrVtnho45gYcotiiNrio+n4AJhQ0XfZ/VnA25XZEmZALqYfGPH6Md8lrqxjdxLMLmf8u6wNLmyGCIR8OPxfBRoAtHGDa6mvZLwVmJOtAtamICGi56OMHTqSvBRfYfmqHy1nUHAAA=";
|
|
4
|
+
export const TRACKER_RAW_BYTES = 1909;
|
|
5
|
+
export const TRACKER_GZIP_BYTES = 1022;
|
|
6
6
|
//# sourceMappingURL=generated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated.js","sourceRoot":"","sources":["../../src/tracker/generated.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,CAAC,MAAM,cAAc,GAAG,
|
|
1
|
+
{"version":3,"file":"generated.js","sourceRoot":"","sources":["../../src/tracker/generated.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,CAAC,MAAM,cAAc,GAAG,o6DAAo6D,CAAC;AACn8D,MAAM,CAAC,MAAM,mBAAmB,GAAG,s1CAAs1C,CAAC;AAC13C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC"}
|
package/dist/tracker/tracker.js
CHANGED
|
@@ -5,24 +5,22 @@
|
|
|
5
5
|
const endpoint = script?.dataset.endpoint || script?.src.replace(/tracker\.js.*$/, "events");
|
|
6
6
|
if (!siteId || !endpoint)
|
|
7
7
|
return;
|
|
8
|
-
const createId = () => crypto.randomUUID?.() ||
|
|
9
|
-
|
|
8
|
+
const createId = () => crypto.randomUUID?.() || Math.random() + "";
|
|
9
|
+
const referral = new URLSearchParams(location.search)
|
|
10
|
+
.get("ref")
|
|
11
|
+
?.slice(0, 64);
|
|
10
12
|
let sessionId;
|
|
11
13
|
let affiliate;
|
|
12
14
|
try {
|
|
13
15
|
sessionId = sessionStorage._r || createId();
|
|
14
16
|
sessionStorage._r = sessionId;
|
|
15
|
-
affiliate =
|
|
16
|
-
new URLSearchParams(location.search).get("ref")?.slice(0, 64) ||
|
|
17
|
-
sessionStorage._a;
|
|
17
|
+
affiliate = referral || sessionStorage._a;
|
|
18
18
|
if (affiliate)
|
|
19
19
|
sessionStorage._a = affiliate;
|
|
20
20
|
}
|
|
21
21
|
catch {
|
|
22
22
|
sessionId = createId();
|
|
23
|
-
affiliate =
|
|
24
|
-
.get("ref")
|
|
25
|
-
?.slice(0, 64);
|
|
23
|
+
affiliate = referral;
|
|
26
24
|
}
|
|
27
25
|
const visitorId = script.dataset.visitor || sessionId;
|
|
28
26
|
let sequence = 0;
|
|
@@ -32,12 +30,15 @@
|
|
|
32
30
|
? new URL(document.referrer).origin
|
|
33
31
|
: undefined;
|
|
34
32
|
const flush = (beacon) => {
|
|
35
|
-
const events = queue.splice(0,
|
|
33
|
+
const events = queue.splice(0, 50);
|
|
36
34
|
if (!events.length)
|
|
37
35
|
return;
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
const serialize = () => new Blob([JSON.stringify({ siteId, events })]);
|
|
37
|
+
let body = serialize();
|
|
38
|
+
while (body.size > 64e3 && events.length > 1) {
|
|
39
|
+
queue.unshift(events.pop());
|
|
40
|
+
body = serialize();
|
|
41
|
+
}
|
|
41
42
|
if (!beacon || !navigator.sendBeacon(endpoint, body)) {
|
|
42
43
|
void fetch(endpoint, { method: "POST", body, keepalive: true }).catch(() => {
|
|
43
44
|
// Best effort by design: analytics must never break the host page.
|
|
@@ -54,22 +55,31 @@
|
|
|
54
55
|
visitorId,
|
|
55
56
|
type,
|
|
56
57
|
name,
|
|
57
|
-
path: location.pathname.slice(0, 256)
|
|
58
|
+
path: location.pathname.slice(0, 256),
|
|
58
59
|
referrer,
|
|
59
60
|
timestamp,
|
|
60
61
|
sequence: sequence++,
|
|
61
62
|
affiliateSlug: affiliate,
|
|
62
63
|
...extra,
|
|
63
64
|
});
|
|
64
|
-
|
|
65
|
-
flushTimer =
|
|
65
|
+
clearTimeout(flushTimer);
|
|
66
|
+
flushTimer = setTimeout(flush, 1_200);
|
|
67
|
+
};
|
|
68
|
+
let lastPath;
|
|
69
|
+
const pageview = () => {
|
|
70
|
+
const path = location.pathname;
|
|
71
|
+
if (path === lastPath)
|
|
72
|
+
return;
|
|
73
|
+
lastPath = path;
|
|
74
|
+
emit("pageview");
|
|
66
75
|
};
|
|
67
|
-
const pageview = () => emit("pageview");
|
|
68
76
|
window.rastro = (command, value, properties) => {
|
|
69
77
|
if (command === "context")
|
|
70
78
|
return { sessionId, visitorId };
|
|
71
79
|
if (command === "event") {
|
|
72
|
-
emit("custom", `${value || "event"}`.slice(0, 80),
|
|
80
|
+
emit("custom", `${value || "event"}`.slice(0, 80), properties && JSON.stringify(properties).length > 20_000
|
|
81
|
+
? undefined
|
|
82
|
+
: { properties });
|
|
73
83
|
}
|
|
74
84
|
};
|
|
75
85
|
document.addEventListener("click", (event) => {
|
|
@@ -78,21 +88,22 @@
|
|
|
78
88
|
return;
|
|
79
89
|
const name = element.dataset.rastroEvent;
|
|
80
90
|
const href = element.href;
|
|
81
|
-
const url = href ? new URL(href
|
|
91
|
+
const url = href ? new URL(href) : undefined;
|
|
92
|
+
const web = url?.protocol === "http:" || url?.protocol === "https:";
|
|
82
93
|
emit(name
|
|
83
94
|
? "custom"
|
|
84
|
-
:
|
|
95
|
+
: web && url.origin !== location.origin
|
|
85
96
|
? "outbound"
|
|
86
97
|
: "click", name, {
|
|
87
98
|
target: (element.dataset.rastroLabel || element.tagName).slice(0, 80),
|
|
88
|
-
href: url
|
|
99
|
+
href: web ? url.pathname.slice(0, 256) : undefined,
|
|
89
100
|
});
|
|
90
|
-
},
|
|
101
|
+
}, true);
|
|
91
102
|
const wrapHistory = (method) => {
|
|
92
103
|
const native = history[method];
|
|
93
104
|
history[method] = function (data, unused, url) {
|
|
94
105
|
native.call(history, data, unused, url);
|
|
95
|
-
|
|
106
|
+
pageview();
|
|
96
107
|
};
|
|
97
108
|
};
|
|
98
109
|
wrapHistory("pushState");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../src/tracker/tracker.ts"],"names":[],"mappings":";AAyCA,CAAC,GAAG,EAAE;IACJ,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAyC,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAC7F,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEjC,MAAM,QAAQ,GAAG,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../src/tracker/tracker.ts"],"names":[],"mappings":"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"}
|
package/dist/tracker.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{const
|
|
1
|
+
"use strict";(()=>{const t=document.currentScript,e=t?.dataset.site,o=t?.dataset.endpoint||t?.src.replace(/tracker\.js.*$/,"events");if(!e||!o)return;const s=()=>crypto.randomUUID?.()||Math.random()+"",n=new URLSearchParams(location.search).get("ref")?.slice(0,64);let r,a;try{r=sessionStorage._r||s(),sessionStorage._r=r,a=n||sessionStorage._a,a&&(sessionStorage._a=a)}catch{r=s(),a=n}const i=t.dataset.visitor||r;let c,d=0;const l=[],h=document.referrer?new URL(document.referrer).origin:void 0,p=t=>{const s=l.splice(0,50);if(!s.length)return;const n=()=>new Blob([JSON.stringify({siteId:e,events:s})]);let r=n();for(;r.size>64e3&&s.length>1;)l.unshift(s.pop()),r=n();t&&navigator.sendBeacon(o,r)||fetch(o,{method:"POST",body:r,keepalive:1}).catch(()=>{}),l.length&&p(t)},g=(t,e,o)=>{const s=Date.now();l.push({eventId:`${r}.${s.toString(36)}.${d.toString(36)}`,sessionId:r,visitorId:i,type:t,name:e,path:location.pathname.slice(0,256),referrer:h,timestamp:s,sequence:d++,affiliateSlug:a,...o}),clearTimeout(c),c=setTimeout(p,1200)};let u;const v=()=>{const t=location.pathname;t!==u&&(u=t,g("pageview"))};window.rastro=(t,e,o)=>{if("context"===t)return{sessionId:r,visitorId:i};"event"===t&&g("custom",`${e||"event"}`.slice(0,80),o&&JSON.stringify(o).length>2e4?void 0:{properties:o})},document.addEventListener("click",t=>{const e=t.target?.closest("a,button,[data-rastro-event]");if(!e)return;const o=e.dataset.rastroEvent,s=e.href,n=s?new URL(s):void 0,r="http:"===n?.protocol||"https:"===n?.protocol;g(o?"custom":r&&n.origin!==location.origin?"outbound":"click",o,{target:(e.dataset.rastroLabel||e.tagName).slice(0,80),href:r?n.pathname.slice(0,256):void 0})},1);const m=t=>{const e=history[t];history[t]=function(t,o,s){e.call(history,t,o,s),v()}};m("pushState"),m("replaceState"),addEventListener("popstate",v),addEventListener("pagehide",()=>p(1)),setInterval(()=>{g("heartbeat"),p()},2e4),v()})();
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Realistic ingest validation, 2026-08-20
|
|
2
|
+
|
|
3
|
+
This report preserves the performance evidence produced while developing PR
|
|
4
|
+
[#8](https://github.com/amageweb/amage-rastro/pull/8), merged as `93a0b4e`.
|
|
5
|
+
It is a historical engineering record, not a production SLA.
|
|
6
|
+
|
|
7
|
+
## Status
|
|
8
|
+
|
|
9
|
+
- The realistic workload demonstrated the 100 million accepted-events/day
|
|
10
|
+
target during a sustained ten-minute soak.
|
|
11
|
+
- The sustained run predates the current `--certify` contract and did not
|
|
12
|
+
preserve a run-scoped JSON artifact with aggregate reconciliation.
|
|
13
|
+
- A later smoke against the final PR code reconciled every expected stored
|
|
14
|
+
event, but lasted only 30 seconds.
|
|
15
|
+
- Formal certification of the merged commit is therefore **pending** a new
|
|
16
|
+
600-second run using `--certify` on a dedicated idle site.
|
|
17
|
+
- Heavy-payload, browser-feature, and trusted-conversion workloads have not
|
|
18
|
+
received equivalent sustained certification.
|
|
19
|
+
|
|
20
|
+
Do not collapse these statements into a generic claim that every workload is
|
|
21
|
+
certified for 100 million stored events/day.
|
|
22
|
+
|
|
23
|
+
## Environment
|
|
24
|
+
|
|
25
|
+
| Item | Value |
|
|
26
|
+
| --- | --- |
|
|
27
|
+
| Date | 2026-08-20 |
|
|
28
|
+
| Platform | Synapse-managed Convex |
|
|
29
|
+
| Deployment | DEV canary `fast-finch-7454` |
|
|
30
|
+
| Allocation | 4 GiB |
|
|
31
|
+
| Site scope | One dedicated benchmark site |
|
|
32
|
+
| Profile | `realistic` |
|
|
33
|
+
| Concurrency | 75 workers |
|
|
34
|
+
| Batch size | 50 events |
|
|
35
|
+
| Session pool | 2,048 reused sessions |
|
|
36
|
+
| Browser context | 12 geographic locations and 4 user-agent families |
|
|
37
|
+
| Event mix | Pageviews, clicks, custom events, outbound events, and heartbeats |
|
|
38
|
+
|
|
39
|
+
The deployment name is historical and may be deleted or repointed. Never use
|
|
40
|
+
this document as deployment configuration.
|
|
41
|
+
|
|
42
|
+
## Sustained result
|
|
43
|
+
|
|
44
|
+
The sustained soak ran after the raw-event batching and five-second live-sweep
|
|
45
|
+
work in `bbfb9ad`, before the final review fixes later included in `93a0b4e`.
|
|
46
|
+
|
|
47
|
+
| Metric | Result |
|
|
48
|
+
| --- | ---: |
|
|
49
|
+
| Target duration | 600 seconds |
|
|
50
|
+
| Accepted events | 1,067,650 |
|
|
51
|
+
| Failed requests | 0 |
|
|
52
|
+
| Rejected events | 0 |
|
|
53
|
+
| Accepted throughput | 1,773 events/s |
|
|
54
|
+
| Accepted daily-rate estimate | 153.2 million events/day |
|
|
55
|
+
| Target daily rate | 100 million events/day |
|
|
56
|
+
| Headroom over target | 53.2% |
|
|
57
|
+
| Request latency p99 | approximately 5.4 seconds |
|
|
58
|
+
|
|
59
|
+
The target requires approximately 1,157 accepted events/s. The daily figure is
|
|
60
|
+
an extrapolation from the measured soak, not a full-day load test.
|
|
61
|
+
|
|
62
|
+
This run established sustained accepted-ingress capacity. Its exact heartbeat
|
|
63
|
+
count and stored-event delta were not retained, so it must not be presented as
|
|
64
|
+
a formally reconciled stored-events certification under the current harness.
|
|
65
|
+
|
|
66
|
+
## Reconciled corroboration
|
|
67
|
+
|
|
68
|
+
A separate two-minute realistic rerun on the same canary used the same
|
|
69
|
+
concurrency, batch size, and session pool:
|
|
70
|
+
|
|
71
|
+
| Metric | Result |
|
|
72
|
+
| --- | ---: |
|
|
73
|
+
| Run label | `realistic-2m-rerun` |
|
|
74
|
+
| Run ID | `mt1ydsq5-jjmbjv` |
|
|
75
|
+
| Target duration | 120 seconds |
|
|
76
|
+
| Measured elapsed time | 122.021 seconds |
|
|
77
|
+
| Requests completed | 4,363 |
|
|
78
|
+
| Accepted events | 218,150 |
|
|
79
|
+
| Accepted heartbeats | 10,775 |
|
|
80
|
+
| Expected stored events | 207,375 |
|
|
81
|
+
| Aggregate event delta | 207,375 |
|
|
82
|
+
| Reconciliation | exact |
|
|
83
|
+
| Failed requests | 0 |
|
|
84
|
+
| Duplicate events | 0 |
|
|
85
|
+
| Rejected events | 0 |
|
|
86
|
+
| Accepted throughput | 1,788 events/s |
|
|
87
|
+
| Accepted daily-rate estimate | 154,466,612 events/day |
|
|
88
|
+
| Request latency p50 | 2,049 ms |
|
|
89
|
+
| Request latency p95 | 2,570 ms |
|
|
90
|
+
| Request latency p99 | 3,082 ms |
|
|
91
|
+
| Request latency max | 3,366 ms |
|
|
92
|
+
|
|
93
|
+
Reconciliation was a site-wide before/after delta. It is reliable only because
|
|
94
|
+
the benchmark site was kept idle apart from this run.
|
|
95
|
+
|
|
96
|
+
## Final-code smoke
|
|
97
|
+
|
|
98
|
+
After the final correctness review, commit `c43d971` was deployed to the canary.
|
|
99
|
+
That source was subsequently squash-merged unchanged as `93a0b4e`. A 30-second
|
|
100
|
+
smoke produced:
|
|
101
|
+
|
|
102
|
+
| Metric | Result |
|
|
103
|
+
| --- | ---: |
|
|
104
|
+
| Run label | `final-pr-smoke` |
|
|
105
|
+
| Run ID | `mt2072x6-4c0avl` |
|
|
106
|
+
| Measured elapsed time | 31.747 seconds |
|
|
107
|
+
| Requests completed | 1,243 |
|
|
108
|
+
| Accepted events | 62,150 |
|
|
109
|
+
| Accepted heartbeats | 2,486 |
|
|
110
|
+
| Expected stored events | 59,664 |
|
|
111
|
+
| Aggregate event delta | 59,664 |
|
|
112
|
+
| Reconciliation | exact |
|
|
113
|
+
| Failed requests | 0 |
|
|
114
|
+
| Duplicate events | 0 |
|
|
115
|
+
| Rejected events | 0 |
|
|
116
|
+
| Accepted throughput | 1,958 events/s |
|
|
117
|
+
| Stored throughput | 1,879 events/s |
|
|
118
|
+
| Accepted daily-rate estimate | 169,139,895 events/day |
|
|
119
|
+
| Stored daily-rate estimate | 162,374,299 events/day |
|
|
120
|
+
| Request latency p50 | 1,882 ms |
|
|
121
|
+
| Request latency p95 | 2,430 ms |
|
|
122
|
+
| Request latency p99 | 2,733 ms |
|
|
123
|
+
| Request latency max | 2,827 ms |
|
|
124
|
+
|
|
125
|
+
The harness correctly marked this result as an estimate, not a certification,
|
|
126
|
+
because it was shorter than 600 seconds.
|
|
127
|
+
|
|
128
|
+
## Reproduction
|
|
129
|
+
|
|
130
|
+
Run from a repository checkout against a confirmed non-production deployment.
|
|
131
|
+
Use a newly created or otherwise idle benchmark site, and preserve stdout as a
|
|
132
|
+
JSON artifact in the pull request or release evidence.
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
npm run --silent benchmark:ingest -- \
|
|
136
|
+
--url https://your-deployment.site.example/rastro/events \
|
|
137
|
+
--convex-url https://your-deployment.example \
|
|
138
|
+
--site-id your_dedicated_benchmark_site \
|
|
139
|
+
--origin https://your-allowed-origin.example \
|
|
140
|
+
--profile realistic \
|
|
141
|
+
--duration 600 \
|
|
142
|
+
--concurrency 75 \
|
|
143
|
+
--batch-size 50 \
|
|
144
|
+
--certify
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
A passing harness certification must include:
|
|
148
|
+
|
|
149
|
+
- `terminationReason: "duration"` and `durationCompleted: true`;
|
|
150
|
+
- `certification.requested: true` and `certification.passed: true`;
|
|
151
|
+
- zero request failures, duplicate events, rejected events, and failed events;
|
|
152
|
+
- completed request accounting;
|
|
153
|
+
- reliable and exact aggregate reconciliation;
|
|
154
|
+
- separate accepted and stored throughput/capacity fields.
|
|
155
|
+
|
|
156
|
+
Release evidence should additionally record deployment health and successful
|
|
157
|
+
dashboard QA. Those checks are external to the harness and do not determine
|
|
158
|
+
`certification.passed`.
|
|
159
|
+
|
|
160
|
+
## Limitations
|
|
161
|
+
|
|
162
|
+
- Traffic was synthetic and generated from one client process.
|
|
163
|
+
- The workload covered one site and a fixed 2,048-session pool.
|
|
164
|
+
- The sustained evidence measured accepted ingress, not storage cost or a
|
|
165
|
+
complete production-day traffic distribution.
|
|
166
|
+
- No database cost, network egress cost, multi-region behavior, failover, or
|
|
167
|
+
noisy-neighbor behavior was certified.
|
|
168
|
+
- The Live Atlas intentionally renders a bounded sample rather than every live
|
|
169
|
+
session as an individual DOM marker.
|
|
170
|
+
- `heavy`, `feature`, and trusted server-side conversion profiles require
|
|
171
|
+
separate results; their capacity must not be inferred from this report.
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/amageweb/amage-rastro/issues"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.1.0-alpha.
|
|
9
|
+
"version": "0.1.0-alpha.2",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"publishConfig": {
|
|
12
12
|
"access": "public"
|
|
@@ -29,11 +29,14 @@
|
|
|
29
29
|
"dev": "synapse dev --start 'npm run dev:build'",
|
|
30
30
|
"dev:frontend": "cd example && vite",
|
|
31
31
|
"dev:build": "chokidar 'tsconfig*.json' 'src/**/*.{ts,js}' 'scripts/build-tracker.mjs' -i '**/*.test.ts' -c 'npm run build:codegen' --initial",
|
|
32
|
+
"deploy:dashboard": "static-hosting upload --build --dist example/dist --build-command \"npm exec vite -- build example\"",
|
|
32
33
|
"predev": "npm run build:codegen",
|
|
34
|
+
"prebuild": "rm -rf dist *.tsbuildinfo",
|
|
33
35
|
"build": "npm run build:tracker && tsc --project ./tsconfig.build.json",
|
|
34
36
|
"build:tracker": "node ./scripts/build-tracker.mjs",
|
|
35
|
-
"
|
|
36
|
-
"build:
|
|
37
|
+
"benchmark:ingest": "node ./scripts/benchmark-ingest.mjs",
|
|
38
|
+
"build:codegen": "npm run build && synapse convex codegen --component-dir ./src/component && npm run build && synapse dev --once",
|
|
39
|
+
"build:clean": "npm run build:codegen",
|
|
37
40
|
"typecheck": "tsc --noEmit && tsc -p example && tsc -p example/convex",
|
|
38
41
|
"lint": "eslint .",
|
|
39
42
|
"test": "vitest run --typecheck",
|
|
@@ -41,7 +44,7 @@
|
|
|
41
44
|
"test:debug": "vitest --inspect-brk --no-file-parallelism",
|
|
42
45
|
"test:coverage": "vitest run --coverage --coverage.reporter=text",
|
|
43
46
|
"prepare": "npm run build",
|
|
44
|
-
"preversion": "npm ci && npm run build
|
|
47
|
+
"preversion": "npm ci && npm run build && npm run test && npm run lint && npm run typecheck",
|
|
45
48
|
"alpha": "npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags",
|
|
46
49
|
"release": "npm version patch && npm publish && git push --follow-tags",
|
|
47
50
|
"version": "(npm whoami || npm login) && vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md"
|
|
@@ -51,6 +54,8 @@
|
|
|
51
54
|
"src/test.ts",
|
|
52
55
|
"src/component/**/*.ts",
|
|
53
56
|
"!src/component/**/*.test.ts",
|
|
57
|
+
"scripts/benchmark-ingest.mjs",
|
|
58
|
+
"docs/benchmarks/*.md",
|
|
54
59
|
"assets/rastro-live-atlas.png"
|
|
55
60
|
],
|
|
56
61
|
"exports": {
|
|
@@ -86,6 +91,7 @@
|
|
|
86
91
|
},
|
|
87
92
|
"devDependencies": {
|
|
88
93
|
"@convex-dev/eslint-plugin": "^4.0.0",
|
|
94
|
+
"@convex-dev/static-hosting": "^0.2.1",
|
|
89
95
|
"@edge-runtime/vm": "^5.0.0",
|
|
90
96
|
"@eslint/eslintrc": "^3.3.6",
|
|
91
97
|
"@eslint/js": "9.39.5",
|
|
@@ -117,5 +123,9 @@
|
|
|
117
123
|
"vitest": "4.1.10"
|
|
118
124
|
},
|
|
119
125
|
"types": "./dist/client/index.d.ts",
|
|
120
|
-
"module": "./dist/client/index.js"
|
|
126
|
+
"module": "./dist/client/index.js",
|
|
127
|
+
"dependencies": {
|
|
128
|
+
"@convex-dev/migrations": "^0.3.6",
|
|
129
|
+
"convex-helpers": "^0.1.123"
|
|
130
|
+
}
|
|
121
131
|
}
|