spring-boot icon indicating copy to clipboard operation
spring-boot copied to clipboard

Nested liveness/readiness group not working

Open kubav182 opened this issue 1 year ago • 4 comments
trafficstars

In SB 2.7 i could write this config

management:
  endpoint:
    health:
      show-details: always
      group:
        readiness:
          include: 'readinessState,binders/kafka,db,redis'
        liveness:
          include: 'livenessState,binders/kafka,db,redis'

but in SB3 it does not work because binders/kafka does not exist and app won't start. I can use just binders without kafka. When i look to liveness endpoint it contains binders with nested kafka. So how can i select just kafka in SB3? I tried diffferent separators like : . :/ - and nothing works. I use SB 3.2.4

kubav182 avatar May 16 '24 11:05 kubav182

Does https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.1-Release-Notes#health-group-membership-validation help? That will allow Boot to start when a member doesn't exist as it did by default in previous releases.

wilkinsona avatar May 16 '24 12:05 wilkinsona

@wilkinsona yes that works. But it is strange because I include something wrong for validation but it is really included if I skip the validation.

kubav182 avatar May 16 '24 12:05 kubav182

Assuming that binders is a composite and that kafka exists as a component of that composite, I can't see a problem with the configuration that you tried. I guess you're using Spring Cloud Stream and its Kafka binder but I can't tell for certain.

If you would like us to spend some more time investigating, please spend some time providing a complete yet minimal sample that reproduces the problem. You can share it with us by pushing it to a separate repository on GitHub or by zipping it up and attaching it to this issue.

wilkinsona avatar May 16 '24 12:05 wilkinsona

It will take some time to get working example with kafka locally. You are right I'm using spring cloud stream with kafka binder. The validator does not see any contributor in "binders" contributor for name "kafka". Separator / is ok as I see in code.

contributor = ((NamedContributors<?>) contributor).getContributor(path[pathOffset]); returns null for "kafka"

But in json actuator/health/rediness it is there if I skip the validation.

kubav182 avatar May 16 '24 17:05 kubav182

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

spring-projects-issues avatar May 23 '24 17:05 spring-projects-issues

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.

spring-projects-issues avatar May 30 '24 17:05 spring-projects-issues