1.6.2 • Published 4 years ago

swan-log-analytics v1.6.2

Weekly downloads
-
License
MPL-2.0
Repository
-
Last release
4 years ago

ssr-log-analytics

支持配置化的分析SwanSSR日志

toc

Get Start

npm install -g swan-log-analytics
ssrp --help
cat path/to/node.log.2020072218 | ssrp # 分析日志文件 path/to/node.log.2020072218

Target 配置

在运行ssrp命令时可以使用--target path/to/target.json指定一个 Target File(如不指定,则默认使用自带的default-target.json文件)它是一个JSON文件,格式类似于:

[
  {
    "name": "SSR Count",
    "parserName": "BluebirdInfo",
    "valueExp": "$.intent",
    "valueType": "count"
  },
  {
    "name": "BlueBird all_t",
    "parserName": "BluebirdInfo",
    "valueExp": "$.hTiming.hAll - $.timing.downloadBody",
    "idName": "Path\nRequest Id",
    "idExp": "[$.path, $.requestId].join('\\n')",
    "valueType": "value"
  },
  ...
]

输出如下:

╔═══════════╤═════════╤═══════╗
║ SSR Count │ Percent │ Count ║
╟───────────┼─────────┼───────╢
║ ssr       │ 100.00% │ 1568  ║
╚═══════════╧═════════╧═══════╝

╔════════════════╤═══════╤══════════════════════════╤════════════════════════════════════╤══════════════════════════╤════════════════════════════════╤══════════════════════════╤══════════════════════════╤══════════════════════════╗
║ BlueBird all_t │ Avg   │ Min                      │ 50% Line                           │ 80% Line                 │ 90% Line                       │ 99% Line                 │ 99.99% Line              │ Max                      ║
╟────────────────┼───────┼──────────────────────────┼────────────────────────────────────┼──────────────────────────┼────────────────────────────────┼──────────────────────────┼──────────────────────────┼──────────────────────────╢
║ Value          │ 41.81 │ 4.286580810546875        │ 32.5355941772461                   │ 54.18648986816406        │ 73.38887176513671              │ 193.00723815917968       │ 316.1943298339844        │ 316.1943298339844        ║
╟────────────────┼───────┼──────────────────────────┼────────────────────────────────────┼──────────────────────────┼────────────────────────────────┼──────────────────────────┼──────────────────────────┼──────────────────────────╢
║ Path           │ -     │ puffer/default           │ duershow/template_article_vertical │ duershow/nbest_guide     │ duershow/short_video_square_v2 │ dpl/dpl_templates        │ dpl/dpl_templates_2_0    │ dpl/dpl_templates_2_0    ║
║ Request Id     │       │ request_8171666981092554 │ request_34641834250056935          │ request_5335305289962853 │ request_10639886688399192      │ request_9104324820658392 │ request_8846124495077263 │ request_8846124495077263 ║
╚════════════════╧═══════╧══════════════════════════╧════════════════════════════════════╧══════════════════════════╧════════════════════════════════╧══════════════════════════╧══════════════════════════╧══════════════════════════╝


...

其中:

  • name: 展示结果使用的名称,随便填
  • parserName: 使用的解析器(Parser),目前有如下几种解析器可选择:
    • BluebirdInfo: 解析 Bluebird 请求日志([INFO] bluebird),具体结构见BluebirdInfo Parser
    • BluebirdError: 解析 Bluebird 错误日志([ERROR] bluebird) ,具体结构详见下文BluebirdError Parser
    • SwanInfo: 解析 Swan 请求日志([INFO] swan) ,具体结构详见下文SwanInfo Parser
  • valueType: 收集数据的收集方式,有如下方式可选:
    • value: 样例。收集值本身,然后计算平均值、50分位、最大值等信息
    • count: 样例。收集值出现的次数,比如状态 2004 出现的次数、占比等
    • valueInfo: 样例。与value计算逻辑类似,不过最终要求valueExp要解析出一个对象,对象的key为name,value为参与计算的值。此类型在你想统计很多很多value时十分有用
  • valueExp: 取值表达式,其中$为解析器(Parser)解析出的结构。如$.intent代表取解析后结构中的intent字段 此字段支持进行表达式运算,语法与 JavaScript 表达式相同。示例:
    • $.hTiming.hAll - $.timing.downloadBody
    • $.hTiming.hAll - $.timing.downloadBody > 300 ? 'Yes' : 'No'
  • idExp: 可选,ID计算表达式,输出结果可额外包含ID字段供用户定位到具体用户,语法同valueExp。如:
    • $.logid 取 logid
    • $.logid + ' | ' + $.requestId' 取 logid 和 RequestId
    • new Date($.date).toLocaleTimeString() 取时间
  • idName: 可选,显示在输出结果ID字段的显示名称
  • idLimit: 可选,在输出结果中包含多少条ID
  • (不推荐)key: 推荐使用valueExp来代替。取值的路径,如hTiming.hAll,实际上等同于使用valueExp字段的$.hTiming.hAll
  • (不推荐)idKey: 推荐使用valueExp来代替。可选,收集数据时可收集该条请求的ID,便于定位请求。如logidrequestId等,语法与key相同

可用的 Parser

BluebirdInfo Parser

可以把如下日志

