Chapter 49. EntityTopicOperatorSpec schema reference
Used in: EntityOperatorSpec
Full list of EntityTopicOperatorSpec
schema properties
Configures the Topic Operator.
49.1. logging
The Topic Operator has a configurable logger:
-
rootLogger.level
The Topic Operator uses the Apache log4j2
logger implementation.
Use the logging
property in the entityOperator.topicOperator
field of the Kafka resource Kafka
resource to configure loggers and logger levels.
You can set the log levels by specifying the logger and level directly (inline) or use a custom (external) ConfigMap. If a ConfigMap is used, you set logging.valueFrom.configMapKeyRef.name
property to the name of the ConfigMap containing the external logging configuration. Inside the ConfigMap, the logging configuration is described using log4j2.properties
. Both logging.valueFrom.configMapKeyRef.name
and logging.valueFrom.configMapKeyRef.key
properties are mandatory. A ConfigMap using the exact logging configuration specified is created with the custom resource when the Cluster Operator is running, then recreated after each reconciliation. If you do not specify a custom ConfigMap, default logging settings are used. If a specific logger value is not set, upper-level logger settings are inherited for that logger. For more information about log levels, see Apache logging services.
Here we see examples of inline
and external
logging. The inline
logging specifies the root logger level. You can also set log levels for specific classes or loggers by adding them to the loggers property.
Inline logging
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: kafka: # ... zookeeper: # ... entityOperator: # ... topicOperator: watchedNamespace: my-topic-namespace reconciliationIntervalSeconds: 60 logging: type: inline loggers: rootLogger.level: INFO logger.top.name: io.strimzi.operator.topic 1 logger.top.level: DEBUG 2 logger.toc.name: io.strimzi.operator.topic.TopicOperator 3 logger.toc.level: TRACE 4 logger.clients.level: DEBUG 5 # ...
- 1
- Creates a logger for the
topic
package. - 2
- Sets the logging level for the
topic
package. - 3
- Creates a logger for the
TopicOperator
class. - 4
- Sets the logging level for the
TopicOperator
class. - 5
- Changes the logging level for the default
clients
logger. Theclients
logger is part of the logging configuration provided with Streams for Apache Kafka. By default, it is set toINFO
.
When investigating an issue with the operator, it’s usually sufficient to change the rootLogger
to DEBUG
to get more detailed logs. However, keep in mind that setting the log level to DEBUG
may result in a large amount of log output and may have performance implications.
External logging
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: kafka: # ... zookeeper: # ... entityOperator: # ... topicOperator: watchedNamespace: my-topic-namespace reconciliationIntervalSeconds: 60 logging: type: external valueFrom: configMapKeyRef: name: customConfigMap key: topic-operator-log4j2.properties # ...
Garbage collector (GC)
Garbage collector logging can also be enabled (or disabled) using the jvmOptions
property.
49.2. EntityTopicOperatorSpec
schema properties
Property | Property type | Description |
---|---|---|
watchedNamespace | string | The namespace the Topic Operator should watch. |
image | string | The image to use for the Topic Operator. |
reconciliationIntervalSeconds | integer | Interval between periodic reconciliations. |
zookeeperSessionTimeoutSeconds | integer | Timeout for the ZooKeeper session. |
startupProbe | Pod startup checking. | |
livenessProbe | Pod liveness checking. | |
readinessProbe | Pod readiness checking. | |
resources | CPU and memory resources to reserve. | |
topicMetadataMaxAttempts | integer | The number of attempts at getting topic metadata. |
logging | Logging configuration. | |
jvmOptions | JVM Options for pods. |