- 
                Notifications
    
You must be signed in to change notification settings  - Fork 138
 
Open
Labels
kind/bugCategorizes issue or PR as related to a bug.Categorizes issue or PR as related to a bug.triage/acceptedIssues which should be fixed (post-triage)Issues which should be fixed (post-triage)
Description
Describe the bug
Configuring metrics with http/protobuf causes the broker to crash.
Expected behavior
Metrics would be exported
To Reproduce
The following config-observability (more or less):
apiVersion: v1
kind: ConfigMap
metadata:
  name: config-observability
  namespace: knative-eventing
data:
  metrics-endpoint: http://otel-collector.otel-collector.svc:4318/v1/metrics
  metrics-protocol: http/protobuf
  metrics-sampling-rate: "1"
  tracing-endpoint: http://otel-collector.otel-collector.svc:4318/v1/traces
  tracing-protocol: http/protobuf
  tracing-sampling-rate: "1"Knative release version
1.19.6
Additional context
Crash log:
Picked up JAVA_TOOL_OPTIONS: -XX:+CrashOnOutOfMemoryError
{"@timestamp":"2025-10-27T14:14:59.928176686Z","@version":"1","message":"Registering tracing configurations protocol=OTLP_HTTP sampleRate=1.0 loggingDebugEnabled=false","logger_name":"dev.knative.eventing.kafka.broker.core.observability.tracing.TracingProvider","thread_name":"main","level":"INFO","level_value":20000,"protocol":"OTLP_HTTP","sampleRate":1.0,"loggingDebugEnabled":false}
{"@timestamp":"2025-10-27T14:15:00.041117774Z","@version":"1","message":"Starting Receiver env=ReceiverEnv{ingressPort=8080, livenessProbePath='/healthz', readinessProbePath='/readyz', httpServerConfigFilePath='/etc/config/config-kafka-broker-httpserver.properties'} BaseEnv{producerConfigFilePath='/etc/config/config-kafka-broker-producer.properties', dataPlaneConfigFilePath='/etc/brokers-triggers/data', metricsPublishQuantiles=false}","logger_name":"dev.knative.eventing.kafka.broker.receiver.main.Main","thread_name":"main","level":"INFO","level_value":20000,"env":{"producerConfigFilePath":"/etc/config/config-kafka-broker-producer.properties","dataPlaneConfigFilePath":"/etc/brokers-triggers/data","metricsJvmEnabled":false,"metricsHTTPClientEnabled":false,"metricsHTTPServerEnabled":false,"configFeaturesPath":"/etc/features","configObservabilityPath":"/etc/observability","waitStartupSeconds":8,"ingressPort":8080,"ingressTLSPort":8443,"livenessProbePath":"/healthz","readinessProbePath":"/readyz","httpServerConfigFilePath":"/etc/config/config-kafka-broker-httpserver.properties","publishQuantilesEnabled":false}}
{"@timestamp":"2025-10-27T14:15:00.072263663Z","@version":"1","message":"Metrics cert paths weren't provided, server will start without TLS","logger_name":"dev.knative.eventing.kafka.broker.core.observability.metrics.Metrics","thread_name":"main","level":"INFO","level_value":20000}
{"@timestamp":"2025-10-27T14:15:00.072330724Z","@version":"1","message":"Metrics server host wasn't provided, using default value 0.0.0.0","logger_name":"dev.knative.eventing.kafka.broker.core.observability.metrics.Metrics","thread_name":"main","level":"INFO","level_value":20000}
Exception in thread "main" io.micrometer.core.instrument.config.validate.ValidationException: Multiple validation failures:
otlp.step was '' but it must be a valid duration value
otlp.connectTimeout was '' but it must be a valid duration value
otlp.readTimeout was '' but it must be a valid duration value
otlp.batchSize was '' but it must be an integer
otlp.numThreads was '' but it must be an integer
otlp.url was '' but it must be a valid URL
otlp.baseTimeUnit was '' but it must contain a valid time unit
otlp.aggregationTemporality was '' but it should be one of 'DELTA', 'CUMULATIVE'
    at io.micrometer.core.instrument.config.validate.Validated$Either.orThrow(Validated.java:376)
    at io.micrometer.core.instrument.config.MeterRegistryConfig.requireValid(MeterRegistryConfig.java:49)
    at io.micrometer.core.instrument.push.PushMeterRegistry.<init>(PushMeterRegistry.java:48)
    at io.micrometer.registry.otlp.OtlpMeterRegistry.<init>(OtlpMeterRegistry.java:126)
    at io.micrometer.registry.otlp.OtlpMeterRegistry.<init>(OtlpMeterRegistry.java:119)
    at io.micrometer.registry.otlp.OtlpMeterRegistry.<init>(OtlpMeterRegistry.java:108)
    at dev.knative.eventing.kafka.broker.core.observability.metrics.Metrics.getRegistryFromConfig(Metrics.java:246)
    at dev.knative.eventing.kafka.broker.core.observability.metrics.Metrics.getOptions(Metrics.java:197)
    at dev.knative.eventing.kafka.broker.receiver.main.Main.start(Main.java:90)
    at dev.knative.eventing.kafka.broker.receiverloom.Main.main(Main.java:23)
stream closed: EOF for knative-eventing/kafka-broker-receiver-545f86845-5tztn (kafka-broker-receiver)
Metadata
Metadata
Assignees
Labels
kind/bugCategorizes issue or PR as related to a bug.Categorizes issue or PR as related to a bug.triage/acceptedIssues which should be fixed (post-triage)Issues which should be fixed (post-triage)