日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

應用集成BWAF框架日志打印實踐

本文介紹應用集成BWAF框架日志打印,以及BWAF日志不打印的排查辦法。

BWAF打印鏈路日志介紹

BWAF的logging包負責打印規范化的日志,記錄應用服務、商業能力、擴展點等關鍵組件的調用情況,作為運營平臺運行時數據的來源。

鏈路日志的格式定義及相關說明,示例代碼如下:

${Timestamp} ${SeverityText} [${TraceId}] [${SpanId}] [${Thread}] ${Logger} ${TenantID} ${AppID} [${Resource(k1:v1,k2:v2,...,kn:vn)}] [${Attributes(k1:v1,k2:v2,...,kn:vn)}] ${Body}

相關屬性說明如下:

  • Timestamp:時間戳,例如:2021-05-13 14:38:58.195,000000納秒

  • SeverityText:日志級別,例如:TRACE/DEBUG/INFO/WARN/ERROR/FATAL

  • TraceId:Trace標識

  • SpanId:Span標識

  • Thread:線程標識

  • Logger:日志記錄者

  • TenantID:租戶ID

  • AppID@Version:應用ID@應用版本

    例如:tradecenter@1.2.1,表示ID為tradecenter的應用,版本為1.2.1,即當前這條日志是tradecenter應用的1.2.1版本打印出來的。

  • Resource:資源(組)包含若干二級Resource(每個二級Resource都有可能為空),逗號分隔的KV(也可以雙冒號分隔KV),順序不固定,內容包括:

    Span鏈路相關信息:| (豎線)分隔。

    • spanctx:`${parentSpanId}|${spanLatency}`

      • parentSpanId:父span的spanId。

      • spanLatency:當前span花費的時間。

        例如:spanctx::0axxxxxxx|203,意思是,父span的ID是0axxxxxxx,當前span用時203毫秒。

    其他:

    • hostname:主機名

    • ip:IP地址

    • tz:時區

    • logver:日志格式版本

    • ……

    hostname::HaiqiangdeMacBook-Pro.local,tz::Asia/Shanghai,ip::127.0.0.1,logver::202209140915.rc,spanctx::6855dbf9ab1b6bfa|13
  • Attributes:屬性(組)包含若干屬性(每個Attribute都有可能為空),逗號分隔的KV(也可以雙冒號分隔KV),順序不固定,內容包括:

    • bizid:業務身份,請求中臺服務的前臺業務的身份標識,通過HTTP header(x-bw-biz-id)傳遞到中臺中心應用上下文中。

    • bizappid:業務應用標識,請求中臺服務的前臺業務應用標識,通過HTTP header(x-bw-biz-app-id)傳遞到中臺中心應用上下文中。

    • bizcapsvc:商業能力服務唯一標識。

    • appsvc:應用服務唯一標識。

    • dmnsvc:領域服務唯一標識。

    • bizext:擴展點唯一標識。

    • bizextimpl:擴展點實現編碼。

    此外,商業能力API(bizcapsvc)、應用服務(appsvc)、領域服務(dmnsvc)對應到Java代碼層面都是接口/類,具體的方法,與下面svcmethod(服務方法)字段配合來表達:

    • svcmethod:服務方法。

    • svccallrstcode:調用結果編碼,僅在svc調用結束的日志中存在。大于0或非數字的值代表調用成功,值本身是返回碼;0代表調用失敗。

    • svccallrstmsg:調用結果信息,僅在svc調用結束的日志中存在,調用成功時該字段可能不存在(調用成功,沒有需要反饋的信息)。主要用于記錄調用失敗(svccallrstcode=0)時,具體的錯誤信息,例如:Timeout、業務異常等。

    例如:

    商業能力API bizcapsvc::alibaba.aliyun.bizworks.pbc.api.OrderCapAPI。

    商業能力API的方法svcmethod:placeOrder。

    表達商業能力API OrderCapAPI的placeOrder方法。

  • Body:不限定內容。

BWAF日志不打印的排查辦法

您可以參考以下步驟逐步排查:

  1. 檢查應用是否依賴了BWAF logging包,即確認運行時是否加載了BWAF logging的JAR包。

    <dependency>
      <groupId>com.alibaba.bizworks</groupId>
      <artifactId>bwaf-core-traffic-logging</artifactId>
      <version>${BWAF.version}</version>
    </dependency>
  2. 確認啟動日志中是否包含BWAF logging核心引擎初始化的日志。在應用啟動日志中搜索如下內容:

    BWAF logging/tracing is working with 
  3. 確認應用中是否使用了繼承org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupportbean。如果是的話,需要手工將BWAF loggingInterceptor加入進來。示例代碼如下:

    import com.alibaba.bizworks.traffic.logging.interceptor.TracingInterceptor;
    
    @Configuration
    public class SpringMvcConfiguration extends WebMvcConfigurationSupport {
    
        @Autowired
    	private TracingInterceptor tracingInterceptor;
        
        @Override
        protected void addInterceptors(InterceptorRegistry registry) {
            ...
            ...
            registry.addInterceptor(tracingInterceptor);
            super.addInterceptors(registry);
        }
    }