Skip to content

Commit cfa983e

Browse files
authored
Fix metrics for graphs started with --model_path (#3560)
Bugfix: CVS-171670 Issue #3556
1 parent f4bd7a3 commit cfa983e

File tree

3 files changed

+45
-10
lines changed

3 files changed

+45
-10
lines changed

src/modelmanager.cpp

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,10 @@ Status ModelManager::startFromConfig() {
233233
if (!status.ok())
234234
return status;
235235

236+
status = loadMetricsFromCLI(config);
237+
if (!status.ok())
238+
return status;
239+
236240
SPDLOG_LOGGER_DEBUG(modelmanager_logger, "Adding mediapipe graph config for {}, {}", mpConfig.getGraphName(), mpConfig.getGraphPath());
237241
mediapipesInConfigFile.push_back(mpConfig);
238242
std::vector<ModelConfig> gatedModelConfigs;
@@ -268,16 +272,9 @@ Status ModelManager::startFromConfig() {
268272
return StatusCode::UNKNOWN_ERROR;
269273
}
270274

271-
// Reading metric config only once per server start
272-
if (!this->metricConfigLoadedOnce) {
273-
status = this->metricConfig.loadFromCLIString(config.metricsEnabled(), config.metricsList());
274-
SPDLOG_LOGGER_DEBUG(modelmanager_logger, "Loading metric cli settings only once per server start.");
275-
276-
this->metricConfigLoadedOnce = true;
277-
} else {
278-
SPDLOG_LOGGER_ERROR(modelmanager_logger, "Metric cli settings already loaded error.");
279-
return StatusCode::INTERNAL_ERROR;
280-
}
275+
status = loadMetricsFromCLI(config);
276+
if (!status.ok())
277+
return status;
281278

282279
if (!status.ok()) {
283280
SPDLOG_LOGGER_ERROR(modelmanager_logger, "Couldn't load metrics settings");
@@ -803,6 +800,20 @@ Status ModelManager::loadCustomLoadersConfig(rapidjson::Document& configJson) {
803800
return firstErrorStatus;
804801
}
805802

803+
Status ModelManager::loadMetricsFromCLI(const Config& config) {
804+
// Reading metric config only once per server start
805+
if (!this->metricConfigLoadedOnce) {
806+
this->metricConfigLoadedOnce = true;
807+
SPDLOG_LOGGER_DEBUG(modelmanager_logger, "Loading metric cli settings only once per server start.");
808+
auto status = this->metricConfig.loadFromCLIString(config.metricsEnabled(), config.metricsList());
809+
return status;
810+
} else {
811+
SPDLOG_LOGGER_ERROR(modelmanager_logger, "Metric cli settings already loaded error.");
812+
return StatusCode::INTERNAL_ERROR;
813+
}
814+
return StatusCode::OK;
815+
}
816+
806817
Status ModelManager::loadMetricsConfig(rapidjson::Document& configJson) {
807818
const auto itr2 = configJson.FindMember("monitoring");
808819
auto& config = ovms::Config::instance();

src/modelmanager.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,7 @@ class ModelManager {
399399
return this->metricConfig;
400400
}
401401

402+
Status loadMetricsFromCLI(const Config& config);
402403
Status loadMetricsConfig(rapidjson::Document& configJson);
403404

404405
/**

src/test/metric_config_test.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,29 @@ TEST_F(MetricsConfigTest, InitOnce) {
236236
ASSERT_EQ(metricConfig2.isFamilyEnabled(METRIC_NAME_REQUESTS_FAIL), false);
237237
}
238238

239+
TEST_F(MetricsConfigTest, StartSingleGraphWithMetrics) {
240+
ConstructorEnabledModelManager manager;
241+
242+
// Serve mediapipe graph with metrics enabled
243+
char* n_argv[] = {
244+
(char*)"ovms",
245+
(char*)"--model_path",
246+
(char*)getGenericFullPathForSrcTest("/ovms/src/test/mediapipe/cli").c_str(),
247+
(char*)"--model_name",
248+
(char*)"some_name",
249+
(char*)"--rest_port",
250+
(char*)"8080",
251+
(char*)"--metrics_enable"};
252+
int arg_count = 8;
253+
ovms::Config::instance().parse(arg_count, n_argv);
254+
255+
auto status = manager.startFromConfig();
256+
ASSERT_TRUE(status.ok());
257+
258+
const auto& metricConfig = manager.getMetricConfig();
259+
ASSERT_EQ(metricConfig.metricsEnabled, true);
260+
}
261+
239262
static const char* modelMetricsAllEnabledConfig = R"(
240263
{
241264
"model_config_list": [

0 commit comments

Comments
 (0)