-
-
Notifications
You must be signed in to change notification settings - Fork 164
/
log-system-diagnostics.ts
39 lines (33 loc) · 1.01 KB
/
log-system-diagnostics.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { log } from "./logger";
import { version as dockerComposeVersion } from "./docker-compose/docker-compose";
import { getDockerInfo } from "./docker/functions/get-info";
import Dockerode from "dockerode";
export const logSystemDiagnostics = async (dockerode: Dockerode): Promise<void> => {
log.debug("Fetching system diagnostics");
const info = {
node: getNodeInfo(),
docker: await getDockerInfo(dockerode),
dockerCompose: await getDockerComposeInfo(),
};
log.debug(`System diagnostics: ${JSON.stringify(info)}`);
};
const getNodeInfo = () => {
return {
version: process.version,
architecture: process.arch,
platform: process.platform,
};
};
type DockerComposeInfo = {
version: string;
};
const getDockerComposeInfo = async (): Promise<DockerComposeInfo | undefined> => {
try {
return {
version: (await dockerComposeVersion()).data.version,
};
} catch (err) {
log.info(`Unable to detect docker-compose version, is it installed? ${err}`);
return undefined;
}
};