wikiloop-doublecheck icon indicating copy to clipboard operation
wikiloop-doublecheck copied to clipboard

Bug: /api/diff seems to be very slow

Open xinbenlv opened this issue 4 years ago • 1 comments

Taking about 5s ~ 10s to load. In one of the case, it takes 67.9s.

Solution steps: [ ]. mitigation: change diffing query from pre-render to post-render. [ ]. solution: find out why diff takes so long, and fix ourside if it's in our side, or identify if there is an increase latency in the MW side and notify them [ ]. prevention: find out a API latency measure and monitor mechanism. We should setup more fine-grained latency monitoring with rules.

xinbenlv avatar Nov 11 '20 18:11 xinbenlv

When visiting lastbad feeds, it shows

[info] AXIOS      420ms  200 get http://en.wikipedia.org/w/api.php?action=query&format=json&list=recentchanges&formatversion=2&rcnamespace=0&rcprop=title%7Ctimestamp%7Cids%7Coresscores%7Cflags%7Ctags%7Csizes%7Ccomment%7Cuser&rcshow=%21bot%7Coresreview&rclimit=50&rctype=edit&rctoponly=1
[info] PERF       508ms  200 GET /api/feed/lastbad?limit=3&wiki=enwiki&feed=lastbad&userGaId=GA1.1.742836998.1599596937 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       283ms  200 GET /api/revision/enwiki:988196001 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       278ms  200 GET /api/revision/enwiki:988193840 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       276ms  200 GET /api/revision/enwiki:988194272 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       274ms  200 GET /api/revision/enwiki:988195840 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       996ms  200 GET /api/revision/enwiki:988195038 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       317ms  200 GET /api/revision/enwiki:988195664 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       269ms  200 GET /api/revision/enwiki:988196053 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       271ms  200 GET /api/revision/enwiki:988194127 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF      2623ms  200 GET /api/revision/enwiki:988195702 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       279ms  200 GET /api/revision/enwiki:988195654 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       395ms  200 GET /api/revision/enwiki:988193581 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       634ms  200 GET /api/revision/enwiki:988193127 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       426ms  200 GET /api/revision/enwiki:988194235 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       343ms  200 GET /api/revision/enwiki:988196067 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF      1174ms  200 GET /api/revision/enwiki:988193232 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       280ms  200 GET /api/revision/enwiki:988195958 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       278ms  200 GET /api/revision/enwiki:988195610 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       279ms  200 GET /api/revision/enwiki:988194746 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       271ms  200 GET /api/revision/enwiki:988192580 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       542ms  200 GET /api/revision/enwiki:988192786 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       303ms  200 GET /api/revision/enwiki:988193710 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       275ms  200 GET /api/revision/enwiki:988194025 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       278ms  200 GET /api/revision/enwiki:988194872 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF      1020ms  200 GET /api/revision/enwiki:988193386 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       281ms  200 GET /api/revision/enwiki:988191964 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       339ms  200 GET /api/revision/enwiki:988193754 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       269ms  200 GET /api/revision/enwiki:988195963 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       270ms  200 GET /api/revision/enwiki:988193602 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       532ms  200 GET /api/revision/enwiki:988194696 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       273ms  200 GET /api/revision/enwiki:988196097 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       271ms  200 GET /api/revision/enwiki:988194525 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       283ms  200 GET /api/revision/enwiki:988192886 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
[info] PERF       316ms  200 GET /api/revision/enwiki:988193361 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI
Error: Request failed with status code 504
    at createError (/Users/zzn/ws/wikiloop-doublecheck/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/Users/zzn/ws/wikiloop-doublecheck/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/Users/zzn/ws/wikiloop-doublecheck/node_modules/axios/lib/adapters/http.js:237:11)
    at IncomingMessage.emit (events.js:327:22)
    at IncomingMessage.EventEmitter.emit (domain.js:482:12)
    at endReadableNT (_stream_readable.js:1221:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  config: {
    url: 'http://en.wikipedia.org/w/api.php?action=query&format=json&list=recentchanges&formatversion=2&rcnamespace=0&rcprop=title%7Ctimestamp%7Cids%7Coresscores%7Cflags%7Ctags%7Csizes%7Ccomment%7Cuser&rcshow=%21bot%7Coresreview&rclimit=50&rctype=edit&rctoponly=1',
    method: 'get',
    headers: {
      Accept: 'application/json, text/plain, */*',
      'User-Agent': 'WikiLoop DoubleCheck Dev'
    },
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    adapter: [Function: httpAdapter],
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    validateStatus: [Function: validateStatus],
    ts: 569282.8513379991,
    data: undefined
  },
  request: ClientRequest {
    _events: [Object: null prototype] {
      socket: [Function],
      abort: [Function],
      aborted: [Function],
      error: [Function],
      timeout: [Function],
      prefinish: [Function: requestOnPrefinish]
    },
    _eventsCount: 6,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    _last: true,
    chunkedEncoding: false,
    shouldKeepAlive: false,
    useChunkedEncodingByDefault: false,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    _contentLength: 0,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    socket: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: true,
      _SNICallback: null,
      servername: 'en.wikipedia.org',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'en.wikipedia.org',
      _readableState: [ReadableState],
      readable: false,
      _maxListeners: undefined,
      _writableState: [WritableState],
      writable: false,
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: null,
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [Circular],
      write: [Function: writeAfterFIN],
      [Symbol(res)]: null,
      [Symbol(verified)]: true,
      [Symbol(pendingSession)]: null,
      [Symbol(asyncId)]: 173151,
      [Symbol(kHandle)]: null,
      [Symbol(kSetNoDelay)]: false,
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: null,
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kBytesRead)]: 1014,
      [Symbol(kBytesWritten)]: 371,
      [Symbol(connect-options)]: [Object]
    },
    connection: TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: true,
      _SNICallback: null,
      servername: 'en.wikipedia.org',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'en.wikipedia.org',
      _readableState: [ReadableState],
      readable: false,
      _maxListeners: undefined,
      _writableState: [WritableState],
      writable: false,
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: null,
      _requestCert: true,
      _rejectUnauthorized: true,
      parser: null,
      _httpMessage: [Circular],
      write: [Function: writeAfterFIN],
      [Symbol(res)]: null,
      [Symbol(verified)]: true,
      [Symbol(pendingSession)]: null,
      [Symbol(asyncId)]: 173151,
      [Symbol(kHandle)]: null,
      [Symbol(kSetNoDelay)]: false,
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: null,
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kBytesRead)]: 1014,
      [Symbol(kBytesWritten)]: 371,
      [Symbol(connect-options)]: [Object]
    },
    _header: 'GET /w/api.php?action=query&format=json&list=recentchanges&formatversion=2&rcnamespace=0&rcprop=title%7Ctimestamp%7Cids%7Coresscores%7Cflags%7Ctags%7Csizes%7Ccomment%7Cuser&rcshow=%21bot%7Coresreview&rclimit=50&rctype=edit&rctoponly=1 HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'User-Agent: WikiLoop DoubleCheck Dev\r\n' +
      'Host: en.wikipedia.org\r\n' +
      'Connection: close\r\n' +
      '\r\n',
    _onPendingData: [Function: noopPendingOutput],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 443,
      protocol: 'https:',
      options: [Object],
      requests: {},
      sockets: [Object],
      freeSockets: {},
      keepAliveMsecs: 1000,
      keepAlive: false,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      [Symbol(kCapture)]: false
    },
    socketPath: undefined,
    method: 'GET',
    insecureHTTPParser: undefined,
    path: '/w/api.php?action=query&format=json&list=recentchanges&formatversion=2&rcnamespace=0&rcprop=title%7Ctimestamp%7Cids%7Coresscores%7Cflags%7Ctags%7Csizes%7Ccomment%7Cuser&rcshow=%21bot%7Coresreview&rclimit=50&rctype=edit&rctoponly=1',
    _ended: true,
    res: IncomingMessage {
      _readableState: [ReadableState],
      readable: false,
      _events: [Object: null prototype],
      _eventsCount: 3,
      _maxListeners: undefined,
      socket: [TLSSocket],
      connection: [TLSSocket],
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      headers: [Object],
      rawHeaders: [Array],
      trailers: {},
      rawTrailers: [],
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 504,
      statusMessage: 'Gateway Timeout',
      client: [TLSSocket],
      _consuming: true,
      _dumped: false,
      req: [Circular],
      responseUrl: 'https://en.wikipedia.org/w/api.php?action=query&format=json&list=recentchanges&formatversion=2&rcnamespace=0&rcprop=title%7Ctimestamp%7Cids%7Coresscores%7Cflags%7Ctags%7Csizes%7Ccomment%7Cuser&rcshow=%21bot%7Coresreview&rclimit=50&rctype=edit&rctoponly=1',
      redirects: [],
      [Symbol(kCapture)]: false
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    _redirectable: Writable {
      _writableState: [WritableState],
      writable: true,
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      _options: [Object],
      _redirectCount: 1,
      _redirects: [],
      _requestBodyLength: 0,
      _requestBodyBuffers: [],
      _onNativeResponse: [Function],
      _currentRequest: [Circular],
      _currentUrl: 'https://en.wikipedia.org/w/api.php?action=query&format=json&list=recentchanges&formatversion=2&rcnamespace=0&rcprop=title%7Ctimestamp%7Cids%7Coresscores%7Cflags%7Ctags%7Csizes%7Ccomment%7Cuser&rcshow=%21bot%7Coresreview&rclimit=50&rctype=edit&rctoponly=1',
      _isRedirect: true,
      [Symbol(kCapture)]: false
    },
    [Symbol(kCapture)]: false,
    [Symbol(kNeedDrain)]: false,
    [Symbol(corked)]: 0,
    [Symbol(kOutHeaders)]: [Object: null prototype] {
      accept: [Array],
      'user-agent': [Array],
      host: [Array]
    }
  },
  response: {
    status: 504,
    statusText: 'Gateway Timeout',
    headers: {
      'content-length': '24',
      'content-type': 'text/plain',
      date: 'Wed, 11 Nov 2020 18:12:41 GMT',
      server: 'envoy',
      age: '0',
      'x-cache': 'cp4030 miss, cp4029 pass',
      'x-cache-status': 'pass',
      'server-timing': 'cache;desc="pass"',
      'strict-transport-security': 'max-age=106384710; includeSubDomains; preload',
      'report-to': '{ "group": "wm_nel", "max_age": 86400, "endpoints": [{ "url": "https://intake-logging.wikimedia.org/v1/events?stream=w3c.reportingapi.network_error&schema_uri=/w3c/reportingapi/network_error/1.0.0" }] }',
      nel: '{ "report_to": "wm_nel", "max_age": 86400, "failure_fraction": 0.05, "success_fraction": 0.0}',
      'set-cookie': [Array],
      'x-client-ip': '108.201.185.91',
      connection: 'close'
    },
    config: {
      url: 'http://en.wikipedia.org/w/api.php?action=query&format=json&list=recentchanges&formatversion=2&rcnamespace=0&rcprop=title%7Ctimestamp%7Cids%7Coresscores%7Cflags%7Ctags%7Csizes%7Ccomment%7Cuser&rcshow=%21bot%7Coresreview&rclimit=50&rctype=edit&rctoponly=1',
      method: 'get',
      headers: [Object],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      adapter: [Function: httpAdapter],
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      validateStatus: [Function: validateStatus],
      ts: 569282.8513379991,
      data: undefined
    },
    request: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 6,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      socket: [TLSSocket],
      connection: [TLSSocket],
      _header: 'GET /w/api.php?action=query&format=json&list=recentchanges&formatversion=2&rcnamespace=0&rcprop=title%7Ctimestamp%7Cids%7Coresscores%7Cflags%7Ctags%7Csizes%7Ccomment%7Cuser&rcshow=%21bot%7Coresreview&rclimit=50&rctype=edit&rctoponly=1 HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'User-Agent: WikiLoop DoubleCheck Dev\r\n' +
        'Host: en.wikipedia.org\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'GET',
      insecureHTTPParser: undefined,
      path: '/w/api.php?action=query&format=json&list=recentchanges&formatversion=2&rcnamespace=0&rcprop=title%7Ctimestamp%7Cids%7Coresscores%7Cflags%7Ctags%7Csizes%7Ccomment%7Cuser&rcshow=%21bot%7Coresreview&rclimit=50&rctype=edit&rctoponly=1',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      _redirectable: [Writable],
      [Symbol(kCapture)]: false,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype]
    },
    data: 'upstream request timeout'
  },
  isAxiosError: true,
  toJSON: [Function]
}
Promise {
  <rejected> Error: Request failed with status code 504
      at createError (/Users/zzn/ws/wikiloop-doublecheck/node_modules/axios/lib/core/createError.js:16:15)
      at settle (/Users/zzn/ws/wikiloop-doublecheck/node_modules/axios/lib/core/settle.js:17:12)
      at IncomingMessage.handleStreamEnd (/Users/zzn/ws/wikiloop-doublecheck/node_modules/axios/lib/adapters/http.js:237:11)
      at IncomingMessage.emit (events.js:327:22)
      at IncomingMessage.EventEmitter.emit (domain.js:482:12)
      at endReadableNT (_stream_readable.js:1221:12)
      at processTicksAndRejections (internal/process/task_queues.js:84:21) {
    config: {
      url: 'http://en.wikipedia.org/w/api.php?action=query&format=json&list=recentchanges&formatversion=2&rcnamespace=0&rcprop=title%7Ctimestamp%7Cids%7Coresscores%7Cflags%7Ctags%7Csizes%7Ccomment%7Cuser&rcshow=%21bot%7Coresreview&rclimit=50&rctype=edit&rctoponly=1',
      method: 'get',
      headers: [Object],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      adapter: [Function: httpAdapter],
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      validateStatus: [Function: validateStatus],
      ts: 569282.8513379991,
      data: undefined
    },
    request: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 6,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      socket: [TLSSocket],
      connection: [TLSSocket],
      _header: 'GET /w/api.php?action=query&format=json&list=recentchanges&formatversion=2&rcnamespace=0&rcprop=title%7Ctimestamp%7Cids%7Coresscores%7Cflags%7Ctags%7Csizes%7Ccomment%7Cuser&rcshow=%21bot%7Coresreview&rclimit=50&rctype=edit&rctoponly=1 HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'User-Agent: WikiLoop DoubleCheck Dev\r\n' +
        'Host: en.wikipedia.org\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'GET',
      insecureHTTPParser: undefined,
      path: '/w/api.php?action=query&format=json&list=recentchanges&formatversion=2&rcnamespace=0&rcprop=title%7Ctimestamp%7Cids%7Coresscores%7Cflags%7Ctags%7Csizes%7Ccomment%7Cuser&rcshow=%21bot%7Coresreview&rclimit=50&rctype=edit&rctoponly=1',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      _redirectable: [Writable],
      [Symbol(kCapture)]: false,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype]
    },
    response: {
      status: 504,
      statusText: 'Gateway Timeout',
      headers: [Object],
      config: [Object],
      request: [ClientRequest],
      data: 'upstream request timeout'
    },
    isAxiosError: true,
    toJSON: [Function]
  }
}
[info] PERF      1323ms  200 GET /api/revision/enwiki:988195065 ga_id=GA1.1.742836998.1599596937 session_id=v3Hxveg3gMOeVeTt7ckfJ1TSTgifmreI

xinbenlv avatar Nov 11 '20 18:11 xinbenlv