Skip to content

Commit 4bccd6f

Browse files
committed
platform: Export tester and reporter
1 parent 74aa66c commit 4bccd6f

2 files changed

Lines changed: 70 additions & 42 deletions

File tree

daemon/started_service.go

Lines changed: 66 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,14 @@ func NewStartedService(options ServiceOptions) *StartedService {
110110
return s
111111
}
112112

113+
func (s *StartedService) SetOOMKillerOptions(enabled bool, killerDisabled bool, memoryLimit uint64) {
114+
s.serviceAccess.Lock()
115+
defer s.serviceAccess.Unlock()
116+
s.oomKillerEnabled = enabled
117+
s.oomKillerDisabled = killerDisabled
118+
s.oomMemoryLimit = memoryLimit
119+
}
120+
113121
func (s *StartedService) GetVersion(ctx context.Context, empty *emptypb.Empty) (*Version, error) {
114122
return &Version{
115123
Version: C.Version,
@@ -1113,6 +1121,60 @@ func resolveTailscaleEndpoint(instance *Instance, tag string) (adapter.Endpoint,
11131121
return endpoint, nil
11141122
}
11151123

1124+
func NewNetworkQualityTestProgress(progress networkquality.Progress) *NetworkQualityTestProgress {
1125+
return &NetworkQualityTestProgress{
1126+
Phase: int32(progress.Phase),
1127+
DownloadCapacity: progress.DownloadCapacity,
1128+
UploadCapacity: progress.UploadCapacity,
1129+
DownloadRPM: progress.DownloadRPM,
1130+
UploadRPM: progress.UploadRPM,
1131+
IdleLatencyMs: progress.IdleLatencyMs,
1132+
ElapsedMs: progress.ElapsedMs,
1133+
DownloadCapacityAccuracy: int32(progress.DownloadCapacityAccuracy),
1134+
UploadCapacityAccuracy: int32(progress.UploadCapacityAccuracy),
1135+
DownloadRPMAccuracy: int32(progress.DownloadRPMAccuracy),
1136+
UploadRPMAccuracy: int32(progress.UploadRPMAccuracy),
1137+
}
1138+
}
1139+
1140+
func NewNetworkQualityTestResult(result *networkquality.Result) *NetworkQualityTestProgress {
1141+
return &NetworkQualityTestProgress{
1142+
Phase: int32(networkquality.PhaseDone),
1143+
DownloadCapacity: result.DownloadCapacity,
1144+
UploadCapacity: result.UploadCapacity,
1145+
DownloadRPM: result.DownloadRPM,
1146+
UploadRPM: result.UploadRPM,
1147+
IdleLatencyMs: result.IdleLatencyMs,
1148+
IsFinal: true,
1149+
DownloadCapacityAccuracy: int32(result.DownloadCapacityAccuracy),
1150+
UploadCapacityAccuracy: int32(result.UploadCapacityAccuracy),
1151+
DownloadRPMAccuracy: int32(result.DownloadRPMAccuracy),
1152+
UploadRPMAccuracy: int32(result.UploadRPMAccuracy),
1153+
}
1154+
}
1155+
1156+
func NewSTUNTestProgress(progress stun.Progress) *STUNTestProgress {
1157+
return &STUNTestProgress{
1158+
Phase: int32(progress.Phase),
1159+
ExternalAddr: progress.ExternalAddr,
1160+
LatencyMs: progress.LatencyMs,
1161+
NatMapping: int32(progress.NATMapping),
1162+
NatFiltering: int32(progress.NATFiltering),
1163+
}
1164+
}
1165+
1166+
func NewSTUNTestResult(result *stun.Result) *STUNTestProgress {
1167+
return &STUNTestProgress{
1168+
Phase: int32(stun.PhaseDone),
1169+
ExternalAddr: result.ExternalAddr,
1170+
LatencyMs: result.LatencyMs,
1171+
NatMapping: int32(result.NATMapping),
1172+
NatFiltering: int32(result.NATFiltering),
1173+
IsFinal: true,
1174+
NatTypeSupported: result.NATTypeSupported,
1175+
}
1176+
}
1177+
11161178
func (s *StartedService) StartNetworkQualityTest(
11171179
request *NetworkQualityTestRequest,
11181180
server grpc.ServerStreamingServer[NetworkQualityTestProgress],
@@ -1147,19 +1209,7 @@ func (s *StartedService) StartNetworkQualityTest(
11471209
MaxRuntime: time.Duration(request.MaxRuntimeSeconds) * time.Second,
11481210
Context: server.Context(),
11491211
OnProgress: func(p networkquality.Progress) {
1150-
_ = server.Send(&NetworkQualityTestProgress{
1151-
Phase: int32(p.Phase),
1152-
DownloadCapacity: p.DownloadCapacity,
1153-
UploadCapacity: p.UploadCapacity,
1154-
DownloadRPM: p.DownloadRPM,
1155-
UploadRPM: p.UploadRPM,
1156-
IdleLatencyMs: p.IdleLatencyMs,
1157-
ElapsedMs: p.ElapsedMs,
1158-
DownloadCapacityAccuracy: int32(p.DownloadCapacityAccuracy),
1159-
UploadCapacityAccuracy: int32(p.UploadCapacityAccuracy),
1160-
DownloadRPMAccuracy: int32(p.DownloadRPMAccuracy),
1161-
UploadRPMAccuracy: int32(p.UploadRPMAccuracy),
1162-
})
1212+
_ = server.Send(NewNetworkQualityTestProgress(p))
11631213
},
11641214
})
11651215
if nqErr != nil {
@@ -1168,19 +1218,7 @@ func (s *StartedService) StartNetworkQualityTest(
11681218
Error: nqErr.Error(),
11691219
})
11701220
}
1171-
return server.Send(&NetworkQualityTestProgress{
1172-
Phase: int32(networkquality.PhaseDone),
1173-
DownloadCapacity: result.DownloadCapacity,
1174-
UploadCapacity: result.UploadCapacity,
1175-
DownloadRPM: result.DownloadRPM,
1176-
UploadRPM: result.UploadRPM,
1177-
IdleLatencyMs: result.IdleLatencyMs,
1178-
IsFinal: true,
1179-
DownloadCapacityAccuracy: int32(result.DownloadCapacityAccuracy),
1180-
UploadCapacityAccuracy: int32(result.UploadCapacityAccuracy),
1181-
DownloadRPMAccuracy: int32(result.DownloadRPMAccuracy),
1182-
UploadRPMAccuracy: int32(result.UploadRPMAccuracy),
1183-
})
1221+
return server.Send(NewNetworkQualityTestResult(result))
11841222
}
11851223

