Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some CUSTOM Actions not reported #490

Closed
mszerling-ynd opened this issue Feb 2, 2021 · 8 comments
Closed

Some CUSTOM Actions not reported #490

mszerling-ynd opened this issue Feb 2, 2021 · 8 comments
Assignees
Labels
bug Something isn't working

Comments

@mszerling-ynd
Copy link

mszerling-ynd commented Feb 2, 2021

Describe what happened
GlobalRum.get().addUserAction(RumActionType.CUSTOM, name, map) is used

  • When using FragmentViewTrackingStrategy some actions (like 5% off all actions) are not reported, there is really nothing special about that 5% missing actions, but those are always the same actions
  • When using ActivityViewTrackingStrategy the missing actions seem to be reported
  • The action is added immediately before a transition from one fragment to another

Describe what you expected:

  • all actions are always reported

Additional context

  • Android OS version: 7.1
  • Datadog SDK version: 1.7.1
  • There are no errors / warnings in the logs (at level Log.VERBOSE)

It's a big closed-source project so source code extracts cannot be provided.

@mszerling-ynd mszerling-ynd added the bug Something isn't working label Feb 2, 2021
@xgouchet
Copy link
Collaborator

xgouchet commented Feb 3, 2021

Hi @mszerling-ynd ,
One of the limitation of our SDK is that RUM Actions, Errors and Resources are only reported when a View is active (this is a topic we're working on to make sure all information are correctly reported). One of my guess is that those actions are happening between the first fragment's onPause and the next one's onResume. What is strange is that nothing is showing up in the LogCat, did you enable the SDK's logs. You can do so using the following line after you initialised the SDK:

         Datadog.setVerbosity(Log.VERBOSE);

@xgouchet xgouchet self-assigned this Feb 3, 2021
@mszerling-ynd
Copy link
Author

One of my guess is that those actions are happening between the first fragment's onPause and the next one's onResume

The addUserAction method is called while the first fragment is still active

What is strange is that nothing is showing up in the LogCat

Something is shown, but it's just some logging related to syncing with the backend (no errors/warnings related to actions)

@xgouchet
Copy link
Collaborator

xgouchet commented Feb 3, 2021

Another option that might explain this is that only one action can be active at a given time (and action's span can extend with Resources and errors), meaning that some actions might be dropped because of that. We don't have yet any log for this situation but we'll add one very soon, and that way we'll be able to check if this is the case in your app.

@mszerling-ynd
Copy link
Author

In our app there aren't really any bursts (multiple consecutive actions) fired one after another (if that's helpful for debugging).

Just one more comment on this:

The addUserAction method is called while the first fragment is still active

this refers to when the method is called but from what I see in the source code of the sdk the action is processed asynchronously by some executor service so maybe when it is being processed there is no active "View" (fragment in this case).

@xgouchet
Copy link
Collaborator

xgouchet commented Feb 3, 2021

Ok, well we'll add more logs to better understand the situation anyway. And indeed because calls to our API need to return fast, we delegate the creation of the Event to a background thread so it can explain that the action is dealt with after the view is stopped.

@0xnm
Copy link
Contributor

0xnm commented Feb 24, 2021

Hello @mszerling-ynd ,

We have added additional logging in the form of warning when action if dropped if another action is still active for the certain view, hope it will help debugging the issue. The change will be available in the next release.

@eldarcbb
Copy link

eldarcbb commented May 17, 2021

Hello, So what are we supposed to do when getting this message?
RUM Action (CUSTOM on {Some Action Name}) was dropped, because another action is still active for the same view
Calling GlobalRum.get().stopUserAction(map); prior to addUserAction does not seem to help.
Also why does an action have any sort of "active" status. Isn't it supposed to be an event-like thing?

@xgouchet
Copy link
Collaborator

Hi @eldarcbb,
RUM Actions can be active as we link resources and errors to the active action, in an attempt to find correlations that will provide valuable information in Datadog (Error X is caused by Action A, …).
Since version 1.10.0, when you add a custom action, it will never be dropped anymore, even when a previous action is still active.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants