package com.easyagents.federation.sql.api;

import java.io.Serializable;

/**
 * 节点本地 JDBC 终止与游标清理通道的累计观测指标。
 *
 * @param overflowFallbacks 主清理队列拒绝后转入隔离通道的次数
 * @param deferredRetries 隔离通道拒绝后进入有界延期重试队列的次数
 * @param unresolvedCleanups 延期队列溢出或 Engine 有界关闭后仍未完成的清理数
 * @param deferredQueueDepth 当前等待重试的清理数
 */
public record FederationCleanupMetrics(
    long overflowFallbacks,
    long deferredRetries,
    long unresolvedCleanups,
    int deferredQueueDepth
) implements Serializable {

    private static final FederationCleanupMetrics EMPTY = new FederationCleanupMetrics(
        0L,
        0L,
        0L,
        0
    );

    /**
     * 返回无清理压力的空指标。
     *
     * @return 空指标
     */
    public static FederationCleanupMetrics empty() {
        return EMPTY;
    }
}
