-
Notifications
You must be signed in to change notification settings - Fork 8.2k
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
[Stack Monitoring] Use doc ID to deduplicate shard allocations #143963
[Stack Monitoring] Use doc ID to deduplicate shard allocations #143963
Conversation
Pinging @elastic/infra-monitoring-ui (Team:Infra Monitoring UI) |
So the number (0, 1, 2) means the shard number. So you'll see 4 0s which is: And so on for the other 2 primaries and their 6 replicas. So in your screenshot, the 3 primaries for shard 0, 1 and 2 are allocated to my machine. While the 9 replicas (3 for primary 0, 3 for primary 1, 3 for primary 2) are unassigned. If you add more nodes it becomes a bit more clear. Here you can see 1 replica for each shard (0, 1 and 2) are unassigned, while the 3 primaries are on |
@elasticmachine merge upstream |
💚 Build Succeeded
Metrics [docs]Unknown metric groupsESLint disabled in files
ESLint disabled line counts
Total ESLint disabled count
History
To update your PR or re-run it, just comment with: |
return { | ||
_id: `STATE_UUID:${shard.node}:${shard.index}:s${shard.shard}:${ |
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.
is this s
in s${shard.shard}
intentional?
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.
Yes, it's to mirror the JSON data which looks like shard: 0
, and to match with p
or r1
, "shard 0, primary", "shard 1, replica 2" etc.
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!
…ic#143963) ## Summary This PR depends on Metricbeat changes introduced in this PR elastic/beats#33457 or the Internal collection changes introduced in elastic/elasticsearch#91153. The above PR fixes a bug that makes Metricbeat properly report on all the shards in an index, but our shard legend had the same kind of bug, it only displayed the first replica because it didn't account for the replica "id" in the function that tries to deduplicate the results. Since the above PR ensures we report each shard with a unique document ID, we change the Kibana code to use the document ID instead of trying to regenerate a unique ID. ### How to test Get the changes: `git fetch git@github.com:miltonhultgren/kibana.git sm-shard-allocations:sm-shard-allocations && git switch sm-shard-allocations` Start Elasticsearch, create an index like this: ``` PUT /some-index { "settings": { "index": { "number_of_shards": 3, "number_of_replicas": 3 } } } ``` Run Metricbeat with `xpack.enabled: true`. Visit the Index details page for `some-index` in the Stack Monitoring app and verify that on a single node cluster you have 12 shards, 9 of which are unassigned. <img width="753" alt="Screenshot 2022-10-25 at 17 19 25" src="https://user-images.githubusercontent.com/2564140/197819368-8ea45e1c-7472-4e15-9267-3b5d73378f2a.png"> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> (cherry picked from commit b7debc8)
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
…143963) (#145520) # Backport This will backport the following commits from `main` to `8.6`: - [[Stack Monitoring] Use doc ID to deduplicate shard allocations (#143963)](#143963) <!--- Backport version: 8.9.7 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Milton Hultgren","email":"milton.hultgren@elastic.co"},"sourceCommit":{"committedDate":"2022-11-17T09:44:58Z","message":"[Stack Monitoring] Use doc ID to deduplicate shard allocations (#143963)\n\n## Summary\r\n\r\nThis PR depends on Metricbeat changes introduced in this PR\r\nhttps://github.com/elastic/beats/pull/33457 or the Internal collection\r\nchanges introduced in\r\nhttps://github.com/elastic/elasticsearch/pull/91153.\r\n\r\nThe above PR fixes a bug that makes Metricbeat properly report on all\r\nthe shards in an index, but our shard legend had the same kind of bug,\r\nit only displayed the first replica because it didn't account for the\r\nreplica \"id\" in the function that tries to deduplicate the results.\r\n\r\nSince the above PR ensures we report each shard with a unique document\r\nID, we change the Kibana code to use the document ID instead of trying\r\nto regenerate a unique ID.\r\n\r\n### How to test\r\nGet the changes: `git fetch git@github.com:miltonhultgren/kibana.git\r\nsm-shard-allocations:sm-shard-allocations && git switch\r\nsm-shard-allocations`\r\n\r\nStart Elasticsearch, create an index like this:\r\n```\r\nPUT /some-index\r\n{\r\n \"settings\": {\r\n \"index\": {\r\n \"number_of_shards\": 3, \r\n \"number_of_replicas\": 3\r\n }\r\n }\r\n}\r\n```\r\n\r\nRun Metricbeat with `xpack.enabled: true`. \r\n\r\nVisit the Index details page for `some-index` in the Stack Monitoring\r\napp and verify that on a single node cluster you have 12 shards, 9 of\r\nwhich are unassigned.\r\n\r\n<img width=\"753\" alt=\"Screenshot 2022-10-25 at 17 19 25\"\r\nsrc=\"https://user-images.githubusercontent.com/2564140/197819368-8ea45e1c-7472-4e15-9267-3b5d73378f2a.png\">\r\n\r\nCo-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>","sha":"b7debc839ff6923923fe9a41355bd0318e04cdca","branchLabelMapping":{"^v8.7.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Infra Monitoring UI","release_note:skip","Feature:Stack Monitoring","backport:prev-minor","v8.7.0"],"number":143963,"url":"https://github.com/elastic/kibana/pull/143963","mergeCommit":{"message":"[Stack Monitoring] Use doc ID to deduplicate shard allocations (#143963)\n\n## Summary\r\n\r\nThis PR depends on Metricbeat changes introduced in this PR\r\nhttps://github.com/elastic/beats/pull/33457 or the Internal collection\r\nchanges introduced in\r\nhttps://github.com/elastic/elasticsearch/pull/91153.\r\n\r\nThe above PR fixes a bug that makes Metricbeat properly report on all\r\nthe shards in an index, but our shard legend had the same kind of bug,\r\nit only displayed the first replica because it didn't account for the\r\nreplica \"id\" in the function that tries to deduplicate the results.\r\n\r\nSince the above PR ensures we report each shard with a unique document\r\nID, we change the Kibana code to use the document ID instead of trying\r\nto regenerate a unique ID.\r\n\r\n### How to test\r\nGet the changes: `git fetch git@github.com:miltonhultgren/kibana.git\r\nsm-shard-allocations:sm-shard-allocations && git switch\r\nsm-shard-allocations`\r\n\r\nStart Elasticsearch, create an index like this:\r\n```\r\nPUT /some-index\r\n{\r\n \"settings\": {\r\n \"index\": {\r\n \"number_of_shards\": 3, \r\n \"number_of_replicas\": 3\r\n }\r\n }\r\n}\r\n```\r\n\r\nRun Metricbeat with `xpack.enabled: true`. \r\n\r\nVisit the Index details page for `some-index` in the Stack Monitoring\r\napp and verify that on a single node cluster you have 12 shards, 9 of\r\nwhich are unassigned.\r\n\r\n<img width=\"753\" alt=\"Screenshot 2022-10-25 at 17 19 25\"\r\nsrc=\"https://user-images.githubusercontent.com/2564140/197819368-8ea45e1c-7472-4e15-9267-3b5d73378f2a.png\">\r\n\r\nCo-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>","sha":"b7debc839ff6923923fe9a41355bd0318e04cdca"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v8.7.0","labelRegex":"^v8.7.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/143963","number":143963,"mergeCommit":{"message":"[Stack Monitoring] Use doc ID to deduplicate shard allocations (#143963)\n\n## Summary\r\n\r\nThis PR depends on Metricbeat changes introduced in this PR\r\nhttps://github.com/elastic/beats/pull/33457 or the Internal collection\r\nchanges introduced in\r\nhttps://github.com/elastic/elasticsearch/pull/91153.\r\n\r\nThe above PR fixes a bug that makes Metricbeat properly report on all\r\nthe shards in an index, but our shard legend had the same kind of bug,\r\nit only displayed the first replica because it didn't account for the\r\nreplica \"id\" in the function that tries to deduplicate the results.\r\n\r\nSince the above PR ensures we report each shard with a unique document\r\nID, we change the Kibana code to use the document ID instead of trying\r\nto regenerate a unique ID.\r\n\r\n### How to test\r\nGet the changes: `git fetch git@github.com:miltonhultgren/kibana.git\r\nsm-shard-allocations:sm-shard-allocations && git switch\r\nsm-shard-allocations`\r\n\r\nStart Elasticsearch, create an index like this:\r\n```\r\nPUT /some-index\r\n{\r\n \"settings\": {\r\n \"index\": {\r\n \"number_of_shards\": 3, \r\n \"number_of_replicas\": 3\r\n }\r\n }\r\n}\r\n```\r\n\r\nRun Metricbeat with `xpack.enabled: true`. \r\n\r\nVisit the Index details page for `some-index` in the Stack Monitoring\r\napp and verify that on a single node cluster you have 12 shards, 9 of\r\nwhich are unassigned.\r\n\r\n<img width=\"753\" alt=\"Screenshot 2022-10-25 at 17 19 25\"\r\nsrc=\"https://user-images.githubusercontent.com/2564140/197819368-8ea45e1c-7472-4e15-9267-3b5d73378f2a.png\">\r\n\r\nCo-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>","sha":"b7debc839ff6923923fe9a41355bd0318e04cdca"}}]}] BACKPORT--> Co-authored-by: Milton Hultgren <milton.hultgren@elastic.co>
…ic#143963) ## Summary This PR depends on Metricbeat changes introduced in this PR elastic/beats#33457 or the Internal collection changes introduced in elastic/elasticsearch#91153. The above PR fixes a bug that makes Metricbeat properly report on all the shards in an index, but our shard legend had the same kind of bug, it only displayed the first replica because it didn't account for the replica "id" in the function that tries to deduplicate the results. Since the above PR ensures we report each shard with a unique document ID, we change the Kibana code to use the document ID instead of trying to regenerate a unique ID. ### How to test Get the changes: `git fetch git@github.com:miltonhultgren/kibana.git sm-shard-allocations:sm-shard-allocations && git switch sm-shard-allocations` Start Elasticsearch, create an index like this: ``` PUT /some-index { "settings": { "index": { "number_of_shards": 3, "number_of_replicas": 3 } } } ``` Run Metricbeat with `xpack.enabled: true`. Visit the Index details page for `some-index` in the Stack Monitoring app and verify that on a single node cluster you have 12 shards, 9 of which are unassigned. <img width="753" alt="Screenshot 2022-10-25 at 17 19 25" src="https://user-images.githubusercontent.com/2564140/197819368-8ea45e1c-7472-4e15-9267-3b5d73378f2a.png"> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Summary
This PR depends on Metricbeat changes introduced in this PR elastic/beats#33457 or the Internal collection changes introduced in elastic/elasticsearch#91153.
The above PR fixes a bug that makes Metricbeat properly report on all the shards in an index, but our shard legend had the same kind of bug, it only displayed the first replica because it didn't account for the replica "id" in the function that tries to deduplicate the results.
Since the above PR ensures we report each shard with a unique document ID, we change the Kibana code to use the document ID instead of trying to regenerate a unique ID.
How to test
Get the changes:
git fetch git@github.com:miltonhultgren/kibana.git sm-shard-allocations:sm-shard-allocations && git switch sm-shard-allocations
Start Elasticsearch, create an index like this:
Run Metricbeat with
xpack.enabled: true
.Visit the Index details page for
some-index
in the Stack Monitoring app and verify that on a single node cluster you have 12 shards, 9 of which are unassigned.