[2020-07-22 14:37:41.687] [INFO] bluebird - {"intent":"ssr","logid":"[empty.logid ssr]","requestId":"request_16172620260695503","path":"puffer/history_collection","ssrRenderResult":{"hasCommands":true,"ssrT":"94.835","status":0,"msg":"ok"},"healthInfo":{"lastQps":3,"processingRequestCount":1},"ssrRenderInfo":{"clientName":"puffer","moduleName":"history_collection","needCommands":true,"onlyData":true,"renderSwanConfig":{"theme":"puffer"},"tplName":null,"sourceType":null,"sourceSubType":null,"viewBackground":"DEFAULT","originModuleName":"history_collection","originRoutedModuleName":"history_collection","moduleHash":"d7f128"},"ssrRequestInfo":{"query":"??????","logid":"[empty.logid ssr]"},"ssrDeviceInfo":{"width":1024,"height":600,"devicePixelRatio":1,"enableWakeup":true,"swanVersion":"Swan/1.36.8 JsCore/1.36.5","theme":"puffer"},"config":{"_global":{"_disabled":false,"_whenGetReadyError":"EXIT","_whenCanUseError":"EMIT_EVENT","_whenRunError":"EMIT_EVENT","debug":false},"_public":{"ssr-client-cache":{"enabled":false,"forceRefresh":{"moduleNames":[]},"include":{"moduleNames":["endless_square","endless_square_v2"]},"exclude":{"moduleNames":[]}}},"_core":{"_global":{"_disabled":false,"_whenGetReadyError":"EXIT","_whenCanUseError":"EMIT_EVENT","_whenRunError":"EMIT_EVENT","debug":false},"_public":{"ssr-client-cache":{"enabled":false,"forceRefresh":{"moduleNames":[]},"include":{"moduleNames":["endless_square","endless_square_v2"]},"exclude":{"moduleNames":[]}}},"_core":{"debug":true,"qpsProtect":{"maxQps":80,"outputResult":{"statusCode":200,"head":{"Content-Type":"application/json"},"body":"{\"status\":9999, \"msg\":\"The QSP is overflowing.\"}"}}},"debug":true,"qpsProtect":{"maxQps":80,"outputResult":{"statusCode":200,"head":{"Content-Type":"application/json"},"body":"{\"status\":9999, \"msg\":\"The QSP is overflowing.\"}"}}}},"hTiming":{"hAll":110.56,"hInput":1.99,"hOutput":5.89,"hResolve":100.63,"hMiddleware":105.83,"hEngine":1.9,"hEngineInput":0.42,"hEngineOutput":1.44,"hEngineResolve":0.04,"hQueuing":1.97},"timing":{"onRequest":110.56397247314453,"resolver onRequest":100.66239166259766,"resolver execMiddlewares":100.6346664428711,"exec resolver.ssr-render-commands":100.52449035644531,"output-processor onRequest":5.887046813964844,"output-processor execMiddlewares":5.842079162597656,"exec output-processor.ssr-compress":3.047454833984375,"input-processor onRequest":1.9861984252929688,"input-processor execMiddlewares":1.711212158203125,"downloadBody":0.9182662963867188,"exec output-processor.ssr-logger":0.5603561401367188,"beforeExec output-processor.none-of-business":0.5386886596679688,"queuing output-processor.none-of-business":0.5344009399414062,"exec input-processor.ssr-route":0.4734954833984375,"beforeExec output-processor.ssr-product-trace-logger":0.41925048828125,"queuing output-processor.ssr-product-trace-logger":0.4152679443359375,"exec input-processor.ssr-record-log-info":0.25736236572265625,"queuing worker resolver.ssr-render-commands":0.21166229248046875,"exec output-processor.ssr-write-body":0.1521759033203125,"beforeExec input-processor.generate-request-id":0.14609527587890625,"queuing input-processor.generate-request-id":0.142578125,"exec output-processor.ssr-bluebird-logger":0.10068511962890625,"exec input-processor.ssr-rewrite-info":0.08469390869140625,"beforeExec output-processor.echo-json":0.0807037353515625,"exec input-processor.intent-recognizer":0.07891845703125,"queuing output-processor.echo-json":0.078460693359375,"exec output-processor.ssr-write-code-head":0.0770416259765625,"exec input-processor.generate-request-id":0.072235107421875,"beforeExec output-processor.ssr-clint-cache-sum-info":0.06764984130859375,"queuing output-processor.ssr-clint-cache-sum-info":0.06573486328125,"beforeExec output-processor.echo-message":0.06426239013671875,"beforeExec output-processor.ssr-bluebird-logger":0.06298065185546875,"queuing output-processor.ssr-bluebird-logger":0.06038665771484375,"exec output-processor.ssr-clint-cache-sum-info":0.0589447021484375,"queuing output-processor.echo-message":0.056304931640625,"exec input-processor.ssr-info-parser":0.05507659912109375,"exec input-processor.ssr-generate-native-analytics-info":0.04677581787109375,"beforeExec output-processor.ssr-write-body":0.0397491455078125,"beforeExec output-processor.ssr-logger":0.03911590576171875,"queuing output-processor.ssr-write-body":0.0369873046875,"queuing output-processor.ssr-logger":0.03610992431640625,"exec input-processor.ssr-cdn-speedup":0.0354461669921875,"beforeExec input-processor.ssr-client-cache-render-info":0.03141021728515625,"beforeExec input-processor.intent-recognizer":0.030517578125,"exec output-processor.none-of-business":0.029632568359375,"beforeExec output-processor.ssr-write-code-head":0.029083251953125,"exec output-processor.echo-message":0.02849578857421875,"queuing input-processor.ssr-client-cache-render-info":0.0276031494140625,"beforeExec input-processor.ssr-info-parser":0.0273590087890625,"beforeExec resolver.ssr-render-commands":0.02728271484375,"beforeExec input-processor.ssr-cdn-speedup":0.02716064453125,"queuing output-processor.ssr-write-code-head":0.027008056640625,"queuing input-processor.intent-recognizer":0.02684783935546875,"queuing input-processor.ssr-info-parser":0.02606201171875,"queuing input-processor.ssr-cdn-speedup":0.025543212890625,"beforeExec output-processor.config-write-body":0.02520751953125,"beforeExec output-processor.ssr-compress":0.02478790283203125,"exec input-processor.ssr-ts-route":0.0246734619140625,"queuing resolver.ssr-render-commands":0.02408599853515625,"exec output-processor.echo-json":0.02381134033203125,"beforeExec input-processor.ssr-record-log-info":0.02364349365234375,"exec output-processor.ssr-product-trace-logger":0.023345947265625,"exec input-processor.ssr-client-cache-render-info":0.0233154296875,"queuing output-processor.config-write-body":0.023101806640625,"queuing input-processor.ssr-record-log-info":0.0218658447265625,"beforeExec input-processor.ssr-client-catch-count-etag":0.0216217041015625,"exec input-processor.ssr-client-catch-count-etag":0.0213775634765625,"queuing output-processor.ssr-compress":0.0206298828125,"queuing input-processor.ssr-client-catch-count-etag":0.0201416015625,"beforeExec input-processor.config-parse-info":0.01972198486328125,"beforeExec input-processor.ssr-rewrite-info":0.01970672607421875,"beforeExec input-processor.ssr-ts-route":0.019500732421875,"afterExec output-processor.none-of-business":0.019378662109375,"queuing input-processor.config-parse-info":0.01856231689453125,"exec output-processor.config-write-body":0.01825714111328125,"queuing input-processor.ssr-ts-route":0.0182037353515625,"beforeExec input-processor.ssr-generate-native-analytics-info":0.01720428466796875,"beforeExec input-processor.ssr-route":0.017059326171875,"exec input-processor.config-parse-info":0.01654815673828125,"queuing input-processor.ssr-rewrite-info":0.01641082763671875,"queuing input-processor.ssr-generate-native-analytics-info":0.01599884033203125,"queuing input-processor.ssr-route":0.0157470703125,"afterExec resolver.ssr-render-commands":0.01251983642578125,"afterExec output-processor.echo-message":0.00696563720703125,"afterExec input-processor.generate-request-id":0.00608062744140625,"afterExec output-processor.ssr-compress":0.00518035888671875,"afterExec output-processor.ssr-clint-cache-sum-info":0.00347137451171875,"afterExec output-processor.ssr-write-body":0.003265380859375,"afterExec output-processor.ssr-logger":0.00270843505859375,"afterExec output-processor.ssr-write-code-head":0.00264739990234375,"afterExec output-processor.ssr-product-trace-logger":0.0025482177734375,"afterExec output-processor.ssr-bluebird-logger":0.0021514892578125,"afterExec output-processor.echo-json":0.00208282470703125,"afterExec input-processor.ssr-route":0.00185394287109375,"afterExec input-processor.ssr-record-log-info":0.0016937255859375,"afterExec input-processor.intent-recognizer":0.0016326904296875,"afterExec output-processor.config-write-body":0.00151824951171875,"afterExec input-processor.ssr-ts-route":0.00124359130859375,"afterExec input-processor.ssr-client-cache-render-info":0.00121307373046875,"afterExec input-processor.ssr-rewrite-info":0.0011749267578125,"afterExec input-processor.ssr-cdn-speedup":0.00116729736328125,"afterExec input-processor.ssr-generate-native-analytics-info":0.00110626220703125,"afterExec input-processor.ssr-info-parser":0.0010986328125,"afterExec input-processor.ssr-client-catch-count-etag":0.0010528564453125,"afterExec input-processor.config-parse-info":0.00087738037109375},"timeline":{"onRequest":0,"downloadBody":0.01433563232421875,"/downloadBody":0.9326019287109375,"input-processor onRequest":1.6922988891601562,"input-processor execMiddlewares":1.913238525390625,"beforeExec input-processor.generate-request-id":1.9393997192382812,"queuing input-processor.generate-request-id":1.942169189453125,"/queuing input-processor.generate-request-id":2.084747314453125,"/beforeExec input-processor.generate-request-id":2.0854949951171875,"exec input-processor.generate-request-id":2.0873260498046875,"/exec input-processor.generate-request-id":2.1595611572265625,"afterExec input-processor.generate-request-id":2.1616058349609375,"/afterExec input-processor.generate-request-id":2.1676864624023438,"beforeExec input-processor.intent-recognizer":2.1729812622070312,"queuing input-processor.intent-recognizer":2.1761550903320312,"/queuing input-processor.intent-recognizer":2.2030029296875,"/beforeExec input-processor.intent-recognizer":2.2034988403320312,"exec input-processor.intent-recognizer":2.20379638671875,"/exec input-processor.intent-recognizer":2.28271484375,"afterExec input-processor.intent-recognizer":2.2839508056640625,"/afterExec input-processor.intent-recognizer":2.28558349609375,"beforeExec input-processor.ssr-record-log-info":2.2907791137695312,"queuing input-processor.ssr-record-log-info":2.2921600341796875,"/queuing input-processor.ssr-record-log-info":2.31402587890625,"/beforeExec input-processor.ssr-record-log-info":2.314422607421875,"exec input-processor.ssr-record-log-info":2.3147354125976562,"/exec input-processor.ssr-record-log-info":2.5720977783203125,"afterExec input-processor.ssr-record-log-info":2.5734329223632812,"/afterExec input-processor.ssr-record-log-info":2.5751266479492188,"beforeExec input-processor.ssr-cdn-speedup":2.57843017578125,"queuing input-processor.ssr-cdn-speedup":2.5796279907226562,"/queuing input-processor.ssr-cdn-speedup":2.6051712036132812,"/beforeExec input-processor.ssr-cdn-speedup":2.6055908203125,"exec input-processor.ssr-cdn-speedup":2.6059341430664062,"/exec input-processor.ssr-cdn-speedup":2.6413803100585938,"afterExec input-processor.ssr-cdn-speedup":2.64251708984375,"/afterExec input-processor.ssr-cdn-speedup":2.6436843872070312,"beforeExec input-processor.ssr-info-parser":2.6483840942382812,"queuing input-processor.ssr-info-parser":2.6492691040039062,"/queuing input-processor.ssr-info-parser":2.6753311157226562,"/beforeExec input-processor.ssr-info-parser":2.6757431030273438,"exec input-processor.ssr-info-parser":2.676055908203125,"/exec input-processor.ssr-info-parser":2.7311325073242188,"afterExec input-processor.ssr-info-parser":2.7323379516601562,"/afterExec input-processor.ssr-info-parser":2.7334365844726562,"beforeExec input-processor.ssr-rewrite-info":2.7377853393554688,"queuing input-processor.ssr-rewrite-info":2.7387313842773438,"/queuing input-processor.ssr-rewrite-info":2.7551422119140625,"/beforeExec input-processor.ssr-rewrite-info":2.7574920654296875,"exec input-processor.ssr-rewrite-info":2.757843017578125,"/exec input-processor.ssr-rewrite-info":2.8425369262695312,"afterExec input-processor.ssr-rewrite-info":2.8437423706054688,"/afterExec input-processor.ssr-rewrite-info":2.8449172973632812,"beforeExec input-processor.ssr-ts-route":2.8480606079101562,"queuing input-processor.ssr-ts-route":2.8489608764648438,"/queuing input-processor.ssr-ts-route":2.8671646118164062,"/beforeExec input-processor.ssr-ts-route":2.8675613403320312,"exec input-processor.ssr-ts-route":2.8678817749023438,"/exec input-processor.ssr-ts-route":2.8925552368164062,"afterExec input-processor.ssr-ts-route":2.8936233520507812,"/afterExec input-processor.ssr-ts-route":2.894866943359375,"beforeExec input-processor.ssr-route":2.9029464721679688,"queuing input-processor.ssr-route":2.9038314819335938,"/queuing input-processor.ssr-route":2.9195785522460938,"/beforeExec input-processor.ssr-route":2.9200057983398438,"exec input-processor.ssr-route":2.9203109741210938,"/exec input-processor.ssr-route":3.3938064575195312,"afterExec input-processor.ssr-route":3.3955154418945312,"/afterExec input-processor.ssr-route":3.397369384765625,"beforeExec input-processor.ssr-client-cache-render-info":3.4032058715820312,"queuing input-processor.ssr-client-cache-render-info":3.4046401977539062,"/queuing input-processor.ssr-client-cache-render-info":3.4322433471679688,"/beforeExec input-processor.ssr-client-cache-render-info":3.4346160888671875,"exec input-processor.ssr-client-cache-render-info":3.4349822998046875,"/exec input-processor.ssr-client-cache-render-info":3.4582977294921875,"afterExec input-processor.ssr-client-cache-render-info":3.4594650268554688,"/afterExec input-processor.ssr-client-cache-render-info":3.4606781005859375,"beforeExec input-processor.ssr-client-catch-count-etag":3.4635543823242188,"queuing input-processor.ssr-client-catch-count-etag":3.4645843505859375,"/queuing input-processor.ssr-client-catch-count-etag":3.4847259521484375,"/beforeExec input-processor.ssr-client-catch-count-etag":3.4851760864257812,"exec input-processor.ssr-client-catch-count-etag":3.4854888916015625,"/exec input-processor.ssr-client-catch-count-etag":3.506866455078125,"afterExec input-processor.ssr-client-catch-count-etag":3.50799560546875,"/afterExec input-processor.ssr-client-catch-count-etag":3.5090484619140625,"beforeExec input-processor.ssr-generate-native-analytics-info":3.5119094848632812,"queuing input-processor.ssr-generate-native-analytics-info":3.5127410888671875,"/queuing input-processor.ssr-generate-native-analytics-info":3.5287399291992188,"/beforeExec input-processor.ssr-generate-native-analytics-info":3.52911376953125,"exec input-processor.ssr-generate-native-analytics-info":3.5296554565429688,"/exec input-processor.ssr-generate-native-analytics-info":3.5764312744140625,"afterExec input-processor.ssr-generate-native-analytics-info":3.5775527954101562,"/afterExec input-processor.ssr-generate-native-analytics-info":3.5786590576171875,"beforeExec input-processor.config-parse-info":3.5817489624023438,"queuing input-processor.config-parse-info":3.5825347900390625,"/queuing input-processor.config-parse-info":3.6010971069335938,"/beforeExec input-processor.config-parse-info":3.601470947265625,"exec input-processor.config-parse-info":3.6017837524414062,"/exec input-processor.config-parse-info":3.6183319091796875,"afterExec input-processor.config-parse-info":3.6194229125976562,"/afterExec input-processor.config-parse-info":3.62030029296875,"/input-processor execMiddlewares":3.62445068359375,"/input-processor onRequest":3.678497314453125,"resolver onRequest":3.6837844848632812,"resolver execMiddlewares":3.7050933837890625,"beforeExec resolver.ssr-render-commands":3.7212066650390625,"queuing resolver.ssr-render-commands":3.7232894897460938,"/queuing resolver.ssr-render-commands":3.74737548828125,"/beforeExec resolver.ssr-render-commands":3.7484893798828125,"exec resolver.ssr-render-commands":3.7503738403320312,"queuing worker resolver.ssr-render-commands":3.9310379028320312,"/queuing worker resolver.ssr-render-commands":4.1427001953125,"/exec resolver.ssr-render-commands":104.27486419677734,"afterExec resolver.ssr-render-commands":104.28144836425781,"/afterExec resolver.ssr-render-commands":104.2939682006836,"/resolver execMiddlewares":104.33975982666016,"/resolver onRequest":104.34617614746094,"output-processor onRequest":104.35374450683594,"output-processor execMiddlewares":104.38709259033203,"beforeExec output-processor.echo-message":104.4074935913086,"queuing output-processor.echo-message":104.41429138183594,"/queuing output-processor.echo-message":104.47059631347656,"/beforeExec output-processor.echo-message":104.47175598144531,"exec output-processor.echo-message":104.47274017333984,"/exec output-processor.echo-message":104.50123596191406,"afterExec output-processor.echo-message":104.50334930419922,"/afterExec output-processor.echo-message":104.51031494140625,"beforeExec output-processor.echo-json":104.51805877685547,"queuing output-processor.echo-json":104.51976776123047,"/queuing output-processor.echo-json":104.59822845458984,"/beforeExec output-processor.echo-json":104.59876251220703,"exec output-processor.echo-json":104.59908294677734,"/exec output-processor.echo-json":104.62289428710938,"afterExec output-processor.echo-json":104.6242904663086,"/afterExec output-processor.echo-json":104.62637329101562,"beforeExec output-processor.ssr-clint-cache-sum-info":104.63113403320312,"queuing output-processor.ssr-clint-cache-sum-info":104.63260650634766,"/queuing output-processor.ssr-clint-cache-sum-info":104.6983413696289,"/beforeExec output-processor.ssr-clint-cache-sum-info":104.69878387451172,"exec output-processor.ssr-clint-cache-sum-info":104.69908905029297,"/exec output-processor.ssr-clint-cache-sum-info":104.7580337524414,"afterExec output-processor.ssr-clint-cache-sum-info":104.75941467285156,"/afterExec output-processor.ssr-clint-cache-sum-info":104.76288604736328,"beforeExec output-processor.ssr-write-code-head":104.76869201660156,"queuing output-processor.ssr-write-code-head":104.77025604248047,"/queuing output-processor.ssr-write-code-head":104.7972640991211,"/beforeExec output-processor.ssr-write-code-head":104.79777526855469,"exec output-processor.ssr-write-code-head":104.79808044433594,"/exec output-processor.ssr-write-code-head":104.8751220703125,"afterExec output-processor.ssr-write-code-head":104.87845611572266,"/afterExec output-processor.ssr-write-code-head":104.881103515625,"beforeExec output-processor.ssr-compress":104.88589477539062,"queuing output-processor.ssr-compress":104.88762664794922,"/queuing output-processor.ssr-compress":104.90825653076172,"/beforeExec output-processor.ssr-compress":104.91068267822266,"exec output-processor.ssr-compress":104.9109878540039,"/exec output-processor.ssr-compress":107.95844268798828,"afterExec output-processor.ssr-compress":107.96067810058594,"/afterExec output-processor.ssr-compress":107.96585845947266,"beforeExec output-processor.ssr-write-body":107.97242736816406,"queuing output-processor.ssr-write-body":107.97470092773438,"/queuing output-processor.ssr-write-body":108.01168823242188,"/beforeExec output-processor.ssr-write-body":108.01217651367188,"exec output-processor.ssr-write-body":108.01248931884766,"/exec output-processor.ssr-write-body":108.16466522216797,"afterExec output-processor.ssr-write-body":108.16609191894531,"/afterExec output-processor.ssr-write-body":108.16935729980469,"beforeExec output-processor.config-write-body":108.17555236816406,"queuing output-processor.config-write-body":108.17720794677734,"/queuing output-processor.config-write-body":108.20030975341797,"/beforeExec output-processor.config-write-body":108.20075988769531,"exec output-processor.config-write-body":108.2010498046875,"/exec output-processor.config-write-body":108.21930694580078,"afterExec output-processor.config-write-body":108.2204360961914,"/afterExec output-processor.config-write-body":108.22195434570312,"beforeExec output-processor.none-of-business":108.2247085571289,"queuing output-processor.none-of-business":108.22814178466797,"/queuing output-processor.none-of-business":108.76254272460938,"/beforeExec output-processor.none-of-business":108.76339721679688,"exec output-processor.none-of-business":108.76371002197266,"/exec output-processor.none-of-business":108.79334259033203,"afterExec output-processor.none-of-business":108.79522705078125,"/afterExec output-processor.none-of-business":108.81460571289062,"beforeExec output-processor.ssr-logger":108.99543762207031,"queuing output-processor.ssr-logger":108.99805450439453,"/queuing output-processor.ssr-logger":109.03416442871094,"/beforeExec output-processor.ssr-logger":109.03455352783203,"exec output-processor.ssr-logger":109.03485107421875,"/exec output-processor.ssr-logger":109.59520721435547,"afterExec output-processor.ssr-logger":109.59686279296875,"/afterExec output-processor.ssr-logger":109.59957122802734,"beforeExec output-processor.ssr-product-trace-logger":109.60462951660156,"queuing output-processor.ssr-product-trace-logger":109.60786437988281,"/queuing output-processor.ssr-product-trace-logger":110.02313232421875,"/beforeExec output-processor.ssr-product-trace-logger":110.02388000488281,"exec output-processor.ssr-product-trace-logger":110.02426147460938,"/exec output-processor.ssr-product-trace-logger":110.047607421875,"afterExec output-processor.ssr-product-trace-logger":110.04949951171875,"/afterExec output-processor.ssr-product-trace-logger":110.05204772949219,"beforeExec output-processor.ssr-bluebird-logger":110.056640625,"queuing output-processor.ssr-bluebird-logger":110.05879211425781,"/queuing output-processor.ssr-bluebird-logger":110.11917877197266,"/beforeExec output-processor.ssr-bluebird-logger":110.11962127685547,"exec output-processor.ssr-bluebird-logger":110.11991882324219,"/exec output-processor.ssr-bluebird-logger":110.2206039428711,"afterExec output-processor.ssr-bluebird-logger":110.22210693359375,"/afterExec output-processor.ssr-bluebird-logger":110.22425842285156,"/output-processor execMiddlewares":110.22917175292969,"/output-processor onRequest":110.24079132080078,"/onRequest":110.56397247314453}}

