Class Dynatrace
- java.lang.Object
-
- com.dynatrace.android.agent.Dynatrace
-
public class Dynatrace extends Object
Dynatrace Manual Instrumentation API for Android
-
-
Constructor Summary
Constructors Constructor Description Dynatrace()Returns theDynatraceobject
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static voidapplyUserPrivacyOptions(UserPrivacyOptions userPrivacyOptions)Creates a new session with the specified privacy settings and stores the privacy settings for future sessions.static voidendVisit()Can be called to end the current visit and start a new visit.static DTXActionenterAction(String actionName)Similar toenterAction(String, DTXAction).static DTXActionenterAction(String actionName, DTXAction parentAction)This creates an action object for reporting the time elapsed between two user-defined times.static voidflushEvents()Call this function to flush all collected events immediately.static booleangetCaptureStatus()Get the current data capture statestatic DataCollectionLevelgetDataCollectionLevel()Deprecated.As of version 8.191, replaced bygetUserPrivacyOptions()static StringgetRequestTag()Generates a Dynatrace request tag for a web request, which has to be manually added as http header (header key can be obtained with the methodgetRequestTagHeader()).static StringgetRequestTagHeader()Returns the Dynatrace request tag header name to be used in conjunction with the value returned bygetRequestTag().static UserPrivacyOptionsgetUserPrivacyOptions()Returns the previously specified privacy settings from the user.static WebRequestTiminggetWebRequestTiming(String tag)This represents a network timing instance for reporting the time elapsed between two user-defined events.static WebRequestTiminggetWebRequestTiming(HttpURLConnection connection)This represents a network timing instance for reporting the time elapsed between two user-defined events.static voididentifyUser(String userId)The current visit/session will be tagged with the provided user id.static voididentifyUser(String userId, DTXAction parentAction)Deprecated.As of version 8.215, useidentifyUser(String)insteadstatic voidinstrumentWebView(WebView webView)Instruments the givenWebViewto allow communication between the RUM JavaScript tag and OneAgent for Android.static booleanisCrashReportingOptedIn()Deprecated.As of version 8.191, replaced bygetUserPrivacyOptions()static voidmodifyUserAction(UserActionModifier modifier)Allows to modify the currently pending user action.static voidreportError(String errorName, int errorCode)Similar toDTXAction.reportError(String, int).static voidreportError(String errorName, Throwable throwable)Similar toDTXAction.reportError(String, Throwable).static voidrestoreCookies()Restores the Dynatrace cookies for the specified domains.static voidsetBeaconHeaders(Map<String,String> headers)Puts a set of http headers on every agent http request (f.e.static voidsetCrashReportingOptedIn(boolean confirmed)Deprecated.As of version 8.191, replaced byapplyUserPrivacyOptions(UserPrivacyOptions)static voidsetDataCollectionLevel(DataCollectionLevel dataCollectionLevel)Deprecated.As of version 8.191, replaced byapplyUserPrivacyOptions(UserPrivacyOptions)static voidsetGpsLocation(Location location)Saves the given GPS location for reporting along with the captured data.static voidshutdown()Shuts down the mobile agent gracefully.static voidstartup(Activity activity, com.dynatrace.android.agent.conf.Configuration configuration)Initializing the mobile agent for capturing and reporting data.static voidstartup(Application application, com.dynatrace.android.agent.conf.Configuration configuration)Initializing the mobile agent for capturing and reporting data.static voidstartup(Context context, com.dynatrace.android.agent.conf.Configuration configuration)Deprecated.As of version 8.231, usestartup(Application, Configuration)orstartup(Activity, Configuration)insteadstatic voidtagRequest(HttpURLConnection conn)Places a Dynatrace request tag on the web request, which is evaluated by the corresponding web server agent.
-
-
-
Constructor Detail
-
Dynatrace
public Dynatrace() throws RuntimeExceptionReturns theDynatraceobject- Throws:
RuntimeException
-
-
Method Detail
-
startup
public static void startup(Application application, com.dynatrace.android.agent.conf.Configuration configuration)
Initializing the mobile agent for capturing and reporting data. This method must be called in theApplication.onCreate()method.- Parameters:
application- Android application contextconfiguration- configuration object created byAppMonConfigurationBuilderorDynatraceConfigurationBuilder- Since:
- 8.231
-
startup
public static void startup(Activity activity, com.dynatrace.android.agent.conf.Configuration configuration)
Initializing the mobile agent for capturing and reporting data. This method should be used, when the agent is not immediatly started in the application startup phase.- Parameters:
activity- instance of the currently active activityconfiguration- configuration object created byAppMonConfigurationBuilderorDynatraceConfigurationBuilder- Since:
- 8.231
- See Also:
startup(Application, Configuration)
-
startup
@Deprecated public static void startup(Context context, com.dynatrace.android.agent.conf.Configuration configuration)
Deprecated.As of version 8.231, usestartup(Application, Configuration)orstartup(Activity, Configuration)insteadInitializing the mobile agent for capturing and reporting data. It is recommended that this method is invoked as early as possible in your application startup sequence.- Parameters:
context- Android application contextconfiguration- configuration object created byAppMonConfigurationBuilderorDynatraceConfigurationBuilder
-
shutdown
public static void shutdown()
Shuts down the mobile agent gracefully. All data capturing stops. The mobile agent also attempts to flush the data for up to 5 seconds.
-
getCaptureStatus
public static boolean getCaptureStatus()
Get the current data capture state- Returns:
- true, if data is captured
-
setGpsLocation
public static void setGpsLocation(Location location)
Saves the given GPS location for reporting along with the captured data.- Parameters:
location- to be saved
-
getRequestTagHeader
public static String getRequestTagHeader()
Returns the Dynatrace request tag header name to be used in conjunction with the value returned bygetRequestTag().- Returns:
- the request tag header name
-
getRequestTag
public static String getRequestTag()
Generates a Dynatrace request tag for a web request, which has to be manually added as http header (header key can be obtained with the methodgetRequestTagHeader()). The tag value is evaluated by the corresponding web server agent. The Dynatrace server will link the server-side PurePath data with a mobile user action.Since there is no explicit action, the web request is correlated to an action according to the following rule:
- If there is an open action in the current thread at the time the request is tagged, the web request is assigned (by the mobile agent) to the open action.
- Only AppMon, if there is no open action in the current thread, the web request is assigned (by the AppMon Server) to an action that calls its leaveAction() method in the same thread where the tagging is done. The tagging time must fall between the action enter and leave times.
- If neither of the preceding cases applies, the web request is not assigned to any action.
- Returns:
- the request tag value or an empty string, if the mobile agent is not active
- See Also:
getRequestTagHeader(),DTXAction.getRequestTag()
-
tagRequest
public static void tagRequest(HttpURLConnection conn)
Places a Dynatrace request tag on the web request, which is evaluated by the corresponding web server agent. The Dynatrace server will link the server-side PurePath data with a mobile user action.Since there is no explicit action, the web request is correlated to an action according to the following rule:
- If there is an open action in the current thread at the time the request is tagged, the web request is assigned (by the mobile agent) to the open action.
- If there is no open action in the current thread, the web request is assigned (by the Dynatrace Server) to an action that calls its leaveAction() method in the same thread where the tagging is done. The tagging time must fall between the action enter and leave times.
- If neither of the preceding cases applies, the web request is not assigned to any action. In this case the server-side PurePath data is not linked to the mobile user action (but it can be identified as mobile traffic in the transaction flow).
- Parameters:
conn- the request tag will be added as header to the connection- See Also:
DTXAction.tagRequest(HttpURLConnection)
-
enterAction
public static DTXAction enterAction(String actionName)
Similar toenterAction(String, DTXAction). But the action will be generated as root action.- Parameters:
actionName- name of the action- Returns:
- A non null action instance.
-
enterAction
public static DTXAction enterAction(String actionName, DTXAction parentAction)
This creates an action object for reporting the time elapsed between two user-defined times. For example, you can use the methodsenterActionandleaveActionto determine how long it takes to pull content from a remote server. Within the action scope, you can have visibility to the corresponding backend transactions. Also other event types (reportEvent,reportValueandreportError) can be reported within the context of the action object, thus creating a series of events within an action scope.You must call
leaveActionon an action object to complete an action.- Parameters:
actionName- name of the actionparentAction- a parent action or null to create a new 'root' action object- Returns:
- A non null action instance.
-
endVisit
public static void endVisit()
Can be called to end the current visit and start a new visit. All current actions are closed and sent to the server.
-
reportError
public static void reportError(String errorName, int errorCode)
Similar toDTXAction.reportError(String, int). But the error event is reported as root action.- Parameters:
errorName- error nameerrorCode- integer error code
-
reportError
public static void reportError(String errorName, Throwable throwable)
Similar toDTXAction.reportError(String, Throwable). But the error event is reported as root action.- Parameters:
errorName- error namethrowable- a caught exception
-
flushEvents
public static void flushEvents()
Call this function to flush all collected events immediately. To reduce network chatter, the collected events are usually sent in packages where the oldest event has an age of up to 2 minutes (the default; the maximum age can be configured). Using this function, you can force sending of all collected events regardless of their age.
-
setBeaconHeaders
public static void setBeaconHeaders(Map<String,String> headers)
Puts a set of http headers on every agent http request (f.e. theAuthorizationheader). It also triggers the agent to reconnect to the beacon endpoint with the new headers. To clear the previous headers, call the method with a null or empty value.- Parameters:
headers- a set of http headers- See Also:
ConfigurationBuilder.withCommunicationProblemListener(CommunicationProblemListener)
-
getWebRequestTiming
public static WebRequestTiming getWebRequestTiming(String tag)
This represents a network timing instance for reporting the time elapsed between two user-defined events.You must call
WebRequestTiming.startWebRequestTiming()to start andWebRequestTiming.stopWebRequestTiming(URL, int, String)orWebRequestTiming.stopWebRequestTiming(String, int, String)to complete the timing.- Parameters:
tag- an String tag generated by Dynatrace.getRequestTag()- Returns:
- a non-null WebRequestTiming instance
-
getWebRequestTiming
public static WebRequestTiming getWebRequestTiming(HttpURLConnection connection)
This represents a network timing instance for reporting the time elapsed between two user-defined events.You must call
WebRequestTiming.startWebRequestTiming()to start andWebRequestTiming.stopWebRequestTiming()to complete the timing.- Parameters:
connection- a non-null HttpURLConnection instance- Returns:
- a non-null WebRequestTiming instance
-
identifyUser
public static void identifyUser(String userId)
The current visit/session will be tagged with the provided user id. The value will not be stored and has to be renewed for every new session.- Parameters:
userId- a unique id that allows you to identify the current user. If userId is null or empty, then the user tag will be removed from the session.
-
identifyUser
@Deprecated public static void identifyUser(String userId, DTXAction parentAction)
Deprecated.As of version 8.215, useidentifyUser(String)insteadThe current visit/session will be tagged with the provided user id. The value will not be stored and has to be renewed on every agent startup.- Parameters:
userId- a unique id that allows you to identify the current user. If userId is null or empty, then the user tag will be removed from the session.parentAction- The parent action for the user identify event
-
getUserPrivacyOptions
public static UserPrivacyOptions getUserPrivacyOptions()
Returns the previously specified privacy settings from the user.- Returns:
- the previously specified privacy settings from the user
- Since:
- 8.191
- See Also:
ConfigurationBuilder.withUserOptIn(boolean)
-
applyUserPrivacyOptions
public static void applyUserPrivacyOptions(UserPrivacyOptions userPrivacyOptions)
Creates a new session with the specified privacy settings and stores the privacy settings for future sessions.This method can only be used, when user opt-in feature is enabled. This method call has no effect if the given privacy settings are identical to the previously specified privacy settings.
- Parameters:
userPrivacyOptions- the new privacy settings from the user- Since:
- 8.191
- See Also:
ConfigurationBuilder.withUserOptIn(boolean)
-
isCrashReportingOptedIn
@Deprecated public static boolean isCrashReportingOptedIn()
Deprecated.As of version 8.191, replaced bygetUserPrivacyOptions()Returns the current privacy setting for crash reporting. This method will always return true, when the user optin feature is not used.- Returns:
- current privacy setting for crash reporting
- Throws:
IllegalStateException- if the agent is not started
-
setCrashReportingOptedIn
@Deprecated public static void setCrashReportingOptedIn(boolean confirmed)
Deprecated.As of version 8.191, replaced byapplyUserPrivacyOptions(UserPrivacyOptions)Allows the user to activate/deactivate crash reporting and stores the users decisions for future sessions. This method can only be used, when the agent is started with the user optin feature by methodConfigurationBuilder.withUserOptIn(boolean). To use this feature properly, you also have to activate the crash reporting feature from the agent with the methodConfigurationBuilder.withCrashReporting(boolean).- Parameters:
confirmed- true, if crash reporting is confirmed by the user- Throws:
IllegalStateException- if the agent is not started- See Also:
ConfigurationBuilder.withCrashReporting(boolean)
-
getDataCollectionLevel
@Deprecated public static DataCollectionLevel getDataCollectionLevel()
Deprecated.As of version 8.191, replaced bygetUserPrivacyOptions()Returns the current data collection level. This method will always returnDataCollectionLevel.USER_BEHAVIOR, when the user opt-in feature is not used.- Returns:
- current data collection level
- Throws:
IllegalStateException- if the agent is not started
-
setDataCollectionLevel
@Deprecated public static void setDataCollectionLevel(DataCollectionLevel dataCollectionLevel)
Deprecated.As of version 8.191, replaced byapplyUserPrivacyOptions(UserPrivacyOptions)Allows the user to set the data collection level and stores the users decisions for future sessions. This method can only be used, when the agent is started with the user optin feature by methodConfigurationBuilder.withUserOptIn(boolean). When the user changes the data collection level a new session will be started.- Parameters:
dataCollectionLevel- new data collection level- Throws:
IllegalStateException- if the agent is not started
-
modifyUserAction
public static void modifyUserAction(UserActionModifier modifier)
Allows to modify the currently pending user action. If there is no user action pending or if it is already closed upon modification, no modification takes place.- Parameters:
modifier- modifications that should be applied to the newly created user action- Since:
- 8.189
-
instrumentWebView
public static void instrumentWebView(WebView webView)
Instruments the givenWebViewto allow communication between the RUM JavaScript tag and OneAgent for Android.For hybrid apps with the RUM JavaScript tag inside a
WebView, it is required to execute this method for everyWebViewthat contains the RUM JavaScript tag. Without this method call it can't be ensured that the monitoring data will be combined into same session.Note that this method has no effect for API level 15 and 16 because of security reasons.
- Parameters:
webView- the web view that should be instrumented- Since:
- 8.191
- See Also:
ConfigurationBuilder.withHybridMonitoring(boolean)
-
restoreCookies
public static void restoreCookies()
Restores the Dynatrace cookies for the specified domains.For hybrid apps with web view instrumentation you have to ensure that the Dynatrace cookies are not deleted. You must call this method, when you delete all cookies via
CookieManager.removeAllCookies(ValueCallback)andCookieManager.removeSessionCookies(ValueCallback). Without the cookies it is not possible to combine the data from the RUM JavaScript tag and OneAgent for Android into one session.
-
-