Dashboard
Kibanalytics has a default dashboard for viewing the collected data.
To load the default dashboard, remember to run the following command after the first start of all Kibanalytics services.
docker-compose run node npm run load-dashboards
WARNING
Kibana index needs at last one entry in database to dynamic load properties, so before open the dashboard, ensure to have at last one dispatched event from Kibanalytis, otherwise the dashboard will show multiple errors.
The dashboard can be fully customized within the Kibana interface and also serves as a template for new dashboards. There are many ways to aggregate data, and each project has specific needs and metrics, feel free to modify it and add your own metrics.
To learn more about Kibana tool and how to use it to customize the dashboard, it is recommended to read the oficial Kibana guide.
Below are the default dashboard metrics, a brief description, how they were calculated and the Elasticsearch query example.
Events Metric
Events dispatched by the tracker client lib. The events metric is calculated by couting the total number of calls to the server collect API in a time range.
{
"aggs": {},
"size": 0,
"fields": [
{
"field": "@timestamp",
"format": "date_time"
}
],
"script_fields": {},
"stored_fields": [
"*"
],
"_source": {
"excludes": []
},
"query": {
"bool": {
"must": [],
"filter": [
{
"match_all": {}
},
{
"range": {
"@timestamp": {
"gte": "2022-05-03T17:18:02.580Z",
"lte": "2022-05-03T17:33:02.580Z",
"format": "strict_date_optional_time"
}
}
}
],
"should": [],
"must_not": []
}
}
}
Pageviews Metric
The pageviews metric is calculated by counting the total number of events filtered by event type "pageview" in a time range.
{
"aggs": {},
"size": 0,
"fields": [
{
"field": "@timestamp",
"format": "date_time"
}
],
"script_fields": {},
"stored_fields": [
"*"
],
"_source": {
"excludes": []
},
"query": {
"bool": {
"must": [],
"filter": [
{
"bool": {
"should": [
{
"match_phrase": {
"event.type": "pageview"
}
}
],
"minimum_should_match": 1
}
},
{
"range": {
"@timestamp": {
"gte": "2022-05-03T17:18:38.475Z",
"lte": "2022-05-03T17:33:38.475Z",
"format": "strict_date_optional_time"
}
}
}
],
"should": [],
"must_not": []
}
}
}
Sessions Metric
The sessions metric is calculated by counting the total number of unique session _ids in a time range.
{
"aggs": {
"1": {
"cardinality": {
"field": "session._id.keyword"
}
}
},
"size": 0,
"fields": [
{
"field": "@timestamp",
"format": "date_time"
}
],
"script_fields": {},
"stored_fields": [
"*"
],
"_source": {
"excludes": []
},
"query": {
"bool": {
"must": [],
"filter": [
{
"match_all": {}
},
{
"range": {
"@timestamp": {
"gte": "2022-05-03T17:16:23.898Z",
"lte": "2022-05-03T17:31:23.898Z",
"format": "strict_date_optional_time"
}
}
}
],
"should": [],
"must_not": []
}
}
}
Users Metric
The users metric is calculated by counting the total number of unique user _ids in a time range.
{
"aggs": {
"1": {
"cardinality": {
"field": "user._id.keyword"
}
}
},
"size": 0,
"fields": [
{
"field": "@timestamp",
"format": "date_time"
}
],
"script_fields": {},
"stored_fields": [
"*"
],
"_source": {
"excludes": []
},
"query": {
"bool": {
"must": [],
"filter": [
{
"match_all": {}
},
{
"range": {
"@timestamp": {
"gte": "2022-05-03T17:19:46.716Z",
"lte": "2022-05-03T17:34:46.716Z",
"format": "strict_date_optional_time"
}
}
}
],
"should": [],
"must_not": []
}
}
}
New Users Metric
The new users metric is calculated by counting the total number of unique user _ids in a time range filtered by "user.new" equals to true.
{
"aggs": {
"1": {
"cardinality": {
"field": "user._id.keyword"
}
}
},
"size": 0,
"fields": [
{
"field": "@timestamp",
"format": "date_time"
}
],
"script_fields": {},
"stored_fields": [
"*"
],
"_source": {
"excludes": []
},
"query": {
"bool": {
"must": [],
"filter": [
{
"bool": {
"should": [
{
"match": {
"user.new": true
}
}
],
"minimum_should_match": 1
}
},
{
"range": {
"@timestamp": {
"gte": "2022-05-03T18:06:56.955Z",
"lte": "2022-05-03T18:21:56.955Z",
"format": "strict_date_optional_time"
}
}
}
],
"should": [],
"must_not": []
}
}
}
Overview Area Chart
The overview area chart have values calculated by the same metrics mentioned before (events, pageviews, sessions, users and new users) in a time range.
Pageviews / Session Metric
Pageviews / Session metric is the relation between pageviews and sessions in a time range.
This metric uses Kibana TSVB visualization so query inspection is not supported. Check que visualization for the implementation.
Sessions / User Metric
Sessions / User metric is the relation between sessions and users in a time range.
This metric uses Kibana TSVB visualization so query inspection is not supported. Check que visualization for the implementation.
Bounce Rate Metric
Bounce rate is the number of sessions with only a single pageview event in a time range.
This metric uses Kibana TSVB visualization so query inspection is not supported. Check que visualization for the implementation.
Returning Users Metric
Number of returning users in a time range. It's considered a returning user the total of unique user _ids from not new sessions.
This metric uses Kibana TSVB visualization so query inspection is not supported. Check que visualization for the implementation.
Devices Pie Chart
Chart with the count of devices from unique users by type in a time range. Limited by the top 5 devices.
{
"aggs": {
"2": {
"terms": {
"field": "device.type.keyword",
"order": {
"1": "desc"
},
"size": 5
},
"aggs": {
"1": {
"cardinality": {
"field": "user._id.keyword"
}
}
}
}
},
"size": 0,
"fields": [
{
"field": "@timestamp",
"format": "date_time"
}
],
"script_fields": {},
"stored_fields": [
"*"
],
"_source": {
"excludes": []
},
"query": {
"bool": {
"must": [],
"filter": [
{
"match_all": {}
},
{
"range": {
"@timestamp": {
"gte": "2022-05-11T00:22:27.786Z",
"lte": "2022-05-11T00:37:27.786Z",
"format": "strict_date_optional_time"
}
}
}
],
"should": [],
"must_not": []
}
}
}
Browsers Pie Chart
Chart with the count of browsers from unique users by name in a time range. Limited by the top 5 browsers.
{
"aggs": {
"2": {
"terms": {
"field": "browser.name.keyword",
"order": {
"1": "desc"
},
"size": 5
},
"aggs": {
"1": {
"cardinality": {
"field": "user._id.keyword"
}
}
}
}
},
"size": 0,
"fields": [
{
"field": "@timestamp",
"format": "date_time"
}
],
"script_fields": {},
"stored_fields": [
"*"
],
"_source": {
"excludes": []
},
"query": {
"bool": {
"must": [],
"filter": [
{
"match_all": {}
},
{
"range": {
"@timestamp": {
"gte": "2022-05-11T00:25:37.682Z",
"lte": "2022-05-11T00:40:37.682Z",
"format": "strict_date_optional_time"
}
}
}
],
"should": [],
"must_not": []
}
}
}
Countries Table
Chart with the count of unique users by country in a time range. Limited by the top 19 countries.
{
"aggs": {
"2": {
"terms": {
"field": "ip.country.keyword",
"order": {
"1": "desc"
},
"size": 19
},
"aggs": {
"1": {
"cardinality": {
"field": "user._id.keyword"
}
}
}
}
},
"size": 0,
"fields": [
{
"field": "@timestamp",
"format": "date_time"
}
],
"script_fields": {},
"stored_fields": [
"*"
],
"_source": {
"excludes": []
},
"query": {
"bool": {
"must": [],
"filter": [
{
"match_all": {}
},
{
"range": {
"@timestamp": {
"gte": "2022-05-11T00:27:38.924Z",
"lte": "2022-05-11T00:42:38.924Z",
"format": "strict_date_optional_time"
}
}
}
],
"should": [],
"must_not": []
}
}
}
Overview Map
The overview map have values calculated by the same metrics mentioned before (events, pageviews, sessions and users) in a time range.