Pārlūkot izejas kodu

Central startup update (#1973)

* allow specifying authtoken in central startup

* set allowManagedFrom

* move redis_mem_notification to the correct place

* add node checkins metric

* wire up min/max connection pool size metrics
Grant Limberg 2 gadi atpakaļ
vecāks
revīzija
e4cb74896b

+ 2 - 0
controller/ConnectionPool.hpp

@@ -61,6 +61,8 @@ public:
         , m_minPoolSize(min_pool_size)
         , m_factory(factory)
     {
+        Metrics::max_pool_size += max_pool_size;
+        Metrics::min_pool_size += min_pool_size;
         while(m_pool.size() < m_minPoolSize){
             m_pool.push_back(m_factory->create());
             Metrics::pool_avail++;

+ 3 - 1
controller/PostgreSQL.cpp

@@ -1145,6 +1145,7 @@ void PostgreSQL::_membersWatcher_Redis() {
 							_redis->xdel(key, id);
 						}
 						lastID = id;
+						Metrics::redis_mem_notification++;
 					}
 				}
 			}
@@ -1687,6 +1688,7 @@ void PostgreSQL::onlineNotification_Postgres()
 					<< " ON CONFLICT (network_id, member_id) DO UPDATE SET address = EXCLUDED.address, last_updated = EXCLUDED.last_updated";
 
 				pipe.insert(memberUpdate.str());
+				Metrics::pgsql_node_checkin++;
 			}
 			while(!pipe.empty()) {
 				pipe.retrieve();
@@ -1794,7 +1796,7 @@ uint64_t PostgreSQL::_doRedisUpdate(sw::redis::Transaction &tx, std::string &con
 			.sadd("network-nodes-all:{"+controllerId+"}:"+networkId, memberId)
 			.hmset("member:{"+controllerId+"}:"+networkId+":"+memberId, record.begin(), record.end());
 		++count;
-		Metrics::redis_mem_notification++;
+		Metrics::redis_node_checkin++;
 	}
 
 	// expire records from all-nodes and network-nodes member list

+ 4 - 0
ext/central-controller-docker/main.sh

@@ -58,6 +58,9 @@ mkdir -p /var/lib/zerotier-one
 pushd /var/lib/zerotier-one
 ln -s $ZT_IDENTITY_PATH/identity.public identity.public
 ln -s $ZT_IDENTITY_PATH/identity.secret identity.secret
+if [ -f  "$ZT_IDENTITY_PATH/authtoken.secret" ]; then
+    ln -s $ZT_IDENTITY_PATH/authtoken.secret authtoken.secret
+fi
 popd
 
 DEFAULT_PORT=9993
@@ -74,6 +77,7 @@ echo "{
             \"nat64\"
         ],
         \"ssoRedirectURL\": \"${ZT_SSO_REDIRECT_URL}\",
+        \"allowManagementFrom\": [\"127.0.0.1\", \"::1\", \"10.0.0.0/8\"],
         ${REDIS}
     }
 }    

+ 4 - 0
node/Metrics.cpp

@@ -52,10 +52,14 @@ namespace ZeroTier {
         { "controller_pgsql_member_notifications_received", "number of member change notifications received via pgsql NOTIFY" };
         prometheus::simpleapi::counter_metric_t pgsql_net_notification
         { "controller_pgsql_network_notifications_received", "number of network change notifications received via pgsql NOTIFY" };
+        prometheus::simpleapi::counter_metric_t pgsql_node_checkin
+        { "controller_pgsql_node_checkin_count", "number of node check-ins (pgsql)" };
         prometheus::simpleapi::counter_metric_t redis_mem_notification
         { "controller_redis_member_notifications_received", "number of member change notifications received via redis" };
         prometheus::simpleapi::counter_metric_t redis_net_notification
         { "controller_redis_network_notifications_received", "number of network change notifications received via redis" };
+        prometheus::simpleapi::counter_metric_t redis_node_checkin
+        { "controller_redis_node_checkin_count", "number of node check-ins (redis)" };
 
         // Central DB Pool Metrics
         prometheus::simpleapi::counter_metric_t conn_counter

+ 2 - 0
node/Metrics.hpp

@@ -40,8 +40,10 @@ namespace ZeroTier {
         // Central Controller Metrics
         extern prometheus::simpleapi::counter_metric_t pgsql_mem_notification;
         extern prometheus::simpleapi::counter_metric_t pgsql_net_notification;
+        extern prometheus::simpleapi::counter_metric_t pgsql_node_checkin;
         extern prometheus::simpleapi::counter_metric_t redis_mem_notification;
         extern prometheus::simpleapi::counter_metric_t redis_net_notification;
+        extern prometheus::simpleapi::counter_metric_t redis_node_checkin;
 
         // Central DB Pool Metrics
         extern prometheus::simpleapi::counter_metric_t conn_counter;