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

Add readiness api for the worker leader #7601

Merged
merged 21 commits into from
Jul 24, 2020

Conversation

srkukarni
Copy link
Contributor

(If this PR fixes a github issue, please add Fixes #<xyz>.)

Fixes #

(or if this PR is one task of a github issue, please add Master Issue: #<xyz> to link to the master issue.)

Master Issue: #

Motivation

This mr adds an api to check if the worker is ready to serve requests.

Modifications

Describe the modifications you've done.

Verifying this change

  • Make sure that the change passes the CI checks.

(Please pick either of the following options)

This change is a trivial rework / code cleanup without any test coverage.

(or)

This change is already covered by existing tests, such as (please describe tests).

(or)

This change added tests and can be verified as follows:

(example:)

  • Added integration tests for end-to-end deployment with large payloads (10MB)
  • Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:

If yes was chosen, please highlight the changes

  • Dependencies (does it add or upgrade a dependency): (yes / no)
  • The public API: (yes / no)
  • The schema: (yes / no / don't know)
  • The default values of configurations: (yes / no)
  • The wire protocol: (yes / no)
  • The rest endpoints: (yes / no)
  • The admin cli options: (yes / no)
  • Anything that affects deployment: (yes / no / don't know)

Documentation

  • Does this pull request introduce a new feature? (yes / no)
  • If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
  • If a feature is not applicable for documentation, explain why?
  • If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

@srkukarni srkukarni added this to the 2.7.0 milestone Jul 19, 2020
@srkukarni srkukarni requested a review from jerrypeng July 19, 2020 21:21
@srkukarni srkukarni self-assigned this Jul 19, 2020
@ApiResponse(code = 401, message = "The requester is not authenticated"),
@ApiResponse(code = 503, message = "Worker service is not running")
})
@Path("/cluster/leaderready")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the url path would be more clean if it is /cluster/leader/ready. We can add more API under "/leader" in future

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beside we already have have the url path "/cluster/leader"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed

@jerrypeng
Copy link
Contributor

jerrypeng commented Jul 20, 2020

@srkukarni what is the purpose of adding this new REST endpoint?

@srkukarni
Copy link
Contributor Author

@jerrypeng the current usecase is for setting up testing pipelines.

})
@Path("/cluster/leader/ready")
@Produces(MediaType.APPLICATION_JSON)
public String isLeaderReady() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is more appropriate to just return 200 for OK or 503 (service not available). That is more idiomatic for HTTP REST calls

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed

@jerrypeng
Copy link
Contributor

jerrypeng commented Jul 20, 2020

So this endpoint is authentication protected, is that what we want?

@jerrypeng jerrypeng closed this Jul 20, 2020
@jerrypeng jerrypeng reopened this Jul 20, 2020
@srkukarni
Copy link
Contributor Author

/pulsarbot run-failure-checks

@srkukarni
Copy link
Contributor Author

/pulsarbot run-failure-checks

1 similar comment
@srkukarni
Copy link
Contributor Author

/pulsarbot run-failure-checks

@merlimat merlimat merged commit b5aa109 into apache:master Jul 24, 2020
@srkukarni srkukarni deleted the worker_healthcheck branch July 24, 2020 20:30
lbenc135 pushed a commit to lbenc135/pulsar that referenced this pull request Jul 25, 2020
* Added upgrade notes

* Add new end point to verify leader readiness

* Address feedback

* Address feedback

* Add new end point to verify leader readiness

* Address feedback

* Address feedback

Co-authored-by: Sanjeev Kulkarni <sanjeevk@splunk.com>
(cherry picked from commit b5aa109)
jerrypeng pushed a commit to jerrypeng/incubator-pulsar that referenced this pull request Jul 28, 2020
* Added upgrade notes

* Add new end point to verify leader readiness

* Address feedback

* Address feedback

* Add new end point to verify leader readiness

* Address feedback

* Address feedback

Co-authored-by: Sanjeev Kulkarni <sanjeevk@splunk.com>
huangdx0726 pushed a commit to huangdx0726/pulsar that referenced this pull request Aug 24, 2020
* Added upgrade notes

* Add new end point to verify leader readiness

* Address feedback

* Address feedback

* Add new end point to verify leader readiness

* Address feedback

* Address feedback

Co-authored-by: Sanjeev Kulkarni <sanjeevk@splunk.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants