Monitoring Drill Metrics
You can monitor Drill metrics and logs using the Kibana and Grafana interfaces that are available through Data Fabric Monitoring. The Kibana interface is a log monitoring tool. The Grafana interface is a metrics monitoring tool where you can view system-level metrics for Drill.
Drill uses JMX (Java Management Extensions) to monitor queries at runtime. JMX provides the architecture to dynamically manage and monitor applications. JMX collects Drill system-level metrics that you can access through Grafana or through the Metrics page in the Drill Web Console.
You must install a specific set of services on cluster nodes to use the Kibana and Grafana
monitoring tools. You can install the services using the Data Fabric
installer, or you can install these services
manually. If you install the monitoring services in a cluster running Drill, you must
restart Drill in order for Drill to communicate with JMX. However, if you install Drill after the
monitoring services are installed, you must run the configure.sh
command and
restart the Drillbit service in order for the monitoring services to recognize that a new
application is running in the cluster.
The following table lists the predefined Drill system-level metrics that you can view in Grafana:
Metric | Description |
mapr.drill.allocator_root_used | The amount of memory used by the internal memory allocator. Measured in bytes. |
mapr.drill.queries_running | The number of queries running for which the Drillbit is the foreman. |
mapr.drill.queries_completed | The number of completed, cancelled, or failed queries for which the Drillbit was the foreman. |
mapr.drill.fragments_running | The number of query fragments currently running in the Drillbit. |
mapr.drill.allocator_root_peak | The peak amount of memory used by the internal memory allocator. Measured in bytes. |
mapr.drill.heap_used | The amount of heap memory used by the JVM. Measured in bytes. |
mapr.drill.non_heap_used | The amount of non-heap memory used by the JVM. Measured in bytes. |
mapr.drill.count | The number of live daemon and non-daemon threads. |
mapr.drill.fd_usage | The ratio of used file descriptors to total file descriptors. |
mapr.drill.runnable_count | The number of threads executing in the JVM. This metric is useful for debugging Drill issues. |
mapr.drill.waiting_count | The number of threads waiting to be executed. This may occur when a thread waits on another thread to perform an action before proceeding. This metric is useful for debugging Drill issues. |
mapr.drill.blocked_count | The number of blocked threads waiting for a monitor lock. This metric is useful for debugging Drill issues. |