参考手册
连接与传输配置
配置后端地址、集群租户、超时、请求头和自定义传输。
每个后端使用一份配置。PrometheusConfig 使用标准 API 路径;VMSingleConfig 与 VMClusterConfig 提供 VictoriaMetrics 对应部署的路径。客户端负责拼接端点后缀。
from metricraft import PrometheusConfig, HttpClientOptions
config = PrometheusConfig(
"http://localhost:9090",
default_step="30s",
http_options=HttpClientOptions(timeout=(3, 20)),
)
config.validate()
超时应放在 http_options 中,顶层 timeout 关键字参数会被拒绝。配置对象可以更新。HttpClientOptions 是冻结容器,其字典会复制,但并非递归不可变。可选注册辅助函数见模型与公共类型。
HTTP 传输插槽使用公开的同步、异步 Protocol 和工厂契约。适配器签名、工厂参数及资源归属见替换 HTTP 传输。
方法与参数
PrometheusConfig
PrometheusConfig()创建后端连接设置。配置对象可变,不适用表达式的不可变保证。
PrometheusConfig(url: str, default_step: str='1m', *, http_options: Optional[HttpClientOptions]=None, **kwargs)
配置与传输验证独立于查询验证。
| 参数 / 类型 | 含义与可接受的值 |
|---|---|
urlstr必填 | 非空后端基础 URL,例如 'http://localhost:9090'。不要追加 /api/v1/query,客户端会添加端点路径。 |
default_stepstr默认值: '1m' | 默认范围查询求值间隔,如 '1m'。应使用正的后端时长,语法最终由后端检查。 |
http_optionsHttpClientOptions | Mapping | None默认值: None | 传输配置。None 使用后端配置的默认值(传输超时 30 秒)。 |
**kwargs关键字参数可变参数 | 额外连接设置。不接受顶层 timeout,请将 timeout 放在 http_options 中。 |
返回值 PrometheusConfig
get_connection_info()返回解析后的后端连接设置与 HTTP 选项。
get_insert_url_base()返回写入基础 URL。PrometheusConfig 没有 VictoriaMetrics 导入端点,因此抛出 NotImplementedError。
get_query_url_base()返回包含部署或租户前缀的查询基础 URL,客户端负责添加具体端点。
http_options返回保存的 HttpClientOptions 对象。
http_options_dict将 HTTP 选项导出为字典,用于配置传输。
set_http_options()替换当前配置对象的 HTTP 选项。
update_http_options()将 HTTP 选项合并到当前配置,保留未指定的设置。
VMSingleConfig
VMSingleConfig()创建后端连接设置。配置对象可变,不适用表达式的不可变保证。
VMSingleConfig(url: str, default_step: str='1m', *, http_options: Optional[HttpClientOptions]=None, **kwargs)
配置与传输验证独立于查询验证。
| 参数 / 类型 | 含义与可接受的值 |
|---|---|
urlstr必填 | 非空后端基础 URL,例如 'http://localhost:9090'。不要追加 /api/v1/query,客户端会添加端点路径。 |
default_stepstr默认值: '1m' | 默认范围查询求值间隔,如 '1m'。应使用正的后端时长,语法最终由后端检查。 |
http_optionsHttpClientOptions | Mapping | None默认值: None | 传输配置。None 使用后端配置的默认值(传输超时 30 秒)。 |
**kwargs关键字参数可变参数 | 额外连接设置。不接受顶层 timeout,请将 timeout 放在 http_options 中。 |
返回值 VMSingleConfig
get_connection_info()返回解析后的后端连接设置与 HTTP 选项。
get_insert_url_base()返回写入基础 URL。PrometheusConfig 没有 VictoriaMetrics 导入端点,因此抛出 NotImplementedError。
get_query_url_base()返回包含部署或租户前缀的查询基础 URL,客户端负责添加具体端点。
http_options返回保存的 HttpClientOptions 对象。
http_options_dict将 HTTP 选项导出为字典,用于配置传输。
set_http_options()替换当前配置对象的 HTTP 选项。
update_http_options()将 HTTP 选项合并到当前配置,保留未指定的设置。
VMClusterConfig
VMClusterConfig()创建后端连接设置。配置对象可变,不适用表达式的不可变保证。
VMClusterConfig(vminsert_url: str, vmselect_url: str, vmstorage_url: str, account_id: int=DEFAULT_ACCOUNT_ID, default_step: str='1m', *, http_options: Optional[HttpClientOptions]=None, **kwargs)
配置与传输验证独立于查询验证。
| 参数 / 类型 | 含义与可接受的值 |
|---|---|
vminsert_urlstr必填 | VictoriaMetrics vminsert 基础 URL,例如 'http://localhost:8480',租户写入路径自动添加。 |
vmselect_urlstr必填 | VictoriaMetrics vmselect 基础 URL,例如 'http://localhost:8481',租户查询路径自动添加。 |
vmstorage_urlstr必填 | VictoriaMetrics vmstorage 基础 URL,例如 'http://localhost:8482'。 |
account_idint默认值: DEFAULT_ACCOUNT_ID | 非负整数集群租户 ID,默认 0。 |
default_stepstr默认值: '1m' | 默认范围查询求值间隔,如 '1m'。应使用正的后端时长,语法最终由后端检查。 |
http_optionsHttpClientOptions | Mapping | None默认值: None | 传输配置。None 使用后端配置的默认值(传输超时 30 秒)。 |
**kwargs关键字参数可变参数 | 额外连接设置。不接受顶层 timeout,请将 timeout 放在 http_options 中。 |
返回值 VMClusterConfig
get_connection_info()返回解析后的后端连接设置与 HTTP 选项。
get_insert_url_base()返回写入基础 URL。PrometheusConfig 没有 VictoriaMetrics 导入端点,因此抛出 NotImplementedError。
get_query_url_base()返回包含部署或租户前缀的查询基础 URL,客户端负责添加具体端点。
http_options返回保存的 HttpClientOptions 对象。
http_options_dict将 HTTP 选项导出为字典,用于配置传输。
set_http_options()替换当前配置对象的 HTTP 选项。
update_http_options()将 HTTP 选项合并到当前配置,保留未指定的设置。
HttpClientOptions
HttpClientOptions()创建冻结的传输选项。请求头与 extras 字典会复制,冻结不会递归冻结字典内容。
HttpClientOptions(timeout: Optional[RawTimeout]=None, default_headers: Optional[HeadersMapping]=None, prepare_request: Optional[Callable[..., Any]]=None, opener: Optional[Callable[..., Any]]=None, client: Optional[SyncHTTPTransport]=None, async_client: Optional[AsyncHTTPTransport]=None, client_factory: Optional[SyncHTTPTransportFactory]=None, async_client_factory: Optional[AsyncHTTPTransportFactory]=None, max_workers: Optional[int]=None, executor: Optional[Any]=None, extras: Optional[Mapping[str, Any]]=None) -> None
配置与传输验证独立于查询验证。
| 参数 / 类型 | 含义与可接受的值 |
|---|---|
timeoutnumber | tuple[number, number] | None默认值: None | 正的连接和读取超时,单位为秒;单个标量同时用于两者。None 表示由所属配置或传输决定。 |
default_headersMapping[str, str]默认值: None | 默认 HTTP 请求头,名称和值会规范化并复制到新字典。 |
prepare_requestCallable | None默认值: None | 发送前准备传输请求的钩子,必须符合所选传输的请求约定。 |
openerCallable | None默认值: None | 可选的 urllib 兼容同步请求 opener。 |
clientSyncHTTPTransport | None默认值: None | 注入同步适配器,get/post 返回解析后的 JSON 字典;客户端负责资源清理。 |
async_clientAsyncHTTPTransport | None默认值: None | 注入异步适配器,可等待的 get/post 返回解析后的 JSON 字典;异步清理使用 aclose。 |
client_factorySyncHTTPTransportFactory | None默认值: None | 未指定 client 时调用,关键字参数为 http_options 和 connection_info。 |
async_client_factoryAsyncHTTPTransportFactory | None默认值: None | 未指定 async_client 时调用的普通工厂,关键字参数为 http_options、connection_info 和 sync_client。 |
max_workersint | None默认值: None | 异步回退执行器的正工作线程数量。None 使用执行器默认值。 |
executorExecutor | None默认值: None | 异步回退使用的可选执行器。外部传入的执行器仍归调用方所有。 |
extrasMapping[str, Any]默认值: None | 复制进配置的额外传输专有选项,具体含义由所选传输决定。 |
返回值 None