控制 finagle 中的 /health 端点

Take control over /health endpoint in finagle

我正在尝试覆盖运行状况端点。我需要将其设为 return,然后 'OK'。 如文档中所述,我应该使用 Lifecycle.Warmup 特征。 都没有

HttpMuxer.addHandler(Route("/health", new ReplyHandler("not OK\n"))) 

重写方法也无济于事。

下面的代码也无济于事。

HttpMuxer.addHandler(
      Route(
        pattern = "/health",
        handler = new ReplyHandler("not OK\n"),
        index = Some(RouteIndex(
          alias = "Health",
          group = group))))

我应该如何更改此消息?

UPD:另一种应该有效但无效的方法

premain {
    addAdminRoute(
      AdminHttpServer
        .Route("/health1",
          handler = service,
          "Service Health",
          Some("Misc"),
          false, Method.Get)
    )
  }
  val service = new Service[Request, Response] {
    def apply(request: Request) = {
      val response = Response(request.version, Status.Ok)
      response.contentString = "test" + "\n"
      com.twitter.util.Future.value(response)
    }
  }

我调试,我看到它已添加到 Muxer,我看到它也出现在日志中。不知道为什么它不起作用

看起来应该可以。你应该仔细检查你打的 url 是 $ADMIN_HOST:$ADMIN_PORT/health 而不是 $ADMIN_HOST:$ADMIN_PORT/admin/health.

听起来有点不可思议,但如果我将这段代码放在 main 之前而不是 premain - 它就可以工作。

HttpMuxer.addHandler(
    Route(
      pattern = "/health",
      handler = new ReplyHandler("not OK\n"),
      index = Some(RouteIndex(alias = "Health", group = group))
    )
  )