blob: 502758c5a9c7a47bcc93f95e7b0763aa20d34c48 [file]
// 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 com.google.devtools.build.lib.skybridge.SkybridgeInterface;
import javax.annotation.Nullable;
/** Describes counter series to be logged into profile. */
@SkybridgeInterface
public interface CounterSeriesTask {
/**
* The lane name for the counter series. Series with the same lane name should be stacked when
* displaying.
*/
String laneName();
/** The name for the counter series. */
String seriesName();
/**
* The color for the counter series. If {@code null}, the profile viewer will pick a color
* automatically.
*/
@Nullable
Color color();
/** The reserved color for rendering the bar chart. */
public static final class 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
public static final Color THREAD_STATE_UNINTERRUPTIBLE =
new Color("thread_state_uninterruptible");
public static final Color THREAD_STATE_IOWAIT = new Color("thread_state_iowait");
public static final Color THREAD_STATE_RUNNING = new Color("thread_state_running");
public static final Color THREAD_STATE_RUNNABLE = new Color("thread_state_runnable");
public static final Color THREAD_STATE_SLEEPING = new Color("thread_state_sleeping");
public static final Color THREAD_STATE_UNKNOWN = new Color("thread_state_unknown");
public static final Color BACKGROUND_MEMORY_DUMP = new Color("background_memory_dump");
public static final Color LIGHT_MEMORY_DUMP = new Color("light_memory_dump");
public static final Color DETAILED_MEMORY_DUMP = new Color("detailed_memory_dump");
public static final Color VSYNC_HIGHLIGHT_COLOR = new Color("vsync_highlight_color");
public static final Color GENERIC_WORK = new Color("generic_work");
public static final Color GOOD = new Color("good");
public static final Color BAD = new Color("bad");
public static final Color TERRIBLE = new Color("terrible");
public static final Color BLACK = new Color("black");
public static final Color GREY = new Color("grey");
public static final Color WHITE = new Color("white");
public static final Color YELLOW = new Color("yellow");
public static final Color OLIVE = new Color("olive");
public static final Color RAIL_RESPONSE = new Color("rail_response");
public static final Color RAIL_ANIMATION = new Color("rail_animation");
public static final Color RAIL_IDLE = new Color("rail_idle");
public static final Color RAIL_LOAD = new Color("rail_load");
public static final Color STARTUP = new Color("startup");
public static final Color HEAP_DUMP_STACK_FRAME = new Color("heap_dump_stack_frame");
public static final Color HEAP_DUMP_OBJECT_TYPE = new Color("heap_dump_object_type");
public static final Color HEAP_DUMP_CHILD_NODE_ARROW = new Color("heap_dump_child_node_arrow");
public static final Color CQ_BUILD_RUNNING = new Color("cq_build_running");
public static final Color CQ_BUILD_PASSED = new Color("cq_build_passed");
public static final Color CQ_BUILD_FAILED = new Color("cq_build_failed");
public static final Color CQ_BUILD_ABANDONED = new Color("cq_build_abandoned");
public static final Color CQ_BUILD_ATTEMPT_RUNNIG = new Color("cq_build_attempt_runnig");
public static final Color CQ_BUILD_ATTEMPT_PASSED = new Color("cq_build_attempt_passed");
public static final Color CQ_BUILD_ATTEMPT_FAILED = new Color("cq_build_attempt_failed");
private final String value;
private Color(String value) {
this.value = value;
}
public String value() {
return value;
}
}
}