Skip to content

Commit 724f342

Browse files
authored
Avoid invoking non-existent helper for system stats with Crunchy Bridge (#692)
* Ignore helper process error with Crunchy Bridge * Skip collecting system stats using helper function with Crunchy
1 parent 2824162 commit 724f342

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

Diff for: input/system/crunchy_bridge/system.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func GetSystemState(ctx context.Context, server *state.Server, logger *util.Logg
1717
// using the same way as a self hosted server, since the container receives a bind mount
1818
// of /proc and /sys from the host. Note this excludes disk usage metrics, which we instead
1919
// get from the API.
20-
system = selfhosted.GetSystemState(server, logger)
20+
system = selfhosted.GetSystemState(server, logger, true)
2121
system.Info.Type = state.CrunchyBridgeSystem
2222

2323
// When API key is provided, use API to obtain extra info including disk usage metrics

Diff for: input/system/selfhosted/system.go

+15-13
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ type helperStatus struct {
2727
}
2828

2929
// GetSystemState - Gets system information about a self-hosted (physical/virtual) system
30-
func GetSystemState(server *state.Server, logger *util.Logger) (system state.SystemState) {
30+
func GetSystemState(server *state.Server, logger *util.Logger, skipHelperRun bool) (system state.SystemState) {
3131
config := server.Config
3232
var status helperStatus
3333

@@ -36,20 +36,22 @@ func GetSystemState(server *state.Server, logger *util.Logger) (system state.Sys
3636
Architecture: runtime.GOARCH,
3737
}
3838

39-
statusBytes, err := exec.Command("/usr/bin/pganalyze-collector-helper", "status", config.DbDataDirectory).Output()
40-
if err != nil {
41-
server.SelfTest.MarkCollectionAspectError(state.CollectionAspectSystemStats, "error running system stats helper process: %s", err)
42-
logger.PrintVerbose("Selfhosted/System: Could not run helper process: %s", err)
43-
} else {
44-
err = json.Unmarshal(statusBytes, &status)
39+
if !skipHelperRun {
40+
statusBytes, err := exec.Command("/usr/bin/pganalyze-collector-helper", "status", config.DbDataDirectory).Output()
4541
if err != nil {
46-
server.SelfTest.MarkCollectionAspectError(state.CollectionAspectSystemStats, "error reading system stats helper output: %s", err)
47-
logger.PrintVerbose("Selfhosted/System: Could not unmarshal helper status: %s", err)
48-
}
42+
server.SelfTest.MarkCollectionAspectError(state.CollectionAspectSystemStats, "error running system stats helper process: %s", err)
43+
logger.PrintVerbose("Selfhosted/System: Could not run helper process: %s", err)
44+
} else {
45+
err = json.Unmarshal(statusBytes, &status)
46+
if err != nil {
47+
server.SelfTest.MarkCollectionAspectError(state.CollectionAspectSystemStats, "error reading system stats helper output: %s", err)
48+
logger.PrintVerbose("Selfhosted/System: Could not unmarshal helper status: %s", err)
49+
}
4950

50-
system.XlogUsedBytes = status.XlogUsedBytes
51-
system.Info.SelfHosted.DatabaseSystemIdentifier = status.SystemIdentifier
52-
system.Info.ClusterID = status.SystemIdentifier
51+
system.XlogUsedBytes = status.XlogUsedBytes
52+
system.Info.SelfHosted.DatabaseSystemIdentifier = status.SystemIdentifier
53+
system.Info.ClusterID = status.SystemIdentifier
54+
}
5355
}
5456

5557
hostInfo, err := host.Info()

Diff for: input/system/system.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func GetSystemState(ctx context.Context, server *state.Server, logger *util.Logg
5555
} else if config.SystemType == "tembo" {
5656
system = tembo.GetSystemState(ctx, server, logger)
5757
} else if dbHost == "" || dbHost == "localhost" || dbHost == "127.0.0.1" || config.AlwaysCollectSystemData {
58-
system = selfhosted.GetSystemState(server, logger)
58+
system = selfhosted.GetSystemState(server, logger, false)
5959
} else {
6060
if opts.TestRun {
6161
// Detected as self hosted, but not collecting system state as we

0 commit comments

Comments
 (0)