helm-charts
helm-charts copied to clipboard
Support for configuring subsystem loggers in the Redpanda chart
What would you like to be added?
Currently, the Helm chart supports a global log level setting under the logging key. We should extend the logging configuration to include subsystem-specific log levels to offer better control and customization. This could be structured as follows:
logging:
logLevel:
subsystems:
# Seconds to persist log level overrides for individual subsystems before Redpanda reverts to the default set in `logging.logLevel`.
# If 0, persist until shutdown. Default is 300 seconds.
# https://docs.redpanda.com/current/reference/rpk/rpk-redpanda/rpk-redpanda-admin-config-log-level-set/#flags
expiration:
logLevels:
s3:
rpc:
# Additional subsystems and their desired log levels
All loggers can be found using:
rpk redpanda start --help-loggers
Available loggers:
abs
admin_api_server
archival
archival-ctrl
assert
auditing
client_config
client_pool
cloud_roles
cloud_storage
cluster
compaction_ctrl
compression
controller_rate_limiter_log
cpu_profiler
dns_resolver
exception
fault_injector
features
finject
http
httpd
io
json
kafka
kafka/client
kvstore
main
metrics-reporter
offset_translator
pandaproxy
r/heartbeat
raft
request_auth
resource_mgmt
resources
rpc
s3
scheduler
scollectd
seastar
seastar_memory
security
serde
storage
storage-gc
syschecks
transform
transform/logging
transform/rpc
tx
tx-migration
wasm
Related issue: https://github.com/redpanda-data/redpanda/issues/17711
Why is this needed?
Configuring logging is currently split between the logging stanza and statefulset.additionalRedpandaCmdFlags:
statefulset:
additionalRedpandaCmdFlags:
- '--logger-log-level=rpc=debug:kafka=debug'
This split approach complicates the configuration process and obscures the clarity and accessibility of logging settings. Consolidating all logging configurations under a single logging section would streamline the UX.
JIRA Link: K8S-144
@JakeSCahill lets ensure the statefulset approach is documented at least.. not sure we need to implement this as a first class thing right now