diff --git a/include/knowhere/prometheus_client.h b/include/knowhere/prometheus_client.h index dcfa309b2..c7a517197 100644 --- a/include/knowhere/prometheus_client.h +++ b/include/knowhere/prometheus_client.h @@ -75,6 +75,7 @@ extern const std::unique_ptr prometheusClient; #define DECLARE_PROMETHEUS_HISTOGRAM(name_histogram) extern prometheus::Histogram& name_histogram; DECLARE_PROMETHEUS_HISTOGRAM(knowhere_build_latency); +DECLARE_PROMETHEUS_HISTOGRAM(knowhere_load_latency); DECLARE_PROMETHEUS_HISTOGRAM(knowhere_search_latency); DECLARE_PROMETHEUS_HISTOGRAM(knowhere_range_search_latency); DECLARE_PROMETHEUS_HISTOGRAM(knowhere_ann_iterator_init_latency); diff --git a/src/common/index.cc b/src/common/index.cc index c43279064..948164283 100644 --- a/src/common/index.cc +++ b/src/common/index.cc @@ -179,7 +179,17 @@ Index::Deserialize(const BinarySet& binset, const Json& json) { if (res != Status::success) { return res; } - return this->node->Deserialize(binset, *cfg); + +#ifdef NOT_COMPILE_FOR_SWIG + TimeRecorder rc("Load index", 2); + res = this->node->Deserialize(binset, *cfg); + auto span = rc.ElapseFromBegin("done"); + span *= 0.001; // convert to ms + knowhere_load_latency.Observe(span); +#else + res = this->node->Deserialize(binset, *cfg); +#endif + return res; } template @@ -198,7 +208,17 @@ Index::DeserializeFromFile(const std::string& filename, const Json& json) { if (res != Status::success) { return res; } - return this->node->DeserializeFromFile(filename, *cfg); + +#ifdef NOT_COMPILE_FOR_SWIG + TimeRecorder rc("Load index from file", 2); + res = this->node->DeserializeFromFile(filename, *cfg); + auto span = rc.ElapseFromBegin("done"); + span *= 0.001; // convert to ms + knowhere_load_latency.Observe(span); +#else + res = this->node->DeserializeFromFile(filename, *cfg); +#endif + return res; } template diff --git a/src/common/prometheus_client.cc b/src/common/prometheus_client.cc index 0475eae82..9486a5336 100644 --- a/src/common/prometheus_client.cc +++ b/src/common/prometheus_client.cc @@ -26,6 +26,7 @@ const std::unique_ptr prometheusClient = std::make_unique