Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decorate reactive messaging connectors with health and metrics #3113

Closed
cescoffier opened this issue Jul 5, 2019 · 9 comments
Closed

Decorate reactive messaging connectors with health and metrics #3113

cescoffier opened this issue Jul 5, 2019 · 9 comments
Labels
Milestone

Comments

@cescoffier
Copy link
Member

For each connector:

  1. define the liveness and readiness sensors
  2. define the key metrics
  3. implement the sensors
  4. implement the metrics
@cescoffier cescoffier added the kind/enhancement New feature or request label Jul 5, 2019
@jmartisk
Copy link
Contributor

Hi @cescoffier, would you mind if I took this and tried to come up with some initial implementation? I'd start with Health and then perhaps Metrics as well. Or do you want to wait until these get into the specification? (I saw some open issues for it) Perhaps if we tried to implement this early, it could serve as a base for backporting it into the spec.

The liveness checks should be 'true' in all cases, I'd say (?). A broken connector is probably not the reason to discard the whole application. Perhaps one exception here would be reporting 'false' once we detect that the application is going down (after @BeforeDestroyed(ApplicationScoped.class) is called)

The readiness checks would be

  • MQTT - this would be composed from the isSubscribed status of all sources and isReady status of all sinks
  • AMQP - attempt to do AmqpClient.connect() to see if that works
  • Kafka - perhaps just check that the connector wasn't closed, not sure how else to determine whether it is working at the moment

More details to be thought through later...

@gsmet gsmet added the pinned Issue will never be marked as stale label Nov 13, 2019
@francois-travais
Copy link

Hi @jmartisk, for MQTT, I think you could also check mqttClient.isConnected()

@vietk
Copy link
Contributor

vietk commented Jun 25, 2020

Hello

Does the Health of a reactive messaging application will be impacted by the back-pressure overflow?
i.e: in a case of blocking JaxRs endpoint that floods an outgoing channel, we could imagine to switch the application in a "not ready" state

Regards

@cescoffier
Copy link
Member Author

The overflow would be more a "live" check.

@cescoffier
Copy link
Member Author

Metrics have been done already. Health in progress.

@vietk
Copy link
Contributor

vietk commented Jul 6, 2020

The overflow would be more a "live" check.

An overflow is not something recoverable by the application ?

@cescoffier
Copy link
Member Author

you can recover but it does not involve the readiness check, only the liveness check. You cannot switch from alive to not-ready.

@cescoffier
Copy link
Member Author

Health support added for the Kafka and AMQP connectors (upstream).

@cescoffier cescoffier removed the pinned Issue will never be marked as stale label Jul 7, 2020
@cescoffier
Copy link
Member Author

Fixed by #10779

@cescoffier cescoffier added this to the 1.7.0 - master milestone Jul 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants