-
Notifications
You must be signed in to change notification settings - Fork 466
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[System] Update cpu, load, memory dataset with dimensions #5160
Conversation
We are in the progress of starting to adopt TSDB. To enabled TSDB, dimension fields are required. In this PR, dimensions are added to the following dataset: * system.cpu * system.load * system.memory The dimensions that were selected are: * agent.id * container.id * host.name * cloud.instance.id These 4 dimensions should set a good foundation for the dataset selected above. It should make it work well in host, cloud and container environments. Not all dimensions always have to exist. We still need to define a more generic set of dimensions for integrations. The goal of this PR is to enable us testing TSDB on common dataset. It also allows Kibana developers to have dataset ready for testing. As long as TSDB is not enabled and on older versions of the stack, this change will not have any effect.
@@ -196,9 +199,11 @@ | |||
description: > | |||
OS codename, if any. | |||
|
|||
- name: cpu.pct |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This field also exists in fields.yml
, seems it was a duplicate.
🌐 Coverage report
|
When we add a field as a dimension would there be performance benefits while querying the data ? If yes, we may need to rethink what must go as a dimension fields. using |
I don't think there is a direct query performance benefits from less or more dimensions. It is important that it uniquely defines a time serie. Internally we use dimensions to create a tsid and the tsid is used for routing and index sorting. So it does have a direct impact on how well the data gets stored (similar metrics that get routed to the same shard and sorted next together in that shard compress better, which means lower disk space usage, less memory usage, which then can positively impact query performance). |
Wouldn't it be safe to additionally include - cloud.project.id, cloud.provider as dimension fields ? Not all apps will be container based. There could be monolithic apps that run on VMs. Host names can remain same in a multi-regional setup. In such scenario, including cloud.project_id may be needed. |
Good idea, I added the two additional fields. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. nit on the version number.
One side question, many of these fields are ECS fields and we could/should be using the external
definition so all of the descriptions are kept up to date automatically. Any idea how adding the demension
key works with that?
Co-authored-by: Lee E Hinman <[email protected]>
I had quickly tried that and it didn't work. Somehow my dimension setting was overwritten. But I think it is the path we need to investigate I just didn't want to block this change here on it. |
We are in the progress of starting to adopt TSDB. To enabled TSDB, dimension fields are required. In this PR, dimensions are added to the following dataset:
The dimensions that were selected are:
These 4 dimensions should set a good foundation for the dataset selected above. It should make it work well in host, cloud and container environments. Not all dimensions always have to exist. We still need to define a more generic set of dimensions for integrations.
The goal of this PR is to enable us testing TSDB on common dataset. It also allows Kibana developers to have dataset ready for testing.
As long as TSDB is not enabled and on older versions of the stack, this change will not have any effect.