atlasbot: always include top metric keys
This commit is contained in:
parent
78763d0c93
commit
51f3549f09
@ -1304,6 +1304,8 @@ async def _select_metric_chunks(
|
|||||||
tag="metric_keys",
|
tag="metric_keys",
|
||||||
)
|
)
|
||||||
selected = _parse_key_list(raw, available_keys, max_keys)
|
selected = _parse_key_list(raw, available_keys, max_keys)
|
||||||
|
if candidate_keys:
|
||||||
|
selected = _merge_metric_keys(selected, candidate_keys, max_keys)
|
||||||
if not selected and candidate_keys:
|
if not selected and candidate_keys:
|
||||||
selected = candidate_keys[:max_keys]
|
selected = candidate_keys[:max_keys]
|
||||||
if not selected:
|
if not selected:
|
||||||
@ -1408,6 +1410,22 @@ def _lines_for_metric_keys(lines: list[str], keys: list[str], max_lines: int = 0
|
|||||||
return selected
|
return selected
|
||||||
|
|
||||||
|
|
||||||
|
def _merge_metric_keys(current: list[str], candidates: list[str], max_keys: int) -> list[str]:
|
||||||
|
merged: list[str] = []
|
||||||
|
seen = set()
|
||||||
|
for key in current:
|
||||||
|
if key and key not in seen:
|
||||||
|
merged.append(key)
|
||||||
|
seen.add(key)
|
||||||
|
for key in candidates:
|
||||||
|
if key and key not in seen:
|
||||||
|
merged.append(key)
|
||||||
|
seen.add(key)
|
||||||
|
if len(merged) >= max_keys:
|
||||||
|
break
|
||||||
|
return merged[:max_keys]
|
||||||
|
|
||||||
|
|
||||||
def _merge_fact_lines(primary: list[str], fallback: list[str]) -> list[str]:
|
def _merge_fact_lines(primary: list[str], fallback: list[str]) -> list[str]:
|
||||||
seen = set()
|
seen = set()
|
||||||
merged: list[str] = []
|
merged: list[str] = []
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user