redpanda-data / helm-charts

Redpanda Helm Chart
http://redpanda.com
Apache License 2.0
73 stars 96 forks source link

Support for configuring subsystem loggers in the Redpanda chart #1171

Open JakeSCahill opened 5 months ago

JakeSCahill commented 5 months ago

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

mattschumpert commented 3 months ago

@JakeSCahill lets ensure the statefulset approach is documented at least.. not sure we need to implement this as a first class thing right now