Repository navigation
[core][gcs] Add a bounded TableName label to GCS Store count and latency metrics #65583
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
Merged
rueian
merged 4 commits into
ray-project:master
from
zzchun:ray-16-gcs-store-table-name-label
Oct 13, 2026
Merged
Changes from 3 commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
94d3ebe
[core][gcs] Add a bounded TableName label to GCS Store count and late…
zzchun 97be1c4
[core][gcs] Split out Redis wrapping and capture TableName as std::st…
zzchun 176eb4e
[core][gcs] Update copyright year in new table_name_label files
zzchun 6bc0192
Update doc/source/ray-observability/reference/system-metrics.md
dstrodtman File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| // Copyright 2026 The Ray Authors. | ||
| // | ||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||
| // you may not use this file except in compliance with the License. | ||
| // You may obtain a copy of the License at | ||
| // | ||
| // http://www.apache.org/licenses/LICENSE-2.0 | ||
| // | ||
| // Unless required by applicable law or agreed to in writing, software | ||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| // See the License for the specific language governing permissions and | ||
| // limitations under the License. | ||
|
|
||
| #include "ray/gcs/store_client/table_name_label.h" | ||
|
|
||
| #include <string> | ||
|
|
||
| #include "src/ray/protobuf/gcs.pb.h" | ||
|
|
||
| namespace ray::gcs { | ||
|
|
||
| std::string NormalizeTableNameLabel(const std::string &table_name) { | ||
| rpc::TablePrefix prefix; | ||
| if (!rpc::TablePrefix_Parse(table_name, &prefix)) { | ||
| return std::string(kUnknownTable); | ||
| } | ||
| return table_name; | ||
| } | ||
|
|
||
| } // namespace ray::gcs |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| // Copyright 2026 The Ray Authors. | ||
| // | ||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||
| // you may not use this file except in compliance with the License. | ||
| // You may obtain a copy of the License at | ||
| // | ||
| // http://www.apache.org/licenses/LICENSE-2.0 | ||
| // | ||
| // Unless required by applicable law or agreed to in writing, software | ||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| // See the License for the specific language governing permissions and | ||
| // limitations under the License. | ||
|
|
||
| #pragma once | ||
|
|
||
| #include <string> | ||
| #include <string_view> | ||
|
|
||
| namespace ray::gcs { | ||
|
|
||
| /// TableName label value for a table name that is not an rpc::TablePrefix | ||
| /// constant. Reaching this in production means a StoreClient caller invented a | ||
| /// table name; the label collapses rather than growing the exported series | ||
| /// count. | ||
| inline constexpr std::string_view kUnknownTable = "OTHER"; | ||
|
|
||
| /// TableName label value for AsyncGetNextJobID, which addresses a plain | ||
| /// counter key rather than a GCS table and so has no TablePrefix. Named | ||
| /// explicitly instead of collapsing into kUnknownTable, and spelled to match | ||
| /// the label the Redis layer uses for the underlying INCRBY. | ||
| inline constexpr std::string_view kJobCounterTable = "JobCounter"; | ||
|
|
||
| /// Maps a GCS table name onto a closed label domain: the names of the | ||
| /// rpc::TablePrefix enum, plus kUnknownTable. | ||
| /// | ||
| /// Every table name a StoreClient sees today is produced by TablePrefix_Name, | ||
| /// so this normally returns its argument unchanged. What it adds is that the | ||
| /// domain is bounded by construction rather than by convention: StoreClient | ||
| /// takes an arbitrary std::string, so without this a future caller could turn a | ||
| /// job or actor id into unbounded label cardinality. | ||
| /// | ||
| /// \param table_name The table name a StoreClient method was called with. | ||
| /// \return The matching enum name, or kUnknownTable. | ||
| std::string NormalizeTableNameLabel(const std::string &table_name); | ||
|
|
||
| } // namespace ray::gcs |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.