Open nvuillam opened 4 years ago
mmmm I see that this package looks much more advanced, and already provides requested feature ....
https://github.com/geoffdutton/amplitude
I'll try to use it and tell here if i still need the enhancement ! ( i started to do it but npm install
fails because package @amplitude/utils is not available on npm registry )
Sorry for the inconvenience @nvuillam - we'll work rightaway to get the @amplitude/utils onto the registry. As for the multiple http calls, we're looking to use the batch endpoint as the default on an open pr (along with some logic for retrying events in the correct order).
I made some tests using amplitude npm package, it seems to work for now :) But as your library seems more lightweight, I may switch back to it once you publish an update :)
Thanks @nvuillam ! We're looking forward to having an update soon. While we are discussing having mutliple events being sent in logEvent, it's also good to note that logEvent
by default (in the new version) waits until the next event loop to batch and send all the events its collected - so as to avoid many many http calls. You can also set the option for it to wait even longer for the batch time to increase and send more events at a time.
Hi @nvuillam - the 1.0.2 behavior is for events to be batched by logEvent
and not be sent until a certain amount of time passes, or flush
is called - I think this might be a suitable solution for your use?
Is the HTTP request done by a separate node instance ? If not, it could be not ok for CLIs , because it wouldn't exit until such batch is processed
@nvuillam apologies for the late response!
It's using setTimeout
to wait some number of seconds in the same node instance, so the concern here is valid. We're adding optioning to make the timings of these waits more configurable - what do you think? We'll also start looking into putting some of this logic in separate node instances.
also, the base optioning is to wait 0 ms - to the next event loop.
Is there any example/doc about how to use this feature? (multiple events in one HTTP call)
While logEvent
does batching under the hood, it's a little bit counter intuitive when we actually care about the response body.
My understanding it calls this API https://developers.amplitude.com/docs/batch-event-upload-api , which makes my response handlers a little bit confusing to write
Summary
Send multiple events with logEvent
Motivations
Avoid multiple HTTP calls :)