report-v3.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { createXHR, getAuthHeaders } from '../utils';
  2. /**
  3. * @param {string} token 上传使用的 token
  4. * @param {V3LogInfo} data 上报的统计数据
  5. * @param {number} retry 重试的次数,默认值 3
  6. * @description v3 版本的日志上传接口,参考文档 https://github.com/qbox/product/blob/master/kodo/uplog.md#%E7%89%88%E6%9C%AC-3。
  7. */
  8. export function reportV3(token, data, retry) {
  9. if (retry === void 0) { retry = 3; }
  10. var xhr = createXHR();
  11. xhr.open('POST', 'https://uplog.qbox.me/log/3');
  12. xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  13. xhr.setRequestHeader('Authorization', getAuthHeaders(token).Authorization);
  14. xhr.onreadystatechange = function () {
  15. if (xhr.readyState === 4 && xhr.status !== 200 && retry > 0) {
  16. reportV3(token, data, retry - 1);
  17. }
  18. };
  19. // 顺序参考:https://github.com/qbox/product/blob/master/kodo/uplog.md#%E7%89%88%E6%9C%AC-3
  20. var stringifyData = [
  21. data.code || '',
  22. data.reqId || '',
  23. data.host || '',
  24. data.remoteIp || '',
  25. data.port || '',
  26. data.duration || '',
  27. data.time || '',
  28. data.bytesSent || '',
  29. data.upType || '',
  30. data.size || ''
  31. ].join(',');
  32. xhr.send(stringifyData);
  33. }
  34. //# sourceMappingURL=report-v3.js.map