Skip to content

Commit 0d0fa54

Browse files
authored
Advance RFC 0049 (entity store) to stage 2 (#2537)
Advance RFC 0049 (entity store) to stage 2
1 parent 7df7f75 commit 0d0fa54

File tree

34 files changed

+6843
-111
lines changed

34 files changed

+6843
-111
lines changed

CHANGELOG.next.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ Thanks, you're awesome :-) -->
1717
#### Added
1818

1919
* Add `device` value to `event.type` #2524
20+
* Added `entity` fieldset as beta #2537
2021

2122
#### Improvements
2223

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
---
2+
mapped_pages:
3+
- https://www.elastic.co/guide/en/ecs/current/ecs-allowed-values-entity-type.html
4+
applies_to:
5+
stack: all
6+
serverless: all
7+
navigation_title: entity.type
8+
---
9+
10+
# ECS categorization field: entity.type [ecs-allowed-values-entity-type]
11+
12+
A standardized high-level classification of the entity. This provides a normalized way to group similar entities across different providers or systems.
13+
14+
`entity.type` represents a categorization that enables filtering and grouping of entities regardless of their specific implementation or provider. For example, filtering on `entity.type:host` yields all host-related entities whether they are physical machines, virtual machines, or cloud instances.
15+
16+
This field is an array. This allows proper categorization of entities that may fall into multiple types.
17+
18+
**Allowed values**
19+
20+
* [application](#ecs-entity-type-application)
21+
* [bucket](#ecs-entity-type-bucket)
22+
* [container](#ecs-entity-type-container)
23+
* [database](#ecs-entity-type-database)
24+
* [function](#ecs-entity-type-function)
25+
* [host](#ecs-entity-type-host)
26+
* [queue](#ecs-entity-type-queue)
27+
* [service](#ecs-entity-type-service)
28+
* [session](#ecs-entity-type-session)
29+
* [user](#ecs-entity-type-user)
30+
31+
32+
## application [ecs-entity-type-application]
33+
34+
Represents a software application or service. This includes web applications, mobile applications, desktop applications, and other software components that provide functionality to users or other systems. Applications may run on various infrastructure components and can span multiple hosts or containers.
35+
36+
37+
## bucket [ecs-entity-type-bucket]
38+
39+
Represents a storage container or bucket, typically used for object storage. Common examples include AWS S3 buckets, Google Cloud Storage buckets, Azure Blob containers, and other cloud storage services. Buckets are used to organize and store files, objects, or data in cloud environments.
40+
41+
42+
## container [ecs-entity-type-container]
43+
44+
Represents a containerized application or process. This includes Docker containers, Kubernetes pods, and other containerization technologies. Containers encapsulate applications and their dependencies, providing isolation and portability across different environments.
45+
46+
47+
## database [ecs-entity-type-database]
48+
49+
Represents a database system or database instance. This includes relational databases (MySQL, PostgreSQL, Oracle), NoSQL databases (MongoDB, Cassandra, DynamoDB), time-series databases, and other data storage systems. The entity may represent the entire database system or a specific database instance.
50+
51+
52+
## function [ecs-entity-type-function]
53+
54+
Represents a serverless function or Function-as-a-Service (FaaS) component. This includes AWS Lambda functions, Azure Functions, Google Cloud Functions, and other serverless computing resources. Functions are typically event-driven and execute code without managing the underlying infrastructure.
55+
56+
57+
## host [ecs-entity-type-host]
58+
59+
Represents a computing host or machine. This includes physical servers, virtual machines, cloud instances, and other computing resources that can run applications or services. Hosts provide the fundamental computing infrastructure for other entity types.
60+
61+
62+
## queue [ecs-entity-type-queue]
63+
64+
Represents a message queue or messaging system. This includes message brokers, event queues, and other messaging infrastructure components such as Amazon SQS, RabbitMQ, Apache Kafka, and Azure Service Bus. Queues facilitate asynchronous communication between applications and services.
65+
66+
67+
## service [ecs-entity-type-service]
68+
69+
Represents a service or microservice component. This includes web services, APIs, background services, and other service-oriented architecture components. Services provide specific functionality and may communicate with other services to fulfill business requirements.
70+
71+
72+
## session [ecs-entity-type-session]
73+
74+
Represents a user session or connection session. This includes user login sessions, database connections, network sessions, and other temporary interactive or persistent connections between users, applications, or systems.
75+
76+
77+
## user [ecs-entity-type-user]
78+
79+
Represents a user account or identity. This includes human users, service accounts, system accounts, and other identity entities that can interact with systems, applications, or services. Users may have various roles, permissions, and attributes associated with their identity.
80+

docs/reference/ecs-cloud.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ Note also that the `cloud` fields may be used directly at the root of the events
4343
| --- | --- | --- |
4444
| `cloud.origin.*` | [cloud](/reference/ecs-cloud.md) | Provides the cloud information of the origin entity in case of an incoming request or event. |
4545
| `cloud.target.*` | [cloud](/reference/ecs-cloud.md) | Provides the cloud information of the target entity in case of an outgoing request or event. |
46+
| `cloud.target.entity.*` | [entity](/reference/ecs-entity.md) | Entity information for the target cloud entity. |
4647

4748
### Cloud field usage [_cloud_field_usage]
4849

docs/reference/ecs-entity.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
mapped_pages:
3+
- https://www.elastic.co/guide/en/ecs/current/ecs-entity.html
4+
applies_to:
5+
stack: all
6+
serverless: all
7+
---
8+
% This file is automatically generated. Don't edit it manually!
9+
10+
# Entity fields [ecs-entity]
11+
12+
The entity fields provide a standardized way to represent and categorize different types of components within an IT environment, including those that don't have dedicated field sets in ECS. An entity represents a discrete, identifiable component that can be described by a set of attributes and maintains its identity over time.
13+
14+
## Entity field details [_entity_field_details]
15+
16+
| Field | Description | Level |
17+
| --- | --- | --- |
18+
| $$$field-entity-attributes$$$ [entity.attributes](#field-entity-attributes) | _This field is beta and subject to change._ A set of static or semi-static attributes of the entity. Usually boolean or keyword field data types. Use this field set when you need to track static or semi-static characteristics of an entity for advanced searching and correlation of normalized values across different providers/sources and entity types.<br><br>type: object | extended |
19+
| $$$field-entity-behavior$$$ [entity.behavior](#field-entity-behavior) | _This field is beta and subject to change._ A set of ephemeral characteristics of the entity, derived from observed behaviors during a specific time period. Usually boolean field data type. Use this field set when you need to capture and track ephemeral characteristics of an entity for advanced searching, correlation of normalized values across different providers/sources and entity types.<br><br>type: object | extended |
20+
| $$$field-entity-display_name$$$ [entity.display_name](#field-entity-display_name) | _This field is beta and subject to change._ An optional field used when a pretty name is desired for entity-centric operations. This field should not be used for correlation with `*.name` fields for entities with dedicated field sets (e.g., `host`).<br><br>type: keyword<br><br>Multi-fields:<br><br>* entity.display_name.text (type: text) | extended |
21+
| $$$field-entity-id$$$ [entity.id](#field-entity-id) | A unique identifier for the entity. When multiple identifiers exist, this should be the most stable and commonly used identifier that: 1) persists across the entity's lifecycle, 2) ensures uniqueness within its scope, 3) is commonly used for queries and correlation, and 4) is readily available in most observations (logs/events). For entities with dedicated field sets (e.g., host, user), this value should match the corresponding *.id field. Alternative identifiers (e.g., ARNs values in AWS, URLs) can be preserved in the raw field.<br><br>type: keyword | core |
22+
| $$$field-entity-last_seen_timestamp$$$ [entity.last_seen_timestamp](#field-entity-last_seen_timestamp) | _This field is beta and subject to change._ Indicates the date/time when this entity was last "seen," usually based upon the last event/log that is initiated by this entity.<br><br>type: date | extended |
23+
| $$$field-entity-lifecycle$$$ [entity.lifecycle](#field-entity-lifecycle) | _This field is beta and subject to change._ A set of temporal characteristics of the entity. Usually date field data type. Use this field set when you need to track temporal characteristics of an entity for advanced searching and correlation of normalized values across different providers/sources and entity types.<br><br>type: object | extended |
24+
| $$$field-entity-metrics$$$ [entity.metrics](#field-entity-metrics) | _This field is beta and subject to change._ Field set for any fields containing numeric entity metrics. These use dynamic field data type mapping.<br><br>type: object | extended |
25+
| $$$field-entity-name$$$ [entity.name](#field-entity-name) | _This field is beta and subject to change._ The name of the entity. The keyword field enables exact matches for filtering and aggregations, while the text field enables full-text search. For entities with dedicated field sets (e.g., `host`), this field should mirrors the corresponding *.name value.<br><br>type: keyword<br><br>Multi-fields:<br><br>* entity.name.text (type: text) | core |
26+
| $$$field-entity-raw$$$ [entity.raw](#field-entity-raw) | _This field is beta and subject to change._ Original, unmodified fields from the source system. Usually flattened field data type. While the attributes field should be used for normalized fields requiring advanced queries, this field preserves all source metadata with basic search capabilities.<br><br>type: object | extended |
27+
| $$$field-entity-reference$$$ [entity.reference](#field-entity-reference) | _This field is beta and subject to change._ A URI, URL, or other direct reference to access or locate the entity in its source system. This could be an API endpoint, web console URL, or other addressable location. Format may vary by entity type and source system.<br><br>type: keyword | extended |
28+
| $$$field-entity-source$$$ [entity.source](#field-entity-source) | _This field is beta and subject to change._ The module or integration that provided this entity data (similar to event.module).<br><br>type: keyword | core |
29+
| $$$field-entity-type$$$ [entity.type](#field-entity-type) | _This field is beta and subject to change._ A standardized high-level classification of the entity. This provides a normalized way to group similar entities across different providers or systems. Example values: `bucket`, `database`, `container`, `function`, `queue`, `host`, `user`, `application`, `session`, etc.<br><br>type: keyword<br><br>example: `host` | core |
30+
31+
## Field reuse [_field_reuse]
32+
33+
The `entity` fields are expected to be nested at:
34+
35+
* `cloud.target.entity`
36+
* `host.entity`
37+
* `service.target.entity`
38+
* `user.target.entity`
39+
40+
Note also that the `entity` fields are not expected to be used directly at the root of the events.

docs/reference/ecs-host.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ ECS host.* fields should be populated with details about the host on which the e
4141

4242
| Location | Field Set | Description |
4343
| --- | --- | --- |
44+
| `host.entity.*` | [entity](/reference/ecs-entity.md) | Fields to describe various types of entities across IT environments. |
4445
| `host.geo.*` | [geo](/reference/ecs-geo.md) | Fields describing a location. |
4546
| `host.os.*` | [os](/reference/ecs-os.md) | OS fields contain information about the operating system. |
4647
| `host.risk.*` | [risk](/reference/ecs-risk.md) | Fields for describing risk score and level. |

docs/reference/ecs-service.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ Note also that the `service` fields may be used directly at the root of the even
4545
| --- | --- | --- |
4646
| `service.origin.*` | [service](/reference/ecs-service.md) | _Reusing the `service` fields in this location is currently considered beta._ Describes the origin service in case of an incoming request or event. |
4747
| `service.target.*` | [service](/reference/ecs-service.md) | _Reusing the `service` fields in this location is currently considered beta._ Describes the target service in case of an outgoing request or event. |
48+
| `service.target.entity.*` | [entity](/reference/ecs-entity.md) | Entity information for the target service. |
4849

4950
### Service field usage [_service_field_usage]
5051

docs/reference/ecs-user.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ Note also that the `user` fields may be used directly at the root of the events.
5353
| `user.group.*` | [group](/reference/ecs-group.md) | User's group relevant to the event. |
5454
| `user.risk.*` | [risk](/reference/ecs-risk.md) | Fields for describing risk score and level. |
5555
| `user.target.*` | [user](/reference/ecs-user.md) | Targeted user of action taken. |
56+
| `user.target.entity.*` | [entity](/reference/ecs-entity.md) | Entity information for the targeted user. |
5657

5758
### User field usage [_user_field_usage]
5859

docs/reference/toc.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ toc:
2929
- file: ecs-ecs.md
3030
- file: ecs-elf.md
3131
- file: ecs-email.md
32+
- file: ecs-entity.md
33+
children:
34+
- file: ecs-allowed-values-entity-type.md
3235
- file: ecs-error.md
3336
- file: ecs-event.md
3437
- file: ecs-faas.md

0 commit comments

Comments
 (0)