Comments (8)
Thanks for details! The problem is clear and we will try to address it.
from dd-sdk-android.
The fix is a part of the 2.6.0 release.
from dd-sdk-android.
Hello @geranzo!
Can you please share the way you set these user properties?
Is it done like that:
val propertiesA = mapOf("a" to "b")
GlobalRumMonitor.get().addAction(..., propertiesA)
val propertiesB = mapOf("c" to "d")
GlobalRumMonitor.get().startView(..., propertiesB)
or you are utilizing Datadog.setUserInfo
to set them?
Basically code snippets will be useful to understand the setup you have. By looking on the description, it seems that you also start/stop views manually, not using our built-in tracking strategies?
from dd-sdk-android.
Can you please share the way you set these user properties?
This is our method to set a user property:
override fun setUserProperty(name: String, value: Any?) {
if (value != null) {
globalRum.get().addAttribute(name, value)
} else {
removeUserProperty(name)
}
}
Basically code snippets will be useful to understand the setup you have. By looking on the description, it seems that you also start/stop views manually, not using our built-in tracking strategies?
Yes, we call globalRum.get().startView(...)
ourselves on a callback from Compose Navigation library.
from dd-sdk-android.
Thanks for a quick response. Can you please expand removeUserProperty
method? Does it call globalRum.get().removeAttribute
? And at which point do you call setUserProperty
- is it only navigation events?
Also is it possible that calls to send custom action are coming from non-UI thread (shouldn't be an issue, but just for the understanding)?
Yes, we call globalRum.get().startView(...) ourselves on a callback from Compose Navigation library.
We have dd-sdk-android-compose
module with NavigationViewTrackingEffect
to auto-instrument Compose Navigation. If it doesn't work for your setup, we are open to improve it per your feedback.
from dd-sdk-android.
Can you please expand
removeUserProperty
method? Does it callglobalRum.get().removeAttribute
?
Yes, it does:
override fun removeUserProperty(name: String) {
globalRum.get().removeAttribute(name)
}
And at which point do you call
setUserProperty
- is it only navigation events?
No, we have a couple more properties that we want to track for the user like e.g. state of a ringer mode or DnD state, theme light or dark etc.
Also is it possible that calls to send custom action are coming from non-UI thread (shouldn't be an issue, but just for the understanding)?
No, every time we are about to call some API like addAttribute
, startView
or addAction
etc., we launch a coroutine on Dispatchers.Main.immediate
.
We have
dd-sdk-android-compose
module withNavigationViewTrackingEffect
to auto-instrument Compose Navigation. If it doesn't work for your setup, we are open to improve it per your feedback.
It wasn't probably available at the time we were integrating with DD.
from dd-sdk-android.
Closing this as it was fixed and will be delivered in the our next sdk release.
from dd-sdk-android.
Thank you! Very much appreciated.
from dd-sdk-android.
Related Issues (20)
- Lower than expected startup times since 2.6.0 HOT 2
- Logging: setNetworkInfoEnabled(false) doesn't seem to take effect HOT 5
- ANR on `Rum.enable()` HOT 7
- Rum works but logger don't send logs HOT 6
- Remove a default attribute HOT 2
- Crash generated by DrawableUtils HOT 2
- JankStatsActivityLifecycleListener.onActivityStopped - HOT 4
- setTelemetrySampleRate, explanation HOT 3
- Security vulnerability introduced with SDK v2.7.1 (okio) HOT 2
- Unable to log custom actions HOT 1
- Memory Leak : AggregatingVitalMonitor listeners are never unregistered HOT 3
- Missing DataDog events caused by UnknownError HOT 9
- Cannot implementation com.datadoghq:dd-sdk-android-logs HOT 4
- ./gradlew uploadMappingRelease crashes trying to upload mapping.txt file after release build HOT 2
- How to group views as Service? HOT 1
- Fragment views stopped getting registered HOT 1
- Crash gets assigned to wrong view HOT 1
- Fatal Exception: java.lang.IllegalStateException Recording currently in progress - missing #endRecording() call? HOT 5
- What's the preferred `DataDogInterceptor` sampling rate? HOT 2
- ValueError: Invalid traceparent version HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dd-sdk-android.