解析成:

{
  "date": "2020-07-22 14:37:41.687",
  "intent": "ssr",
  "logid": "[empty.logid ssr]",
  "requestId": "request_16172620260695503",
  "path": "puffer/history_collection",
  "ssrRenderResult": {
    "hasCommands": true,
    "ssrT": "94.835",
    "status": 0,
    "msg": "ok"
  },
  "healthInfo": {
    "lastQps": 3,
    "processingRequestCount": 1
  },
  ...
}

valueExp中可用$.healthInfo.lastQps来拿到3,用如下 Target 可计算 QPS 情况

[
  {
    "name": "QPS",
    "parserName": "BluebirdInfo",
    "valueExp": "$.healthInfo.lastQps",
    "idName": "Request ID",
    "idExp": "$.requestId",
    "valueType": "value"
  }
]

输出如下

╔════════════╤═══════╤══════════════════════════╤══════════════════════════╤══════════════════════════╤═══════════════════════════╤═══════════════════════════╤══════════════════════════╗
║ QPS        │ Avg   │ Min                      │ 50% Line                 │ 80% Line                 │ 90% Line                  │ 99% Line                  │ Max                      ║
╟────────────┼───────┼──────────────────────────┼──────────────────────────┼──────────────────────────┼───────────────────────────┼───────────────────────────┼──────────────────────────╢
║ Value      │ 49.72 │ 28                       │ 50                       │ 51                       │ 52                        │ 53                        │ 54                       ║
╟────────────┼───────┼──────────────────────────┼──────────────────────────┼──────────────────────────┼───────────────────────────┼───────────────────────────┼──────────────────────────╢
║ Request ID │ -     │ request_0750907654895765 │ request_6986896887533869 │ request_0634741794082021 │ request_24549228768520792 │ request_08837399306808758 │ request_3920408686269159 ║
╚════════════╧═══════╧══════════════════════════╧══════════════════════════╧══════════════════════════╧═══════════════════════════╧═══════════════════════════╧══════════════════════════╝

