Event logs required
This collection might not appear if you don't have event logs plugin enabled
There are multiple logs{appID} collections, one collection for each specific app.
Collection name is formed using "logs" string and app ID.
So for example for app with ID "542e95d747f0be510c000004" the collection name would be: "logs542e95d747f0be510c000004"
Collection contains data about requests received from SDKs.
Event logs collection is capped
Event logs collection should contain only last 1000 records, and is mostly for debugging purpose, to see if your SDK setup works correctly. Removing cap could lead to potential performance problems on your server, storing all requests in that collection
Here is the list of fields available:
Field | Description | Example |
---|---|---|
_id | Unique id of the request data | 5705d7a5e7313e322d2ae037 |
ts | Timestamp when request was queued on the device | 1460000677 |
reqts | Timestamp when request was received. Could be different from "ts" because device can be offline and data not sent immediately | 1462304809 |
d | Information about device that made the request as: * id - device_id * d - device model * p - platform * pv - platform version | { "id": "31daad46-1e3d-71ae-7ee1-a022af710f4b", "d": "Windows Phone", "p": "Windows Phone", "pv": "w2:3" } |
l | Information about location from where request was made as: * cc - country of sender * cty - city of sender | { "cc": "TH", "cty": "Unknown" } |
v | Information about app version | "1:2" |
t | Request type (one request can have multiple types, based on data it contains) as: * session, * event, * metric, * user-details, * crashes
Each type as key contains the data about that type in the request as value |
{ "session": { "end_session":1, "session_durations": 30 }, "events": "[{ \"key\":\"Lost\", \"count\":1, \"timestamp\":1509548880, \"segmentation\":{ \"distance\":\"12\" }, \"sum\":0 }]" } |
q | Request data, or basically JSON encoded string of combination from query string plus what parameters were sent in the body, if any. | { \"app_key\":\"1a2b3c\", \"timestamp\":\"1509548902\", \"end_session\":\"1\", \"session_duration\":\"30\", \"device_id\":\"ce786d21b36b961c\", \"ip_address\":\"172.16.254.1\" }" |
h | All the headers that were received with request | "h": { "x-forwarded-for": "172.16.254.1", "x-real-ip": "172.16.254.1", "host": "127.0.0.1:3001", "connection": "close" }, |
s | SDK information, like SDK name and version | "s": { "version": "17.04", "name": "javascript_native_web" }, |
m | Request method as string. Usually GET or POST. | "GET" |
b | Was request part of bulk request: * true - it was in bulk request * false - it was a standalone request | false |
c | Was request canceled, if yes, then this property should have string as reason for request cancellation | "Duplicate request" |
Here's is how an example document could look like on logs colleciton
{
"_id": "59f9e3fda161fc0a250b593c",
"ts": 1509549051,
"reqts": 1509549053,
"d": {
"id": "1ba1e3b3428a63d7",
"d": "AFTM",
"p": "Android",
"pv": "a5:1:1"
},
"l": {
"cc": "US",
"cty": "Houston"
},
"v": "1:4",
"t": {
"session": {
"session_duration": "60"
}
},
"q": "{\"app_key\":\"a43465fa8125975b18364bcd988bca61e11bf170\",\"timestamp\":\"1509549051\",\"session_duration\":\"60\",\"device_id\":\"1ba1e3b3428a63d7\",\"ip_address\":\"172.16.254.1\"}",
"s": {
"version": "17.05",
"name": "java-native-android"
},
"h": {
"x-forwarded-for": "172.16.254.1",
"x-real-ip": "172.16.254.1",
"host": "127.0.0.1:3001",
"connection": "close"
},
"m": "GET",
"b": false,
"c": false
}