Skip to content

Commit

Permalink
Re-introduce a simplified version of user_agent. (#240)
Browse files Browse the repository at this point in the history
  • Loading branch information
webmat authored Dec 7, 2018
1 parent d741600 commit 23ce673
Show file tree
Hide file tree
Showing 8 changed files with 118 additions and 4 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ All notable changes to this project will be documented in this file based on the
* Add fields `geo.country_name` and `geo.region_iso_code`. #214
* Add `event.kind` and `event.outcome`. #242
* Add `client` and `server` objects and fields. #236
* Reintroduce a streamlined `user_agent` field set. #240

### Improvements
* Improved the definition of the file fields #196
Expand Down
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ ECS defines these fields.
* [Source fields](#source)
* [URL fields](#url)
* [User fields](#user)
* [User agent fields](#user_agent)

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

Expand Down Expand Up @@ -489,6 +490,19 @@ Note also that the `user` fields may be used directly at the top level.
| <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 | |


## <a name="user_agent"></a> User agent fields

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.


| Field | Description | Level | Type | Example |
|---|---|---|---|---|
| <a name="user_agent.original"></a>user_agent.original | Unparsed version of the user_agent. | extended | keyword | |
| <a name="user_agent.name"></a>user_agent.name | Name of the user agent. | extended | keyword | `Chrome` |
| <a name="user_agent.version"></a>user_agent.version | Version of the user agent. | extended | keyword | |
| <a name="user_agent.device.name"></a>user_agent.device.name | Name of the device. | extended | keyword | `Chrome` |





Expand Down
35 changes: 35 additions & 0 deletions fields.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1549,3 +1549,38 @@
description: >
Group the user is a part of. This field can contain a list of groups, if
necessary.
- name: user_agent
title: User agent
group: 2
description: >
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.
type: group
fields:

- name: original
level: extended
type: keyword
index: false
description: >
Unparsed version of the user_agent.
- name: name
level: extended
type: keyword
example: Chrome
description: >
Name of the user agent.
- name: version
level: extended
type: keyword
description: >
Version of the user agent.
- name: device.name
level: extended
type: keyword
example: Chrome
description: >
Name of the device.
4 changes: 4 additions & 0 deletions schema.csv
Original file line number Diff line number Diff line change
Expand Up @@ -162,3 +162,7 @@ user.group,keyword,extended,
user.hash,keyword,extended,
user.id,keyword,core,
user.name,keyword,core,albert
user_agent.device.name,keyword,extended,Chrome
user_agent.name,keyword,extended,Chrome
user_agent.original,keyword,extended,
user_agent.version,keyword,extended,
35 changes: 35 additions & 0 deletions schemas/user_agent.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
- name: user_agent
title: User agent
group: 2
description: >
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.
type: group
fields:

- name: original
level: extended
type: keyword
index: false
description: >
Unparsed version of the user_agent.
- name: name
level: extended
type: keyword
example: Chrome
description: >
Name of the user agent.
- name: version
level: extended
type: keyword
description: >
Version of the user agent.
- name: device.name
level: extended
type: keyword
example: Chrome
description: >
Name of the device.
25 changes: 25 additions & 0 deletions template.json
Original file line number Diff line number Diff line change
Expand Up @@ -753,6 +753,31 @@
"type": "keyword"
}
}
},
"user_agent": {
"properties": {
"device": {
"properties": {
"name": {
"ignore_above": 1024,
"type": "keyword"
}
}
},
"name": {
"ignore_above": 1024,
"type": "keyword"
},
"original": {
"ignore_above": 1024,
"index": false,
"type": "keyword"
},
"version": {
"ignore_above": 1024,
"type": "keyword"
}
}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion use-cases/filebeat-apache-access.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ ECS fields used in Filebeat for the apache module.
| <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` |
| <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/` |
| <a name="user_agent.&ast;"></a>*user_agent.&ast;* | *User agent fields as in schema. Currently under apache.access.user_agent.*<br/>* | | | |
| <a name="user_agent.original"></a>*user_agent.original* | *Original user agent. Currently apache.access.agent* | (use case) | keyword | `http://elastic.co/` |
| [user_agent.original](../README.md#user_agent.original) | Original user agent. Currently apache.access.agent | extended | keyword | `http://elastic.co/` |
| <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/>* | | | |
| <a name="geoip...."></a>*geoip....* | *All geoip fields.* | (use case) | keyword | |

Expand Down
6 changes: 3 additions & 3 deletions use-cases/web-logs.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ Using the fields as represented here is not expected to conflict with ECS, but m
| [http.response.body](../README.md#http.response.body) | The full http response body. | extended | keyword | `Hello world` |
| [http.version](../README.md#http.version) | Http version. | extended | keyword | `1.1` |
| <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/>* | | | |
| <a name="user_agent.original"></a>*user_agent.original* | *Unparsed version of the user_agent.* | (use case) | keyword | |
| [user_agent.original](../README.md#user_agent.original) | Unparsed version of the user_agent. | extended | keyword | |
| <a name="user_agent.device"></a>*user_agent.device* | *Name of the physical device.* | (use case) | keyword | |
| <a name="user_agent.version"></a>*user_agent.version* | *Version of the physical device.* | (use case) | keyword | |
| [user_agent.version](../README.md#user_agent.version) | Version of the physical device. | extended | keyword | |
| <a name="user_agent.major"></a>*user_agent.major* | *Major version of the user agent.* | (use case) | long | |
| <a name="user_agent.minor"></a>*user_agent.minor* | *Minor version of the user agent.* | (use case) | long | |
| <a name="user_agent.patch"></a>*user_agent.patch* | *Patch version of the user agent.* | (use case) | keyword | |
| <a name="user_agent.name"></a>*user_agent.name* | *Name of the user agent.* | (use case) | keyword | `Chrome` |
| [user_agent.name](../README.md#user_agent.name) | Name of the user agent. | extended | keyword | `Chrome` |



0 comments on commit 23ce673

Please sign in to comment.