BluebirdError Parser

可以把如下日志

[2020-07-22 14:37:44.455] [ERROR] bluebird - [QPS_OVERFLOW] [P0] [njjs-bac-orp-dumi-sandbox-84708.njjs.baidu.com]: {"qps":80,"time":"2020-07-22T06:37:44.455Z","processingRequestCount":7}

解析成:

{
    "date": "2020-07-22 14:37:44.455",
    "type": "QPS_OVERFLOW",
    "name": "njjs-bac-orp-dumi-sandbox-84708.njjs.baidu.com",
    "level": "P0",
    "context": {
        "qps":80,
        "time":"2020-07-22T06:37:44.455Z",
        "processingRequestCount":7
    }
}

valueExp中可用$.level来拿到P0,用如下 Target 可计算不同level出现的次数

[
  {
    "name": "Error Level",
    "parserName": "BluebirdError",
    "valueExp": "$.level",
    "idName": "Date",
    "idExp": "$.date",
    "valueType": "count"
  }
]

输出如下

╔══════════════╤═════════╤═══════╤════════════════════════════╗
║ Has Commands │ Percent │ Count │ Date                       ║
╟──────────────┼─────────┼───────┼────────────────────────────╢
║ P0           │ 0.46%   │ 41    │ 2020-07-22 14:20:24.929    ║
║              │         │       │ 2020-07-22 14:20:24.936    ║
║              │         │       │ 2020-07-22 14:20:24.952    ║
║              │         │       │ 2020-07-22 14:20:24.954    ║
║              │         │       │ 2020-07-22 14:20:24.982    ║
╟──────────────┼─────────┼───────┼────────────────────────────╢
║ P1           │ 99.54%  │ 8792  │ 2020-07-22 14:18:11.319    ║
║              │         │       │ 2020-07-22 14:18:11.316    ║
║              │         │       │ 2020-07-22 14:18:11.312    ║
║              │         │       │ 2020-07-22 14:18:11.314    ║
║              │         │       │ 2020-07-22 14:18:11.312    ║
╚══════════════╧═════════╧═══════╧════════════════════════════╝

