Broker Dashboard

Pulse monitors Pinot’s memory, CPU, garbage collection, and threads to assess JVM health and identify performance issues.

With Pulse, you can:

  • Track query compilation, execution, reduce operations, and scatter-gather behavior to evaluate query performance.
  • View burst QPS, server health, and request load to monitor system throughput and reliability.

In the Pulse UI, navigate to the menu option and select Pinot > Broker Dashboard. The metrics and charts appear on the screen for you to analyze.

JVM Metrics Overview

Pulse provides a range of JVM-level charts to help monitor Pinot’s internal health. These include:

  • Memory Usage: Tracks heap and non-heap memory across initialization, usage, and limits.
  • CPU and Swap: Shows system and process CPU usage, and available swap space.
  • Garbage Collection (GC): Displays frequency and duration of GC events for young and old generations.
  • Thread Activity: Monitors live thread counts, peak usage, and total threads started.

These charts help identify memory pressure, performance degradation, and potential bottlenecks in the Pinot JVM process.

Query Performance Metrics

Pulse charts also provide deep insights into Pinot query behavior across brokers:

  • Query Compilation: Tracks the count, latency, and max time of compiled queries by table and host.
  • Query Execution: Shows execution time, execution count, and performance trends by host/table.
  • Reduce & Scatter-Gather Operations: Monitors data aggregation and distribution patterns per table and host.
  • Burst QPS: Highlights peak query throughput at both table and host levels.
  • Unhealthy Servers: Flags unresponsive or degraded Pinot servers.

These metrics help in tuning Pinot’s query pipeline and understanding real-time system behavior.

Pinot Broker Charts

ChartDescription
Memory: Heap Memory

This chart shows the heap memory usage at different stages:

  • Heap_Memory_Init_Value: Initial heap memory requested by the JVM at startup.
  • Heap_Memory_Committed Value: Heap memory reserved by the OS and guaranteed for JVM use.
  • Heap_Memory_Used_Value: Current heap memory consumed by live objects in the application.
  • Heap_Memory_Max_Value: Maximum heap memory allowed for the JVM to use.
Memory: Non-Heap Memory

This chart shows the heap memory usage at different stages:

  • Non_Heap_Memory_Init: Initial non-heap memory requested by the JVM at startup, including metaspace, code cache, and compressed class space.
  • Non_Heap_Memory_Committed: Memory reserved by the OS for JVM non-heap use, such as class metadata and compiled code.
  • Non_Heap_Memory_Used: Current non-heap memory in use, reflecting actual consumption of metaspace, code cache, and class space.
  • Non_Heap_Memory_Max: Maximum non-heap memory allowed for the JVM to use.
Operating System: CPU Load

This chart shows:

  • SystemCpuLoad – Recent CPU usage of the entire system, as reported by the operating system.
  • ProcessCpuLoad – Recent CPU usage of the Pinot JVM process, relative to the total available CPUs.
Operating System: Free Swap Space SizeShows the amount of free swap space available on the host system (In Bytes), as seen by the JVM process running the JVM Broker.
GC: Collection Count

Shows the number of garbage collection (GC) events over time for both:

  • G1 Young Generation (frequent short-lived collections)
  • G1 Old Generation (infrequent, long-lived collections)

Tracks the frequency of GC events to help identify memory pressure and potential performance issues in the JVM.

GC: Collection Time

Shows the time taken (in milliseconds) for each GC event.

  • G1 Young Generation (frequent short-lived collections)
  • G1 Old Generation (infrequent, long-lived collections)

These charts help assess JVM memory management efficiency.

Threading: Thread Count

This chart displays key thread metrics for the Pinot JVM process:

  • ThreadCount – Current number of live threads.
  • PeakThreadCount – Highest number of live threads observed since the JVM started (resets on restart).
  • TotalStartedThreadCount – Total threads ever created (including terminated ones); this value keeps increasing until the JVM restarts.
Max Burst QPS: Table levelShows the maximum burst QPS (Queries per second) per table as defined by the query throttle configuration.
Max Burst QPS: Host levelShows the maximum burst QPS (Queries per second) per host as defined by the query throttle configuration.
Reduce Operations: Table LevelShows the number of reduce operations on the Pinot Broker per table.
Reduce Operations: Host LevelShows the number of reduce operations on the Pinot Broker per host.
Unhealthy ServersShows the number of unhealthy Pinot servers.
Reduce Operations: One-Minute RateShows a one-minute rate of reduced operations on the Pinot Broker.
Reduce Operation: Max TimeShows the maximum reduced operation time observed by Pinot Broker.
Scatter Gather: Host LevelShow the number of scatter-gather operations performed by the Broker per host for queries.
Scatter Gather: Table LevelShow the number of scatter-gather operations performed by the Broker per table for queries.
Scatter Gather: One Minute RateShow the One Minute Rate of the number of scatter-gather operations performed by the Broker per table for queries.
Request Compilation: Table LevelShows the total number of queries compiled by the Broker per table.
Request Compilation: Host LevelShows the total number of queries compiled by the Broker per host.
Request Compilation: Latency StatsShows the 99th and 999th percentile latency of query request compilation for different tables.
Request Compilation: Max TimeShows the maximum time taken by the broker to compile or parse a query request.
Query Execution: Max Execution TimeShows the maximum query execution time observed by the Pinot Broker.
Query Execution: Host LevelShows the count of queries executed per host.
Query Execution: Table LevelShows the count of queries executed per table.
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard