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..96e0a55b5d5bc1 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 @@ -47,6 +47,7 @@ import com.google.devtools.build.lib.runtime.commands.info.JavaHomeInfoItem; import com.google.devtools.build.lib.runtime.commands.info.JavaRuntimeInfoItem; import com.google.devtools.build.lib.runtime.commands.info.JavaVirtualMachineInfoItem; +import com.google.devtools.build.lib.runtime.commands.info.LocalResourcesInfoItem; import com.google.devtools.build.lib.runtime.commands.info.MakeInfoItem; import com.google.devtools.build.lib.runtime.commands.info.MaxHeapSizeInfoItem; import com.google.devtools.build.lib.runtime.commands.info.OutputBaseInfoItem; @@ -293,7 +294,8 @@ 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..0414653e18ecfe 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 @@ -16,6 +16,7 @@ java_library( srcs = glob(["*.java"]), deps = [ "//src/main/java/com/google/devtools/build/lib:runtime", + "//src/main/java/com/google/devtools/build/lib/actions:localhost_capacity", "//src/main/java/com/google/devtools/build/lib/analysis:blaze_version_info", "//src/main/java/com/google/devtools/build/lib/analysis:config/build_configuration", "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_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..eb20562f3d9d4d --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/info/LocalResourcesInfoItem.java @@ -0,0 +1,40 @@ +// 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 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; + +/** 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())); + } +}