SwanInfo Parser

可以把如下日志

[2020-07-23 16:02:56.425] [INFO] swan - {"logid": "e6c0fe5bb5d946b6b846d55d0bd8f9fb","pool_info": {"spareResourceCapacity": 0,"size": 4,"available": 0,"borrowed": 4,"pending": 40,"max": 4,"min": 2},"all_t_beg": "0.000","all_t_fin": "506.777","all_t": "506.777","self_t": "506.777","hostname": "njjs-bac-orp-dumi-sandbox-84708.njjs.baidu.com:8310"}

解析成:

{
  "date": "2020-07-23 16:02:56.425",
  "logid": "e6c0fe5bb5d946b6b846d55d0bd8f9fb",
  "pool_info": {
    "spareResourceCapacity": 0,
    "size": 4,
    "available": 0,
    "borrowed": 4,
    "pending": 40,
    "max": 4,
    "min": 2
  },
  "all_t_beg": "0.000",
  "all_t_fin": "506.777",
  "all_t": "506.777",
  "self_t": "506.777",
  "hostname": "njjs-bac-orp-dumi-sandbox-84708.njjs.baidu.com:8310"
}

valueExp中可用$.self_t来拿到506.777,用如下 Target 可计算 QPS 情况

[
  {
    "name": "self_t",
    "parserName": "SwanInfo",
    "valueExp": "$.self_t",
    "idName": "logid",
    "idExp": "$.logid",
    "valueType": "value"
  }
]

