diff --git a/cartographer/cloud/internal/map_builder_server.cc b/cartographer/cloud/internal/map_builder_server.cc index ca4719f..4eeec76 100644 --- a/cartographer/cloud/internal/map_builder_server.cc +++ b/cartographer/cloud/internal/map_builder_server.cc @@ -44,6 +44,7 @@ namespace cartographer { namespace cloud { namespace { +static auto* kIncomingDataQueueMetric = metrics::Gauge::Null(); const common::Duration kPopTimeout = common::FromMilliseconds(100); } // namespace @@ -135,6 +136,7 @@ void MapBuilderServer::Shutdown() { void MapBuilderServer::ProcessSensorDataQueue() { LOG(INFO) << "Starting SLAM thread."; while (!shutting_down_) { + kIncomingDataQueueMetric->Set(incoming_data_queue_.Size()); std::unique_ptr<MapBuilderContextInterface::Data> sensor_data = incoming_data_queue_.PopWithTimeout(kPopTimeout); if (sensor_data) { @@ -233,5 +235,12 @@ void MapBuilderServer::WaitUntilIdle() { map_builder_->pose_graph()->RunFinalOptimization(); } +void MapBuilderServer::RegisterMetrics(metrics::FamilyFactory* factory) { + auto* queue_length = factory->NewGaugeFamily( + "cloud_internal_map_builder_server_incoming_data_queue_length", + "Incoming SLAM Data Queue length"); + kIncomingDataQueueMetric = queue_length->Add({}); +} + } // namespace cloud } // namespace cartographer diff --git a/cartographer/cloud/internal/map_builder_server.h b/cartographer/cloud/internal/map_builder_server.h index 8e0cef1..2c403d3 100644 --- a/cartographer/cloud/internal/map_builder_server.h +++ b/cartographer/cloud/internal/map_builder_server.h @@ -31,6 +31,7 @@ #include "cartographer/mapping/local_slam_result_data.h" #include "cartographer/mapping/map_builder.h" #include "cartographer/mapping/trajectory_builder_interface.h" +#include "cartographer/metrics/family_factory.h" #include "cartographer/sensor/internal/dispatchable.h" namespace cartographer { @@ -91,6 +92,8 @@ class MapBuilderServer : public MapBuilderServerInterface { // thread. void Shutdown() final; + static void RegisterMetrics(metrics::FamilyFactory* family_factory); + private: using LocalSlamResultHandlerSubscriptions = std::map<int /* subscription_index */,