blob: 09e4b8b9b448a444621c14ac61f83fc525ca56bd [file] [log] [blame]
// Copyright 2024 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.profiler;
import javax.annotation.Nullable;
/**
* Describes counter series to be logged into profile.
*
* @param laneName The lane name for the counter series. Series with the same lane name should be
* stacked when displaying.
* @param seriesName The name for the counter series.
* @param color The color for the counter series. If {@code null}, the profile viewer will pick a
* color automatically.
*/
public record CounterSeriesTask(String laneName, String seriesName, @Nullable Color color) {
/** The revered color for rendering the bar chart. */
public enum Color {
// Pick acceptable counter colors manually, unfortunately we have to pick from these
// weird reserved names from
// https://github.com/catapult-project/catapult/blob/master/tracing/tracing/base/color_scheme.html
THREAD_STATE_UNINTERRUPTIBLE("thread_state_uninterruptible"),
THREAD_STATE_IOWAIT("thread_state_iowait"),
THREAD_STATE_RUNNING("thread_state_running"),
THREAD_STATE_RUNNABLE("thread_state_runnable"),
THREAD_STATE_SLEEPING("thread_state_sleeping"),
THREAD_STATE_UNKNOWN("thread_state_unknown"),
BACKGROUND_MEMORY_DUMP("background_memory_dump"),
LIGHT_MEMORY_DUMP("light_memory_dump"),
DETAILED_MEMORY_DUMP("detailed_memory_dump"),
VSYNC_HIGHLIGHT_COLOR("vsync_highlight_color"),
GENERIC_WORK("generic_work"),
GOOD("good"),
BAD("bad"),
TERRIBLE("terrible"),
BLACK("black"),
GREY("grey"),
WHITE("white"),
YELLOW("yellow"),
OLIVE("olive"),
RAIL_RESPONSE("rail_response"),
RAIL_ANIMATION("rail_animation"),
RAIL_IDLE("rail_idle"),
RAIL_LOAD("rail_load"),
STARTUP("startup"),
HEAP_DUMP_STACK_FRAME("heap_dump_stack_frame"),
HEAP_DUMP_OBJECT_TYPE("heap_dump_object_type"),
HEAP_DUMP_CHILD_NODE_ARROW("heap_dump_child_node_arrow"),
CQ_BUILD_RUNNING("cq_build_running"),
CQ_BUILD_PASSED("cq_build_passed"),
CQ_BUILD_FAILED("cq_build_failed"),
CQ_BUILD_ABANDONED("cq_build_abandoned"),
CQ_BUILD_ATTEMPT_RUNNIG("cq_build_attempt_runnig"),
CQ_BUILD_ATTEMPT_PASSED("cq_build_attempt_passed"),
CQ_BUILD_ATTEMPT_FAILED("cq_build_attempt_failed");
private final String value;
private Color(String value) {
this.value = value;
}
public String value() {
return value;
}
}
}