package com.bocloud.cmp.provider.monitor;

import com.bocloud.cmp.model.fusionsphere.FusionSphereMonitorModel;
import com.bocloud.cmp.model.fusionsphere.FusionSphereMonitorRealTimeModel;
import com.bocloud.cmp.provider.SuperProvider;
import com.bocloud.common.model.BocloudResult;

import java.util.List;

/**
 * 性能数据接口
 *
 * @author weiwei
 */
public interface MonitorProvider extends SuperProvider {
    /**
     * 查询性能数据
     *
     * @param time
     * @param name
     * @param category
     * @param types
     * @return
     */
    default BocloudResult query(String time, String name, String category, List<String> types) {
        return new BocloudResult(false, "need implement");
    }


    //获取指标命名空间
    default BocloudResult metricNamespaces(String resourceUri) {
        return new BocloudResult(false, "need implement");
    }

    //获取指标定义
    default BocloudResult metricDefinitions(String resourceUri, String metricNamespace) {
        return new BocloudResult(false, "need implement");
    }

    //获取指标监控数据
    default BocloudResult metrics(String resourceUri, String timespan, String interval, String metricnames, String aggregation, String metricNamespace
    ) {
        return new BocloudResult(false, "need implement");
    }

    //获取指标监控数据
    default BocloudResult metrics(FusionSphereMonitorModel model, String siteUri) {
        return new BocloudResult(false, "need implement");
    }

    //获取指标监控数据
    default BocloudResult realMetrics(FusionSphereMonitorRealTimeModel model) {
        return new BocloudResult(false, "need implement");
    }
}
