SYMBOL INDEX (1605 symbols across 206 files) FILE: agent/agent.go type Agent (line 22) | type Agent struct method gatherStats (line 151) | func (a *Agent) gatherStats(options common.DataRequestOptions) *system... method Start (line 219) | func (a *Agent) Start(serverOptions ServerOptions) error { method getFingerprint (line 224) | func (a *Agent) getFingerprint() string { function NewAgent (line 52) | func NewAgent(dataDir ...string) (agent *Agent, err error) { FILE: agent/agent_cache.go type systemDataCache (line 10) | type systemDataCache struct method Get (line 28) | func (c *systemDataCache) Get(cacheTimeMs uint16) (stats *system.Combi... method Set (line 44) | func (c *systemDataCache) Set(data *system.CombinedData, cacheTimeMs u... type cacheNode (line 15) | type cacheNode struct function NewSystemDataCache (line 21) | func NewSystemDataCache() *systemDataCache { FILE: agent/agent_cache_test.go function createTestCacheData (line 16) | func createTestCacheData() *system.CombinedData { function TestNewSystemDataCache (line 35) | func TestNewSystemDataCache(t *testing.T) { function TestCacheGetSet (line 42) | func TestCacheGetSet(t *testing.T) { function TestCacheFreshness (line 59) | func TestCacheFreshness(t *testing.T) { function TestCacheMultipleIntervals (line 120) | func TestCacheMultipleIntervals(t *testing.T) { function TestCacheOverwrite (line 164) | func TestCacheOverwrite(t *testing.T) { function TestCacheMiss (line 192) | func TestCacheMiss(t *testing.T) { function TestCacheZeroInterval (line 215) | func TestCacheZeroInterval(t *testing.T) { function TestCacheLargeInterval (line 228) | func TestCacheLargeInterval(t *testing.T) { FILE: agent/agent_test_helpers.go method GetConnectionManager (line 6) | func (a *Agent) GetConnectionManager() *ConnectionManager { FILE: agent/battery/battery.go function HasReadableBattery (line 20) | func HasReadableBattery() bool { function GetBatteryStats (line 40) | func GetBatteryStats() (batteryPercent uint8, batteryState uint8, err er... FILE: agent/battery/battery_freebsd.go function HasReadableBattery (line 7) | func HasReadableBattery() bool { function GetBatteryStats (line 11) | func GetBatteryStats() (uint8, uint8, error) { FILE: agent/client.go constant wsDeadline (line 26) | wsDeadline = 70 * time.Second type WebSocketClient (line 31) | type WebSocketClient struct method getOptions (line 94) | func (client *WebSocketClient) getOptions() *gws.ClientOption { method Connect (line 121) | func (client *WebSocketClient) Connect() (err error) { method OnOpen (line 139) | func (client *WebSocketClient) OnOpen(conn *gws.Conn) { method OnClose (line 145) | func (client *WebSocketClient) OnClose(conn *gws.Conn, err error) { method OnMessage (line 154) | func (client *WebSocketClient) OnMessage(conn *gws.Conn, message *gws.... method OnPing (line 177) | func (client *WebSocketClient) OnPing(conn *gws.Conn, message []byte) { method handleAuthChallenge (line 183) | func (client *WebSocketClient) handleAuthChallenge(msg *common.HubRequ... method verifySignature (line 211) | func (client *WebSocketClient) verifySignature(signature []byte) (err ... method Close (line 226) | func (client *WebSocketClient) Close() { method handleHubRequest (line 233) | func (client *WebSocketClient) handleHubRequest(msg *common.HubRequest... method sendMessage (line 246) | func (client *WebSocketClient) sendMessage(data any) error { method sendResponse (line 263) | func (client *WebSocketClient) sendResponse(data any, requestID *uint3... function newWebSocketClient (line 46) | func newWebSocketClient(agent *Agent) (client *WebSocketClient, err erro... function getToken (line 74) | func getToken() (string, error) { function getUserAgent (line 274) | func getUserAgent() string { FILE: agent/client_test.go function TestNewWebSocketClient (line 24) | func TestNewWebSocketClient(t *testing.T) { function TestWebSocketClient_GetOptions (line 109) | func TestWebSocketClient_GetOptions(t *testing.T) { function TestWebSocketClient_VerifySignature (line 173) | func TestWebSocketClient_VerifySignature(t *testing.T) { function TestWebSocketClient_HandleHubRequest (line 257) | func TestWebSocketClient_HandleHubRequest(t *testing.T) { function TestGetUserAgent (line 322) | func TestGetUserAgent(t *testing.T) { function TestWebSocketClient_Close (line 350) | func TestWebSocketClient_Close(t *testing.T) { function TestWebSocketClient_ConnectRateLimit (line 371) | func TestWebSocketClient_ConnectRateLimit(t *testing.T) { function TestGetToken (line 395) | func TestGetToken(t *testing.T) { FILE: agent/connection_manager.go type ConnectionManager (line 18) | type ConnectionManager struct method startWsTicker (line 62) | func (c *ConnectionManager) startWsTicker() { method stopWsTicker (line 71) | func (c *ConnectionManager) stopWsTicker() { method Start (line 79) | func (c *ConnectionManager) Start(serverOptions ServerOptions) error { method handleEvent (line 122) | func (c *ConnectionManager) handleEvent(event ConnectionEvent) { method handleStateChange (line 141) | func (c *ConnectionManager) handleStateChange(newState ConnectionState) { method connect (line 176) | func (c *ConnectionManager) connect() { method startWebSocketConnection (line 195) | func (c *ConnectionManager) startWebSocketConnection() error { method startSSHServer (line 215) | func (c *ConnectionManager) startSSHServer() { method closeWebSocket (line 222) | func (c *ConnectionManager) closeWebSocket() { type ConnectionState (line 30) | type ConnectionState type ConnectionEvent (line 33) | type ConnectionEvent constant Disconnected (line 37) | Disconnected ConnectionState = iota constant WebSocketConnected (line 38) | WebSocketConnected constant SSHConnected (line 39) | SSHConnected constant WebSocketConnect (line 44) | WebSocketConnect ConnectionEvent = iota constant WebSocketDisconnect (line 45) | WebSocketDisconnect constant SSHConnect (line 46) | SSHConnect constant SSHDisconnect (line 47) | SSHDisconnect constant wsTickerInterval (line 50) | wsTickerInterval = 10 * time.Second function newConnectionManager (line 53) | func newConnectionManager(agent *Agent) *ConnectionManager { FILE: agent/connection_manager_test.go function createTestAgent (line 19) | func createTestAgent(t *testing.T) *Agent { function createTestServerOptions (line 26) | func createTestServerOptions(t *testing.T) ServerOptions { function TestConnectionManager_NewConnectionManager (line 47) | func TestConnectionManager_NewConnectionManager(t *testing.T) { function TestConnectionManager_StateTransitions (line 61) | func TestConnectionManager_StateTransitions(t *testing.T) { function TestConnectionManager_EventHandling (line 90) | func TestConnectionManager_EventHandling(t *testing.T) { function TestConnectionManager_TickerManagement (line 153) | func TestConnectionManager_TickerManagement(t *testing.T) { function TestConnectionManager_WebSocketConnectionFlow (line 185) | func TestConnectionManager_WebSocketConnectionFlow(t *testing.T) { function TestConnectionManager_ReconnectionLogic (line 215) | func TestConnectionManager_ReconnectionLogic(t *testing.T) { function TestConnectionManager_ConnectWithRateLimit (line 232) | func TestConnectionManager_ConnectWithRateLimit(t *testing.T) { function TestConnectionManager_StartWithInvalidConfig (line 266) | func TestConnectionManager_StartWithInvalidConfig(t *testing.T) { function TestConnectionManager_CloseWebSocket (line 278) | func TestConnectionManager_CloseWebSocket(t *testing.T) { function TestConnectionManager_ConnectFlow (line 306) | func TestConnectionManager_ConnectFlow(t *testing.T) { FILE: agent/cpu.go function init (line 16) | func init() { type CpuMetrics (line 26) | type CpuMetrics struct function getCpuMetrics (line 37) | func getCpuMetrics(cacheTimeMs uint16) (CpuMetrics, error) { function clampPercent (line 72) | func clampPercent(value float64) float64 { function getPerCoreCpuUsage (line 78) | func getPerCoreCpuUsage(cacheTimeMs uint16) (system.Uint8Slice, error) { function calculateBusy (line 108) | func calculateBusy(t1, t2 cpu.TimesStat) float64 { function getAllBusy (line 121) | func getAllBusy(t cpu.TimesStat) (float64, float64) { FILE: agent/data_dir.go function GetDataDir (line 16) | func GetDataDir(dataDirs ...string) (string, error) { function testDataDirs (line 40) | func testDataDirs(paths []string) (string, error) { function isValidDataDir (line 70) | func isValidDataDir(path string, createIfNotExists bool) (bool, error) { function directoryExists (line 94) | func directoryExists(path string) (bool, error) { function directoryIsWritable (line 110) | func directoryIsWritable(path string) (bool, error) { FILE: agent/data_dir_test.go function TestGetDataDir (line 15) | func TestGetDataDir(t *testing.T) { function TestTestDataDirs (line 90) | func TestTestDataDirs(t *testing.T) { function TestIsValidDataDir (line 140) | func TestIsValidDataDir(t *testing.T) { function TestDirectoryExists (line 186) | func TestDirectoryExists(t *testing.T) { function TestDirectoryIsWritable (line 218) | func TestDirectoryIsWritable(t *testing.T) { FILE: agent/deltatracker/deltatracker.go type Numeric (line 11) | type Numeric interface type DeltaTracker (line 19) | type DeltaTracker struct function NewDeltaTracker (line 26) | func NewDeltaTracker[K comparable, V Numeric]() *DeltaTracker[K, V] { method Set (line 34) | func (t *DeltaTracker[K, V]) Set(id K, value V) { method Deltas (line 51) | func (t *DeltaTracker[K, V]) Deltas() map[K]V { method Previous (line 67) | func (t *DeltaTracker[K, V]) Previous(id K) (V, bool) { method Delta (line 77) | func (t *DeltaTracker[K, V]) Delta(id K) V { method Cycle (line 95) | func (t *DeltaTracker[K, V]) Cycle() { FILE: agent/deltatracker/deltatracker_test.go function ExampleDeltaTracker (line 10) | func ExampleDeltaTracker() { function TestNewDeltaTracker (line 25) | func TestNewDeltaTracker(t *testing.T) { function TestSet (line 32) | func TestSet(t *testing.T) { function TestDeltas (line 42) | func TestDeltas(t *testing.T) { function TestCycle (line 67) | func TestCycle(t *testing.T) { function TestCompleteWorkflow (line 91) | func TestCompleteWorkflow(t *testing.T) { function TestDeltaTrackerWithDifferentTypes (line 117) | func TestDeltaTrackerWithDifferentTypes(t *testing.T) { function TestDelta (line 143) | func TestDelta(t *testing.T) { function TestDeltaWithDifferentTypes (line 173) | func TestDeltaWithDifferentTypes(t *testing.T) { function TestDeltaConcurrentAccess (line 199) | func TestDeltaConcurrentAccess(t *testing.T) { FILE: agent/disk.go type fsRegistrationContext (line 19) | type fsRegistrationContext struct type diskDiscovery (line 28) | type diskDiscovery struct method addFsStat (line 128) | func (d *diskDiscovery) addFsStat(device, mountpoint string, root bool... method addConfiguredRootFs (line 144) | func (d *diskDiscovery) addConfiguredRootFs() bool { method addPartitionRootFs (line 175) | func (d *diskDiscovery) addPartitionRootFs(device, mountpoint string) ... method addLastResortRootFs (line 189) | func (d *diskDiscovery) addLastResortRootFs() { method addConfiguredExtraFsEntry (line 216) | func (d *diskDiscovery) addConfiguredExtraFsEntry(filesystem, customNa... method addConfiguredExtraFilesystems (line 232) | func (d *diskDiscovery) addConfiguredExtraFilesystems(extraFilesystems... method addPartitionExtraFs (line 242) | func (d *diskDiscovery) addPartitionExtraFs(p disk.PartitionStat) { method addExtraFilesystemFolders (line 253) | func (d *diskDiscovery) addExtraFilesystemFolders(folderNames []string) { function parseFilesystemEntry (line 38) | func parseFilesystemEntry(entry string) (device, customName string) { function extraFilesystemPartitionInfo (line 52) | func extraFilesystemPartitionInfo(p disk.PartitionStat) (device, customN... function isDockerSpecialMountpoint (line 61) | func isDockerSpecialMountpoint(mountpoint string) bool { function registerFilesystemStats (line 71) | func registerFilesystemStats(existing map[string]*system.FsStats, device... function isRootFallbackPartition (line 167) | func isRootFallbackPartition(p disk.PartitionStat, rootMountPoint string... function findPartitionByFilesystemSetting (line 205) | func findPartitionByFilesystemSetting(filesystem string, partitions []di... method initializeDiskInfo (line 271) | func (a *Agent) initializeDiskInfo() { method pruneDuplicateRootExtraFilesystems (line 347) | func (a *Agent) pruneDuplicateRootExtraFilesystems() { function hasSameDiskUsage (line 378) | func hasSameDiskUsage(a, b *disk.UsageStat) bool { function withinUsageTolerance (line 389) | func withinUsageTolerance(a, b, tolerance uint64) bool { type ioMatchCandidate (line 396) | type ioMatchCandidate struct function findIoDevice (line 404) | func findIoDevice(filesystem string, diskIoCounters map[string]disk.IOCo... function mostActiveIoDevice (line 445) | func mostActiveIoDevice(diskIoCounters map[string]disk.IOCountersStat) s... function prefixRelated (line 463) | func prefixRelated(a, b string) bool { function filesystemMatchesPartitionSetting (line 473) | func filesystemMatchesPartitionSetting(filesystem string, p disk.Partiti... function normalizeDeviceName (line 494) | func normalizeDeviceName(value string) string { method initializeDiskIoStats (line 503) | func (a *Agent) initializeDiskIoStats(diskIoCounters map[string]disk.IOC... method updateDiskUsage (line 523) | func (a *Agent) updateDiskUsage(systemStats *system.Stats) { method updateDiskIo (line 562) | func (a *Agent) updateDiskIo(cacheTimeMs uint16, systemStats *system.Sta... method getRootMountPoint (line 633) | func (a *Agent) getRootMountPoint() string { FILE: agent/disk_test.go function TestParseFilesystemEntry (line 16) | func TestParseFilesystemEntry(t *testing.T) { function TestExtraFilesystemPartitionInfo (line 96) | func TestExtraFilesystemPartitionInfo(t *testing.T) { function TestBuildFsStatRegistration (line 137) | func TestBuildFsStatRegistration(t *testing.T) { function TestAddConfiguredRootFs (line 282) | func TestAddConfiguredRootFs(t *testing.T) { function TestAddPartitionRootFs (line 349) | func TestAddPartitionRootFs(t *testing.T) { function TestAddLastResortRootFs (line 382) | func TestAddLastResortRootFs(t *testing.T) { function TestAddConfiguredExtraFsEntry (line 412) | func TestAddConfiguredExtraFsEntry(t *testing.T) { function TestAddConfiguredExtraFilesystems (line 477) | func TestAddConfiguredExtraFilesystems(t *testing.T) { function TestAddExtraFilesystemFolders (line 507) | func TestAddExtraFilesystemFolders(t *testing.T) { function TestFindIoDevice (line 533) | func TestFindIoDevice(t *testing.T) { function TestFilesystemMatchesPartitionSetting (line 622) | func TestFilesystemMatchesPartitionSetting(t *testing.T) { function TestMostActiveIoDevice (line 646) | func TestMostActiveIoDevice(t *testing.T) { function TestIsDockerSpecialMountpoint (line 668) | func TestIsDockerSpecialMountpoint(t *testing.T) { function TestInitializeDiskInfoWithCustomNames (line 689) | func TestInitializeDiskInfoWithCustomNames(t *testing.T) { function TestFsStatsWithCustomNames (line 775) | func TestFsStatsWithCustomNames(t *testing.T) { function TestExtraFsKeyGeneration (line 790) | func TestExtraFsKeyGeneration(t *testing.T) { function TestDiskUsageCaching (line 830) | func TestDiskUsageCaching(t *testing.T) { function TestHasSameDiskUsage (line 913) | func TestHasSameDiskUsage(t *testing.T) { function TestInitializeDiskIoStatsResetsTrackedDevices (line 947) | func TestInitializeDiskIoStatsResetsTrackedDevices(t *testing.T) { FILE: agent/docker.go constant dockerTimeoutMs (line 39) | dockerTimeoutMs = 2100 constant maxNetworkSpeedBps (line 41) | maxNetworkSpeedBps uint64 = 5e9 constant maxMemoryUsage (line 43) | maxMemoryUsage uint64 = 100 * 1024 * 1024 * 1024 * 1024 constant dockerLogsTail (line 45) | dockerLogsTail = 200 constant maxLogFrameSize (line 48) | maxLogFrameSize = 1024 * 1024 constant maxTotalLogSize (line 51) | maxTotalLogSize = 5 * 1024 * 1024 type dockerManager (line 54) | type dockerManager struct method queue (line 96) | func (d *dockerManager) queue() { method dequeue (line 104) | func (d *dockerManager) dequeue() { method shouldExcludeContainer (line 112) | func (dm *dockerManager) shouldExcludeContainer(name string) bool { method getDockerStats (line 125) | func (dm *dockerManager) getDockerStats(cacheTimeMs uint16) ([]*contai... method initializeCpuTracking (line 214) | func (dm *dockerManager) initializeCpuTracking(cacheTimeMs uint16) { method getCpuPreviousValues (line 232) | func (dm *dockerManager) getCpuPreviousValues(cacheTimeMs uint16, cont... method setCpuCurrentValues (line 237) | func (dm *dockerManager) setCpuCurrentValues(cacheTimeMs uint16, conta... method getNetworkTracker (line 262) | func (dm *dockerManager) getNetworkTracker(cacheTimeMs uint16, isSent ... method cycleNetworkDeltasForCacheTime (line 278) | func (dm *dockerManager) cycleNetworkDeltasForCacheTime(cacheTimeMs ui... method calculateNetworkStats (line 288) | func (dm *dockerManager) calculateNetworkStats(ctr *container.ApiInfo,... method getPodmanContainerHealth (line 428) | func (dm *dockerManager) getPodmanContainerHealth(containerID string) ... method updateContainerStats (line 458) | func (dm *dockerManager) updateContainerStats(ctr *container.ApiInfo, ... method deleteContainerStatsSync (line 564) | func (dm *dockerManager) deleteContainerStatsSync(id string) { method checkDockerVersion (line 683) | func (dm *dockerManager) checkDockerVersion() { method decode (line 718) | func (dm *dockerManager) decode(resp *http.Response, d any) error { method getContainerInfo (line 768) | func (dm *dockerManager) getContainerInfo(ctx context.Context, contain... method getLogs (line 802) | func (dm *dockerManager) getLogs(ctx context.Context, containerID stri... method GetHostInfo (line 915) | func (dm *dockerManager) GetHostInfo() (info container.HostInfo, err e... method IsPodman (line 929) | func (dm *dockerManager) IsPodman() bool { type userAgentRoundTripper (line 84) | type userAgentRoundTripper struct method RoundTrip (line 90) | func (u *userAgentRoundTripper) RoundTrip(req *http.Request) (*http.Re... function calculateMemoryUsage (line 243) | func calculateMemoryUsage(apiStats *container.ApiStats, isWindows bool) ... function validateCpuPercentage (line 333) | func validateCpuPercentage(cpuPct float64, containerName string) error { function updateContainerStatsValues (line 341) | func updateContainerStatsValues(stats *container.Stats, cpuPct float64, ... function convertContainerPortsToString (line 353) | func convertContainerPortsToString(ctr *container.ApiInfo) string { function parseDockerStatus (line 384) | func parseDockerStatus(status string) (string, container.DockerHealth) { function parseDockerHealthStatus (line 420) | func parseDockerHealthStatus(status string) (container.DockerHealth, boo... function newDockerManager (line 580) | func newDockerManager() *dockerManager { function getDockerHost (line 734) | func getDockerHost() string { function validateContainerID (line 745) | func validateContainerID(containerID string) error { function buildDockerContainerEndpoint (line 752) | func buildDockerContainerEndpoint(containerID, action string, query url.... function detectDockerMultiplexedStream (line 851) | func detectDockerMultiplexedStream(reader *bufio.Reader) bool { function decodeDockerLogStream (line 868) | func decodeDockerLogStream(reader io.Reader, builder *strings.Builder, m... FILE: agent/docker_test.go type recordingRoundTripper (line 29) | type recordingRoundTripper struct method RoundTrip (line 44) | func (rt *recordingRoundTripper) RoundTrip(req *http.Request) (*http.R... type roundTripFunc (line 38) | type roundTripFunc method RoundTrip (line 40) | func (fn roundTripFunc) RoundTrip(req *http.Request) (*http.Response, ... method cycleCpuDeltas (line 67) | func (dm *dockerManager) cycleCpuDeltas(cacheTimeMs uint16) { function TestCalculateMemoryUsage (line 77) | func TestCalculateMemoryUsage(t *testing.T) { function TestBuildDockerContainerEndpoint (line 157) | func TestBuildDockerContainerEndpoint(t *testing.T) { function TestContainerDetailsRequestsValidateContainerID (line 171) | func TestContainerDetailsRequestsValidateContainerID(t *testing.T) { function TestContainerDetailsRequestsUseExpectedDockerPaths (line 186) | func TestContainerDetailsRequestsUseExpectedDockerPaths(t *testing.T) { function TestGetPodmanContainerHealth (line 223) | func TestGetPodmanContainerHealth(t *testing.T) { function TestValidateCpuPercentage (line 245) | func TestValidateCpuPercentage(t *testing.T) { function TestUpdateContainerStatsValues (line 300) | func TestUpdateContainerStatsValues(t *testing.T) { function TestInitializeCpuTracking (line 330) | func TestInitializeCpuTracking(t *testing.T) { function TestGetCpuPreviousValues (line 360) | func TestGetCpuPreviousValues(t *testing.T) { function TestSetCpuCurrentValues (line 386) | func TestSetCpuCurrentValues(t *testing.T) { function TestCalculateNetworkStats (line 406) | func TestCalculateNetworkStats(t *testing.T) { function TestDockerManagerCreation (line 455) | func TestDockerManagerCreation(t *testing.T) { function TestCheckDockerVersion (line 472) | func TestCheckDockerVersion(t *testing.T) { function TestCycleCpuDeltas (line 583) | func TestCycleCpuDeltas(t *testing.T) { function TestCycleNetworkDeltas (line 612) | func TestCycleNetworkDeltas(t *testing.T) { function TestConstants (line 639) | func TestConstants(t *testing.T) { function TestDockerStatsWithMockData (line 646) | func TestDockerStatsWithMockData(t *testing.T) { function TestMemoryStatsEdgeCases (line 671) | func TestMemoryStatsEdgeCases(t *testing.T) { function TestContainerStatsInitialization (line 715) | func TestContainerStatsInitialization(t *testing.T) { function TestCalculateMemoryUsageWithRealData (line 740) | func TestCalculateMemoryUsageWithRealData(t *testing.T) { function TestCpuPercentageCalculationWithRealData (line 758) | func TestCpuPercentageCalculationWithRealData(t *testing.T) { function TestNetworkStatsCalculationWithRealData (line 781) | func TestNetworkStatsCalculationWithRealData(t *testing.T) { function TestContainerStatsEndToEndWithRealData (line 844) | func TestContainerStatsEndToEndWithRealData(t *testing.T) { function TestGetLogsDetectsMultiplexedWithoutContentType (line 903) | func TestGetLogsDetectsMultiplexedWithoutContentType(t *testing.T) { function TestGetLogsDoesNotMisclassifyRawStreamAsMultiplexed (line 923) | func TestGetLogsDoesNotMisclassifyRawStreamAsMultiplexed(t *testing.T) { function TestEdgeCasesWithRealData (line 939) | func TestEdgeCasesWithRealData(t *testing.T) { function TestDockerStatsWorkflow (line 974) | func TestDockerStatsWorkflow(t *testing.T) { function TestNetworkRateCalculationFormula (line 1022) | func TestNetworkRateCalculationFormula(t *testing.T) { function TestGetHostInfo (line 1047) | func TestGetHostInfo(t *testing.T) { function TestDeltaTrackerCacheTimeIsolation (line 1065) | func TestDeltaTrackerCacheTimeIsolation(t *testing.T) { function TestParseDockerStatus (line 1123) | func TestParseDockerStatus(t *testing.T) { function TestParseDockerHealthStatus (line 1183) | func TestParseDockerHealthStatus(t *testing.T) { function TestUpdateContainerStatsUsesPodmanInspectHealthFallback (line 1206) | func TestUpdateContainerStatsUsesPodmanInspectHealthFallback(t *testing.... function TestConstantsAndUtilityFunctions (line 1261) | func TestConstantsAndUtilityFunctions(t *testing.T) { function TestDecodeDockerLogStream (line 1279) | func TestDecodeDockerLogStream(t *testing.T) { function TestDecodeDockerLogStreamMemoryProtection (line 1356) | func TestDecodeDockerLogStreamMemoryProtection(t *testing.T) { function TestShouldExcludeContainer (line 1417) | func TestShouldExcludeContainer(t *testing.T) { function TestAnsiEscapePattern (line 1521) | func TestAnsiEscapePattern(t *testing.T) { function TestConvertContainerPortsToString (line 1577) | func TestConvertContainerPortsToString(t *testing.T) { FILE: agent/emmc_common.go function isEmmcBlockName (line 9) | func isEmmcBlockName(name string) bool { function parseHexOrDecByte (line 25) | func parseHexOrDecByte(s string) (uint8, bool) { function parseHexBytePair (line 42) | func parseHexBytePair(s string) (uint8, uint8, bool) { function emmcSmartStatus (line 55) | func emmcSmartStatus(preEOL uint8) string { function emmcPreEOLString (line 68) | func emmcPreEOLString(preEOL uint8) string { function emmcLifeTimeString (line 81) | func emmcLifeTimeString(v uint8) string { FILE: agent/emmc_common_test.go function TestParseHexOrDecByte (line 5) | func TestParseHexOrDecByte(t *testing.T) { function TestParseHexBytePair (line 28) | func TestParseHexBytePair(t *testing.T) { function TestEmmcSmartStatus (line 45) | func TestEmmcSmartStatus(t *testing.T) { function TestIsEmmcBlockName (line 60) | func TestIsEmmcBlockName(t *testing.T) { FILE: agent/emmc_linux.go type emmcHealth (line 18) | type emmcHealth struct function scanEmmcDevices (line 28) | func scanEmmcDevices() []*DeviceInfo { method collectEmmcHealth (line 59) | func (sm *SmartManager) collectEmmcHealth(deviceInfo *DeviceInfo) (bool,... function readEmmcHealth (line 123) | func readEmmcHealth(blockName string) (emmcHealth, bool) { function readLifeTime (line 156) | func readLifeTime(deviceDir string) (uint8, uint8, bool) { function readBlockCapacityBytes (line 170) | func readBlockCapacityBytes(blockName string) (uint64, bool) { function readHexByteFile (line 194) | func readHexByteFile(path string) (uint8, bool) { function hasEmmcHealthFiles (line 203) | func hasEmmcHealthFiles(deviceDir string) bool { FILE: agent/emmc_linux_test.go function TestEmmcMockSysfsScanAndCollect (line 13) | func TestEmmcMockSysfsScanAndCollect(t *testing.T) { FILE: agent/emmc_stub.go function scanEmmcDevices (line 7) | func scanEmmcDevices() []*DeviceInfo { method collectEmmcHealth (line 11) | func (sm *SmartManager) collectEmmcHealth(deviceInfo *DeviceInfo) (bool,... FILE: agent/fingerprint.go constant fingerprintFileName (line 15) | fingerprintFileName = "fingerprint" constant knownBadUUID (line 18) | knownBadUUID = "03000200-0400-0500-0006-000700080009" function GetFingerprint (line 27) | func GetFingerprint(dataDir, hostname, cpuModel string) string { function generateFingerprint (line 43) | func generateFingerprint(hostname, cpuModel string) string { function readFingerprint (line 62) | func readFingerprint(dataDir string) (string, error) { function SaveFingerprint (line 75) | func SaveFingerprint(dataDir, fingerprint string) error { function DeleteFingerprint (line 81) | func DeleteFingerprint(dataDir string) error { FILE: agent/fingerprint_test.go function TestGetFingerprint (line 14) | func TestGetFingerprint(t *testing.T) { function TestSaveFingerprint (line 60) | func TestSaveFingerprint(t *testing.T) { function TestDeleteFingerprint (line 82) | func TestDeleteFingerprint(t *testing.T) { FILE: agent/gpu.go constant nvidiaSmiCmd (line 24) | nvidiaSmiCmd string = "nvidia-smi" constant rocmSmiCmd (line 25) | rocmSmiCmd string = "rocm-smi" constant tegraStatsCmd (line 26) | tegraStatsCmd string = "tegrastats" constant nvtopCmd (line 27) | nvtopCmd string = "nvtop" constant powermetricsCmd (line 28) | powermetricsCmd string = "powermetrics" constant macmonCmd (line 29) | macmonCmd string = "macmon" constant noGPUFoundMsg (line 30) | noGPUFoundMsg string = "no GPU found - see https://beszel.dev/guide/gpu" constant retryWaitTime (line 33) | retryWaitTime time.Duration = 5 * time.Second constant maxFailureRetries (line 34) | maxFailureRetries int = 5 constant mebibytesInAMegabyte (line 37) | mebibytesInAMegabyte float64 = 1.024 constant milliwattsInAWatt (line 38) | milliwattsInAWatt float64 = 1000.0 type GPUManager (line 42) | type GPUManager struct method getJetsonParser (line 184) | func (gm *GPUManager) getJetsonParser() func(output []byte) bool { method parseNvidiaData (line 235) | func (gm *GPUManager) parseNvidiaData(output []byte) bool { method parseAmdData (line 271) | func (gm *GPUManager) parseAmdData(output []byte) bool { method GetCurrentData (line 305) | func (gm *GPUManager) GetCurrentData(cacheKey uint16) map[string]syste... method initializeSnapshots (line 329) | func (gm *GPUManager) initializeSnapshots(cacheKey uint16) { method countGPUNames (line 342) | func (gm *GPUManager) countGPUNames() map[string]int { method calculateGPUAverage (line 351) | func (gm *GPUManager) calculateGPUAverage(id string, gpu *system.GPUDa... method calculateDeltaCount (line 387) | func (gm *GPUManager) calculateDeltaCount(currentCount uint32, lastSna... method calculateDeltas (line 395) | func (gm *GPUManager) calculateDeltas(gpu *system.GPUData, lastSnapsho... method calculateIntelGPUUsage (line 405) | func (gm *GPUManager) calculateIntelGPUUsage(gpuAvg, gpu *system.GPUDa... method updateInstantaneousValues (line 421) | func (gm *GPUManager) updateInstantaneousValues(gpuAvg *system.GPUData... method storeSnapshot (line 428) | func (gm *GPUManager) storeSnapshot(id string, gpu *system.GPUData, ca... method discoverGpuCapabilities (line 444) | func (gm *GPUManager) discoverGpuCapabilities() gpuCapabilities { method startIntelCollector (line 478) | func (gm *GPUManager) startIntelCollector() { method startNvidiaSmiCollector (line 495) | func (gm *GPUManager) startNvidiaSmiCollector(intervalSeconds string) { method startTegraStatsCollector (line 509) | func (gm *GPUManager) startTegraStatsCollector(intervalMilliseconds st... method startRocmSmiCollector (line 519) | func (gm *GPUManager) startRocmSmiCollector(pollInterval time.Duration) { method collectorDefinitions (line 541) | func (gm *GPUManager) collectorDefinitions(caps gpuCapabilities) map[c... method startNvmlCollector (line 626) | func (gm *GPUManager) startNvmlCollector() bool { method startAmdSysfsCollector (line 637) | func (gm *GPUManager) startAmdSysfsCollector() bool { method startCollectorsByPriority (line 647) | func (gm *GPUManager) startCollectorsByPriority(priorities []collector... method resolveLegacyCollectorPriority (line 687) | func (gm *GPUManager) resolveLegacyCollectorPriority(caps gpuCapabilit... type gpuSnapshot (line 54) | type gpuSnapshot struct type RocmSmiJson (line 63) | type RocmSmiJson struct type gpuCollector (line 75) | type gpuCollector struct method start (line 138) | func (c *gpuCollector) start() { method collect (line 154) | func (c *gpuCollector) collect() error { type collectorSource (line 86) | type collectorSource constant collectorSourceNVTop (line 89) | collectorSourceNVTop collectorSource = collectorSource(nvtopCmd) constant collectorSourceNVML (line 90) | collectorSourceNVML collectorSource = "nvml" constant collectorSourceNvidiaSMI (line 91) | collectorSourceNvidiaSMI collectorSource = collectorSource(nvidiaSmiCmd) constant collectorSourceIntelGpuTop (line 92) | collectorSourceIntelGpuTop collectorSource = collectorSource(intelGpuSt... constant collectorSourceAmdSysfs (line 93) | collectorSourceAmdSysfs collectorSource = "amd_sysfs" constant collectorSourceRocmSMI (line 94) | collectorSourceRocmSMI collectorSource = collectorSource(rocmSmiCmd) constant collectorSourceMacmon (line 95) | collectorSourceMacmon collectorSource = collectorSource(macmonCmd) constant collectorSourcePowermetrics (line 96) | collectorSourcePowermetrics collectorSource = collectorSource(powermetri... constant collectorGroupNvidia (line 97) | collectorGroupNvidia string = "nvidia" constant collectorGroupIntel (line 98) | collectorGroupIntel string = "intel" constant collectorGroupAmd (line 99) | collectorGroupAmd string = "amd" constant collectorGroupApple (line 100) | collectorGroupApple string = "apple" function isValidCollectorSource (line 103) | func isValidCollectorSource(source collectorSource) bool { type gpuCapabilities (line 119) | type gpuCapabilities struct type collectorDefinition (line 130) | type collectorDefinition struct function hasAnyGpuCollector (line 474) | func hasAnyGpuCollector(caps gpuCapabilities) bool { function parseCollectorPriority (line 609) | func parseCollectorPriority(value string) []collectorSource { function NewGPUManager (line 731) | func NewGPUManager() (*GPUManager, error) { FILE: agent/gpu_amd_linux.go method hasAmdSysfs (line 30) | func (gm *GPUManager) hasAmdSysfs() bool { method collectAmdStats (line 45) | func (gm *GPUManager) collectAmdStats() error { function isAmdGpu (line 90) | func isAmdGpu(cardPath string) bool { method updateAmdGpuData (line 100) | func (gm *GPUManager) updateAmdGpuData(cardPath string) bool { function readSysfsFloat (line 156) | func readSysfsFloat(path string) (float64, error) { function normalizeHexID (line 165) | func normalizeHexID(id string) string { function cacheKeyForAmdgpu (line 170) | func cacheKeyForAmdgpu(deviceID, revisionID string) string { function lookupAmdgpuNameInFile (line 178) | func lookupAmdgpuNameInFile(deviceID, revisionID, filePath string) (name... function getCachedAmdgpuName (line 217) | func getCachedAmdgpuName(deviceID, revisionID string) (name string, foun... function normalizeAmdgpuName (line 243) | func normalizeAmdgpuName(name string) string { function cacheAmdgpuName (line 251) | func cacheAmdgpuName(deviceID, revisionID, name string, exact bool) { function cacheMissingAmdgpuName (line 262) | func cacheMissingAmdgpuName(deviceID, revisionID string) { function getAmdGpuName (line 274) | func getAmdGpuName(devicePath string) string { FILE: agent/gpu_amd_linux_test.go function TestNormalizeHexID (line 16) | func TestNormalizeHexID(t *testing.T) { function TestCacheKeyForAmdgpu (line 39) | func TestCacheKeyForAmdgpu(t *testing.T) { function TestReadSysfsFloat (line 55) | func TestReadSysfsFloat(t *testing.T) { function TestIsAmdGpu (line 82) | func TestIsAmdGpu(t *testing.T) { function TestAmdgpuNameCacheRoundTrip (line 100) | func TestAmdgpuNameCacheRoundTrip(t *testing.T) { function TestUpdateAmdGpuDataWithFakeSysfs (line 122) | func TestUpdateAmdGpuDataWithFakeSysfs(t *testing.T) { function TestLookupAmdgpuNameInFile (line 187) | func TestLookupAmdgpuNameInFile(t *testing.T) { function TestGetAmdGpuNameFromIdsFile (line 249) | func TestGetAmdGpuNameFromIdsFile(t *testing.T) { FILE: agent/gpu_amd_unsupported.go method hasAmdSysfs (line 9) | func (gm *GPUManager) hasAmdSysfs() bool { method collectAmdStats (line 13) | func (gm *GPUManager) collectAmdStats() error { FILE: agent/gpu_darwin.go constant powermetricsSampleIntervalMs (line 21) | powermetricsSampleIntervalMs = 500 constant powermetricsPollInterval (line 23) | powermetricsPollInterval = 2 * time.Second constant macmonIntervalMs (line 25) | macmonIntervalMs = 2500 constant appleGPUID (line 28) | appleGPUID = "0" method startPowermetricsCollector (line 32) | func (gm *GPUManager) startPowermetricsCollector() { method collectPowermetrics (line 58) | func (gm *GPUManager) collectPowermetrics() error { method parsePowermetricsData (line 80) | func (gm *GPUManager) parsePowermetricsData(output []byte) bool { method startMacmonCollector (line 137) | func (gm *GPUManager) startMacmonCollector() { type macmonTemp (line 162) | type macmonTemp struct type macmonSample (line 166) | type macmonSample struct method collectMacmonPipe (line 173) | func (gm *GPUManager) collectMacmonPipe() (err error) { method parseMacmonLine (line 218) | func (gm *GPUManager) parseMacmonLine(line []byte) bool { FILE: agent/gpu_darwin_test.go function TestParsePowermetricsData (line 13) | func TestParsePowermetricsData(t *testing.T) { function TestParsePowermetricsDataPartial (line 44) | func TestParsePowermetricsDataPartial(t *testing.T) { function TestParseMacmonLine (line 63) | func TestParseMacmonLine(t *testing.T) { FILE: agent/gpu_darwin_unsupported.go method startPowermetricsCollector (line 6) | func (gm *GPUManager) startPowermetricsCollector() {} method startMacmonCollector (line 9) | func (gm *GPUManager) startMacmonCollector() {} FILE: agent/gpu_intel.go constant intelGpuStatsCmd (line 15) | intelGpuStatsCmd string = "intel_gpu_top" constant intelGpuStatsInterval (line 16) | intelGpuStatsInterval string = "3300" type intelGpuStats (line 19) | type intelGpuStats struct method updateIntelFromStats (line 26) | func (gm *GPUManager) updateIntelFromStats(sample *intelGpuStats) bool { method collectIntelStats (line 53) | func (gm *GPUManager) collectIntelStats() (err error) { method parseIntelHeaders (line 132) | func (gm *GPUManager) parseIntelHeaders(header1 string, header2 string) ... method parseIntelData (line 174) | func (gm *GPUManager) parseIntelData(line string, engineNames []string, ... FILE: agent/gpu_nvml.go constant nvmlSuccess (line 18) | nvmlSuccess int = 0 type nvmlDevice (line 21) | type nvmlDevice type nvmlReturn (line 23) | type nvmlReturn type nvmlMemoryV1 (line 25) | type nvmlMemoryV1 struct type nvmlMemoryV2 (line 31) | type nvmlMemoryV2 struct type nvmlUtilization (line 39) | type nvmlUtilization struct type nvmlPciInfo (line 44) | type nvmlPciInfo struct type nvmlCollector (line 68) | type nvmlCollector struct method init (line 76) | func (c *nvmlCollector) init() error { method start (line 134) | func (c *nvmlCollector) start() { method collect (line 143) | func (c *nvmlCollector) collect() { FILE: agent/gpu_nvml_linux.go function openLibrary (line 14) | func openLibrary(name string) (uintptr, error) { function getNVMLPath (line 18) | func getNVMLPath() string { function hasSymbol (line 22) | func hasSymbol(lib uintptr, symbol string) bool { method isGPUActive (line 27) | func (c *nvmlCollector) isGPUActive(bdf string) bool { FILE: agent/gpu_nvml_unsupported.go type nvmlCollector (line 7) | type nvmlCollector struct method init (line 11) | func (c *nvmlCollector) init() error { method start (line 15) | func (c *nvmlCollector) start() {} FILE: agent/gpu_nvml_windows.go function openLibrary (line 9) | func openLibrary(name string) (uintptr, error) { function getNVMLPath (line 14) | func getNVMLPath() string { function hasSymbol (line 18) | func hasSymbol(lib uintptr, symbol string) bool { method isGPUActive (line 23) | func (c *nvmlCollector) isGPUActive(bdf string) bool { FILE: agent/gpu_nvtop.go type nvtopSnapshot (line 16) | type nvtopSnapshot struct function parseNvtopNumber (line 26) | func parseNvtopNumber(raw string) float64 { method parseNvtopData (line 36) | func (gm *GPUManager) parseNvtopData(output []byte) bool { method updateNvtopSnapshots (line 45) | func (gm *GPUManager) updateNvtopSnapshots(snapshots []nvtopSnapshot) bo... method collectNvtopStats (line 103) | func (gm *GPUManager) collectNvtopStats(interval string) error { method startNvtopCollector (line 140) | func (gm *GPUManager) startNvtopCollector(interval string, onFailure fun... FILE: agent/gpu_test.go function TestParseNvidiaData (line 20) | func TestParseNvidiaData(t *testing.T) { function TestParseAmdData (line 137) | func TestParseAmdData(t *testing.T) { function TestParseNvtopData (line 253) | func TestParseNvtopData(t *testing.T) { function TestUpdateNvtopSnapshotsKeepsDeviceAssociationWhenOrderChanges (line 284) | func TestUpdateNvtopSnapshotsKeepsDeviceAssociationWhenOrderChanges(t *t... function TestParseCollectorPriority (line 334) | func TestParseCollectorPriority(t *testing.T) { function TestParseJetsonData (line 347) | func TestParseJetsonData(t *testing.T) { function TestGetCurrentData (line 443) | func TestGetCurrentData(t *testing.T) { function TestCalculateDeltaCount (line 629) | func TestCalculateDeltaCount(t *testing.T) { function TestCalculateDeltas (line 650) | func TestCalculateDeltas(t *testing.T) { function TestCalculateIntelGPUUsage (line 683) | func TestCalculateIntelGPUUsage(t *testing.T) { function TestUpdateInstantaneousValues (line 756) | func TestUpdateInstantaneousValues(t *testing.T) { function TestStoreSnapshot (line 779) | func TestStoreSnapshot(t *testing.T) { function TestCountGPUNames (line 851) | func TestCountGPUNames(t *testing.T) { function TestInitializeSnapshots (line 891) | func TestInitializeSnapshots(t *testing.T) { function TestCalculateGPUAverage (line 934) | func TestCalculateGPUAverage(t *testing.T) { function TestGPUCapabilitiesAndLegacyPriority (line 1084) | func TestGPUCapabilitiesAndLegacyPriority(t *testing.T) { function TestCollectorStartHelpers (line 1236) | func TestCollectorStartHelpers(t *testing.T) { function TestNewGPUManagerPriorityNvtopFallback (line 1372) | func TestNewGPUManagerPriorityNvtopFallback(t *testing.T) { function TestNewGPUManagerPriorityMixedCollectors (line 1401) | func TestNewGPUManagerPriorityMixedCollectors(t *testing.T) { function TestNewGPUManagerPriorityNvmlFallbackToNvidiaSmi (line 1435) | func TestNewGPUManagerPriorityNvmlFallbackToNvidiaSmi(t *testing.T) { function TestNewGPUManagerConfiguredCollectorsMustStart (line 1458) | func TestNewGPUManagerConfiguredCollectorsMustStart(t *testing.T) { function TestNewGPUManagerJetsonIgnoresCollectorConfig (line 1482) | func TestNewGPUManagerJetsonIgnoresCollectorConfig(t *testing.T) { function TestAccumulation (line 1506) | func TestAccumulation(t *testing.T) { function TestIntelUpdateFromStats (line 1673) | func TestIntelUpdateFromStats(t *testing.T) { function TestIntelCollectorStreaming (line 1721) | func TestIntelCollectorStreaming(t *testing.T) { function TestParseIntelHeaders (line 1764) | func TestParseIntelHeaders(t *testing.T) { function TestParseIntelData (line 1852) | func TestParseIntelData(t *testing.T) { function TestIntelCollectorDeviceEnv (line 1980) | func TestIntelCollectorDeviceEnv(t *testing.T) { FILE: agent/handlers.go type HandlerContext (line 16) | type HandlerContext struct type RequestHandler (line 27) | type RequestHandler interface type Responder (line 33) | type Responder interface type HandlerRegistry (line 38) | type HandlerRegistry struct method Register (line 59) | func (hr *HandlerRegistry) Register(action common.WebSocketAction, han... method Handle (line 64) | func (hr *HandlerRegistry) Handle(hctx *HandlerContext) error { method GetHandler (line 82) | func (hr *HandlerRegistry) GetHandler(action common.WebSocketAction) (... function NewHandlerRegistry (line 43) | func NewHandlerRegistry() *HandlerRegistry { type GetDataHandler (line 91) | type GetDataHandler struct method Handle (line 93) | func (h *GetDataHandler) Handle(hctx *HandlerContext) error { type CheckFingerprintHandler (line 105) | type CheckFingerprintHandler struct method Handle (line 107) | func (h *CheckFingerprintHandler) Handle(hctx *HandlerContext) error { type GetContainerLogsHandler (line 115) | type GetContainerLogsHandler struct method Handle (line 117) | func (h *GetContainerLogsHandler) Handle(hctx *HandlerContext) error { type GetContainerInfoHandler (line 140) | type GetContainerInfoHandler struct method Handle (line 142) | func (h *GetContainerInfoHandler) Handle(hctx *HandlerContext) error { type GetSmartDataHandler (line 165) | type GetSmartDataHandler struct method Handle (line 167) | func (h *GetSmartDataHandler) Handle(hctx *HandlerContext) error { type GetSystemdInfoHandler (line 184) | type GetSystemdInfoHandler struct method Handle (line 186) | func (h *GetSystemdInfoHandler) Handle(hctx *HandlerContext) error { FILE: agent/handlers_test.go type MockHandler (line 14) | type MockHandler struct method Handle (line 20) | func (m *MockHandler) Handle(ctx *HandlerContext) error { method RequiresVerification (line 27) | func (m *MockHandler) RequiresVerification() bool { function TestHandlerRegistry (line 32) | func TestHandlerRegistry(t *testing.T) { function TestCheckFingerprintHandler (line 93) | func TestCheckFingerprintHandler(t *testing.T) { FILE: agent/health/health.go function getHealthFilePath (line 19) | func getHealthFilePath() string { function updateHealthFile (line 30) | func updateHealthFile(path string) error { function Check (line 39) | func Check() error { function Update (line 52) | func Update() error { function CleanUp (line 57) | func CleanUp() error { FILE: agent/health/health_test.go function TestHealth (line 17) | func TestHealth(t *testing.T) { FILE: agent/lhm/beszel_lhm.cs class Program (line 5) | class Program method Main (line 7) | static void Main() method ProcessSensors (line 49) | static void ProcessSensors(IHardware hardware, System.IO.TextWriter wr... FILE: agent/mdraid_linux.go type mdraidHealth (line 19) | type mdraidHealth struct function scanMdraidDevices (line 32) | func scanMdraidDevices() []*DeviceInfo { method collectMdraidHealth (line 63) | func (sm *SmartManager) collectMdraidHealth(deviceInfo *DeviceInfo) (boo... function readMdraidHealth (line 130) | func readMdraidHealth(blockName string) (mdraidHealth, bool) { function mdraidSmartStatus (line 167) | func mdraidSmartStatus(health mdraidHealth) string { function isMdraidBlockName (line 195) | func isMdraidBlockName(name string) bool { function readMdraidBlockCapacityBytes (line 212) | func readMdraidBlockCapacityBytes(blockName, root string) (uint64, bool) { FILE: agent/mdraid_linux_test.go function TestMdraidMockSysfsScanAndCollect (line 13) | func TestMdraidMockSysfsScanAndCollect(t *testing.T) { function TestMdraidSmartStatus (line 84) | func TestMdraidSmartStatus(t *testing.T) { FILE: agent/mdraid_stub.go function scanMdraidDevices (line 5) | func scanMdraidDevices() []*DeviceInfo { method collectMdraidHealth (line 9) | func (sm *SmartManager) collectMdraidHealth(deviceInfo *DeviceInfo) (boo... FILE: agent/network.go type NicConfig (line 23) | type NicConfig struct function newNicConfig (line 29) | func newNicConfig(nicsEnvVal string) *NicConfig { function isValidNic (line 50) | func isValidNic(nicName string, cfg *NicConfig) bool { method updateNetworkStats (line 79) | func (a *Agent) updateNetworkStats(cacheTimeMs uint16, systemStats *syst... method initializeNetIoStats (line 93) | func (a *Agent) initializeNetIoStats() { method ensureNetInterfacesInitialized (line 122) | func (a *Agent) ensureNetInterfacesInitialized() { method ensureNetworkInterfacesMap (line 133) | func (a *Agent) ensureNetworkInterfacesMap(systemStats *system.Stats) { method loadAndTickNetBaseline (line 140) | func (a *Agent) loadAndTickNetBaseline(cacheTimeMs uint16) (netIoStat sy... method sumAndTrackPerNicDeltas (line 153) | func (a *Agent) sumAndTrackPerNicDeltas(cacheTimeMs uint16, msElapsed ui... method computeBytesPerSecond (line 199) | func (a *Agent) computeBytesPerSecond(msElapsed, totalBytesSent, totalBy... method applyNetworkTotals (line 208) | func (a *Agent) applyNetworkTotals( function skipNetworkInterface (line 238) | func skipNetworkInterface(v psutilNet.IOCountersStat, nicCfg *NicConfig)... FILE: agent/network_test.go function TestIsValidNic (line 16) | func TestIsValidNic(t *testing.T) { function TestNewNicConfig (line 156) | func TestNewNicConfig(t *testing.T) { function TestSkipNetworkInterface (line 264) | func TestSkipNetworkInterface(t *testing.T) { function TestEnsureNetworkInterfacesMap (line 297) | func TestEnsureNetworkInterfacesMap(t *testing.T) { function TestLoadAndTickNetBaseline (line 311) | func TestLoadAndTickNetBaseline(t *testing.T) { function TestComputeBytesPerSecond (line 330) | func TestComputeBytesPerSecond(t *testing.T) { function TestSumAndTrackPerNicDeltas (line 345) | func TestSumAndTrackPerNicDeltas(t *testing.T) { function TestSumAndTrackPerNicDeltasHandlesCounterReset (line 374) | func TestSumAndTrackPerNicDeltasHandlesCounterReset(t *testing.T) { function TestApplyNetworkTotals (line 411) | func TestApplyNetworkTotals(t *testing.T) { FILE: agent/response.go function newAgentResponse (line 13) | func newAgentResponse(data any, requestID *uint32) common.AgentResponse { FILE: agent/sensors.go type SensorConfig (line 20) | type SensorConfig struct method newSensorConfig (line 29) | func (a *Agent) newSensorConfig() *SensorConfig { type getTempsFn (line 39) | type getTempsFn method newSensorConfigWithEnv (line 43) | func (a *Agent) newSensorConfigWithEnv(primarySensor, sysSensors, sensor... method updateTemperatures (line 79) | func (a *Agent) updateTemperatures(systemStats *system.Stats) { method getTempsWithPanicRecovery (line 144) | func (a *Agent) getTempsWithPanicRecovery(getTemps getTempsFn) (temps []... function isValidSensor (line 156) | func isValidSensor(sensorName string, config *SensorConfig) bool { function scaleTemperature (line 186) | func scaleTemperature(temp float64) float64 { FILE: agent/sensors_test.go function TestIsValidSensor (line 19) | func TestIsValidSensor(t *testing.T) { function TestNewSensorConfigWithEnv (line 163) | func TestNewSensorConfigWithEnv(t *testing.T) { function TestNewSensorConfig (line 331) | func TestNewSensorConfig(t *testing.T) { function TestScaleTemperature (line 379) | func TestScaleTemperature(t *testing.T) { function TestScaleTemperatureLogic (line 428) | func TestScaleTemperatureLogic(t *testing.T) { function TestGetTempsWithPanicRecovery (line 461) | func TestGetTempsWithPanicRecovery(t *testing.T) { FILE: agent/sensors_windows.go type lhmProcess (line 31) | type lhmProcess struct method startProcess (line 83) | func (lhm *lhmProcess) startProcess() error { method cleanupProcess (line 119) | func (lhm *lhmProcess) cleanupProcess() { method getTemps (line 142) | func (lhm *lhmProcess) getTemps(ctx context.Context) (temps []sensors.... method cleanup (line 247) | func (lhm *lhmProcess) cleanup() { function newlhmProcess (line 55) | func newlhmProcess() (*lhmProcess, error) { function getSensorTemps (line 219) | func getSensorTemps(ctx context.Context) (temps []sensors.TemperatureSta... function copyEmbeddedDir (line 255) | func copyEmbeddedDir(fs embed.FS, srcPath, destPath string) error { FILE: agent/server.go type ServerOptions (line 26) | type ServerOptions struct method StartServer (line 39) | func (a *Agent) StartServer(opts ServerOptions) error { method getHubVersion (line 105) | func (a *Agent) getHubVersion(sessionId string, sessionCtx ssh.Context) ... method handleSession (line 126) | func (a *Agent) handleSession(s ssh.Session) { method handleSSHRequest (line 163) | func (a *Agent) handleSSHRequest(w io.Writer, req *common.HubRequest[cbo... method handleLegacyStats (line 195) | func (a *Agent) handleLegacyStats(w io.Writer, hubVersion semver.Version... method writeToSession (line 203) | func (a *Agent) writeToSession(w io.Writer, stats *system.CombinedData, ... function extractHubVersion (line 212) | func extractHubVersion(versionString string) (semver.Version, error) { function ParseKeys (line 219) | func ParseKeys(input string) ([]gossh.PublicKey, error) { function GetAddress (line 240) | func GetAddress(addr string) string { function GetNetwork (line 261) | func GetNetwork(addr string) string { method StopServer (line 273) | func (a *Agent) StopServer() error { FILE: agent/server_test.go function TestStartServer (line 29) | func TestStartServer(t *testing.T) { function TestStartServerDisableSSH (line 185) | func TestStartServerDisableSSH(t *testing.T) { function createTempFile (line 207) | func createTempFile(content string) (string, error) { function TestParseSingleKeyFromString (line 222) | func TestParseSingleKeyFromString(t *testing.T) { function TestParseMultipleKeysFromString (line 237) | func TestParseMultipleKeysFromString(t *testing.T) { function TestParseSingleKeyFromFile (line 252) | func TestParseSingleKeyFromFile(t *testing.T) { function TestParseMultipleKeysFromFile (line 280) | func TestParseMultipleKeysFromFile(t *testing.T) { function TestParseInvalidKey (line 308) | func TestParseInvalidKey(t *testing.T) { function TestExtractHubVersion (line 324) | func TestExtractHubVersion(t *testing.T) { function TestGetHubVersion (line 398) | func TestGetHubVersion(t *testing.T) { type mockSSHContext (line 433) | type mockSSHContext struct method SessionID (line 440) | func (m *mockSSHContext) SessionID() string { method ClientVersion (line 444) | func (m *mockSSHContext) ClientVersion() string { method ServerVersion (line 448) | func (m *mockSSHContext) ServerVersion() string { method Value (line 452) | func (m *mockSSHContext) Value(key interface{}) interface{} { method User (line 459) | func (m *mockSSHContext) User() string { return "te... method RemoteAddr (line 460) | func (m *mockSSHContext) RemoteAddr() net.Addr { return nil } method LocalAddr (line 461) | func (m *mockSSHContext) LocalAddr() net.Addr { return nil } method Permissions (line 462) | func (m *mockSSHContext) Permissions() *ssh.Permissions { return nil } method SetValue (line 463) | func (m *mockSSHContext) SetValue(key, value interface{}) {} function TestWriteToSessionEncoding (line 470) | func TestWriteToSessionEncoding(t *testing.T) { function createTestCombinedData (line 561) | func createTestCombinedData() *system.CombinedData { function TestHubVersionCaching (line 589) | func TestHubVersionCaching(t *testing.T) { FILE: agent/smart.go type SmartManager (line 26) | type SmartManager struct method Refresh (line 66) | func (sm *SmartManager) Refresh(forceScan bool) error { method devicesSnapshot (line 92) | func (sm *SmartManager) devicesSnapshot() []*DeviceInfo { method resolveRefreshError (line 110) | func (sm *SmartManager) resolveRefreshError(scanErr, collectErr error)... method GetCurrentData (line 136) | func (sm *SmartManager) GetCurrentData() map[string]smart.SmartData { method ScanDevices (line 152) | func (sm *SmartManager) ScanDevices(force bool) error { method parseConfiguredDevices (line 225) | func (sm *SmartManager) parseConfiguredDevices(config string) ([]*Devi... method refreshExcludedDevices (line 263) | func (sm *SmartManager) refreshExcludedDevices() { method isExcludedDevice (line 276) | func (sm *SmartManager) isExcludedDevice(deviceName string) bool { method filterExcludedDevices (line 281) | func (sm *SmartManager) filterExcludedDevices(devices []*DeviceInfo) [... method parseSmartOutput (line 363) | func (sm *SmartManager) parseSmartOutput(deviceInfo *DeviceInfo, outpu... method CollectSmart (line 456) | func (sm *SmartManager) CollectSmart(deviceInfo *DeviceInfo) error { method smartctlArgs (line 550) | func (sm *SmartManager) smartctlArgs(deviceInfo *DeviceInfo, includeSt... method hasDataForDevice (line 584) | func (sm *SmartManager) hasDataForDevice(deviceName string) bool { method parseScan (line 598) | func (sm *SmartManager) parseScan(output []byte) ([]*DeviceInfo, bool) { method updateSmartDevices (line 756) | func (sm *SmartManager) updateSmartDevices(devices []*DeviceInfo) { method isVirtualDevice (line 795) | func (sm *SmartManager) isVirtualDevice(data *smart.SmartInfoForSata) ... method isVirtualDeviceNvme (line 804) | func (sm *SmartManager) isVirtualDeviceNvme(data *smart.SmartInfoForNv... method isVirtualDeviceScsi (line 811) | func (sm *SmartManager) isVirtualDeviceScsi(data *smart.SmartInfoForSc... method isVirtualDeviceFromStrings (line 820) | func (sm *SmartManager) isVirtualDeviceFromStrings(fields ...string) b... method parseSmartForSata (line 838) | func (sm *SmartManager) parseSmartForSata(output []byte) (bool, int) { method parseSmartForScsi (line 950) | func (sm *SmartManager) parseSmartForScsi(output []byte) (bool, int) { method parseSmartForNvme (line 1038) | func (sm *SmartManager) parseSmartForNvme(output []byte) (bool, int) { method detectSmartctl (line 1106) | func (sm *SmartManager) detectSmartctl() (string, error) { type scanOutput (line 36) | type scanOutput struct type DeviceInfo (line 45) | type DeviceInfo struct type deviceKey (line 58) | type deviceKey struct function detectSmartOutputType (line 307) | func detectSmartOutputType(output []byte) string { function hasJSONValue (line 333) | func hasJSONValue(raw json.RawMessage) bool { function normalizeParserType (line 341) | func normalizeParserType(value string) string { function makeDeviceKey (line 357) | func makeDeviceKey(name, deviceType string) deviceKey { function mergeDeviceLists (line 626) | func mergeDeviceLists(existing, scanned, configured []*DeviceInfo) []*De... function getSmartStatus (line 910) | func getSmartStatus(temperature uint8, passed bool) string { function findAtaDeviceStatisticsValue (line 922) | func findAtaDeviceStatisticsValue(data *smart.SmartInfoForSata, ataDevic... function parseScsiGigabytesProcessed (line 1024) | func parseScsiGigabytesProcessed(value string) int64 { function isNvmeControllerPath (line 1137) | func isNvmeControllerPath(path string) bool { function NewSmartManager (line 1157) | func NewSmartManager() (*SmartManager, error) { FILE: agent/smart_nonwindows.go function ensureEmbeddedSmartctl (line 7) | func ensureEmbeddedSmartctl() (string, error) { FILE: agent/smart_test.go function TestParseSmartForScsi (line 16) | func TestParseSmartForScsi(t *testing.T) { function TestParseSmartForSata (line 63) | func TestParseSmartForSata(t *testing.T) { function TestParseSmartForSataDeviceStatisticsTemperature (line 91) | func TestParseSmartForSataDeviceStatisticsTemperature(t *testing.T) { function TestParseSmartForSataAtaDeviceStatistics (line 124) | func TestParseSmartForSataAtaDeviceStatistics(t *testing.T) { function TestParseSmartForSataNegativeDeviceStatistics (line 159) | func TestParseSmartForSataNegativeDeviceStatistics(t *testing.T) { function TestParseSmartForSataParentheticalRawValue (line 196) | func TestParseSmartForSataParentheticalRawValue(t *testing.T) { function TestParseSmartForNvme (line 239) | func TestParseSmartForNvme(t *testing.T) { function TestHasDataForDevice (line 268) | func TestHasDataForDevice(t *testing.T) { function TestDevicesSnapshotReturnsCopy (line 280) | func TestDevicesSnapshotReturnsCopy(t *testing.T) { function TestScanDevicesWithEnvOverrideAndSeparator (line 302) | func TestScanDevicesWithEnvOverrideAndSeparator(t *testing.T) { function TestScanDevicesWithEnvOverride (line 320) | func TestScanDevicesWithEnvOverride(t *testing.T) { function TestScanDevicesWithEnvOverrideInvalid (line 337) | func TestScanDevicesWithEnvOverrideInvalid(t *testing.T) { function TestScanDevicesWithEnvOverrideEmpty (line 348) | func TestScanDevicesWithEnvOverrideEmpty(t *testing.T) { function TestSmartctlArgsWithoutType (line 360) | func TestSmartctlArgsWithoutType(t *testing.T) { function TestSmartctlArgs (line 369) | func TestSmartctlArgs(t *testing.T) { function TestResolveRefreshError (line 395) | func TestResolveRefreshError(t *testing.T) { function TestParseScan (line 474) | func TestParseScan(t *testing.T) { function TestMergeDeviceListsPrefersConfigured (line 507) | func TestMergeDeviceListsPrefersConfigured(t *testing.T) { function TestMergeDeviceListsPreservesVerification (line 537) | func TestMergeDeviceListsPreservesVerification(t *testing.T) { function TestMergeDeviceListsUpdatesTypeWhenUnverified (line 555) | func TestMergeDeviceListsUpdatesTypeWhenUnverified(t *testing.T) { function TestMergeDeviceListsHandlesDevicesWithSameNameAndDifferentTypes (line 573) | func TestMergeDeviceListsHandlesDevicesWithSameNameAndDifferentTypes(t *... function TestMergeDeviceListsHandlesMixedRAIDAndRegular (line 596) | func TestMergeDeviceListsHandlesMixedRAIDAndRegular(t *testing.T) { function TestUpdateSmartDevicesPreservesRAIDDrives (line 620) | func TestUpdateSmartDevicesPreservesRAIDDrives(t *testing.T) { function TestParseSmartOutputMarksVerified (line 655) | func TestParseSmartOutputMarksVerified(t *testing.T) { function TestParseSmartOutputKeepsCustomType (line 669) | func TestParseSmartOutputKeepsCustomType(t *testing.T) { function TestParseSmartOutputResetsVerificationOnFailure (line 683) | func TestParseSmartOutputResetsVerificationOnFailure(t *testing.T) { function assertAttrValue (line 692) | func assertAttrValue(t *testing.T, attributes []*smart.SmartAttribute, n... function findAttr (line 703) | func findAttr(attributes []*smart.SmartAttribute, name string) *smart.Sm... function TestIsVirtualDevice (line 712) | func TestIsVirtualDevice(t *testing.T) { function TestIsVirtualDeviceNvme (line 744) | func TestIsVirtualDeviceNvme(t *testing.T) { function TestIsVirtualDeviceScsi (line 770) | func TestIsVirtualDeviceScsi(t *testing.T) { function TestFindAtaDeviceStatisticsValue (line 802) | func TestFindAtaDeviceStatisticsValue(t *testing.T) { function TestRefreshExcludedDevices (line 978) | func TestRefreshExcludedDevices(t *testing.T) { function TestIsExcludedDevice (line 1049) | func TestIsExcludedDevice(t *testing.T) { function TestFilterExcludedDevices (line 1077) | func TestFilterExcludedDevices(t *testing.T) { function TestIsNvmeControllerPath (line 1170) | func TestIsNvmeControllerPath(t *testing.T) { FILE: agent/smart_windows.go function ensureEmbeddedSmartctl (line 22) | func ensureEmbeddedSmartctl() (string, error) { FILE: agent/system.go type prevDisk (line 27) | type prevDisk struct method refreshSystemDetails (line 34) | func (a *Agent) refreshSystemDetails() { method getSystemStats (line 119) | func (a *Agent) getSystemStats(cacheTimeMs uint16) system.Stats { function getOsPrettyName (line 255) | func getOsPrettyName() (string, error) { FILE: agent/systemd.go type systemdManager (line 25) | type systemdManager struct method startWorker (line 79) | func (sm *systemdManager) startWorker(conn *dbus.Conn) { method getServiceStatsCount (line 96) | func (sm *systemdManager) getServiceStatsCount() int { method getFailedServiceCount (line 101) | func (sm *systemdManager) getFailedServiceCount() uint16 { method getServiceStats (line 114) | func (sm *systemdManager) getServiceStats(conn *dbus.Conn, refresh boo... method updateServiceStats (line 174) | func (sm *systemdManager) updateServiceStats(conn *dbus.Conn, unit dbu... method getServiceDetails (line 236) | func (sm *systemdManager) getServiceDetails(serviceName string) (syste... function isSystemdAvailable (line 34) | func isSystemdAvailable() bool { function newSystemdManager (line 52) | func newSystemdManager() (*systemdManager, error) { function unescapeServiceName (line 282) | func unescapeServiceName(name string) string { function getServicePatterns (line 296) | func getServicePatterns() []string { FILE: agent/systemd_nonlinux.go type systemdManager (line 12) | type systemdManager struct method getServiceStats (line 22) | func (sm *systemdManager) getServiceStats(conn any, refresh bool) []*s... method getServiceStatsCount (line 27) | func (sm *systemdManager) getServiceStatsCount() int { method getFailedServiceCount (line 32) | func (sm *systemdManager) getFailedServiceCount() uint16 { method getServiceDetails (line 36) | func (sm *systemdManager) getServiceDetails(string) (systemd.ServiceDe... function newSystemdManager (line 17) | func newSystemdManager() (*systemdManager, error) { FILE: agent/systemd_nonlinux_test.go function TestNewSystemdManager (line 11) | func TestNewSystemdManager(t *testing.T) { function TestSystemdManagerGetServiceStats (line 17) | func TestSystemdManagerGetServiceStats(t *testing.T) { function TestSystemdManagerGetServiceDetails (line 30) | func TestSystemdManagerGetServiceDetails(t *testing.T) { function TestSystemdManagerFields (line 46) | func TestSystemdManagerFields(t *testing.T) { FILE: agent/systemd_test.go function TestUnescapeServiceName (line 13) | func TestUnescapeServiceName(t *testing.T) { function TestUnescapeServiceNameInvalid (line 35) | func TestUnescapeServiceNameInvalid(t *testing.T) { function TestIsSystemdAvailable (line 52) | func TestIsSystemdAvailable(t *testing.T) { function TestGetServicePatterns (line 81) | func TestGetServicePatterns(t *testing.T) { FILE: agent/tools/fetchsmartctl/main.go function main (line 21) | func main() { function downloadFile (line 44) | func downloadFile(url, dest, shaHex string) error { function fatalf (line 127) | func fatalf(format string, a ...any) { FILE: agent/update.go type restarter (line 13) | type restarter interface type systemdRestarter (line 17) | type systemdRestarter struct method Restart (line 19) | func (s *systemdRestarter) Restart() error { type openRCRestarter (line 28) | type openRCRestarter struct method Restart (line 30) | func (o *openRCRestarter) Restart() error { type openWRTRestarter (line 38) | type openWRTRestarter struct method Restart (line 40) | func (w *openWRTRestarter) Restart() error { type freeBSDRestarter (line 49) | type freeBSDRestarter struct method Restart (line 51) | func (f *freeBSDRestarter) Restart() error { function detectRestarter (line 59) | func detectRestarter() restarter { function Update (line 79) | func Update(useMirror bool) error { FILE: agent/utils/utils.go function GetEnv (line 12) | func GetEnv(key string) (value string, exists bool) { function BytesToMegabytes (line 20) | func BytesToMegabytes(b float64) float64 { function BytesToGigabytes (line 25) | func BytesToGigabytes(b uint64) float64 { function TwoDecimals (line 30) | func TwoDecimals(value float64) float64 { function ReadStringFile (line 40) | func ReadStringFile(path string) string { function ReadStringFileOK (line 46) | func ReadStringFileOK(path string) (string, bool) { function ReadStringFileLimited (line 56) | func ReadStringFileLimited(path string, maxSize int) (string, error) { function FileExists (line 72) | func FileExists(path string) bool { function ReadUintFile (line 78) | func ReadUintFile(path string) (uint64, bool) { FILE: agent/utils/utils_test.go function TestTwoDecimals (line 11) | func TestTwoDecimals(t *testing.T) { function TestBytesToMegabytes (line 33) | func TestBytesToMegabytes(t *testing.T) { function TestBytesToGigabytes (line 53) | func TestBytesToGigabytes(t *testing.T) { function TestFileFunctions (line 73) | func TestFileFunctions(t *testing.T) { function TestReadUintFile (line 105) | func TestReadUintFile(t *testing.T) { function TestGetEnv (line 132) | func TestGetEnv(t *testing.T) { FILE: agent/zfs/zfs_freebsd.go function ARCSize (line 9) | func ARCSize() (uint64, error) { FILE: agent/zfs/zfs_linux.go function ARCSize (line 14) | func ARCSize() (uint64, error) { FILE: agent/zfs/zfs_unsupported.go function ARCSize (line 7) | func ARCSize() (uint64, error) { FILE: beszel.go constant Version (line 9) | Version = "0.18.4" constant AppName (line 11) | AppName = "beszel" FILE: internal/alerts/alerts.go type hubLike (line 17) | type hubLike interface type AlertManager (line 22) | type AlertManager struct method bindEvents (line 109) | func (am *AlertManager) bindEvents() { method IsNotificationSilenced (line 129) | func (am *AlertManager) IsNotificationSilenced(userID, systemID string... method SendAlert (line 196) | func (am *AlertManager) SendAlert(data AlertMessageData) error { method SendShoutrrrAlert (line 251) | func (am *AlertManager) SendShoutrrrAlert(notificationUrl, title, mess... method SendTestNotification (line 305) | func (am *AlertManager) SendTestNotification(e *core.RequestEvent) err... method setAlertTriggered (line 321) | func (am *AlertManager) setAlertTriggered(alert CachedAlertData, trigg... type AlertMessageData (line 29) | type AlertMessageData struct type UserNotificationSettings (line 38) | type UserNotificationSettings struct type SystemAlertFsStats (line 43) | type SystemAlertFsStats struct type SystemAlertStats (line 49) | type SystemAlertStats struct type SystemAlertGPUData (line 61) | type SystemAlertGPUData struct type SystemAlertData (line 65) | type SystemAlertData struct function NewAlertManager (line 99) | func NewAlertManager(app hubLike) *AlertManager { FILE: internal/alerts/alerts_api.go function UpsertUserAlerts (line 14) | func UpsertUserAlerts(e *core.RequestEvent) error { function DeleteUserAlerts (line 77) | func DeleteUserAlerts(e *core.RequestEvent) error { FILE: internal/alerts/alerts_battery_test.go function TestBatteryAlertLogic (line 21) | func TestBatteryAlertLogic(t *testing.T) { function TestBatteryAlertNoBattery (line 170) | func TestBatteryAlertNoBattery(t *testing.T) { function TestBatteryAlertAveragedSamples (line 228) | func TestBatteryAlertAveragedSamples(t *testing.T) { FILE: internal/alerts/alerts_cache.go type CachedAlertData (line 10) | type CachedAlertData struct method PopulateFromRecord (line 21) | func (a *CachedAlertData) PopulateFromRecord(record *core.Record) { type AlertsCache (line 33) | type AlertsCache struct method bindEvents (line 49) | func (c *AlertsCache) bindEvents() *AlertsCache { method PopulateFromDB (line 67) | func (c *AlertsCache) PopulateFromDB(force bool) error { method Update (line 84) | func (c *AlertsCache) Update(record *core.Record) { method Delete (line 100) | func (c *AlertsCache) Delete(record *core.Record) { method GetSystemAlerts (line 111) | func (c *AlertsCache) GetSystemAlerts(systemID string) []CachedAlertDa... method GetAlert (line 136) | func (c *AlertsCache) GetAlert(systemID, alertID string) (CachedAlertD... method GetAlertsByName (line 144) | func (c *AlertsCache) GetAlertsByName(systemID, alertName string) []Ca... method GetAlertsExcludingNames (line 156) | func (c *AlertsCache) GetAlertsExcludingNames(systemID string, exclude... method Refresh (line 172) | func (c *AlertsCache) Refresh(alert CachedAlertData) (CachedAlertData,... function NewAlertsCache (line 40) | func NewAlertsCache(app core.App) *AlertsCache { FILE: internal/alerts/alerts_cache_test.go function TestSystemAlertsCachePopulateAndFilter (line 14) | func TestSystemAlertsCachePopulateAndFilter(t *testing.T) { function TestSystemAlertsCacheLazyLoadUpdateAndDelete (line 65) | func TestSystemAlertsCacheLazyLoadUpdateAndDelete(t *testing.T) { function TestSystemAlertsCacheRefreshReturnsLatestCopy (line 103) | func TestSystemAlertsCacheRefreshReturnsLatestCopy(t *testing.T) { function TestAlertManagerCacheLifecycle (line 137) | func TestAlertManagerCacheLifecycle(t *testing.T) { FILE: internal/alerts/alerts_disk_test.go function TestDiskAlertExtraFsMultiMinute (line 21) | func TestDiskAlertExtraFsMultiMinute(t *testing.T) { FILE: internal/alerts/alerts_history.go function resolveHistoryOnAlertDelete (line 11) | func resolveHistoryOnAlertDelete(e *core.RecordEvent) error { function updateHistoryOnAlertUpdate (line 20) | func updateHistoryOnAlertUpdate(e *core.RecordEvent) error { function resolveAlertHistoryRecord (line 44) | func resolveAlertHistoryRecord(app core.App, alertRecordID string) error { function createAlertHistoryRecord (line 58) | func createAlertHistoryRecord(app core.App, alertRecord *core.Record) (a... FILE: internal/alerts/alerts_quiet_hours_test.go function TestAlertSilencedOneTime (line 17) | func TestAlertSilencedOneTime(t *testing.T) { function TestAlertSilencedDaily (line 98) | func TestAlertSilencedDaily(t *testing.T) { function TestAlertSilencedDailyMidnightCrossing (line 162) | func TestAlertSilencedDailyMidnightCrossing(t *testing.T) { function TestAlertSilencedGlobal (line 204) | func TestAlertSilencedGlobal(t *testing.T) { function TestAlertSilencedSystemSpecific (line 241) | func TestAlertSilencedSystemSpecific(t *testing.T) { function TestAlertSilencedMultiUser (line 278) | func TestAlertSilencedMultiUser(t *testing.T) { function TestAlertSilencedWithActualAlert (line 324) | func TestAlertSilencedWithActualAlert(t *testing.T) { function TestAlertSilencedNoWindows (line 409) | func TestAlertSilencedNoWindows(t *testing.T) { FILE: internal/alerts/alerts_smart.go method handleSmartDeviceAlert (line 12) | func (am *AlertManager) handleSmartDeviceAlert(e *core.RecordEvent) error { function shouldSendSmartDeviceAlert (line 69) | func shouldSendSmartDeviceAlert(oldState, newState string) bool { function smartStateSeverity (line 78) | func smartStateSeverity(state string) int { function smartStateEmoji (line 91) | func smartStateEmoji(state string) string { function smartStateLabel (line 100) | func smartStateLabel(state string) string { FILE: internal/alerts/alerts_smart_test.go function TestSmartDeviceAlert (line 13) | func TestSmartDeviceAlert(t *testing.T) { function TestSmartDeviceAlertPassedToWarning (line 60) | func TestSmartDeviceAlertPassedToWarning(t *testing.T) { function TestSmartDeviceAlertWarningToFailed (line 94) | func TestSmartDeviceAlertWarningToFailed(t *testing.T) { function TestSmartDeviceAlertNoAlertOnNonPassedToFailed (line 128) | func TestSmartDeviceAlertNoAlertOnNonPassedToFailed(t *testing.T) { function TestSmartDeviceAlertMultipleUsers (line 179) | func TestSmartDeviceAlertMultipleUsers(t *testing.T) { function TestSmartDeviceAlertWithoutModel (line 226) | func TestSmartDeviceAlertWithoutModel(t *testing.T) { FILE: internal/alerts/alerts_status.go type alertInfo (line 11) | type alertInfo struct method Stop (line 19) | func (am *AlertManager) Stop() { method HandleStatusAlerts (line 33) | func (am *AlertManager) HandleStatusAlerts(newStatus string, systemRecor... method handleSystemDown (line 53) | func (am *AlertManager) handleSystemDown(systemName string, alerts []Cac... method schedulePendingStatusAlert (line 62) | func (am *AlertManager) schedulePendingStatusAlert(systemName string, al... method handleSystemUp (line 83) | func (am *AlertManager) handleSystemUp(systemName string, alerts []Cache... method cancelPendingAlert (line 99) | func (am *AlertManager) cancelPendingAlert(alertID string) bool { method processPendingAlert (line 113) | func (am *AlertManager) processPendingAlert(alertID string) { method sendStatusAlert (line 130) | func (am *AlertManager) sendStatusAlert(alertStatus string, systemName s... function resolveStatusAlerts (line 162) | func resolveStatusAlerts(app core.App) error { method restorePendingStatusAlerts (line 194) | func (am *AlertManager) restorePendingStatusAlerts() error { FILE: internal/alerts/alerts_status_test.go function setStatusAlertEmail (line 18) | func setStatusAlertEmail(t *testing.T, hub core.App, userID, email strin... function TestStatusAlerts (line 31) | func TestStatusAlerts(t *testing.T) { function TestStatusAlertRecoveryBeforeDeadline (line 111) | func TestStatusAlertRecoveryBeforeDeadline(t *testing.T) { function TestStatusAlertNormalRecovery (line 157) | func TestStatusAlertNormalRecovery(t *testing.T) { function TestHandleStatusAlertsDoesNotSendRecoveryWhileDownIsOnlyPending (line 193) | func TestHandleStatusAlertsDoesNotSendRecoveryWhileDownIsOnlyPending(t *... function TestStatusAlertTimerCancellationPreventsBoundaryDelivery (line 236) | func TestStatusAlertTimerCancellationPreventsBoundaryDelivery(t *testing... function TestStatusAlertDownFiresAfterDelayExpires (line 288) | func TestStatusAlertDownFiresAfterDelayExpires(t *testing.T) { function TestStatusAlertMultipleUsersRespectDifferentMinutes (line 338) | func TestStatusAlertMultipleUsersRespectDifferentMinutes(t *testing.T) { function TestStatusAlertMultipleUsersRecoveryBetweenMinutesOnlyAlertsEarlierUser (line 425) | func TestStatusAlertMultipleUsersRecoveryBetweenMinutesOnlyAlertsEarlier... function TestStatusAlertDuplicateDownCallIsIdempotent (line 513) | func TestStatusAlertDuplicateDownCallIsIdempotent(t *testing.T) { function TestStatusAlertNoAlertRecord (line 550) | func TestStatusAlertNoAlertRecord(t *testing.T) { function TestRestorePendingStatusAlertsRequeuesDownSystemsAfterRestart (line 574) | func TestRestorePendingStatusAlertsRequeuesDownSystemsAfterRestart(t *te... function TestRestorePendingStatusAlertsSkipsNonDownOrAlreadyTriggeredAlerts (line 614) | func TestRestorePendingStatusAlertsSkipsNonDownOrAlreadyTriggeredAlerts(... function TestRestorePendingStatusAlertsIsIdempotent (line 663) | func TestRestorePendingStatusAlertsIsIdempotent(t *testing.T) { function TestResolveStatusAlertsFixesStaleTriggered (line 692) | func TestResolveStatusAlertsFixesStaleTriggered(t *testing.T) { function TestResolveStatusAlerts (line 718) | func TestResolveStatusAlerts(t *testing.T) { function TestAlertsHistoryStatus (line 818) | func TestAlertsHistoryStatus(t *testing.T) { function TestStatusAlertClearedBeforeSend (line 884) | func TestStatusAlertClearedBeforeSend(t *testing.T) { FILE: internal/alerts/alerts_system.go method HandleSystemAlerts (line 16) | func (am *AlertManager) HandleSystemAlerts(systemRecord *core.Record, da... method sendSystemAlert (line 300) | func (am *AlertManager) sendSystemAlert(alert SystemAlertData) { function isLowAlert (line 357) | func isLowAlert(name string) bool { FILE: internal/alerts/alerts_system_test.go type systemAlertValueSetter (line 16) | type systemAlertValueSetter type systemAlertTestFixture (line 18) | type systemAlertTestFixture struct method cleanup (line 74) | func (fixture *systemAlertTestFixture) cleanup() { method assertTriggered (line 83) | func (fixture *systemAlertTestFixture) assertTriggered(t *testing.T, t... function createCombinedData (line 24) | func createCombinedData[T any](value T, setValue systemAlertValueSetter[... function newSystemAlertTestFixture (line 30) | func newSystemAlertTestFixture(t *testing.T, alertName string, min int, ... function submitValue (line 78) | func submitValue[T any](fixture *systemAlertTestFixture, t *testing.T, v... function waitForSystemAlert (line 91) | func waitForSystemAlert(d time.Duration) { function testOneMinuteSystemAlert (line 96) | func testOneMinuteSystemAlert[T any](t *testing.T, alertName string, thr... function testMultiMinuteSystemAlert (line 119) | func testMultiMinuteSystemAlert[T any](t *testing.T, alertName string, t... function setCPUAlertValue (line 146) | func setCPUAlertValue(info *system.Info, stats *system.Stats, value floa... function setMemoryAlertValue (line 151) | func setMemoryAlertValue(info *system.Info, stats *system.Stats, value f... function setDiskAlertValue (line 156) | func setDiskAlertValue(info *system.Info, stats *system.Stats, value flo... function setBandwidthAlertValue (line 161) | func setBandwidthAlertValue(info *system.Info, stats *system.Stats, valu... function megabytesToBytes (line 166) | func megabytesToBytes(mb uint64) uint64 { function setGPUAlertValue (line 170) | func setGPUAlertValue(info *system.Info, stats *system.Stats, value floa... function setTemperatureAlertValue (line 177) | func setTemperatureAlertValue(info *system.Info, stats *system.Stats, va... function setLoadAvgAlertValue (line 184) | func setLoadAvgAlertValue(info *system.Info, stats *system.Stats, value ... function setBatteryAlertValue (line 189) | func setBatteryAlertValue(info *system.Info, stats *system.Stats, value ... function TestSystemAlertsOneMin (line 194) | func TestSystemAlertsOneMin(t *testing.T) { function TestSystemAlertsTwoMin (line 207) | func TestSystemAlertsTwoMin(t *testing.T) { FILE: internal/alerts/alerts_test.go function jsonReader (line 25) | func jsonReader(v any) io.Reader { function TestUserAlertsApi (line 33) | func TestUserAlertsApi(t *testing.T) { function TestAlertsHistory (line 372) | func TestAlertsHistory(t *testing.T) { function TestSetAlertTriggered (line 501) | func TestSetAlertTriggered(t *testing.T) { FILE: internal/alerts/alerts_test_helpers.go function NewTestAlertManagerWithoutWorker (line 12) | func NewTestAlertManagerWithoutWorker(app hubLike) *AlertManager { method GetSystemAlertsCache (line 20) | func (am *AlertManager) GetSystemAlertsCache() *AlertsCache { method GetAlertManager (line 24) | func (am *AlertManager) GetAlertManager() *AlertManager { method GetPendingAlerts (line 28) | func (am *AlertManager) GetPendingAlerts() *sync.Map { method GetPendingAlertsCount (line 32) | func (am *AlertManager) GetPendingAlertsCount() int { method ProcessPendingAlerts (line 42) | func (am *AlertManager) ProcessPendingAlerts() ([]CachedAlertData, error) { method ForceExpirePendingAlerts (line 61) | func (am *AlertManager) ForceExpirePendingAlerts() { method ResetPendingAlertTimer (line 70) | func (am *AlertManager) ResetPendingAlertTimer(alertID string, delay tim... function ResolveStatusAlerts (line 87) | func ResolveStatusAlerts(app core.App) error { method RestorePendingStatusAlerts (line 91) | func (am *AlertManager) RestorePendingStatusAlerts() error { method SetAlertTriggered (line 95) | func (am *AlertManager) SetAlertTriggered(alert CachedAlertData, trigger... FILE: internal/cmd/agent/agent.go type cmdOptions (line 18) | type cmdOptions struct method parse (line 27) | func (opts *cmdOptions) parse() bool { method loadPublicKeys (line 113) | func (opts *cmdOptions) loadPublicKeys() ([]ssh.PublicKey, error) { method getAddress (line 137) | func (opts *cmdOptions) getAddress() string { function handleFingerprint (line 142) | func handleFingerprint() { function fingerprintUsage (line 169) | func fingerprintUsage() string { function main (line 173) | func main() { FILE: internal/cmd/agent/agent_test.go function TestGetAddress (line 17) | func TestGetAddress(t *testing.T) { function TestLoadPublicKeys (line 95) | func TestLoadPublicKeys(t *testing.T) { function TestGetNetwork (line 190) | func TestGetNetwork(t *testing.T) { function TestParseFlags (line 244) | func TestParseFlags(t *testing.T) { FILE: internal/cmd/hub/hub.go function main (line 19) | func main() { function getBaseApp (line 38) | func getBaseApp() *pocketbase.PocketBase { function newHealthCmd (line 68) | func newHealthCmd() *cobra.Command { function checkHealth (line 87) | func checkHealth(baseURL string) error { FILE: internal/common/common-ws.go constant GetData (line 14) | GetData WebSocketAction = iota constant CheckFingerprint (line 16) | CheckFingerprint constant GetContainerLogs (line 18) | GetContainerLogs constant GetContainerInfo (line 20) | GetContainerInfo constant GetSmartData (line 22) | GetSmartData constant GetSystemdInfo (line 24) | GetSystemdInfo type HubRequest (line 29) | type HubRequest struct type AgentResponse (line 36) | type AgentResponse struct type FingerprintRequest (line 48) | type FingerprintRequest struct type FingerprintResponse (line 53) | type FingerprintResponse struct type DataRequestOptions (line 61) | type DataRequestOptions struct type ContainerLogsRequest (line 66) | type ContainerLogsRequest struct type ContainerInfoRequest (line 70) | type ContainerInfoRequest struct type SystemdInfoRequest (line 74) | type SystemdInfoRequest struct FILE: internal/entities/container/container.go type ApiInfo (line 6) | type ApiInfo struct type ApiStats (line 38) | type ApiStats struct method CalculateCpuPercentLinux (line 54) | func (s *ApiStats) CalculateCpuPercentLinux(prevCpuContainer uint64, p... method CalculateCpuPercentWindows (line 67) | func (s *ApiStats) CalculateCpuPercentWindows(prevCpuUsage uint64, pre... type HostInfo (line 47) | type HostInfo struct type CPUStats (line 83) | type CPUStats struct type CPUUsage (line 90) | type CPUUsage struct type MemoryStats (line 97) | type MemoryStats struct type MemoryStatsStats (line 106) | type MemoryStatsStats struct type NetworkStats (line 111) | type NetworkStats struct type prevNetStats (line 118) | type prevNetStats struct constant DockerHealthNone (line 126) | DockerHealthNone DockerHealth = iota constant DockerHealthStarting (line 127) | DockerHealthStarting constant DockerHealthHealthy (line 128) | DockerHealthHealthy constant DockerHealthUnhealthy (line 129) | DockerHealthUnhealthy type Stats (line 140) | type Stats struct FILE: internal/entities/smart/smart.go type VersionInfo (line 10) | type VersionInfo type SmartctlInfo (line 12) | type SmartctlInfo struct type DeviceInfo (line 21) | type DeviceInfo struct type UserCapacity (line 28) | type UserCapacity struct type SmartStatusInfo (line 76) | type SmartStatusInfo struct type StatusInfo (line 80) | type StatusInfo struct type PollingMinutes (line 86) | type PollingMinutes struct type CapabilitiesInfo (line 91) | type CapabilitiesInfo struct type SummaryInfo (line 127) | type SummaryInfo struct type AtaSmartAttributes (line 132) | type AtaSmartAttributes struct type AtaDeviceStatistics (line 136) | type AtaDeviceStatistics struct type AtaDeviceStatisticsPage (line 140) | type AtaDeviceStatisticsPage struct type AtaDeviceStatisticsEntry (line 145) | type AtaDeviceStatisticsEntry struct type AtaSmartAttribute (line 150) | type AtaSmartAttribute struct type RawValue (line 172) | type RawValue struct method UnmarshalJSON (line 177) | func (r *RawValue) UnmarshalJSON(data []byte) error { type SmartRawValue (line 204) | type SmartRawValue method UnmarshalJSON (line 207) | func (v *SmartRawValue) UnmarshalJSON(data []byte) error { function ParseSmartRawValueString (line 246) | func ParseSmartRawValueString(value string) (uint64, bool) { type TemperatureInfo (line 287) | type TemperatureInfo struct type TemperatureInfoScsi (line 291) | type TemperatureInfoScsi struct type SmartctlInfoLegacy (line 325) | type SmartctlInfoLegacy struct type SmartInfoForSata (line 334) | type SmartInfoForSata struct type ScsiErrorCounter (line 369) | type ScsiErrorCounter struct type ScsiErrorCounterLog (line 379) | type ScsiErrorCounterLog struct type ScsiStartStopCycleCounter (line 385) | type ScsiStartStopCycleCounter struct type PowerOnTimeScsi (line 394) | type PowerOnTimeScsi struct type SmartInfoForScsi (line 399) | type SmartInfoForScsi struct type SmartctlInfoNvme (line 425) | type SmartctlInfoNvme struct type SmartStatusInfoNvme (line 458) | type SmartStatusInfoNvme struct type SmartStatusNVMe (line 463) | type SmartStatusNVMe struct type NVMeSmartHealthInformationLog (line 467) | type NVMeSmartHealthInformationLog struct type SmartInfoForNvme (line 488) | type SmartInfoForNvme struct type TemperatureInfoNvme (line 513) | type TemperatureInfoNvme struct type PowerOnTimeInfoNvme (line 517) | type PowerOnTimeInfoNvme struct type SmartData (line 521) | type SmartData struct type SmartAttribute (line 534) | type SmartAttribute struct FILE: internal/entities/smart/smart_test.go function TestSmartRawValueUnmarshalDuration (line 10) | func TestSmartRawValueUnmarshalDuration(t *testing.T) { function TestSmartRawValueUnmarshalNumericString (line 19) | func TestSmartRawValueUnmarshalNumericString(t *testing.T) { function TestSmartRawValueUnmarshalParenthetical (line 28) | func TestSmartRawValueUnmarshalParenthetical(t *testing.T) { function TestSmartRawValueUnmarshalDurationWithFractions (line 37) | func TestSmartRawValueUnmarshalDurationWithFractions(t *testing.T) { function TestSmartRawValueUnmarshalParentheticalRawValue (line 46) | func TestSmartRawValueUnmarshalParentheticalRawValue(t *testing.T) { function TestSmartRawValueUnmarshalDurationRawValue (line 55) | func TestSmartRawValueUnmarshalDurationRawValue(t *testing.T) { FILE: internal/entities/system/system.go type Stats (line 13) | type Stats struct type Uint8Slice (line 56) | type Uint8Slice method MarshalJSON (line 58) | func (s Uint8Slice) MarshalJSON() ([]byte, error) { type GPUData (line 70) | type GPUData struct type FsStats (line 82) | type FsStats struct type NetIoStats (line 102) | type NetIoStats struct constant Linux (line 112) | Linux Os = iota constant Darwin (line 113) | Darwin constant Windows (line 114) | Windows constant Freebsd (line 115) | Freebsd constant ConnectionTypeNone (line 121) | ConnectionTypeNone ConnectionType = iota constant ConnectionTypeSSH (line 122) | ConnectionTypeSSH constant ConnectionTypeWebSocket (line 123) | ConnectionTypeWebSocket type Info (line 127) | type Info struct type Details (line 157) | type Details struct type CombinedData (line 172) | type CombinedData struct FILE: internal/entities/systemd/systemd.go type ServiceState (line 10) | type ServiceState constant StatusActive (line 13) | StatusActive ServiceState = iota constant StatusInactive (line 14) | StatusInactive constant StatusFailed (line 15) | StatusFailed constant StatusActivating (line 16) | StatusActivating constant StatusDeactivating (line 17) | StatusDeactivating constant StatusReloading (line 18) | StatusReloading type ServiceSubState (line 22) | type ServiceSubState constant SubStateDead (line 25) | SubStateDead ServiceSubState = iota constant SubStateRunning (line 26) | SubStateRunning constant SubStateExited (line 27) | SubStateExited constant SubStateFailed (line 28) | SubStateFailed constant SubStateUnknown (line 29) | SubStateUnknown function ParseServiceStatus (line 33) | func ParseServiceStatus(status string) ServiceState { function ParseServiceSubState (line 53) | func ParseServiceSubState(subState string) ServiceSubState { type Service (line 69) | type Service struct method UpdateCPUPercent (line 82) | func (s *Service) UpdateCPUPercent(cpuUsage uint64) { function twoDecimals (line 114) | func twoDecimals(value float64) float64 { type ServiceDependency (line 119) | type ServiceDependency struct type ServiceDetails (line 127) | type ServiceDetails FILE: internal/entities/systemd/systemd_test.go function TestParseServiceStatus (line 13) | func TestParseServiceStatus(t *testing.T) { function TestParseServiceSubState (line 36) | func TestParseServiceSubState(t *testing.T) { function TestServiceUpdateCPUPercent (line 58) | func TestServiceUpdateCPUPercent(t *testing.T) { FILE: internal/ghupdate/extract.go function extract (line 16) | func extract(srcPath, destDir string) error { function extractTarGz (line 25) | func extractTarGz(srcPath, destDir string) error { function extractZip (line 80) | func extractZip(src, dest string) error { function extractFile (line 102) | func extractFile(zipFile *zip.File, basePath string) error { FILE: internal/ghupdate/ghupdate.go constant colorReset (line 26) | colorReset = "\033[0m" constant ColorYellow (line 27) | ColorYellow = "\033[33m" constant ColorGreen (line 28) | ColorGreen = "\033[32m" constant colorCyan (line 29) | colorCyan = "\033[36m" constant colorGray (line 30) | colorGray = "\033[90m" function ColorPrint (line 33) | func ColorPrint(color, text string) { function ColorPrintf (line 37) | func ColorPrintf(color, format string, args ...any) { type HttpClient (line 42) | type HttpClient interface type Config (line 49) | type Config struct type updater (line 75) | type updater struct method update (line 89) | func (p *updater) update() (updated bool, err error) { function Update (line 80) | func Update(config Config) (updated bool, err error) { function fetchLatestRelease (line 229) | func fetchLatestRelease( function downloadFile (line 267) | func downloadFile( function isCrossDeviceError (line 312) | func isCrossDeviceError(err error) bool { function copyFile (line 318) | func copyFile(src, dst string) error { function archiveSuffix (line 345) | func archiveSuffix(binaryName, goos, goarch string) string { function isGlibc (line 356) | func isGlibc() bool { FILE: internal/ghupdate/ghupdate_test.go function TestReleaseFindAssetBySuffix (line 8) | func TestReleaseFindAssetBySuffix(t *testing.T) { function TestExtractFailure (line 28) | func TestExtractFailure(t *testing.T) { FILE: internal/ghupdate/release.go type releaseAsset (line 8) | type releaseAsset struct type release (line 15) | type release struct method findAssetBySuffix (line 26) | func (r *release) findAssetBySuffix(suffix string) (*releaseAsset, err... FILE: internal/ghupdate/selinux.go function HandleSELinuxContext (line 10) | func HandleSELinuxContext(path string) error { function trySemanageRestorecon (line 41) | func trySemanageRestorecon(path string) bool { FILE: internal/ghupdate/selinux_test.go function TestHandleSELinuxContext_NoSELinux (line 10) | func TestHandleSELinuxContext_NoSELinux(t *testing.T) { function TestHandleSELinuxContext_InvalidPath (line 29) | func TestHandleSELinuxContext_InvalidPath(t *testing.T) { function TestTrySemanageRestorecon_NoTools (line 42) | func TestTrySemanageRestorecon_NoTools(t *testing.T) { FILE: internal/hub/agent_connect.go type agentConnectRequest (line 23) | type agentConnectRequest struct method agentConnect (line 59) | func (acr *agentConnectRequest) agentConnect() (err error) { method verifyWsConn (line 105) | func (acr *agentConnectRequest) verifyWsConn(conn *gws.Conn, fpRecords... method validateAgentHeaders (line 140) | func (acr *agentConnectRequest) validateAgentHeaders(headers http.Head... method sendResponseError (line 151) | func (acr *agentConnectRequest) sendResponseError(res http.ResponseWri... method findOrCreateSystemForToken (line 173) | func (acr *agentConnectRequest) findOrCreateSystemForToken(fpRecords [... method handleNoRecords (line 190) | func (acr *agentConnectRequest) handleNoRecords(agentFingerprint commo... method handleSingleRecord (line 202) | func (acr *agentConnectRequest) handleSingleRecord(fpRecord ws.Fingerp... method handleMultipleRecordsOrUniversalToken (line 223) | func (acr *agentConnectRequest) handleMultipleRecordsOrUniversalToken(... method createNewSystemForUniversalToken (line 241) | func (acr *agentConnectRequest) createNewSystemForUniversalToken(agent... method createSystem (line 267) | func (acr *agentConnectRequest) createSystem(agentFingerprint common.F... type tokenMap (line 38) | type tokenMap struct method GetMap (line 44) | func (tm *tokenMap) GetMap() *expirymap.ExpiryMap[string] { method handleAgentConnect (line 52) | func (h *Hub) handleAgentConnect(e *core.RequestEvent) error { function getFingerprintRecordsByToken (line 160) | func getFingerprintRecordsByToken(token string, h *Hub) []ws.Fingerprint... method SetFingerprint (line 294) | func (h *Hub) SetFingerprint(fpRecord *ws.FingerprintRecord, fingerprint... function getRealIP (line 316) | func getRealIP(r *http.Request) string { FILE: internal/hub/agent_connect_test.go function createTestHub (line 29) | func createTestHub(t testing.TB) (*Hub, *pbtests.TestApp, error) { function cleanupTestHub (line 39) | func cleanupTestHub(hub *Hub, testApp *pbtests.TestApp) { function createTestRecord (line 59) | func createTestRecord(app core.App, collection string, data map[string]a... function createTestUser (line 73) | func createTestUser(app core.App) (*core.Record, error) { function TestValidateAgentHeaders (line 82) | func TestValidateAgentHeaders(t *testing.T) { function TestGetAllFingerprintRecordsByToken (line 163) | func TestGetAllFingerprintRecordsByToken(t *testing.T) { function TestSetFingerprint (line 253) | func TestSetFingerprint(t *testing.T) { function TestCreateSystemFromAgentData (line 333) | func TestCreateSystemFromAgentData(t *testing.T) { function TestUniversalTokenFlow (line 443) | func TestUniversalTokenFlow(t *testing.T) { function TestAgentConnect (line 511) | func TestAgentConnect(t *testing.T) { function TestSendResponseError (line 633) | func TestSendResponseError(t *testing.T) { function TestHandleAgentConnect (line 670) | func TestHandleAgentConnect(t *testing.T) { function TestAgentWebSocketIntegration (line 756) | func TestAgentWebSocketIntegration(t *testing.T) { function TestMultipleSystemsWithSameUniversalToken (line 997) | func TestMultipleSystemsWithSameUniversalToken(t *testing.T) { function TestPermanentUniversalTokenFromDB (line 1199) | func TestPermanentUniversalTokenFromDB(t *testing.T) { function TestFindOrCreateSystemForToken (line 1297) | func TestFindOrCreateSystemForToken(t *testing.T) { function TestGetRealIP (line 1744) | func TestGetRealIP(t *testing.T) { FILE: internal/hub/config/config.go type config (line 19) | type config struct type systemConfig (line 23) | type systemConfig struct function SyncSystems (line 32) | func SyncSystems(e *core.ServeEvent) error { function generateYAML (line 164) | func generateYAML(h core.App) (string, error) { function getUserEmailMap (line 237) | func getUserEmailMap(h core.App, userIDs []string) (map[string]string, e... function updateFingerprintToken (line 252) | func updateFingerprintToken(app core.App, systemID, token string) error { function createFingerprintRecord (line 266) | func createFingerprintRecord(app core.App, systemID, token string) error { function GetYamlConfig (line 281) | func GetYamlConfig(e *core.RequestEvent) error { FILE: internal/hub/config/config_test.go type testConfig (line 21) | type testConfig struct type testSystemConfig (line 25) | type testSystemConfig struct function createConfigTestFingerprint (line 51) | func createConfigTestFingerprint(app core.App, systemID, token, fingerpr... function TestConfigSyncWithTokens (line 66) | func TestConfigSyncWithTokens(t *testing.T) { function TestConfigMigrationScenario (line 191) | func TestConfigMigrationScenario(t *testing.T) { FILE: internal/hub/expirymap/expirymap.go type val (line 13) | type val struct type ExpiryMap (line 18) | type ExpiryMap struct function New (line 25) | func New[T comparable](cleanupInterval time.Duration) *ExpiryMap[T] { method Set (line 35) | func (m *ExpiryMap[T]) Set(key string, value T, ttl time.Duration) { method GetOk (line 44) | func (m *ExpiryMap[T]) GetOk(key string) (T, bool) { method GetByValue (line 60) | func (m *ExpiryMap[T]) GetByValue(val T) (key string, value T, ok bool) { method Remove (line 75) | func (m *ExpiryMap[T]) Remove(key string) { method RemovebyValue (line 80) | func (m *ExpiryMap[T]) RemovebyValue(value T) (T, bool) { method startCleaner (line 91) | func (m *ExpiryMap[T]) startCleaner(interval time.Duration) { method StopCleaner (line 104) | func (m *ExpiryMap[T]) StopCleaner() { method cleanup (line 111) | func (m *ExpiryMap[T]) cleanup() { method UpdateExpiration (line 121) | func (m *ExpiryMap[T]) UpdateExpiration(key string, ttl time.Duration) { FILE: internal/hub/expirymap/expirymap_test.go method Has (line 17) | func (m *ExpiryMap[T]) Has(key string) bool { method Get (line 23) | func (m *ExpiryMap[T]) Get(key string) T { method Len (line 29) | func (m *ExpiryMap[T]) Len() int { function TestExpiryMap_BasicOperations (line 40) | func TestExpiryMap_BasicOperations(t *testing.T) { function TestExpiryMap_Expiration (line 62) | func TestExpiryMap_Expiration(t *testing.T) { function TestExpiryMap_LazyCleanup (line 81) | func TestExpiryMap_LazyCleanup(t *testing.T) { function TestExpiryMap_Len (line 102) | func TestExpiryMap_Len(t *testing.T) { function TestExpiryMap_CustomInterval (line 123) | func TestExpiryMap_CustomInterval(t *testing.T) { function TestExpiryMap_GenericTypes (line 141) | func TestExpiryMap_GenericTypes(t *testing.T) { function TestExpiryMap_UpdateExpiration (line 181) | func TestExpiryMap_UpdateExpiration(t *testing.T) { function TestExpiryMap_ZeroValues (line 208) | func TestExpiryMap_ZeroValues(t *testing.T) { function TestExpiryMap_Concurrent (line 223) | func TestExpiryMap_Concurrent(t *testing.T) { function TestExpiryMap_GetByValue (line 255) | func TestExpiryMap_GetByValue(t *testing.T) { function TestExpiryMap_GetByValue_Expiration (line 282) | func TestExpiryMap_GetByValue_Expiration(t *testing.T) { function TestExpiryMap_GetByValue_GenericTypes (line 311) | func TestExpiryMap_GetByValue_GenericTypes(t *testing.T) { function TestExpiryMap_RemoveValue (line 356) | func TestExpiryMap_RemoveValue(t *testing.T) { function TestExpiryMap_RemoveValue_GenericTypes (line 385) | func TestExpiryMap_RemoveValue_GenericTypes(t *testing.T) { function TestExpiryMap_RemoveValue_WithExpiration (line 434) | func TestExpiryMap_RemoveValue_WithExpiration(t *testing.T) { function TestExpiryMap_ValueOperations_Integration (line 462) | func TestExpiryMap_ValueOperations_Integration(t *testing.T) { function TestExpiryMap_Cleaner (line 505) | func TestExpiryMap_Cleaner(t *testing.T) { function TestExpiryMap_StopCleaner (line 527) | func TestExpiryMap_StopCleaner(t *testing.T) { FILE: internal/hub/heartbeat/heartbeat.go constant defaultInterval (line 22) | defaultInterval = 60 constant httpTimeout (line 23) | httpTimeout = 10 * time.Second type Payload (line 27) | type Payload struct type SystemsSummary (line 40) | type SystemsSummary struct type SystemInfo (line 49) | type SystemInfo struct type AlertInfo (line 56) | type AlertInfo struct type Config (line 64) | type Config struct type Heartbeat (line 71) | type Heartbeat struct method Start (line 114) | func (hb *Heartbeat) Start(stop <-chan struct{}) { method Send (line 139) | func (hb *Heartbeat) Send() error { method GetConfig (line 144) | func (hb *Heartbeat) GetConfig() Config { method send (line 148) | func (hb *Heartbeat) send() error { method buildPayload (line 198) | func (hb *Heartbeat) buildPayload() (*Payload, error) { function New (line 79) | func New(app core.App, getEnv func(string) (string, bool)) *Heartbeat { function normalizeMethod (line 289) | func normalizeMethod(method string) string { function sanitizeHeartbeatURL (line 297) | func sanitizeHeartbeatURL(rawURL string) string { FILE: internal/hub/heartbeat/heartbeat_test.go function TestNew (line 19) | func TestNew(t *testing.T) { function TestSendGETDoesNotRequireAppOrDB (line 56) | func TestSendGETDoesNotRequireAppOrDB(t *testing.T) { function TestSendReturnsErrorOnHTTPFailureStatus (line 74) | func TestSendReturnsErrorOnHTTPFailureStatus(t *testing.T) { function TestSendPOSTBuildsExpectedStatuses (line 92) | func TestSendPOSTBuildsExpectedStatuses(t *testing.T) { function newTestHub (line 210) | func newTestHub(t *testing.T) *beszeltests.TestHub { function createTestUser (line 218) | func createTestUser(t *testing.T, app *beszeltests.TestHub) *core.Record { function createTestSystem (line 225) | func createTestSystem(t *testing.T, app *beszeltests.TestHub, userID, na... function createTriggeredAlert (line 238) | func createTriggeredAlert(t *testing.T, app *beszeltests.TestHub, userID... function envGetter (line 252) | func envGetter(values map[string]string) func(string) (string, bool) { FILE: internal/hub/hub.go type Hub (line 32) | type Hub struct method StartHub (line 73) | func (h *Hub) StartHub() error { method initialize (line 125) | func (h *Hub) initialize(e *core.ServeEvent) error { method registerCronJobs (line 242) | func (h *Hub) registerCronJobs(_ *core.ServeEvent) error { method registerMiddlewares (line 251) | func (h *Hub) registerMiddlewares(se *core.ServeEvent) { method registerApiRoutes (line 282) | func (h *Hub) registerApiRoutes(se *core.ServeEvent) error { method getUniversalToken (line 331) | func (h *Hub) getUniversalToken(e *core.RequestEvent) error { method getHeartbeatStatus (line 424) | func (h *Hub) getHeartbeatStatus(e *core.RequestEvent) error { method testHeartbeat (line 444) | func (h *Hub) testHeartbeat(e *core.RequestEvent) error { method containerRequestHandler (line 460) | func (h *Hub) containerRequestHandler(e *core.RequestEvent, fetchFunc ... method getContainerLogs (line 485) | func (h *Hub) getContainerLogs(e *core.RequestEvent) error { method getContainerInfo (line 491) | func (h *Hub) getContainerInfo(e *core.RequestEvent) error { method getSystemdInfo (line 498) | func (h *Hub) getSystemdInfo(e *core.RequestEvent) error { method refreshSmartData (line 520) | func (h *Hub) refreshSmartData(e *core.RequestEvent) error { method GetSSHKey (line 540) | func (h *Hub) GetSSHKey(dataDir string) (ssh.Signer, error) { method MakeLink (line 593) | func (h *Hub) MakeLink(parts ...string) string { function NewHub (line 48) | func NewHub(app core.App) *Hub { function GetEnv (line 65) | func GetEnv(key string) (value string, exists bool) { function setCollectionAuthSettings (line 145) | func setCollectionAuthSettings(app core.App) error { FILE: internal/hub/hub_test.go function jsonReader (line 28) | func jsonReader(v any) io.Reader { function TestMakeLink (line 36) | func TestMakeLink(t *testing.T) { function TestGetSSHKey (line 126) | func TestGetSSHKey(t *testing.T) { function TestApiRoutesAuthentication (line 268) | func TestApiRoutesAuthentication(t *testing.T) { function TestFirstUserCreation (line 674) | func TestFirstUserCreation(t *testing.T) { function TestCreateUserEndpointAvailability (line 783) | func TestCreateUserEndpointAvailability(t *testing.T) { function TestAutoLoginMiddleware (line 851) | func TestAutoLoginMiddleware(t *testing.T) { function TestTrustedHeaderMiddleware (line 905) | func TestTrustedHeaderMiddleware(t *testing.T) { FILE: internal/hub/hub_test_helpers.go method GetSystemManager (line 8) | func (h *Hub) GetSystemManager() *systems.SystemManager { method GetPubkey (line 13) | func (h *Hub) GetPubkey() string { method SetPubkey (line 18) | func (h *Hub) SetPubkey(pubkey string) { FILE: internal/hub/server_development.go type responseModifier (line 21) | type responseModifier struct method RoundTrip (line 26) | func (rm *responseModifier) RoundTrip(req *http.Request) (*http.Respon... method modifyHTML (line 50) | func (rm *responseModifier) modifyHTML(html string) string { method startServer (line 64) | func (h *Hub) startServer(se *core.ServeEvent) error { FILE: internal/hub/server_production.go method startServer (line 19) | func (h *Hub) startServer(se *core.ServeEvent) error { FILE: internal/hub/systems/system.go type System (line 34) | type System struct method StartUpdater (line 65) | func (sys *System) StartUpdater() { method update (line 118) | func (sys *System) update() error { method handlePaused (line 172) | func (sys *System) handlePaused() { method createRecords (line 186) | func (sys *System) createRecords(data *system.CombinedData) (*core.Rec... method getRecord (line 346) | func (sys *System) getRecord() (*core.Record, error) { method setDown (line 358) | func (sys *System) setDown(originalError error) error { method getContext (line 373) | func (sys *System) getContext() (context.Context, context.CancelFunc) { method request (line 382) | func (sys *System) request(ctx context.Context, action common.WebSocke... method ensureSSHTransport (line 429) | func (sys *System) ensureSSHTransport() error { method fetchDataFromAgent (line 452) | func (sys *System) fetchDataFromAgent(options common.DataRequestOption... method fetchDataViaWebSocket (line 473) | func (sys *System) fetchDataViaWebSocket(options common.DataRequestOpt... method FetchContainerInfoFromAgent (line 486) | func (sys *System) FetchContainerInfoFromAgent(containerID string) (st... method FetchContainerLogsFromAgent (line 495) | func (sys *System) FetchContainerLogsFromAgent(containerID string) (st... method FetchSystemdInfoFromAgent (line 504) | func (sys *System) FetchSystemdInfoFromAgent(serviceName string) (syst... method FetchSmartDataFromAgent (line 513) | func (sys *System) FetchSmartDataFromAgent() (map[string]smart.SmartDa... method fetchDataViaSSH (line 532) | func (sys *System) fetchDataViaSSH(options common.DataRequestOptions) ... method runSSHOperation (line 586) | func (sys *System) runSSHOperation(timeout time.Duration, retries int,... method createSSHClient (line 627) | func (s *System) createSSHClient() error { method createSessionWithTimeout (line 651) | func (sys *System) createSessionWithTimeout(timeout time.Duration) (*s... method closeSSHConnection (line 681) | func (sys *System) closeSSHConnection() { method closeWebSocketConnection (line 694) | func (sys *System) closeWebSocketConnection() { method NewSystem (line 53) | func (sm *SystemManager) NewSystem(systemId string) *System { function createSystemDetailsRecord (line 252) | func createSystemDetailsRecord(app core.App, data *system.Details, syste... function createSystemdStatsRecords (line 277) | func createSystemdStatsRecords(app core.App, data []*systemd.Service, sy... function createContainerRecords (line 309) | func createContainerRecords(app core.App, data []*container.Stats, syste... function shouldFallbackToSSH (line 408) | func shouldFallbackToSSH(err error) bool { function shouldCloseWebSocket (line 421) | func shouldCloseWebSocket(err error) bool { function makeStableHashId (line 521) | func makeStableHashId(strings ...string) string { function extractAgentVersion (line 701) | func extractAgentVersion(versionString string) (semver.Version, error) { function getJitter (line 709) | func getJitter() <-chan time.Time { function migrateDeprecatedFields (line 722) | func migrateDeprecatedFields(cd *system.CombinedData, createDetails bool) { FILE: internal/hub/systems/system_manager.go constant up (line 25) | up string = "up" constant down (line 26) | down string = "down" constant paused (line 27) | paused string = "paused" constant pending (line 28) | pending string = "pending" constant interval (line 31) | interval int = 60_000 constant sessionTimeout (line 35) | sessionTimeout = 4 * time.Second type SystemManager (line 43) | type SystemManager struct method GetSystem (line 70) | func (sm *SystemManager) GetSystem(systemID string) (*System, error) { method Initialize (line 81) | func (sm *SystemManager) Initialize() error { method bindEventHooks (line 114) | func (sm *SystemManager) bindEventHooks() { method onTokenRotated (line 128) | func (sm *SystemManager) onTokenRotated(e *core.RecordEvent) error { method onRecordCreate (line 145) | func (sm *SystemManager) onRecordCreate(e *core.RecordEvent) error { method onRecordAfterCreateSuccess (line 153) | func (sm *SystemManager) onRecordAfterCreateSuccess(e *core.RecordEven... method onRecordUpdate (line 162) | func (sm *SystemManager) onRecordUpdate(e *core.RecordEvent) error { method onRecordAfterUpdateSuccess (line 176) | func (sm *SystemManager) onRecordAfterUpdateSuccess(e *core.RecordEven... method onRecordAfterDeleteSuccess (line 230) | func (sm *SystemManager) onRecordAfterDeleteSuccess(e *core.RecordEven... method AddSystem (line 238) | func (sm *SystemManager) AddSystem(sys *System) error { method RemoveSystem (line 260) | func (sm *SystemManager) RemoveSystem(systemID string) error { method AddRecord (line 282) | func (sm *SystemManager) AddRecord(record *core.Record, system *System... method AddWebSocketSystem (line 304) | func (sm *SystemManager) AddWebSocketSystem(systemId string, agentVers... method createSSHClientConfig (line 321) | func (sm *SystemManager) createSSHClientConfig() error { type hubLike (line 52) | type hubLike interface function NewSystemManager (line 61) | func NewSystemManager(hub hubLike) *SystemManager { function deactivateAlerts (line 346) | func deactivateAlerts(app core.App, systemID string) error { FILE: internal/hub/systems/system_realtime.go type subscriptionInfo (line 14) | type subscriptionInfo struct method onRealtimeConnectRequest (line 29) | func (sm *SystemManager) onRealtimeConnectRequest(e *core.RealtimeConnec... method onRealtimeSubscribeRequest (line 41) | func (sm *SystemManager) onRealtimeSubscribeRequest(e *core.RealtimeSubs... method onRealtimeSubscriptionAdded (line 74) | func (sm *SystemManager) onRealtimeSubscriptionAdded() { method checkSubscriptions (line 94) | func (sm *SystemManager) checkSubscriptions() { method removeRealtimeSubscription (line 121) | func (sm *SystemManager) removeRealtimeSubscription(subscription string,... method startRealtimeWorker (line 136) | func (sm *SystemManager) startRealtimeWorker() { method fetchRealtimeDataAndNotify (line 155) | func (sm *SystemManager) fetchRealtimeDataAndNotify() { function notify (line 176) | func notify(app core.App, subscription string, data []byte) error { FILE: internal/hub/systems/system_smart.go method FetchAndSaveSmartDevices (line 13) | func (sys *System) FetchAndSaveSmartDevices() error { method saveSmartDevices (line 22) | func (sys *System) saveSmartDevices(smartData map[string]smart.SmartData... method upsertSmartDeviceRecord (line 42) | func (sys *System) upsertSmartDeviceRecord(collection *core.Collection, ... function extractPowerMetrics (line 78) | func extractPowerMetrics(attributes []*smart.SmartAttribute) (powerOnHou... FILE: internal/hub/systems/system_systemd_test.go function TestGetSystemdServiceId (line 11) | func TestGetSystemdServiceId(t *testing.T) { FILE: internal/hub/systems/system_test.go function TestCombinedData_MigrateDeprecatedFields (line 11) | func TestCombinedData_MigrateDeprecatedFields(t *testing.T) { FILE: internal/hub/systems/systems_production.go function backgroundSmartFetchEnabled (line 9) | func backgroundSmartFetchEnabled() bool { return true } FILE: internal/hub/systems/systems_test.go function TestSystemManagerNew (line 21) | func TestSystemManagerNew(t *testing.T) { function testOld (line 133) | func testOld(t *testing.T, hub *tests.TestHub) { FILE: internal/hub/systems/systems_test_helpers.go function backgroundSmartFetchEnabled (line 18) | func backgroundSmartFetchEnabled() bool { return false } method GetSystemCount (line 21) | func (sm *SystemManager) GetSystemCount() int { method HasSystem (line 26) | func (sm *SystemManager) HasSystem(systemID string) bool { method GetSystemStatusFromStore (line 32) | func (sm *SystemManager) GetSystemStatusFromStore(systemID string) string { method GetSystemContextFromStore (line 41) | func (sm *SystemManager) GetSystemContextFromStore(systemID string) (con... method GetSystemFromStore (line 50) | func (sm *SystemManager) GetSystemFromStore(systemID string) (*System, e... method GetAllSystemIDs (line 59) | func (sm *SystemManager) GetAllSystemIDs() []string { method GetSystemData (line 71) | func (sm *SystemManager) GetSystemData(systemID string) *entities.Combin... method GetSystemHostPort (line 81) | func (sm *SystemManager) GetSystemHostPort(systemID string) (string, str... method SetSystemStatusInDB (line 92) | func (sm *SystemManager) SetSystemStatusInDB(systemID string, status str... method RemoveAllSystems (line 113) | func (sm *SystemManager) RemoveAllSystems() { method StopUpdater (line 120) | func (s *System) StopUpdater() { method CreateRecords (line 124) | func (s *System) CreateRecords(data *entities.CombinedData) (*core.Recor... FILE: internal/hub/transport/ssh.go type SSHTransport (line 19) | type SSHTransport struct method SetClient (line 53) | func (t *SSHTransport) SetClient(client *ssh.Client) { method SetAgentVersion (line 58) | func (t *SSHTransport) SetAgentVersion(version semver.Version) { method GetClient (line 63) | func (t *SSHTransport) GetClient() *ssh.Client { method GetAgentVersion (line 68) | func (t *SSHTransport) GetAgentVersion() semver.Version { method Request (line 73) | func (t *SSHTransport) Request(ctx context.Context, action common.WebS... method IsConnected (line 123) | func (t *SSHTransport) IsConnected() bool { method Close (line 128) | func (t *SSHTransport) Close() { method connect (line 136) | func (t *SSHTransport) connect() error { method createSessionWithTimeout (line 161) | func (t *SSHTransport) createSessionWithTimeout(ctx context.Context) (... method RequestWithRetry (line 198) | func (t *SSHTransport) RequestWithRetry(ctx context.Context, action co... type SSHTransportConfig (line 29) | type SSHTransportConfig struct function NewSSHTransport (line 38) | func NewSSHTransport(cfg SSHTransportConfig) *SSHTransport { function extractAgentVersion (line 192) | func extractAgentVersion(versionString string) (semver.Version, error) { function isConnectionError (line 218) | func isConnectionError(err error) bool { FILE: internal/hub/transport/transport.go type Transport (line 19) | type Transport interface function UnmarshalResponse (line 32) | func UnmarshalResponse(resp common.AgentResponse, action common.WebSocke... function unmarshalLegacyResponse (line 48) | func unmarshalLegacyResponse(resp common.AgentResponse, action common.We... FILE: internal/hub/transport/websocket.go type WebSocketTransport (line 17) | type WebSocketTransport struct method Request (line 27) | func (t *WebSocketTransport) Request(ctx context.Context, action commo... method IsConnected (line 65) | func (t *WebSocketTransport) IsConnected() bool { method Close (line 70) | func (t *WebSocketTransport) Close() { function NewWebSocketTransport (line 22) | func NewWebSocketTransport(wsConn *ws.WsConn) *WebSocketTransport { FILE: internal/hub/update.go function Update (line 14) | func Update(cmd *cobra.Command, _ []string) { function restartService (line 58) | func restartService() { FILE: internal/hub/ws/handlers.go type ResponseHandler (line 15) | type ResponseHandler interface type BaseHandler (line 21) | type BaseHandler struct method HandleLegacy (line 23) | func (h *BaseHandler) HandleLegacy(rawData []byte) error { type fingerprintHandler (line 32) | type fingerprintHandler struct method HandleLegacy (line 36) | func (h *fingerprintHandler) HandleLegacy(rawData []byte) error { method Handle (line 40) | func (h *fingerprintHandler) Handle(agentResponse common.AgentResponse... method GetFingerprint (line 49) | func (ws *WsConn) GetFingerprint(ctx context.Context, token string, sign... FILE: internal/hub/ws/request_manager.go type RequestID (line 16) | type RequestID type PendingRequest (line 19) | type PendingRequest struct type RequestManager (line 28) | type RequestManager struct method SendRequest (line 45) | func (rm *RequestManager) SendRequest(ctx context.Context, action comm... method sendMessage (line 89) | func (rm *RequestManager) sendMessage(data any) error { method handleResponse (line 103) | func (rm *RequestManager) handleResponse(message *gws.Message) { method routeLegacyResponse (line 139) | func (rm *RequestManager) routeLegacyResponse(message *gws.Message) { method cleanupRequest (line 166) | func (rm *RequestManager) cleanupRequest(req *PendingRequest) { method cancelRequest (line 172) | func (rm *RequestManager) cancelRequest(reqID RequestID) { method deleteRequest (line 183) | func (rm *RequestManager) deleteRequest(reqID RequestID) { method Close (line 190) | func (rm *RequestManager) Close() { function NewRequestManager (line 36) | func NewRequestManager(conn *gws.Conn) *RequestManager { FILE: internal/hub/ws/request_manager_test.go function TestRequestManager_BasicFunctionality (line 14) | func TestRequestManager_BasicFunctionality(t *testing.T) { FILE: internal/hub/ws/ws.go constant deadline (line 19) | deadline = 70 * time.Second type Handler (line 23) | type Handler struct method OnOpen (line 66) | func (h *Handler) OnOpen(conn *gws.Conn) { method OnMessage (line 71) | func (h *Handler) OnMessage(conn *gws.Conn, message *gws.Message) { method OnClose (line 85) | func (h *Handler) OnClose(conn *gws.Conn, err error) { type WsConn (line 28) | type WsConn struct method Close (line 103) | func (ws *WsConn) Close(msg []byte) { method Ping (line 113) | func (ws *WsConn) Ping() error { method sendMessage (line 120) | func (ws *WsConn) sendMessage(data common.HubRequest[any]) error { method handleAgentRequest (line 132) | func (ws *WsConn) handleAgentRequest(req *PendingRequest, handler Resp... method IsConnected (line 162) | func (ws *WsConn) IsConnected() bool { method AgentVersion (line 167) | func (ws *WsConn) AgentVersion() semver.Version { method SendRequest (line 173) | func (ws *WsConn) SendRequest(ctx context.Context, action common.WebSo... type FingerprintRecord (line 36) | type FingerprintRecord struct function GetUpgrader (line 46) | func GetUpgrader() *gws.Upgrader { function NewWsConnection (line 56) | func NewWsConnection(conn *gws.Conn, agentVersion semver.Version) *WsConn { FILE: internal/hub/ws/ws_test.go function TestGetUpgrader (line 20) | func TestGetUpgrader(t *testing.T) { function TestNewWsConnection (line 37) | func TestNewWsConnection(t *testing.T) { function TestWsConn_IsConnected (line 49) | func TestWsConn_IsConnected(t *testing.T) { function TestWsConn_Close (line 56) | func TestWsConn_Close(t *testing.T) { function TestWsConn_SendMessage_CBOR (line 66) | func TestWsConn_SendMessage_CBOR(t *testing.T) { function TestWsConn_GetFingerprint_SignatureGeneration (line 91) | func TestWsConn_GetFingerprint_SignatureGeneration(t *testing.T) { function TestWsConn_RequestSystemData_RequestFormat (line 141) | func TestWsConn_RequestSystemData_RequestFormat(t *testing.T) { function TestFingerprintRecord (line 159) | func TestFingerprintRecord(t *testing.T) { function TestDeadlineConstant (line 174) | func TestDeadlineConstant(t *testing.T) { function TestCommonActions (line 179) | func TestCommonActions(t *testing.T) { function TestFingerprintHandler (line 186) | func TestFingerprintHandler(t *testing.T) { function TestHandler (line 201) | func TestHandler(t *testing.T) { function TestWsConnChannelBehavior (line 210) | func TestWsConnChannelBehavior(t *testing.T) { FILE: internal/hub/ws/ws_test_helpers.go method GetPendingCount (line 6) | func (rm *RequestManager) GetPendingCount() int { FILE: internal/migrations/0_collections_snapshot_0_19_0_dev_1.go function init (line 8) | func init() { FILE: internal/migrations/initial-settings.go constant TempAdminEmail (line 11) | TempAdminEmail = "_@b.b" function init (line 14) | func init() { function GetEnv (line 65) | func GetEnv(key string) (value string, exists bool) { FILE: internal/records/records.go type RecordManager (line 19) | type RecordManager struct method CreateLongerRecords (line 53) | func (rm *RecordManager) CreateLongerRecords() { method AverageSystemStats (line 172) | func (rm *RecordManager) AverageSystemStats(db dbx.Builder, records Re... method AverageContainerStats (line 439) | func (rm *RecordManager) AverageContainerStats(db dbx.Builder, records... method DeleteOldRecords (line 492) | func (rm *RecordManager) DeleteOldRecords() { type LongerRecordData (line 23) | type LongerRecordData struct type RecordIds (line 30) | type RecordIds function NewRecordManager (line 34) | func NewRecordManager(app core.App) *RecordManager { type StatsRecord (line 38) | type StatsRecord struct function deleteOldAlertsHistory (line 519) | func deleteOldAlertsHistory(app core.App, countToKeep, countBeforeDeleti... function deleteOldSystemStats (line 538) | func deleteOldSystemStats(app core.App) error { function deleteOldSystemdServiceRecords (line 580) | func deleteOldSystemdServiceRecords(app core.App) error { function deleteOldContainerRecords (line 594) | func deleteOldContainerRecords(app core.App) error { function deleteOldQuietHours (line 608) | func deleteOldQuietHours(app core.App) error { function twoDecimals (line 619) | func twoDecimals(value float64) float64 { FILE: internal/records/records_test.go function TestDeleteOldRecords (line 21) | func TestDeleteOldRecords(t *testing.T) { function TestDeleteOldSystemStats (line 106) | func TestDeleteOldSystemStats(t *testing.T) { function TestDeleteOldAlertsHistory (line 198) | func TestDeleteOldAlertsHistory(t *testing.T) { function TestDeleteOldAlertsHistoryEdgeCases (line 304) | func TestDeleteOldAlertsHistoryEdgeCases(t *testing.T) { function TestDeleteOldSystemdServiceRecords (line 354) | func TestDeleteOldSystemdServiceRecords(t *testing.T) { function TestRecordManagerCreation (line 431) | func TestRecordManagerCreation(t *testing.T) { function TestTwoDecimals (line 441) | func TestTwoDecimals(t *testing.T) { FILE: internal/records/records_test_helpers.go function DeleteOldSystemStats (line 10) | func DeleteOldSystemStats(app core.App) error { function DeleteOldAlertsHistory (line 15) | func DeleteOldAlertsHistory(app core.App, countToKeep, countBeforeDeleti... function TwoDecimals (line 20) | func TwoDecimals(value float64) float64 { FILE: internal/site/src/components/add-system.tsx function AddSystemButton (line 38) | function AddSystemButton({ className }: { className?: string }) { function handleSubmit (line 104) | async function handleSubmit(e: SubmitEvent) { type CopyButtonProps (line 287) | interface CopyButtonProps { FILE: internal/site/src/components/alerts-history-columns.tsx method cell (line 61) | cell({ row, getValue }) { FILE: internal/site/src/components/alerts/alerts-sheet.tsx function AlertContent (line 152) | function AlertContent({ FILE: internal/site/src/components/charts/area-chart.tsx type DataPoint (line 16) | type DataPoint = { function AreaChartDefault (line 24) | function AreaChartDefault({ FILE: internal/site/src/components/charts/hooks.ts type ContainerChartConfigs (line 6) | interface ContainerChartConfigs { function useContainerChartConfigs (line 17) | function useContainerChartConfigs(containerData: ChartData["containerDat... function useYAxisWidth (line 86) | function useYAxisWidth() { function useNetworkInterfaces (line 112) | function useNetworkInterfaces(interfaces: SystemStats["ni"]) { FILE: internal/site/src/components/charts/line-chart.tsx type DataPoint (line 15) | type DataPoint = { function LineChartDefault (line 21) | function LineChartDefault({ FILE: internal/site/src/components/containers-table/containers-table-columns.tsx function getStatusValue (line 32) | function getStatusValue(status: string): number { function HeaderButton (line 211) | function HeaderButton({ function getPortValue (line 241) | function getPortValue(ports: string | undefined): number { FILE: internal/site/src/components/containers-table/containers-table.tsx function ContainersTable (line 38) | function ContainersTable({ systemId }: { systemId?: string }) { function getLogsHtml (line 275) | async function getLogsHtml(container: ContainerRecord): Promise { function getInfoHtml (line 291) | async function getInfoHtml(container: ContainerRecord): Promise { function ContainerSheet (line 310) | function ContainerSheet({ function ContainersTableHead (line 462) | function ContainersTableHead({ table }: { table: TableType) { FILE: internal/site/src/components/routes/settings/alerts-history-data-table.tsx function AlertsHistoryDataTable (line 61) | function AlertsHistoryDataTable() { FILE: internal/site/src/components/routes/settings/config-yaml.tsx function ConfigYaml (line 15) | function ConfigYaml() { FILE: internal/site/src/components/routes/settings/general.tsx function SettingsProfilePage (line 20) | function SettingsProfilePage({ userSettings }: { userSettings: UserSetti... FILE: internal/site/src/components/routes/settings/heartbeat.tsx type HeartbeatStatus (line 14) | interface HeartbeatStatus { function HeartbeatSettings (line 22) | function HeartbeatSettings() { function EnabledState (line 104) | function EnabledState({ function NotEnabledState (line 172) | function NotEnabledState({ isLoading }: { isLoading?: boolean }) { function ConfigItem (line 200) | function ConfigItem({ label, value, mono }: { label: string; value: stri... function EnvVarItem (line 209) | function EnvVarItem({ name, description, example }: { name: string; desc... FILE: internal/site/src/components/routes/settings/layout.tsx function saveSettings (line 37) | async function saveSettings(newSettings: Partial) { function SettingsLayout (line 65) | function SettingsLayout() { function SettingsContent (line 146) | function SettingsContent({ name }: { name: string }) { FILE: internal/site/src/components/routes/settings/notifications.tsx type ShoutrrrUrlCardProps (line 19) | interface ShoutrrrUrlCardProps { function addWebhook (line 41) | function addWebhook() { function updateWebhook (line 51) | function updateWebhook(index: number, value: string) { function updateSettings (line 57) | async function updateSettings() { FILE: internal/site/src/components/routes/settings/quiet-hours.tsx function QuietHours (line 47) | function QuietHours() { function formatDateTimeLocal (line 276) | function formatDateTimeLocal(date: Date): string { function QuietHoursDialog (line 285) | function QuietHoursDialog({ FILE: internal/site/src/components/routes/settings/sidebar-nav.tsx type SidebarNavProps (line 10) | interface SidebarNavProps extends React.HTMLAttributes { function SidebarNav (line 21) | function SidebarNav({ className, items, ...props }: SidebarNavProps) { FILE: internal/site/src/components/routes/settings/tokens-fingerprints.tsx function sortFingerprints (line 48) | function sortFingerprints(fingerprints: FingerprintRecord[]) { function updateToken (line 143) | async function updateToken(enable: number = -1, permanent: number = -1) { function updateFingerprint (line 363) | async function updateFingerprint(fingerprint: FingerprintRecord, rotateT... FILE: internal/site/src/components/routes/smart.tsx function Smart (line 6) | function Smart() { FILE: internal/site/src/components/routes/system.tsx type ChartTimeData (line 68) | type ChartTimeData = { function getTimeData (line 80) | function getTimeData(chartTime: ChartTimes, lastCreated: number) { function addEmptyValues (line 101) | function addEmptyValues( function getStats (line 128) | async function getStats) { function TableCellWithMeter (line 458) | function TableCellWithMeter(info: CellContext) { function DiskCellWithMultiple (line 479) | function DiskCellWithMultiple(info: CellContext) { function IndicatorDot (line 572) | function IndicatorDot({ system, className }: { system: SystemRecord; cla... FILE: internal/site/src/components/systems-table/systems-table.tsx type ViewMode (line 53) | type ViewMode = "table" | "grid" type StatusFilter (line 54) | type StatusFilter = "all" | SystemRecord["status"] function SystemsTable (line 58) | function SystemsTable() { function SystemsTableHead (line 390) | function SystemsTableHead({ table }: { table: TableType }) { FILE: internal/site/src/components/theme-provider.tsx type Theme (line 3) | type Theme = "dark" | "light" | "system" type ThemeProviderProps (line 5) | type ThemeProviderProps = { type ThemeProviderState (line 11) | type ThemeProviderState = { function ThemeProvider (line 23) | function ThemeProvider({ FILE: internal/site/src/components/ui/badge.tsx type BadgeProps (line 26) | interface BadgeProps extends React.HTMLAttributes, Varia... function Badge (line 28) | function Badge({ className, variant, ...props }: BadgeProps) { FILE: internal/site/src/components/ui/button.tsx type ButtonProps (line 33) | interface ButtonProps FILE: internal/site/src/components/ui/chart.tsx constant THEMES (line 11) | const THEMES = { light: "", dark: ".dark" } as const type ChartConfig (line 13) | type ChartConfig = { function getPayloadConfigFromPayload (line 378) | function getPayloadConfigFromPayload(config: ChartConfig, payload: unkno... function pinnedAxisDomain (line 435) | function pinnedAxisDomain(): AxisDomain { FILE: internal/site/src/components/ui/collapsible.tsx type CollapsibleProps (line 6) | interface CollapsibleProps { function Collapsible (line 15) | function Collapsible({ title, children, description, defaultOpen = false... FILE: internal/site/src/components/ui/command.tsx function Command (line 7) | function Command({ className, ...props }: React.ComponentProps) { function WindowsIcon (line 16) | function WindowsIcon(props: SVGProps) { function AppleIcon (line 30) | function AppleIcon(props: SVGProps) { function FreeBsdIcon (line 42) | function FreeBsdIcon(props: SVGProps) { function DockerIcon (line 54) | function DockerIcon(props: SVGProps) { function Rows (line 64) | function Rows(props: SVGProps) { function ChartAverage (line 76) | function ChartAverage(props: SVGProps) { function ChartMax (line 87) | function ChartMax(props: SVGProps) { function EthernetIcon (line 98) | function EthernetIcon(props: SVGProps) { function ThermometerIcon (line 107) | function ThermometerIcon(props: SVGProps) { function GpuIcon (line 116) | function GpuIcon(props: SVGProps) { function HourglassIcon (line 126) | function HourglassIcon(props: SVGProps) { function WebSocketIcon (line 135) | function WebSocketIcon(props: SVGProps) { function BatteryMediumIcon (line 145) | function BatteryMediumIcon(props: SVGProps) { function BatteryLowIcon (line 154) | function BatteryLowIcon(props: SVGProps) { function BatteryHighIcon (line 163) | function BatteryHighIcon(props: SVGProps) { function BatteryFullIcon (line 172) | function BatteryFullIcon(props: SVGProps) { function PlugChargingIcon (line 181) | function PlugChargingIcon(props: SVGProps) { function SquareArrowRightEnterIcon (line 190) | function SquareArrowRightEnterIcon(props: SVGProps) { FILE: internal/site/src/components/ui/input-copy.tsx function InputCopy (line 8) | function InputCopy({ value, id, name }: { value: string; id: string; nam... FILE: internal/site/src/components/ui/input-tags.tsx type InputTagsProps (line 8) | type InputTagsProps = Omit & { FILE: internal/site/src/components/ui/input.tsx function Input (line 5) | function Input({ className, type, ...props }: React.ComponentProps<"inpu... FILE: internal/site/src/components/ui/otp.tsx function InputOTP (line 7) | function InputOTP({ function InputOTPGroup (line 24) | function InputOTPGroup({ className, ...props }: React.ComponentProps<"di... function InputOTPSlot (line 28) | function InputOTPSlot({ function InputOTPSeparator (line 58) | function InputOTPSeparator({ ...props }: React.ComponentProps<"div">) { FILE: internal/site/src/components/ui/sheet.tsx function Sheet (line 7) | function Sheet({ ...props }: React.ComponentProps type ToastActionElement (line 99) | type ToastActionElement = React.ReactElement FILE: internal/site/src/components/ui/toaster.tsx function Toaster (line 4) | function Toaster() { FILE: internal/site/src/components/ui/tooltip.tsx function TooltipProvider (line 6) | function TooltipProvider({ delayDuration = 50, ...props }: React.Compone... function Tooltip (line 10) | function Tooltip({ ...props }: React.ComponentProps function toast (line 138) | function toast({ ...props }: Toast) { function useToast (line 167) | function useToast() { FILE: internal/site/src/lib/alerts.ts function fetchAlerts (line 106) | async function fetchAlerts(): Promise { function add (line 111) | function add(alerts: AlertRecord[]) { function remove (line 121) | function remove(alerts: Pick[]) { function subscribe (line 161) | async function subscribe() { function unsubscribe (line 165) | function unsubscribe() { function refresh (line 169) | async function refresh() { FILE: internal/site/src/lib/api.ts function logOut (line 29) | function logOut() { function updateUserSettings (line 40) | async function updateUserSettings() { function getPbTimestamp (line 57) | function getPbTimestamp(timeString: ChartTimes, d?: Date) { FILE: internal/site/src/lib/enums.ts type Os (line 2) | enum Os { type ChartType (line 10) | enum ChartType { type Unit (line 18) | enum Unit { type MeterState (line 26) | enum MeterState { type SystemStatus (line 33) | enum SystemStatus { type BatteryState (line 41) | enum BatteryState { type HourFormat (line 51) | enum HourFormat { type ContainerHealth (line 58) | enum ContainerHealth { type ConnectionType (line 68) | enum ConnectionType { type ServiceStatus (line 76) | enum ServiceStatus { type ServiceSubState (line 88) | enum ServiceSubState { FILE: internal/site/src/lib/i18n.ts function activateLocale (line 13) | function activateLocale(locale: string, messages: Messages = enMessages) { function dynamicActivate (line 22) | async function dynamicActivate(locale: string) { function getLocale (line 36) | function getLocale() { FILE: internal/site/src/lib/systemsManager.ts constant COLLECTION (line 16) | const COLLECTION = pb.collection("systems") constant FIELDS_DEFAULT (line 17) | const FIELDS_DEFAULT = "id,name,host,port,info,status" constant MAX_SYSTEM_NAME_LENGTH (line 20) | const MAX_SYSTEM_NAME_LENGTH = 22 function init (line 27) | function init() { function onSystemsChanged (line 76) | function onSystemsChanged(_: Record, changedSystem... function fetchSystems (line 91) | async function fetchSystems(): Promise { function validateSystemInfo (line 101) | function validateSystemInfo(system: SystemRecord) { function add (line 108) | function add(system: SystemRecord) { function update (line 119) | function update(system: SystemRecord) { function remove (line 134) | function remove(system: SystemRecord) { function removeFromStore (line 143) | function removeFromStore(system: SystemRecord, store: PreinitializedMapS... function subscribe (line 156) | async function subscribe() { function refresh (line 167) | async function refresh() { FILE: internal/site/src/lib/use-intersection-observer.ts type State (line 6) | type State = { type UseIntersectionObserverOptions (line 14) | type UseIntersectionObserverOptions = { type IntersectionReturn (line 57) | type IntersectionReturn = { function useIntersectionObserver (line 72) | function useIntersectionObserver({ FILE: internal/site/src/lib/utils.ts function cn (line 12) | function cn(...inputs: ClassValue[]) { function listen (line 17) | function listen(node: Node, event: string, hand... function copyToClipboard (line 22) | async function copyToClipboard(content: string) { function toFixedFloat (line 180) | function toFixedFloat(num: number, digits: number) { function decimalString (line 186) | function decimalString(num: number, digits = 2) { function getStorageValue (line 202) | function getStorageValue(key: string, defaultValue: unknown, storageInte... function useBrowserStorage (line 208) | function useBrowserStorage(key: string, defaultValue: T, storageInter... function formatTemperature (line 221) | function formatTemperature(celsius: number, unit?: Unit): { value: numbe... function formatBytes (line 239) | function formatBytes( function formatDuration (line 330) | function formatDuration( function compareSemVer (line 386) | function compareSemVer(a: SemVer, b: SemVer) { function debounce (line 397) | function debounce any>(func: T, wait: numb... function runOnce (line 410) | function runOnce any>(fn: T): T { function getVisualStringWidth (line 426) | function getVisualStringWidth(str: string): number { function secondsToString (line 450) | function secondsToString(seconds: number, unit: "hour" | "minute" | "day... function secondsToUptimeString (line 464) | function secondsToUptimeString(seconds: number): string { FILE: internal/site/src/types.d.ts type FingerprintRecord (line 13) | interface FingerprintRecord extends RecordModel { type SystemRecord (line 25) | interface SystemRecord extends RecordModel { type SystemInfo (line 35) | interface SystemInfo { type SystemStats (line 82) | interface SystemStats { type GPUData (line 151) | interface GPUData { type ExtraFsStats (line 168) | interface ExtraFsStats { type ContainerStatsRecord (line 191) | interface ContainerStatsRecord extends RecordModel { type ContainerStats (line 197) | interface ContainerStats { type SystemStatsRecord (line 212) | interface SystemStatsRecord extends RecordModel { type AlertRecord (line 218) | interface AlertRecord extends RecordModel { type AlertsHistoryRecord (line 228) | interface AlertsHistoryRecord extends RecordModel { type QuietHoursRecord (line 238) | interface QuietHoursRecord extends RecordModel { type ContainerRecord (line 252) | interface ContainerRecord extends RecordModel { type ChartTimes (line 266) | type ChartTimes = "1m" | "1h" | "12h" | "24h" | "1w" | "30d" type ChartTimeData (line 268) | interface ChartTimeData { type UserSettings (line 280) | interface UserSettings { type ChartDataContainer (line 293) | type ChartDataContainer = { type SemVer (line 299) | interface SemVer { type ChartData (line 305) | interface ChartData { type AlertInfo (line 315) | interface AlertInfo { type AlertMap (line 329) | type AlertMap = Record> type SmartData (line 331) | interface SmartData { type SmartAttribute (line 354) | interface SmartAttribute { type SystemDetailsRecord (line 373) | interface SystemDetailsRecord extends RecordModel { type SmartDeviceRecord (line 386) | interface SmartDeviceRecord extends RecordModel { type SystemdRecord (line 403) | interface SystemdRecord extends RecordModel { type SystemdServiceDetails (line 415) | interface SystemdServiceDetails { FILE: internal/tests/api.go type ApiScenario (line 27) | type ApiScenario struct method Test (line 118) | func (scenario *ApiScenario) Test(t *testing.T) { method Benchmark (line 148) | func (scenario *ApiScenario) Benchmark(b *testing.B) { method normalizedName (line 156) | func (scenario *ApiScenario) normalizedName() string { method test (line 166) | func (scenario *ApiScenario) test(t testing.TB) { FILE: internal/tests/hub.go type TestHub (line 20) | type TestHub struct method Cleanup (line 100) | func (h *TestHub) Cleanup() { function NewTestHub (line 29) | func NewTestHub(optTestDataDir ...string) (*TestHub, error) { function NewTestHubWithConfig (line 49) | func NewTestHubWithConfig(config core.BaseAppConfig) (*TestHub, error) { function CreateUser (line 67) | func CreateUser(app core.App, email string, password string) (*core.Reco... function CreateRecord (line 81) | func CreateRecord(app core.App, collectionName string, fields map[string... function ClearCollection (line 93) | func ClearCollection(t testing.TB, app core.App, collectionName string) ... function CreateSystems (line 106) | func CreateSystems(app core.App, count int, userId string, status string... function GetHubWithUser (line 129) | func GetHubWithUser(t *testing.T) (*TestHub, *core.Record) { FILE: internal/users/users.go type UserManager (line 14) | type UserManager struct method InitializeUserRole (line 25) | func (um *UserManager) InitializeUserRole(e *core.RecordEvent) error { method InitializeUserSettings (line 33) | func (um *UserManager) InitializeUserSettings(e *core.RecordEvent) err... method CreateFirstUser (line 61) | func (um *UserManager) CreateFirstUser(e *core.RequestEvent) error { function NewUserManager (line 18) | func NewUserManager(app core.App) *UserManager {