输出如下

╔════════════╤════════╤══════════════════════════════════╤══════════════════════════════════╤══════════════════════════════════╤══════════════════════════════════╤══════════════════════════════════╤══════════════════════════════════╤══════════════════════════════════╗
║ self_t     │ Avg    │ Min                              │ 50% Line                         │ 80% Line                         │ 90% Line                         │ 99% Line                         │ 99.99% Line                      │ Max                              ║
╟────────────┼────────┼──────────────────────────────────┼──────────────────────────────────┼──────────────────────────────────┼──────────────────────────────────┼──────────────────────────────────┼──────────────────────────────────┼──────────────────────────────────╢
║ Value      │ 514.39 │ 7.977                            │ 505.204                          │ 678.278                          │ 765.063                          │ 1039.74                          │ 1316.635                         │ 1316.635                         ║
╟────────────┼────────┼──────────────────────────────────┼──────────────────────────────────┼──────────────────────────────────┼──────────────────────────────────┼──────────────────────────────────┼──────────────────────────────────┼──────────────────────────────────╢
║ logid      │ -      │ 23317228c06a4d7dbc5696ce28e22575 │ c2e8d0c78e3744718f161e9f6eb4e0b8 │ 6e80760c919a46908964b0be52be2a04 │ 113aad45a0e6488a907ae5ceefa3f632 │ fa3be95e48ee41239691bd30477d832f │ 579ce92ebd3848cbb1cb78702b5c32eb │ 579ce92ebd3848cbb1cb78702b5c32eb ║
╚════════════╧════════╧══════════════════════════════════╧══════════════════════════════════╧══════════════════════════════════╧══════════════════════════════════╧══════════════════════════════════╧══════════════════════════════════╧══════════════════════════════════╝

