The JSON messages that are submitted from the client frameworks for capture are automatically indexed for search. Each JSON POST is converted to XML and indexed as a Request/Request body field.
This is an example of a raw JSON message POST:
{"serialNumber":0,"messageVersion":"0.0.0.3","sessions":[{"startTime":133518041
5973,"id":"C6A2913845DA422381FC9678856F6000","messages":[{"context":{"type":"LO
AD","name":"HomeActivity_1335180416289"},"offset":318,"type":2,"contextOffset":
0},{"offset":369,"type":1,"contextOffset":50,"mobileState":{"orientation":0,"fr
eeStorage":32235520,"androidState":{"keyboardState":"HIDDEN_FALSE"},"battery":5
0,"freeMemory":164397056,"connectionType":"UMTS","carrier":"Android","networkRe
achability":"ReachableViaWWAN","ip":"0.0.0.0"}},{"offset":1357,"type":1,"contex
tOffset":1037,"mobileState":{"orientation":0,"freeStorage":32235520,"androidSta
te":{"keyboardState":"HIDDEN_FALSE"},"battery":50,"freeMemory":163835904,"conne
ctionType":"UMTS","carrier":"Android","networkReachability":"ReachableViaWWAN",
"ip":"0.0.0.0"}},{"customEvent":{"name":"Screenshot Taken for file:
android.widget.LinearLayout_1335180417333.png"},"offset":2651,"type":5,"context
Offset":2332}]}],"clientEnvironment":{"mobileEnvironment":{"android":{"keyboard
Type":"QWERTY","brand":"generic","fingerPrint":"generic
\/sdk\/generic:2.3.3\/GR
I34\/101070:eng\/test-keys"},"totalMemory":164151296,"totalStorage":12288,"orie
ntationType":"PORTRAIT","appVersion":"1.0.6","manufacturer":"unknown","userId":
"android-build","locale":"English (United
States)","deviceModel":"sdk","language":"English"},"width":480,"height":800,"os
Version":"2.3.3"}}
This is an example of the JSON message converted to XML and indexed:
<RequestBody>
<clientEnvironment>
<height>800</height>
<mobileEnvironment>
<android>
<brand>generic</brand>
<fingerPrint>generic/sdk/generic:
2.3.3/GRI34/101070:eng/test-
keys</fingerPrint>
<keyboardType>QWERTY</keyboardType>
</android>
<appVersion>1.0.6</appVersion>
<deviceModel>sdk</deviceModel>
<language>English</language>
<locale>English (United States)</locale>
<manufacturer>unknown</manufacturer>
<orientationType>PORTRAIT</orientationType>
<totalMemory>164151296</totalMemory>
<totalStorage>12288</totalStorage>
<userId>android-build</userId>
</mobileEnvironment>
<osVersion>2.3.3</osVersion>
<width>480</width>
</clientEnvironment>
<messageVersion>0.0.0.3</messageVersion>
<serialNumber>0</serialNumber>
<sessions>
<id>C6A2913845DA422381FC9678856F6000</id>
<messages>
<context>
<name>HomeActivity_1335180416289</name>
<type>LOAD</type>
</context>
<contextOffset>0</contextOffset>
<offset>318</offset>
<type>2</type>
</messages>
<messages>
<contextOffset>50</contextOffset>
<mobileState>
<androidState>
<keyboardState>HIDDEN_FALSE</keyboardState>
</androidState>
<battery>50</battery>
<carrier>Android</carrier>
<connectionType>UMTS</connectionType>
<freeMemory>164397056</freeMemory>
<freeStorage>32235520</freeStorage>
<ip>0.0.0.0</ip>
<networkReachability>ReachableViaWWAN</networkReachability>
<orientation>0</orientation>
</mobileState>
<offset>369</offset>
<type>1</type>
</messages>
<messages>
<contextOffset>1037</contextOffset>
<mobileState>
<androidState>
<keyboardState>HIDDEN_FALSE</keyboardState>
</androidState>
<battery>50</battery>
<carrier>Android</carrier>
<connectionType>UMTS</connectionType>
<freeMemory>163835904</freeMemory>
<freeStorage>32235520</freeStorage>
<ip>0.0.0.0</ip>
<networkReachability>ReachableViaWWAN</networkReachability>
<orientation>0</orientation>
</mobileState>
<offset>1357</offset>
<type>1</type>
</messages>
<messages>
<contextOffset>2332</contextOffset>
<customEvent>
<name>Screenshot Taken for file:
android.widget.LinearLayout_1335180417333.png</name>
</customEvent>
<offset>2651</offset>
<type>5</type>
</messages>
<startTime>1.33518e+012</startTime>
</sessions>
</RequestBody>
Searching session using text
Use this task as an example of how to search sessions using text.
Through the Portal, you can use the following methods to search for these types of information:
Type | Example | Method of Search |
---|---|---|
Value of JSON property | ReachableviaWWAN |
Values are searchable using the Text in Request field. |
Name of JSON property | networkReachability |
Use the form field search criterion to specify the name of a JSON property for which you would like to search. |
Searching sessions using events
In the steps below, you search for an event + dimension value combination. In this case, you can use the Hit Count
event and one of the following dimensions. Since this event is already associated with these dimensions and is present in all completed sessions, no further configuration is required.
Type of Search | Dimension | Dimension Value | Description |
---|---|---|---|
For specific type of mobile device | Mobile Device |
ios or android |
The Mobile Device dimension contains the appropriate value if the hit was captured from the named type of device. |
For any type of mobile device | Traffic Type |
MOBILE_APP |
The Traffic Type dimension contains the MOBILE_APP value if the hit was captured from a mobile native application. |
Searching for mobile native application sessions from a specific type of mobile device
Use this task as an example of how to search completed sessions for a specific type of mobile application session, such as Android or iOS.
Depending on the volume of traffic to your web application, you might have to wait a while before sufficient sessions are captured and processed by Tealeaf so that you can search for them using this event.
This example shows how to search completed sessions, but you can also search for active sessions.
You can narrow your search by adding extra search terms. They do not have to be event-based search terms.
- In the Portal, select Search > Completed Sessions.
- For the Search Range, select
Only Today
. - Clear the search criteria from the search panel.
- In the left navigation panel, click Events. Do not select the Event Values category.
- Click select an event.
- In the Event Selector, select the
Hit Count
event. - Click Select.
- The Hit Count event is selected. In the Search panel, click Any Dimension.
- Select Mobile Device.
The Dimension Value Selector is displayed.
- Select either Android or iOS.
- Click Select.
Note: You might want to save this search for future use.
- To start the search, click Search.
Searching for mobile native application sessions from any device type
Use this task as an example of how to search for mobile native applications that were sourced from any device type. Using the Traffic Type
dimension, you can locate mobile native application sessions.
- Repeat the steps in the previous example to select the
Hit Count
event. If you still have the search open, you can continue with the following steps. - In the search term panel, click the dimension indicator. In the above example, this link is
Mobile Device - iOS
. - In the Dimension Selector, select Traffic Type.
- Click Select. In the Dimension Value Selector, select MOBILE_APP.
The search term is specified.
You might want to save this search for future use.
- To start the search, click Search.
Note: You can narrow your search by adding more search terms. They do not have to be event-based search terms.
Reviewing session search results
You view the results of a session search in a session list. Search results are displayed in a session list.
When sessions are returned, they are displayed in a session list. You can configure session lists to contain columns of your choosing.
Open a session and search the session request for the following items:
- Message header to see if a mobile device was used for the session
- Traffic type to see if the traffic was from a mobile device
- In the left column, click the Replay icon.
- Select BBR.
- When the session is loaded, click the topmost entry in the Navigation pane on the left.
- In the toolbar, click Request.
- The displayed text is the request for the first hit of the session. Select in the request. Press
CTRL+A
orCommand+A
to select all of the text. - Paste the text into a text editor. Search for:
HTTP_X_TEALEAF=
- If the request variable is found, verify that the value listed next to the above string contains either
(iOS)
or(Android)
. If so, it is a hit from a mobile native application session.If your
Mobile Session
event definition includes mobile web sessions that are captured through UI Capture, you might see value ofClientEvent
for this request variable. - Search the request for:
TLT_TRAFFIC_TYPE=
- If the value for the above is
MOBILE
, it is a hit from a mobile web session. - If the value is
MOBILE_APP
, it is from a hit from a mobile native web application.
- If the value for the above is