11861224
func (s *StartedService) StartSTUNTest(
@@ -1207,13 +1245,7 @@ func (s *StartedService) StartSTUNTest(
12071245
Dialer: resolvedDialer,
12081246
Context: server.Context(),
12091247
OnProgress: func(p stun.Progress) {
1210-
_ = server.Send(&STUNTestProgress{
1211-
Phase: int32(p.Phase),
1212-
ExternalAddr: p.ExternalAddr,
1213-
LatencyMs: p.LatencyMs,
1214-
NatMapping: int32(p.NATMapping),
1215-
NatFiltering: int32(p.NATFiltering),
1216-
})
1248+
_ = server.Send(NewSTUNTestProgress(p))
12171249
},
12181250
})
12191251
if stunErr != nil {
@@ -1222,15 +1254,7 @@ func (s *StartedService) StartSTUNTest(
12221254
Error: stunErr.Error(),
12231255
})
12241256
}
1225-
return server.Send(&STUNTestProgress{
1226-
Phase: int32(stun.PhaseDone),
1227-
ExternalAddr: result.ExternalAddr,
1228-
LatencyMs: result.LatencyMs,
1229-
NatMapping: int32(result.NATMapping),
1230-
NatFiltering: int32(result.NATFiltering),
1231-
IsFinal: true,
1232-
NatTypeSupported: result.NATTypeSupported,
1233-
})
1257+
return server.Send(NewSTUNTestResult(result))
12341258
}
12351259

12361260
func (s *StartedService) SubscribeTailscaleStatus(

experimental/libbox/oom_report.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ type oomReporter struct {
6868

6969
var _ oomkiller.OOMReporter = (*oomReporter)(nil)
7070

71+
func NewOOMReporter(startedService *daemon.StartedService) oomkiller.OOMReporter {
72+
return &oomReporter{startedService: startedService}
73+
}
74+
7175
func (r *oomReporter) WriteReport(memoryUsage uint64) error {
7276
draftPath := filepath.Join(sWorkingPath, "oom_draft")
7377
draftInfo, err := os.Stat(draftPath)

0 commit comments

Comments
 (0)