Versions Compared

Key

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

...

enable.metrics.push=true|false (default: true) -Allows disabling the functionality outlined in this proposal which should be enabled by default.enable.private.metrics.push=true|false (default: false)Enable metrics and labels that are considered private, e.g., hostname and host operating system.  (Or enable.telemetry?)


New error codes

TBD

Proposed Changes

...

The default metrics collection on the client must take extra care not to expose any information about the application and system it runs on as they may identify internal projects, infrastructure, etc, that the user /customer may not want to expose to the Kafka infrastructure owner. This includes information such as hostname, operating system, credentials, runtime environment, etc.

These types of metrics are referred to as private metrics and must not be enabled by default (enable.telemetry.host.metrics=false) and are optional to implementare outside the scope of this proposal.

OpenTelemetry specifies a range of relevant metrics:

...

Metric name

Type

Labels

Description

client.process.memory.bytes

Gauge


Current process/runtime memory usage (RSS, not virtual).

client.process.cpu.user.time

Sum


User CPU time used (seconds).

client.process.cpu.system.time

Sum


System CPU time used (seconds).

client.process.io.wait.timeSum
IO wait time (seconds).

client.process.pid

Gauge


The process id. Can be used, in conjunction with the client host name to map multiple client instances to the same process.

Only emitted if private metrics are enabled.

Standard client resource labels

...

  • will require additional client-side configuration: endpoints, authentication, etc.
  • may require additional network filtering and our routing configuration to allow the client host to reach the collector endpoints. By using the Kafka protocol we already have a usable connection.
  • adds another network protocol the client needs to handle and its runtime dependencies (libraries..).

...