样例

valueType 为 value

Target 的配置:

[
  {
    "name": "BlueBird all_t",
    "parserName": "BluebirdInfo",
    "valueExp": "$.hTiming.hAll - $.timing.downloadBody",
    "idName": "Path\nRequest Id",
    "idExp": "[$.path, $.requestId].join('\\n')",
    "valueType": "value"
  }
]

输出样例

╔════════════════╤═══════╤══════════════════════════╤════════════════════════════════════╤══════════════════════════╤════════════════════════════════╤══════════════════════════╤══════════════════════════╤══════════════════════════╗
║ BlueBird all_t │ Avg   │ Min                      │ 50% Line                           │ 80% Line                 │ 90% Line                       │ 99% Line                 │ 99.99% Line              │ Max                      ║
╟────────────────┼───────┼──────────────────────────┼────────────────────────────────────┼──────────────────────────┼────────────────────────────────┼──────────────────────────┼──────────────────────────┼──────────────────────────╢
║ Value          │ 41.81 │ 4.286580810546875        │ 32.5355941772461                   │ 54.18648986816406        │ 73.38887176513671              │ 193.00723815917968       │ 316.1943298339844        │ 316.1943298339844        ║
╟────────────────┼───────┼──────────────────────────┼────────────────────────────────────┼──────────────────────────┼────────────────────────────────┼──────────────────────────┼──────────────────────────┼──────────────────────────╢
║ Path           │ -     │ puffer/default           │ duershow/template_article_vertical │ duershow/nbest_guide     │ duershow/short_video_square_v2 │ dpl/dpl_templates        │ dpl/dpl_templates_2_0    │ dpl/dpl_templates_2_0    ║
║ Request Id     │       │ request_8171666981092554 │ request_34641834250056935          │ request_5335305289962853 │ request_10639886688399192      │ request_9104324820658392 │ request_8846124495077263 │ request_8846124495077263 ║
╚════════════════╧═══════╧══════════════════════════╧════════════════════════════════════╧══════════════════════════╧════════════════════════════════╧══════════════════════════╧══════════════════════════╧══════════════════════════╝

valueType 为 count

Target 的配置:

[
    {
        "name": "Has Commands",
        "parserName": "BluebirdInfo",
        "key": "ssrRenderResult.hasCommands",
        "idName": "ID",
        "idExp": "$.requestId",
        "idLimit": 5,
        "valueType": "count"
    }
]

输出样例

╔══════════════╤═════════╤═══════╤════════════════════════════╗
║ Has Commands │ Percent │ Count │ ID                         ║
╟──────────────┼─────────┼───────┼────────────────────────────╢
║ false        │ 0.46%   │ 41    │ request_9986736127922975   ║
║              │         │       │ request_39623550315558664  ║
║              │         │       │ request_2796199321891437   ║
║              │         │       │ request_1653490488995084   ║
║              │         │       │ request_4702562762606821   ║
╟──────────────┼─────────┼───────┼────────────────────────────╢
║ true         │ 99.54%  │ 8792  │ request_8972312821852146   ║
║              │         │       │ request_008504496947879359 ║
║              │         │       │ request_9534020747138754   ║
║              │         │       │ request_6995016848994999   ║
║              │         │       │ request_6041686592879114   ║
╚══════════════╧═════════╧═══════╧════════════════════════════╝

valueType 为 valueInfo

Note: 此功能执行缓慢!

Target 的配置:

[
  {
    "name": "Exec Middleware",
    "parserName": "BluebirdInfo",
    "valueExp": "Object.keys($.timing).filter(key => key.startsWith('exec')).reduce((info, key) => { info[key] = $.timing[key]; return info}, {})",
    "valueType": "valueInfo"
  }
]

输出样例

