Monitor Schema Registry in Confluent Platform
Schema Registry reports a variety of metrics through Java Management Extensions (JMX). You
can also configure it to report statistics through additional pluggable
reporters by using the metric.reporters configuration option. The easiest
way to view the available metrics is to browse the JMX MBeans in JConsole.
Schema Registry has two types of metrics. Global metrics help you monitor the overall
health of the service. Per-endpoint metrics monitor each API endpoint request
method and are prefixed with the endpoint name, for example
subjects.get-schema. Per-endpoint metrics help you understand how the proxy
is used and track down specific performance problems.
Tip
Kafka disables authentication for JMX by default. To override these
defaults, use environment variables. For each platform component, the
options to override the JMX defaults take
the form <component-name>_JMX_OPTS. For Schema Registry, use
SCHEMA_REGISTRY_JMX_OPTS.
Global Metrics
MBean: kafka.schema.registry:type=jetty-metrics
connections-activeTotal number of active TCP connections.
connections-accepted-rate(deprecated since 2.0)In 1.x: The average rate per second of accepted TCP connections.
In 2.x: Same as
connections-opened-rate.
connections-opened-rateThe average rate per second of opened TCP connections.
connections-closed-rateThe average rate per second of closed TCP connections.
busy_thread_countThe number of threads currently working on a task (busy threads).
thread_pool_usagePercentage of total thread pool in use (total/threads in use).
request_queue_sizeNumber of threads required for requests in the queue.
MBean: kafka.schema.registry:type=master-slave-role
master-slave-roleThe current role of this Schema Registry instance. A value of 1 indicates that this instance is the primary, and 0 indicates that it’s a secondary.
MBean: kafka.schema.registry:type=exporter
Schema Registry reports the following metrics for the schema exporters you create with
Schema Linking. Each metric carries tags
on its object name that identify the exporter, such as exporter_name and
tenant. To browse the full set in a JMX client such as JConsole, filter on
kafka.schema.registry:type=exporter,*.
exporter_tasksThe number of exporter tasks in each state (
UNASSIGNED,STARTING,RUNNING, orPAUSED). Tagged withexporter_name,exporter_state,has_error, andis_retriable.exporter_starting_progressThe progress of an exporter that is starting. Tagged with
exporter_name.schema_transfer_success_totalThe total number of successful schema register calls made by the exporter. This can exceed the number of unique schemas, because a schema with multiple versions registers each version separately. Tagged with
exporter_name.exporter_objects_sync_totalThe total number of objects synced successfully, including schemas, Key Encryption Keys (KEKs), Data Encryption Keys (DEKs), and deletes. Unlike
schema_transfer_success_total, this metric also counts non-schema objects. Tagged withexporter_name,object_type, andoperation.exporter_lifecycle_latencyThe wall-clock duration of the exporter’s most recent lifecycle phase (for example,
STARTINGorRUNNING), in milliseconds. This measures time spent in that phase, not the latency of an individual schema export. Tagged withexporter_nameandexporter_state.exporters_errored_totalThe number of times an exporter moved to the
PAUSEDstate because of an exception or error. Tagged withexporter_name,error_type, andoperation.exporter_service_start_failure_totalThe number of schema exporter service failures. This metric applies to the service as a whole, so it has no exporter tags.
Starting with Confluent Platform 8.0, Schema Registry also reports the following metrics for the
executor pools that run exporter tasks. These metrics describe the health of the
executor pools themselves, not any individual exporter. They carry the
pool_type tag (starting or running) and have no exporter_name
tag.
exporter_executor_active_tasksThe number of tasks currently executing. Tagged with
pool_type.exporter_executor_stripe_countThe number of per-tenant stripes the executor is tracking. Tagged with
pool_type.exporter_executor_total_threadsThe total thread count in the executor pool. Tagged with
pool_type.exporter_executor_utilization_ratioThe ratio of active tasks to total threads in the executor pool. Tagged with
pool_type.exporter_executor_task_duration_totalThe cumulative task execution duration, in milliseconds. Tagged with
pool_type.exporter_executor_task_rejected_totalThe number of tasks rejected by the executor pool. Tagged with
pool_typeandreason.exporter_tenant_queue_depthThe number of pending tasks queued for a tenant. Tagged with
tenantandpool_type.tenant_task_queue_wait_msThe time, in milliseconds, the most recent task for a tenant spent waiting in the queue before executing. Tagged with
tenantandpool_type.tenant_task_execution_msThe time, in milliseconds, the most recent task for a tenant spent executing. Tagged with
tenantandpool_type.tenant_task_total_latency_msThe total time, in milliseconds, for the most recent task for a tenant, from being queued through completion. Tagged with
tenantandpool_type.exporter_tenant_tasks_enqueued_totalThe total number of tasks submitted for a tenant. Tagged with
tenantandpool_type.exporter_tenant_tasks_completed_totalThe total number of tasks completed for a tenant. Tagged with
tenantandpool_type.
Per-Endpoint Metrics
Each endpoint request method has the following metrics. Schema Registry also aggregates the metrics for all requests into a global instance for each metric. These aggregate instances have no prefix in their name.
MBean: kafka.schema.registry:type=jersey-metrics
<endpoint>.request-byte-rateBytes per second of incoming requests
<endpoint>.request-error-rateThe average number of requests per second that resulted in HTTP error responses
<endpoint>.request-latency-avgThe average request latency in ms
<endpoint>.request-latency-maxThe maximum request latency in ms
<endpoint>.request-rateThe average number of HTTP requests per second.
<endpoint>.request-size-avgThe average request size in bytes
<endpoint>.request-size-maxThe maximum request size in bytes
<endpoint>.response-byte-rateBytes per second of outgoing responses
<endpoint>.response-rateThe average number of HTTP responses per second.
<endpoint>.response-size-avgThe average response size in bytes
<endpoint>.response-size-maxThe maximum response size in bytes
Endpoints
The following table lists all the API endpoint methods. The names map
intuitively
to the API operations. To create a full metric name, prefix a per-endpoint
metric name with one of these values. For example, to find the average latency
of GET /subjects API calls, combine the endpoint name subjects.list with
the metric name request-latency-avg to get
subjects.list.request-latency-avg.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|