Monitoring Drill Metrics

As of Drill 1.6, you can monitor Drill metrics and logs using the Kibana and Grafana interfaces that are available through MapR 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 MapR 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.direct_used The amount of direct memory used by the JVM. Measured in bytes. This metric is useful for debugging Drill issues.
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.