perf.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. // 输入输出参数格式化
  2. input = INPUT;
  3. try {
  4. input = decodeURIComponent(input);
  5. } catch (e) { }
  6. try {
  7. input = base64.decode(input);
  8. } catch (e) { }
  9. try {
  10. input = JSON.parse(input);
  11. input = JSON.parse(input);
  12. } catch (e) { }
  13. output = {};
  14. // 环境参数
  15. cfg = {};
  16. try {
  17. cfg = JSON.parse(etcd.get("/api/test.json"));
  18. } catch (e) { }
  19. // 默认参数
  20. var defaultinput = function() {
  21. var tsms = new Date().getTime() - 3600 * 1000;
  22. var tss = parseInt(tsms / 1000);
  23. var tse = tss + 3600;
  24. return {
  25. sid: "",
  26. kpi: "cpu_busy",
  27. starttime: tss,
  28. endtime: tse
  29. };
  30. }();
  31. // 函数定义
  32. function f() {
  33. }
  34. // 主执行阶段
  35. try {
  36. var kpi = input.kpi;
  37. if (!kpi) {
  38. kpi = defaultinput.kpi;
  39. }
  40. if (kpi != "cpu_busy") {
  41. throw("测试环境只有 cpu_busy 数据");
  42. }
  43. var starttime = input.starttime;
  44. if (!starttime) {
  45. starttime = defaultinput.starttime;
  46. }
  47. var endtime = input.endtime;
  48. if (!endtime) {
  49. endtime = defaultinput.endtime;
  50. }
  51. starttime = parseInt(starttime / 10) * 10;
  52. var data = [];
  53. var d = 30 + parseInt(Math.random() * 50 - 25);
  54. for(var t=starttime; t<=endtime; t+=10) {
  55. d += parseInt(Math.random() * 10 - 5);
  56. if (d < 5) {
  57. d = 5;
  58. }
  59. if (d > 95) {
  60. d = 95;
  61. }
  62. data.push([t, kpi, d]);
  63. }
  64. output.data = data;
  65. } catch (e) {
  66. if (e != "ok") {
  67. if (typeof (e) == "object") {
  68. output.error = e;
  69. } else if (typeof (e) == "string") {
  70. output.error = "读数错误:" + e;
  71. } else {
  72. output.error = JSON.stringify(e);
  73. }
  74. log.error(output.error);
  75. STATUS = "error";
  76. }
  77. }
  78. // 返回输出信息
  79. OUTPUT = output;