diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java index a5b126d94cc36f..35ac8b90a9dd5a 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java @@ -60,6 +60,7 @@ import com.google.devtools.build.lib.runtime.commands.info.UsedHeapSizeInfoItem; import com.google.devtools.build.lib.runtime.commands.info.WorkerMetricsInfoItem; import com.google.devtools.build.lib.runtime.commands.info.WorkspaceInfoItem; +import com.google.devtools.build.lib.runtime.commands.info.LocalResourcesInfoItem; import com.google.devtools.build.lib.server.FailureDetails; import com.google.devtools.build.lib.server.FailureDetails.FailureDetail; import com.google.devtools.build.lib.util.AbruptExitException; @@ -293,7 +294,9 @@ private static Map getHardwiredInfoItemMap( new BuildLanguageInfoItem(), new DefaultPackagePathInfoItem(commandOptions), new StarlarkSemanticsInfoItem(commandOptions), - new WorkerMetricsInfoItem()); + new WorkerMetricsInfoItem(), + new LocalResourcesInfoItem() + ); ImmutableMap.Builder result = new ImmutableMap.Builder<>(); for (InfoItem item : hardwiredInfoItems) { result.put(item.getName(), item); diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/info/BUILD b/src/main/java/com/google/devtools/build/lib/runtime/commands/info/BUILD index 5d306909966c80..d63d9194a4ccff 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/info/BUILD +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/info/BUILD @@ -29,6 +29,7 @@ java_library( "//src/main/java/com/google/devtools/build/lib/util:string", "//src/main/java/com/google/devtools/build/lib/vfs", "//src/main/java/com/google/devtools/build/lib/worker:worker_metric", + "//src/main/java/com/google/devtools/build/lib/actions:localhost_capacity", "//src/main/java/com/google/devtools/common/options", "//src/main/java/net/starlark/java/eval", "//src/main/protobuf:build_java_proto", diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/info/LocalResourcesInfoItem.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/info/LocalResourcesInfoItem.java new file mode 100644 index 00000000000000..4810690b216dfa --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/info/LocalResourcesInfoItem.java @@ -0,0 +1,42 @@ +// Copyright 2023 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.devtools.build.lib.runtime.commands.info; + +import static java.util.stream.Collectors.joining; + +import com.google.common.base.Supplier; +import com.google.devtools.build.lib.actions.LocalHostCapacity; +import com.google.devtools.build.lib.actions.ResourceSet; +import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue; +import com.google.devtools.build.lib.runtime.CommandEnvironment; +import com.google.devtools.build.lib.runtime.InfoItem; +import java.util.List; + +/** Info item for auto detected local resources . */ +public final class LocalResourcesInfoItem extends InfoItem { + public LocalResourcesInfoItem() { + super("local_resources", "Auto detected local resources", false); + } + + @Override + public byte[] get( + Supplier configurationSupplier, CommandEnvironment env) { + ResourceSet localResources = LocalHostCapacity.getLocalHostCapacity(); + + return print(String.format("RAM=%dMB, CPU=%.1f", (int)localResources.getMemoryMb(), + localResources.getCpuUsage())); + } +} +