Skip to content

Commit b94dbc0

Browse files
author
Mathieu Martin
committed
Re-introduce a simplified version of user_agent.
1 parent 6439b8a commit b94dbc0

File tree

7 files changed

+130
-4
lines changed

7 files changed

+130
-4
lines changed

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ ECS defines these fields.
7171
* [Source fields](#source)
7272
* [URL fields](#url)
7373
* [User fields](#user)
74+
* [User agent fields](#user_agent)
7475

7576
## <a name="base"></a> Base fields
7677

@@ -459,6 +460,20 @@ Note also that the `user` fields may be used directly at the top level.
459460
| <a name="user.group"></a>user.group | Group the user is a part of. This field can contain a list of groups, if necessary. | extended | keyword | |
460461

461462

463+
## <a name="user_agent"></a> User agent fields
464+
465+
The user_agent fields normally come from a browser request. They often show up in web service logs coming from the parsed user agent string.
466+
467+
468+
| Field | Description | Level | Type | Example |
469+
|---|---|---|---|---|
470+
| <a name="user_agent.original"></a>user_agent.original | Unparsed version of the user_agent. | extended | keyword | |
471+
| <a name="user_agent.name"></a>user_agent.name | Name of the user agent. | extended | keyword | `Chrome` |
472+
| <a name="user_agent.version"></a>user_agent.version | Version of the user agent. | extended | keyword | |
473+
| <a name="user_agent.device.name"></a>user_agent.device.name | Name of the device. | extended | keyword | `Chrome` |
474+
| <a name="user_agent.device.version"></a>user_agent.device.version | Version of the device. | extended | keyword | |
475+
476+
462477

463478

464479

fields.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1451,3 +1451,42 @@
14511451
description: >
14521452
Group the user is a part of. This field can contain a list of groups, if
14531453
necessary.
1454+
1455+
- name: user_agent
1456+
title: User agent
1457+
group: 2
1458+
description: >
1459+
The user_agent fields normally come from a browser request. They often
1460+
show up in web service logs coming from the parsed user agent string.
1461+
type: group
1462+
fields:
1463+
1464+
- name: original
1465+
level: extended
1466+
type: keyword
1467+
description: >
1468+
Unparsed version of the user_agent.
1469+
1470+
- name: name
1471+
level: extended
1472+
type: keyword
1473+
example: Chrome
1474+
description: >
1475+
Name of the user agent.
1476+
- name: version
1477+
level: extended
1478+
type: keyword
1479+
description: >
1480+
Version of the user agent.
1481+
1482+
- name: device.name
1483+
level: extended
1484+
type: keyword
1485+
example: Chrome
1486+
description: >
1487+
Name of the device.
1488+
- name: device.version
1489+
level: extended
1490+
type: keyword
1491+
description: >
1492+
Version of the device.

schema.csv

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,3 +150,8 @@ user.group,keyword,extended,
150150
user.hash,keyword,extended,
151151
user.id,keyword,core,
152152
user.name,keyword,core,albert
153+
user_agent.device.name,keyword,extended,Chrome
154+
user_agent.device.version,keyword,extended,
155+
user_agent.name,keyword,extended,Chrome
156+
user_agent.original,keyword,extended,
157+
user_agent.version,keyword,extended,

schemas/user_agent.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
- name: user_agent
3+
title: User agent
4+
group: 2
5+
description: >
6+
The user_agent fields normally come from a browser request. They often
7+
show up in web service logs coming from the parsed user agent string.
8+
type: group
9+
fields:
10+
11+
- name: original
12+
level: extended
13+
type: keyword
14+
description: >
15+
Unparsed version of the user_agent.
16+
17+
- name: name
18+
level: extended
19+
type: keyword
20+
example: Chrome
21+
description: >
22+
Name of the user agent.
23+
- name: version
24+
level: extended
25+
type: keyword
26+
description: >
27+
Version of the user agent.
28+
29+
- name: device.name
30+
level: extended
31+
type: keyword
32+
example: Chrome
33+
description: >
34+
Name of the device.
35+
- name: device.version
36+
level: extended
37+
type: keyword
38+
description: >
39+
Version of the device.

template.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -705,6 +705,34 @@
705705
"type": "keyword"
706706
}
707707
}
708+
},
709+
"user_agent": {
710+
"properties": {
711+
"device": {
712+
"properties": {
713+
"name": {
714+
"ignore_above": 1024,
715+
"type": "keyword"
716+
},
717+
"version": {
718+
"ignore_above": 1024,
719+
"type": "keyword"
720+
}
721+
}
722+
},
723+
"name": {
724+
"ignore_above": 1024,
725+
"type": "keyword"
726+
},
727+
"original": {
728+
"ignore_above": 1024,
729+
"type": "keyword"
730+
},
731+
"version": {
732+
"ignore_above": 1024,
733+
"type": "keyword"
734+
}
735+
}
708736
}
709737
}
710738
}

