Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Several server plugins can be instantiated multiple times. This can happen when a server is running in combined mode (for example Authorizer is instantiated by both brokers and controllers) or when using multiple listeners (for example KafkaPrincipalBuilder is instantiated per processor per listener). For that reason, the following plugins have extra tags, in addition of "config" and "class") to uniquely identify each instance and avoid metric name collisions:- KafkaPrincipalBuilder: "listener" set to the listener name, "networkProcessor" set to the processor id (same as the SocketServer metrics)
-

  • Authorizer: "role" set to controller or broker

...

  • ClientQuotaCallback: "role" set to controller or broker

...

  • ConfigProvider: "provider" set to the provider name

...

  • AuthenticateCallbackHandler: "mechanism" set to the SASL mechanism name

...

  • (via sasl.login.callback.handler.class and sasl.server.callback.handler.class).

...

  • "component" the metricGroupPrefix name from the selector component. "networkProcessor", "listener" taken from processor metrics tags. This plugin produces different metrics depending on the scenario:
    • Server component, ConnectionMode = Server → registers: "mechanism", "networkProcessor", "listener"  

    • Server component, ConnectionMode = Client → registers: "component", "node-id"  

    • Client component, ConnectionMode = Client → no extra tags

  • Login: "mechanism" set to the SASL mechanism name when used by servers. "component" the metricGroupPrefix name from the selector component. "networkProcessor", "listener": taken from processor metrics tags. This plugin produces different metrics depending on the scenario:
    • Server component, ConnectionMode = Server → registers: "mechanism", "networkProcessor", "listener"  

    • Server component, ConnectionMode = Client → registers: "component", "node-id"  

    • Client component, ConnectionMode = Client → no extra tags

  • SslEngineFactory: "listener" set to the listener name. "component" the metricGroupPrefix name from the selector component. "networkProcessor" taken from processor metrics tags.This plugin produces different metrics depending on the scenario:
    • Server component, ConnectionMode = Server → registers: "networkProcessor", "listener"  

    • Server component, ConnectionMode = Client → registers: "component", "node-id"  

    • Client component, ConnectionMode = Client → no extra tags

KIP-608

This proposal supersedes KIP-608 which only aimed at providing this functionality to Authorizer plugins. KIP-608 was adopted in 2020 but was never implemented. This KIP proposes to alter the names of the metrics from KIP-608 so all plugins use the same naming format:

...