Как получить имя метода Finagle из фильтра / стека - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть службы, использующие Thrift / Finagle и создающие сервер через tmux thriftMuxServer.serveIface(address, service).

Я хочу написать фильтр (Stack?), Который имеет доступ к имени метода службы, которыйменя зовут.

Я возился, но нахожу вещи из стека / модуля / парама, а не извращения ума ...

Моя цель - использовать это для создания диапазона OpenTracing,(Я знаю, что есть библиотека OpenCensus, но она не сработала для меня, она просто сообщила «НЕИЗВЕСТНО» как метод. И я знаю, что некоторые люди используют Zipkin, это не тот путь, по которому я иду.)

С другой стороны : Если вы знаете, почему OpenCensus ServerTraceContextFilter сообщает UNKNOWN для имени трассировки. Это тоже может сработать. Вот немного их кода. Возможно, label.label - «НЕИЗВЕСТНО»;что вызвало бы это?

def module[Req, Rep]: Stackable[ServiceFactory[Req, Rep]] =
 new Stack.Module1[param.Label, ServiceFactory[Req, Rep]] {
  def make(label: param.Label, next: ServiceFactory[Req, Rep]): ServiceFactory[Req, Rep] =
    new ServerTraceContextFilter[Req, Rep](_ => label.label).andThen(next)
...