在finagle中控制/健康端点

时间:2017-04-13 09:38:47

标签: scala finagle twitter-finagle

我试图覆盖健康终结点。我需要让它返回别的东西,然后“好的”#39;。 如文档中所述,我应该使用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,我看到它也出现在日志中。不知道为什么它不起作用

Logs

2 个答案:

答案 0 :(得分:0)

看起来它应该有效。你应该仔细检查你正在点击的网址是$ ADMIN_HOST:$ ADMIN_PORT / health而不是$ ADMIN_HOST:$ ADMIN_PORT / admin / health。

答案 1 :(得分:0)

听起来有点奇妙,但如果我把这段代码放在main之前,而不是premain - 它就可以了。

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