use-cases/filebeat-apache-access.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ ECS fields used in Filebeat for the apache module.
2121
| <a name="http.response.body_sent.bytes"></a>*http.response.body_sent.bytes* | *Http response body bytes sent, currently apache.access.body_sent.bytes* | (use case) | long | `117` |
2222
| <a name="http.referer"></a>*http.referer* | *Http referrer code, currently apache.access.referrer<br/>NOTE: In the RFC its misspell as referer and has become accepted standard* | (use case) | keyword | `http://elastic.co/` |
2323
| <a name="user_agent.&ast;"></a>*user_agent.&ast;* | *User agent fields as in schema. Currently under apache.access.user_agent.*<br/>* | | | |
24-
| <a name="user_agent.original"></a>*user_agent.original* | *Original user agent. Currently apache.access.agent* | (use case) | keyword | `http://elastic.co/` |
24+
| [user_agent.original](../README.md#user_agent.original) | Original user agent. Currently apache.access.agent | extended | keyword | `http://elastic.co/` |
2525
| <a name="geoip.&ast;"></a>*geoip.&ast;* | *User agent fields as in schema. Currently under apache.access.geoip.*<br/>These are extracted from source.ip<br/>Should they be under source.geoip?<br/>* | | | |
2626
| <a name="geoip...."></a>*geoip....* | *All geoip fields.* | (use case) | keyword | |
2727

use-cases/web-logs.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ Using the fields as represented here is not expected to conflict with ECS, but m
1717
| [http.response.body](../README.md#http.response.body) | The full http response body. | extended | keyword | `Hello world` |
1818
| [http.version](../README.md#http.version) | Http version. | extended | keyword | `1.1` |
1919
| <a name="user_agent.&ast;"></a>*user_agent.&ast;* | *The user_agent fields normally come from a browser request. They often show up in web service logs coming from the parsed user agent string.<br/>* | | | |
20-
| <a name="user_agent.original"></a>*user_agent.original* | *Unparsed version of the user_agent.* | (use case) | keyword | |
20+
| [user_agent.original](../README.md#user_agent.original) | Unparsed version of the user_agent. | extended | keyword | |
2121
| <a name="user_agent.device"></a>*user_agent.device* | *Name of the physical device.* | (use case) | keyword | |
22-
| <a name="user_agent.version"></a>*user_agent.version* | *Version of the physical device.* | (use case) | keyword | |
22+
| [user_agent.version](../README.md#user_agent.version) | Version of the physical device. | extended | keyword | |
2323
| <a name="user_agent.major"></a>*user_agent.major* | *Major version of the user agent.* | (use case) | long | |
2424
| <a name="user_agent.minor"></a>*user_agent.minor* | *Minor version of the user agent.* | (use case) | long | |
2525
| <a name="user_agent.patch"></a>*user_agent.patch* | *Patch version of the user agent.* | (use case) | keyword | |
26-
| <a name="user_agent.name"></a>*user_agent.name* | *Name of the user agent.* | (use case) | keyword | `Chrome` |
26+
| [user_agent.name](../README.md#user_agent.name) | Name of the user agent. | extended | keyword | `Chrome` |
2727

2828

2929

0 commit comments

Comments
 (0)