...
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.time | Sum | 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..).
...