Skip to content

Commit b7c6349

Browse files
seedspiritclaude
andcommitted
refactor(BA-6004): move Prometheus client into manager package
PrometheusClient, queriers, FixedQueryBuilder, metric/value types move from common/clients/prometheus/ to manager/clients/prometheus/. preset.py stays in common because common DTO validators import validate_query_template. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 2901314 commit b7c6349

46 files changed

Lines changed: 110 additions & 101 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,8 @@
1-
from .client import PrometheusClient
2-
from .fixed_query_builder import FixedQueryBuilder, LabelValuesQuery
31
from .preset import LabelMatcher, LabelOperator, MetricPreset, validate_query_template
4-
from .querier import ContainerMetricQuerier, MetricQuerier
5-
from .types import MetricValue, ValueType
62

73
__all__ = [
8-
"FixedQueryBuilder",
94
"LabelMatcher",
105
"LabelOperator",
11-
"LabelValuesQuery",
12-
"MetricValue",
13-
"PrometheusClient",
146
"MetricPreset",
15-
"MetricQuerier",
16-
"ContainerMetricQuerier",
17-
"ValueType",
187
"validate_query_template",
198
]

src/ai/backend/manager/api/gql_legacy/metric/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
import graphene
1010

11-
from ai.backend.common.clients.prometheus.metric_types import ContainerMetricOptionalLabel
1211
from ai.backend.common.dto.clients.prometheus.request import QueryTimeRange
12+
from ai.backend.manager.clients.prometheus.metric_types import ContainerMetricOptionalLabel
1313
from ai.backend.manager.services.metric.actions.container import (
1414
ContainerMetricAction,
1515
)

src/ai/backend/manager/api/gql_legacy/stat_converter.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
from collections.abc import Iterable
22
from typing import Final
33

4-
from ai.backend.common.clients.prometheus.metric_types import KernelLiveStatBatchResult
5-
from ai.backend.common.clients.prometheus.types import MetricValue as PrometheusMetricValue
6-
from ai.backend.common.clients.prometheus.types import ValueType
74
from ai.backend.common.metrics.types import UTILIZATION_METRIC_INTERVAL
85
from ai.backend.common.types import KernelId, MetricValue
6+
from ai.backend.manager.clients.prometheus.metric_types import KernelLiveStatBatchResult
7+
from ai.backend.manager.clients.prometheus.types import MetricValue as PrometheusMetricValue
8+
from ai.backend.manager.clients.prometheus.types import ValueType
99

1010
# Metric-name classification used only while adapting Prometheus samples back
1111
# into the legacy live_stat dict that Graphene/WebUI still expects.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from .client import PrometheusClient
2+
from .fixed_query_builder import FixedQueryBuilder, LabelValuesQuery
3+
from .querier import ContainerMetricQuerier, MetricQuerier
4+
from .types import MetricValue, ValueType
5+
6+
__all__ = [
7+
"ContainerMetricQuerier",
8+
"FixedQueryBuilder",
9+
"LabelValuesQuery",
10+
"MetricQuerier",
11+
"MetricValue",
12+
"PrometheusClient",
13+
"ValueType",
14+
]

src/ai/backend/common/clients/prometheus/client.py renamed to src/ai/backend/manager/clients/prometheus/client.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,7 @@
88
ClientKey,
99
ClientPool,
1010
)
11-
from ai.backend.common.clients.prometheus.fixed_query_builder import FixedQueryBuilder
12-
from ai.backend.common.clients.prometheus.metric_types import (
13-
ContainerMetricOptionalLabel,
14-
ContainerMetricResponseInfo,
15-
ContainerMetricResult,
16-
KernelLiveStatValues,
17-
KernelMetricValuesByKernel,
18-
MetricResultValue,
19-
)
20-
from ai.backend.common.clients.prometheus.preset import LabelMatcher
11+
from ai.backend.common.clients.prometheus.preset import LabelMatcher, MetricPreset
2112
from ai.backend.common.dto.clients.prometheus.request import QueryTimeRange
2213
from ai.backend.common.dto.clients.prometheus.response import (
2314
LabelValueResponse,
@@ -28,8 +19,15 @@
2819
PrometheusConnectionError,
2920
)
3021
from ai.backend.common.types import KernelId
31-
32-
from .preset import MetricPreset
22+
from ai.backend.manager.clients.prometheus.fixed_query_builder import FixedQueryBuilder
23+
from ai.backend.manager.clients.prometheus.metric_types import (
24+
ContainerMetricOptionalLabel,
25+
ContainerMetricResponseInfo,
26+
ContainerMetricResult,
27+
KernelLiveStatValues,
28+
KernelMetricValuesByKernel,
29+
MetricResultValue,
30+
)
3331

