package io.wdd.rpc.status.service;

import io.wdd.rpc.beans.request.MetricQueryEntity;
import io.wdd.rpc.status.beans.AgentMetric;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public interface SyncStatusService {

    /**
     * 同步收集 agentTopicNameList 的节点的存活状态，并返回所有的状态存活结果
     *
     * @param agentTopicNameList
     * @param aliveStatusWaitMaxTime
     * @return
     */
    Map<String, Boolean> SyncCheckAgentIsAlive(List<String> agentTopicNameList, int aliveStatusWaitMaxTime);

    /**
     * 同步收集 节点的运行状态
     *
     * @param agentTopicNameList
     * @param collectMetricWaitMaxTime
     * @return
     */
    Map<String, AgentMetric> SyncCollectAgentMetricStatus(List<String> agentTopicNameList, int collectMetricWaitMaxTime);


    /* Metric 调用的后端接口 */

    /**
     * 根据前端的请求实体，查询相应的Metric信息
     *
     * @return
     */
    ArrayList<AgentMetric> QueryMetricStatus(MetricQueryEntity metricQueryEntity);

}
