diff --git a/src/xrpld/app/main/Application.cpp b/src/xrpld/app/main/Application.cpp index 9bf94dd907..12427d0ffb 100644 --- a/src/xrpld/app/main/Application.cpp +++ b/src/xrpld/app/main/Application.cpp @@ -1269,10 +1269,12 @@ ApplicationImp::setup(boost::program_options::variables_map const& cmdline) nodeIdentity_ = getNodeIdentity(*this, cmdline); // Now that the node identity is known, inject it into the telemetry - // resource attributes. The Telemetry object was constructed with an - // empty serviceInstanceId because nodeIdentity_ is not available in - // the ApplicationImp member initializer list. - telemetry_->setServiceInstanceId(toBase58(TokenType::NodePublic, nodeIdentity_->first)); + // resource attributes — but only if the user didn't already set a + // custom service_instance_id in [telemetry]. The Telemetry object + // was constructed with an empty serviceInstanceId because + // nodeIdentity_ is not available in the member initializer list. + if (!config_->section("telemetry").exists("service_instance_id")) + telemetry_->setServiceInstanceId(toBase58(TokenType::NodePublic, nodeIdentity_->first)); if (!cluster_->load(config().section(SECTION_CLUSTER_NODES))) {