3432
DEFAULT_TIMEOUT_SECONDS: float = 30.0
3533

src/ai/backend/common/clients/prometheus/fixed_query_builder.py renamed to src/ai/backend/manager/clients/prometheus/fixed_query_builder.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,14 @@
33
from dataclasses import dataclass
44
from typing import Final
55

6-
from ai.backend.common.clients.prometheus.metric_types import (
6+
from ai.backend.common.clients.prometheus.preset import LabelMatcher, MetricPreset
7+
from ai.backend.common.metrics.types import (
8+
CONTAINER_UTILIZATION_METRIC_LABEL_NAME,
9+
CONTAINER_UTILIZATION_METRIC_NAME,
10+
UTILIZATION_METRIC_INTERVAL,
11+
)
12+
from ai.backend.common.types import KernelId
13+
from ai.backend.manager.clients.prometheus.metric_types import (
714
DIFF_METRICS,
815
RATE_METRICS,
916
STATS_AVG_GAUGE_METRIC_PATTERNS,
@@ -18,15 +25,8 @@
1825
ContainerMetricOptionalLabel,
1926
MetricType,
2027
)
21-
from ai.backend.common.clients.prometheus.preset import LabelMatcher, MetricPreset
22-
from ai.backend.common.clients.prometheus.querier import ContainerMetricQuerier
23-
from ai.backend.common.clients.prometheus.types import ValueType
24-
from ai.backend.common.metrics.types import (
25-
CONTAINER_UTILIZATION_METRIC_LABEL_NAME,
26-
CONTAINER_UTILIZATION_METRIC_NAME,
27-
UTILIZATION_METRIC_INTERVAL,
28-
)
29-
from ai.backend.common.types import KernelId
28+
from ai.backend.manager.clients.prometheus.querier import ContainerMetricQuerier
29+
from ai.backend.manager.clients.prometheus.types import ValueType
3030

3131
_LIVE_STAT_GROUP_BY: Final[frozenset[str]] = frozenset({
3232
"kernel_id",

src/ai/backend/common/clients/prometheus/metric_types.py renamed to src/ai/backend/manager/clients/prometheus/metric_types.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
from uuid import UUID
88

99
from ai.backend.common.clients.prometheus.preset import MetricPreset
10-
from ai.backend.common.clients.prometheus.types import MetricValue, ValueType
1110
from ai.backend.common.dto.clients.prometheus.response import (
1211
MetricResponseInfo,
1312
PrometheusResponse,
1413
)
1514
from ai.backend.common.exception import InvalidAPIParameters
1615
from ai.backend.common.metrics.types import CAPACITY_SENTINEL, CAPACITY_SENTINEL_METRICS
1716
from ai.backend.common.types import KernelId
17+
from ai.backend.manager.clients.prometheus.types import MetricValue, ValueType
1818

1919
__all__ = [
2020
"ContainerLiveStatQueries",

src/ai/backend/common/clients/prometheus/querier.py renamed to src/ai/backend/manager/clients/prometheus/querier.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from uuid import UUID
55

66
from ai.backend.common.clients.prometheus.preset import LabelMatcher
7-
from ai.backend.common.clients.prometheus.types import ValueType
7+
from ai.backend.manager.clients.prometheus.types import ValueType
88

99

1010
class MetricQuerier(ABC):
File renamed without changes.

src/ai/backend/manager/dependencies/domain/composer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@
1717
from .services import ServicesContextDependency, ServicesInput
1818

1919
if TYPE_CHECKING:
20-
from ai.backend.common.clients.prometheus.client import PrometheusClient
2120
from ai.backend.common.clients.valkey_client.valkey_image.client import ValkeyImageClient
2221
from ai.backend.common.clients.valkey_client.valkey_live.client import ValkeyLiveClient
2322
from ai.backend.common.clients.valkey_client.valkey_schedule.client import (
2423
ValkeyScheduleClient,
2524
)
2625
from ai.backend.common.clients.valkey_client.valkey_stat.client import ValkeyStatClient
2726
from ai.backend.common.etcd import AsyncEtcd
27+
from ai.backend.manager.clients.prometheus.client import PrometheusClient
2828
from ai.backend.manager.config.provider import ManagerConfigProvider
2929
from ai.backend.manager.models.storage import StorageSessionManager
3030
from ai.backend.manager.models.utils import ExtendedAsyncSAEngine

0 commit comments

Comments
 (0)