temporal icon indicating copy to clipboard operation
temporal copied to clipboard

Expose an HTTP Healthcheck for Temporal server

Open chanjoongkim opened this issue 2 years ago • 7 comments

Is your feature request related to a problem? Please describe. Currently the Temporal services (specifically Frontend I believe) only supports a gRPC healthcheck. Due to infrastructure limitations at our company we can only make HTTP healthchecks.

Describe the solution you'd like Exposing a "/healthcheck" endpoint on the Frontend service so service deployment engines can utilize this endpoint if they can't support gRPC calls.

Describe alternatives you've considered For our use case we were able to find a workaround by having our deployment engines make TCP calls instead, but having an explicit HTTP endpoint would have simplified our onboarding to self hosted Temporal.

chanjoongkim avatar Aug 18 '22 19:08 chanjoongkim

One option is to document using TCP if gRPC is unavailable.

If we wanted to add HTTP, would you just need an empty 200 response to this GET request?

GET /healthcheck HTTP/1.1

lorensr avatar Aug 18 '22 20:08 lorensr

Yeah documenting using TCP instead would be good.

For the HTTP endpoint our services typically return back a 200 with a JSON response like:

{ "status" : "ok" }

But we could probably make it work with an empty response as well.

chanjoongkim avatar Aug 18 '22 20:08 chanjoongkim

For TCP Nomad config, anything helpful I can add beyond this?

      service {
        check {
          type     = "tcp"
          port     = 7233
          interval = "10s"
          timeout  = "2s"
        }

lorensr avatar Aug 18 '22 20:08 lorensr

I think that's sufficient, thanks Loren!

chanjoongkim avatar Aug 18 '22 20:08 chanjoongkim

Is this resolved?

yiminc avatar Aug 19 '22 17:08 yiminc

The pending question is whether we’d like to expose an HTTP endpoint as described

On Fri, Aug 19, 2022 at 1:56 PM Yimin Chen @.***> wrote:

Is this resolved?

— Reply to this email directly, view it on GitHub https://github.com/temporalio/temporal/issues/3247#issuecomment-1220954934, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAB5LGDUMPPLJMXFQEE4KFLVZ7DFFANCNFSM566J7BEQ . You are receiving this because you commented.Message ID: @.***>

lorensr avatar Aug 19 '22 17:08 lorensr

We found a workaround for our system, but yes the ask is to expose an HTTP endpoint

chanjoongkim avatar Aug 19 '22 18:08 chanjoongkim

HTTP API is WIP.

yiminc avatar Oct 22 '23 05:10 yiminc