美文网首页
Ocelot中文文档-请求Id和关联Id

Ocelot中文文档-请求Id和关联Id

作者: loogn | 来源:发表于2018-05-08 11:51 被阅读224次

    Ocelot支持一个客户端以头的形式发送requestid。 如果设置了,一旦中间件管道中可用,Ocelot便会使用这个requestid进行日志记录。 Ocelot也会使用指定头将requireid转发给下游服务。

    如果在日志配置中你设置IncludeScopes为true,你还可以在日志中获取asp.net core的请求id。

    为了是用requestid,有两种选择。

    全局

    在ocelot.json的GlobalConfiguration配置块中如下设置。这样所有进入Ocelot的请求都会起作用。

     "GlobalConfiguration": {
      "RequestIdKey": "OcRequestId"
    }
    

    我建议使用GlobalConfiguration,除非你真的需要它是指定ReRoute的。

    ReRoute

    如果你想覆盖全局设置,在ocelot.json的特定ReRoute中添加如下设置。

    "RequestIdKey": "OcRequestId"
    

    一旦Ocelot识别出与ReRoute对象匹配的请求,它将根据ReRoute的配置来设置requestid。

    这可能会导致一下困惑。如果你在GlobalConfiguration中设置了requestid,可能在ReRoute被匹配前是一个,匹配后是另一个,因为requestid的key会变。这是因为设计如此,而且这是我目前能想到的最好的解决方案了。在这种情况下OcelotLogger会在日志中记录当前requestid和上一个requestid。

    下面的例子是debug级别下一个正常请求的日志记录。

    dbug: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0]
          requestId: asdf, previousRequestId: no previous request id, message: ocelot pipeline started,
    dbug: Ocelot.DownstreamRouteFinder.Middleware.DownstreamRouteFinderMiddleware[0]
          requestId: asdf, previousRequestId: no previous request id, message: upstream url path is {upstreamUrlPath},
    dbug: Ocelot.DownstreamRouteFinder.Middleware.DownstreamRouteFinderMiddleware[0]
          requestId: asdf, previousRequestId: no previous request id, message: downstream template is {downstreamRoute.Data.ReRoute.DownstreamPath},
    dbug: Ocelot.RateLimit.Middleware.ClientRateLimitMiddleware[0]
          requestId: asdf, previousRequestId: no previous request id, message: EndpointRateLimiting is not enabled for Ocelot.Values.PathTemplate,
    dbug: Ocelot.Authorisation.Middleware.AuthorisationMiddleware[0]
          requestId: 1234, previousRequestId: asdf, message: /posts/{postId} route does not require user to be authorised,
    dbug: Ocelot.DownstreamUrlCreator.Middleware.DownstreamUrlCreatorMiddleware[0]
          requestId: 1234, previousRequestId: asdf, message: downstream url is {downstreamUrl.Data.Value},
    dbug: Ocelot.Request.Middleware.HttpRequestBuilderMiddleware[0]
          requestId: 1234, previousRequestId: asdf, message: setting upstream request,
    dbug: Ocelot.Requester.Middleware.HttpRequesterMiddleware[0]
          requestId: 1234, previousRequestId: asdf, message: setting http response message,
    dbug: Ocelot.Responder.Middleware.ResponderMiddleware[0]
          requestId: 1234, previousRequestId: asdf, message: no pipeline errors, setting and returning completed response,
    dbug: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0]
          requestId: 1234, previousRequestId: asdf, message: ocelot pipeline finished,
    

    previous
    next

    相关文章

      网友评论

          本文标题:Ocelot中文文档-请求Id和关联Id

          本文链接:https://www.haomeiwen.com/subject/jiylrftx.html