╔═════════════════════════════════════════════════════════╤═══════╤═════════════════════╤═════════════════════╤═════════════════════╤═════════════════════╤═════════════════════╤════════════════════╤════════════════════╗
║ Exec Middleware                                         │ Avg   │ Min                 │ 50% Line            │ 80% Line            │ 90% Line            │ 99% Line            │ 99.99% Line        │ Max                ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec resolver.ssr-render-commands                       │ 33.98 │ 0.01239776611328125 │ 24.891929626464844  │ 44.3218994140625    │ 61.691131591796875  │ 154.6008529663086   │ 248.29937744140625 │ 248.29937744140625 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec output-processor.ssr-compress                      │ 1.14  │ 0.0413818359375     │ 0.7776718139648438  │ 1.7037353515625     │ 2.4621353149414062  │ 5.551422119140625   │ 9.161476135253906  │ 9.161476135253906  ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec output-processor.ssr-logger                        │ 0.56  │ 0.1551361083984375  │ 0.31589508056640625 │ 1.0015945434570312  │ 1.1048583984375     │ 2.079559326171875   │ 4.87579345703125   │ 4.87579345703125   ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.ssr-record-log-info                │ 0.27  │ 0.05883026123046875 │ 0.14562225341796875 │ 0.46993255615234375 │ 0.5239639282226562  │ 1.7138595581054688  │ 3.6461944580078125 │ 3.6461944580078125 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.ssr-filter-data                    │ 0.26  │ 0.0099945068359375  │ 0.2823486328125     │ 0.38796234130859375 │ 0.44075775146484375 │ 1.4184722900390625  │ 3.035491943359375  │ 3.035491943359375  ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.ssr-route                          │ 0.25  │ 0.04076385498046875 │ 0.0955810546875     │ 0.1786651611328125  │ 0.25730133056640625 │ 2.537689208984375   │ 19.672317504882812 │ 19.672317504882812 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.ssr-generate-code                  │ 0.21  │ 0.0866546630859375  │ 0.15340423583984375 │ 0.207427978515625   │ 0.2663421630859375  │ 1.0151443481445312  │ 3.47314453125      │ 3.47314453125      ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec output-processor.ssr-write-body                    │ 0.10  │ 0.050262451171875   │ 0.07928466796875    │ 0.11154937744140625 │ 0.1389923095703125  │ 0.2758636474609375  │ 2.8430328369140625 │ 2.8430328369140625 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec output-processor.ssr-clint-cache-sum-info          │ 0.07  │ 0.0223236083984375  │ 0.071624755859375   │ 0.08112335205078125 │ 0.08690643310546875 │ 0.1291046142578125  │ 2.13336181640625   │ 2.13336181640625   ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec output-processor.ssr-bluebird-logger               │ 0.06  │ 0.0388031005859375  │ 0.05493927001953125 │ 0.0626220703125     │ 0.06928253173828125 │ 0.11639404296875    │ 0.5933609008789062 │ 0.5933609008789062 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.ssr-client-catch-count-etag        │ 0.06  │ 0.021575927734375   │ 0.02719879150390625 │ 0.036895751953125   │ 0.04346466064453125 │ 0.8671798706054688  │ 4.669586181640625  │ 4.669586181640625  ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec output-processor.ssr-write-code-head               │ 0.05  │ 0.03426361083984375 │ 0.04563140869140625 │ 0.05096435546875    │ 0.055389404296875   │ 0.08282470703125    │ 0.6703262329101562 │ 0.6703262329101562 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.ssr-rewrite-info                   │ 0.05  │ 0.0294036865234375  │ 0.04251861572265625 │ 0.0487823486328125  │ 0.0550079345703125  │ 0.0977020263671875  │ 1.5856399536132812 │ 1.5856399536132812 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.generate-request-id                │ 0.04  │ 0.0227813720703125  │ 0.03606414794921875 │ 0.04053497314453125 │ 0.0443115234375     │ 0.07915496826171875 │ 1.5381011962890625 │ 1.5381011962890625 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.ssr-cdn-speedup                    │ 0.04  │ 0.0162353515625     │ 0.023529052734375   │ 0.02783966064453125 │ 0.036285400390625   │ 0.36756134033203125 │ 2.1507110595703125 │ 2.1507110595703125 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.intent-recognizer                  │ 0.04  │ 0.02056884765625    │ 0.03387451171875    │ 0.03873443603515625 │ 0.04413604736328125 │ 0.076690673828125   │ 2.4563980102539062 │ 2.4563980102539062 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.ssr-info-parser                    │ 0.03  │ 0.01755523681640625 │ 0.023040771484375   │ 0.02639007568359375 │ 0.03102874755859375 │ 0.04557037353515625 │ 1.4704360961914062 │ 1.4704360961914062 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec output-processor.ssr-analytics-logger              │ 0.03  │ 0.0158843994140625  │ 0.02118682861328125 │ 0.02381134033203125 │ 0.0268096923828125  │ 0.04787445068359375 │ 4.3433837890625    │ 4.3433837890625    ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.ssr-generate-native-analytics-info │ 0.03  │ 0.01862335205078125 │ 0.0263519287109375  │ 0.02989959716796875 │ 0.03362274169921875 │ 0.069732666015625   │ 3.03289794921875   │ 3.03289794921875   ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.ssr-client-cache-render-info       │ 0.03  │ 0.01753997802734375 │ 0.02355194091796875 │ 0.02642822265625    │ 0.02978515625       │ 0.0443878173828125  │ 2.6337127685546875 │ 2.6337127685546875 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec output-processor.echo-json                         │ 0.02  │ 0.0102081298828125  │ 0.015228271484375   │ 0.017486572265625   │ 0.02062225341796875 │ 0.03787994384765625 │ 0.5502700805664062 │ 0.5502700805664062 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec output-processor.ssr-product-trace-logger          │ 0.02  │ 0.013336181640625   │ 0.0201568603515625  │ 0.02330780029296875 │ 0.02626800537109375 │ 0.04058074951171875 │ 2.2571868896484375 │ 2.2571868896484375 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec output-processor.none-of-business                  │ 0.02  │ 0.010162353515625   │ 0.0141754150390625  │ 0.01568603515625    │ 0.0173187255859375  │ 0.0291748046875     │ 0.3874359130859375 │ 0.3874359130859375 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec output-processor.config-write-body                 │ 0.02  │ 0.00962066650390625 │ 0.0141754150390625  │ 0.015869140625      │ 0.01831817626953125 │ 0.03923797607421875 │ 0.4810943603515625 │ 0.4810943603515625 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec resolver.ssr-echo-code                             │ 0.02  │ 0.01294708251953125 │ 0.017791748046875   │ 0.024810791015625   │ 0.0286102294921875  │ 0.0396575927734375  │ 0.0396575927734375 │ 0.0396575927734375 ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.ssr-ts-route                       │ 0.02  │ 0.0096588134765625  │ 0.01300048828125    │ 0.0152130126953125  │ 0.021453857421875   │ 0.06900787353515625 │ 1.46038818359375   │ 1.46038818359375   ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec output-processor.echo-message                      │ 0.02  │ 0.01146697998046875 │ 0.02021026611328125 │ 0.023345947265625   │ 0.02590179443359375 │ 0.03862762451171875 │ 0.230255126953125  │ 0.230255126953125  ║
╟─────────────────────────────────────────────────────────┼───────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────╢
║ exec input-processor.config-parse-info                  │ 0.01  │ 0.0092315673828125  │ 0.012542724609375   │ 0.013916015625      │ 0.01556396484375    │ 0.025634765625      │ 0.498016357421875  │ 0.498016357421875  ║
╚═════════════════════════════════════════════════════════╧═══════╧═════════════════════╧═════════════════════╧═════════════════════╧═════════════════════╧═════════════════════╧════════════════════╧════════════════════╝
1.6.2

4 years ago

1.6.1

4 years ago

1.6.0

4 years ago

1.6.0-alpha.1

4 years ago

1.5.0

4 years ago

1.4.0

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.0

4 years ago

1.1.1

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.0.0

4 years ago