@heycatch/sdk 0.7.1-dev.1459 → 0.8.0-dev.1460
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 +33 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/react-native.cjs +1 -1
- package/dist/react-native.js +1 -1
- package/dist/server.cjs +1 -1
- package/dist/server.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -87,6 +87,39 @@ busy page sends more requests than a quiet one. `flushIntervalMs: 250` is the
|
|
|
87
87
|
middle ground - still batched, but a window short enough that a navigation
|
|
88
88
|
rarely lands inside it.
|
|
89
89
|
|
|
90
|
+
## Volume limits
|
|
91
|
+
|
|
92
|
+
A tracking call inside a render loop or an effect can send thousands of
|
|
93
|
+
events from one browser tab, and nothing about the app looks broken while it
|
|
94
|
+
does. So the SDK bounds what one session can send. None of this needs
|
|
95
|
+
configuring. The first three limits are the SDK's own, and each logs one
|
|
96
|
+
`[HeyCatch] …` console warning the first time it applies on a page, so a
|
|
97
|
+
runaway loop is visible where you are already looking:
|
|
98
|
+
|
|
99
|
+
- **5,000 events per session.** Past that, the rest of the session is
|
|
100
|
+
dropped until a new one starts. Real sessions do not get near this - it is
|
|
101
|
+
a backstop for a loop, not a quota for a busy user.
|
|
102
|
+
- **60 person-property updates a minute.** Call `setPersonProperties` when a
|
|
103
|
+
property changes, not on every render. Updates past the budget are dropped;
|
|
104
|
+
pageviews and other events in the same session still flow.
|
|
105
|
+
- **localhost is throttled, not filtered out.** A session on `localhost`,
|
|
106
|
+
`127.0.0.1` or a private-network host sends its first 1,000 events like
|
|
107
|
+
any other, then 60 a minute. A dev server hot-reloading for an hour cannot
|
|
108
|
+
flood your dashboard, and your first local test still shows up on the
|
|
109
|
+
Install page. Only this throttle is limited to local hosts: a production
|
|
110
|
+
session meets the other three limits like any other, and a local session
|
|
111
|
+
that reaches the cap is cut off like any other.
|
|
112
|
+
- **5 events a second, sustained** (browser only). Bursts of up to 50 pass;
|
|
113
|
+
a steady stream faster than that is dropped. This one applies from the
|
|
114
|
+
first event, on every host, and it belongs to the transport rather than
|
|
115
|
+
the SDK, so there is no `[HeyCatch]` warning for it: the transport logs
|
|
116
|
+
its own console error, under its own prefix, for each call it drops.
|
|
117
|
+
|
|
118
|
+
The session cap and the person-property budget apply in React Native too. The
|
|
119
|
+
localhost limit does not: a native event has no page host, so there is
|
|
120
|
+
nothing to tell a simulator from a phone. Server events are not counted at
|
|
121
|
+
all - each one is a call your own code made.
|
|
122
|
+
|
|
90
123
|
## License
|
|
91
124
|
|
|
92
125
|
MIT
|