mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-30 23:45:28 +08:00
42 lines
1.3 KiB
C++
42 lines
1.3 KiB
C++
/*******************************************************************************
|
|
* Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved
|
|
* Unauthorized copying of this file, via any medium is strictly prohibited.
|
|
* Proprietary and confidential.
|
|
******************************************************************************/
|
|
|
|
|
|
#include "Metrics.h"
|
|
#include "PrometheusMetrics.h"
|
|
|
|
namespace zilliz {
|
|
namespace milvus {
|
|
namespace server {
|
|
|
|
MetricsBase &
|
|
Metrics::CreateMetricsCollector(MetricCollectorType collector_type) {
|
|
switch (collector_type) {
|
|
case MetricCollectorType::PROMETHEUS:
|
|
static PrometheusMetrics instance = PrometheusMetrics::GetInstance();
|
|
return instance;
|
|
default:return MetricsBase::GetInstance();
|
|
}
|
|
}
|
|
|
|
MetricsBase &
|
|
Metrics::GetInstance() {
|
|
ConfigNode &config = ServerConfig::GetInstance().GetConfig(CONFIG_METRIC);
|
|
std::string collector_typr_str = config.GetValue(CONFIG_METRIC_COLLECTOR);
|
|
|
|
if (collector_typr_str == "prometheus") {
|
|
return CreateMetricsCollector(MetricCollectorType::PROMETHEUS);
|
|
} else if (collector_typr_str == "zabbix") {
|
|
return CreateMetricsCollector(MetricCollectorType::ZABBIX);
|
|
} else {
|
|
return CreateMetricsCollector(MetricCollectorType::INVALID);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|