Skip to content

Commit 2aaa5e1

Browse files
author
Mathieu Martin
committed
Re-introduce a simplified version of user_agent.
1 parent ecee038 commit 2aaa5e1

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
@@ -70,6 +70,7 @@ ECS defines these fields.
7070
* [Source fields](#source)
7171
* [URL fields](#url)
7272
* [User fields](#user)
73+
* [User agent fields](#user_agent)
7374

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

@@ -438,6 +439,20 @@ Note also that the `user` fields may be used directly at the top level.
438439
| <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 | |
439440

440441

442+
## <a name="user_agent"></a> User agent fields
443+
444+
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.
445+
446+
447+
| Field | Description | Level | Type | Example |
448+
|---|---|---|---|---|
449+
| <a name="user_agent.original"></a>user_agent.original | Unparsed version of the user_agent. | extended | keyword | |
450+
| <a name="user_agent.name"></a>user_agent.name | Name of the user agent. | extended | keyword | `Chrome` |
451+
| <a name="user_agent.version"></a>user_agent.version | Version of the user agent. | extended | keyword | |
452+
| <a name="user_agent.device.name"></a>user_agent.device.name | Name of the device. | extended | keyword | `Chrome` |
453+
| <a name="user_agent.device.version"></a>user_agent.device.version | Version of the device. | extended | keyword | |
454+
455+
441456

442457

443458

fields.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1335,3 +1335,42 @@
13351335
description: >
13361336
Group the user is a part of. This field can contain a list of groups, if
13371337
necessary.
1338+
1339+
- name: user_agent
1340+
title: User agent
1341+
group: 2
1342+
description: >
1343+
The user_agent fields normally come from a browser request. They often
1344+
show up in web service logs coming from the parsed user agent string.
1345+
type: group
1346+
fields:
1347+
1348+
- name: original
1349+
level: extended
1350+
type: keyword
1351+
description: >
1352+
Unparsed version of the user_agent.
1353+
1354+
- name: name
1355+
level: extended
1356+
type: keyword
1357+
example: Chrome
1358+
description: >
1359+
Name of the user agent.
1360+
- name: version
1361+
level: extended
1362+
type: keyword
1363+
description: >
1364+
Version of the user agent.
1365+
1366+
- name: device.name
1367+
level: extended
1368+
type: keyword
1369+
example: Chrome
1370+
description: >
1371+
Name of the device.
1372+
- name: device.version
1373+
level: extended
1374+
type: keyword
1375+
description: >
1376+
Version of the device.

schema.csv

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,3 +139,8 @@ user.group,keyword,extended,
139139
user.hash,keyword,extended,
140140
user.id,keyword,core,
141141
user.name,keyword,core,
142+
user_agent.device.name,keyword,extended,Chrome
143+
user_agent.device.version,keyword,extended,
144+
user_agent.name,keyword,extended,Chrome
145+
user_agent.original,keyword,extended,
146+
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
@@ -662,6 +662,34 @@
662662
"type": "keyword"
663663
}
664664
}
665+
},
666+
"user_agent": {
667+
"properties": {
668+
"device": {
669+
"properties": {
670+
"name": {
671+
"ignore_above": 1024,
672+
"type": "keyword"
673+
},
674+
"version": {
675+
"ignore_above": 1024,
676+
"type": "keyword"
677+
}
678+
}
679+
},
680+
"name": {
681+
"ignore_above": 1024,
682+
"type": "keyword"
683+
},
684+
"original": {
685+
"ignore_above": 1024,
686+
"type": "keyword"
687+
},
688+
"version": {
689+
"ignore_above": 1024,
690+
"type": "keyword"
691+
}
692+
}
665693
}
666694
}
667695
}

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
| <a name="http.response.body"></a>*http.response.body* | *The full http response body.* | (use case) | keyword | `Hello world` |
1818
| <a name="http.version"></a>*http.version* | *Http version.* | (use case) | 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)