MCPcopy Create free account
hub / github.com/devaccuracy/ledgerforge / normalizeNdjsonRun

Function normalizeNdjsonRun

tests/loadtest/tools/dashboard/app.js:431–522  ·  view source on GitHub ↗
(fileName, text)

Source from the content-addressed store, hash-verified

429}
430
431function normalizeNdjsonRun(fileName, text) {
432 const counts = new Map();
433 const failures = new Map();
434 const latencies = new Map();
435 const allLatencies = [];
436
437 text.split(/\r?\n/).forEach((line) => {
438 const trimmed = line.trim();
439 if (!trimmed) {
440 return;
441 }
442 let obj;
443 try {
444 obj = JSON.parse(trimmed);
445 } catch {
446 return;
447 }
448 if (obj.type !== "Point") {
449 return;
450 }
451 const timestamp = obj.data?.time;
452 if (!timestamp) {
453 return;
454 }
455 const bucket = floorMinute(timestamp);
456 const value = toNumber(obj.data?.value);
457 if (obj.metric === "http_reqs") {
458 counts.set(bucket, (counts.get(bucket) || 0) + (value || 0));
459 } else if (obj.metric === "http_req_failed") {
460 failures.set(bucket, (failures.get(bucket) || 0) + (value || 0));
461 } else if (obj.metric === "http_req_duration" && value !== null) {
462 const values = latencies.get(bucket) || [];
463 values.push(value);
464 latencies.set(bucket, values);
465 allLatencies.push(value);
466 }
467 });
468
469 const minutes = [...new Set([...counts.keys(), ...latencies.keys()])].sort();
470 const series = [];
471 let totalRequests = 0;
472 let totalFailures = 0;
473 const apdexValues = [];
474
475 minutes.forEach((minute) => {
476 const lats = latencies.get(minute) || [];
477 const requests = counts.get(minute) || lats.length;
478 const failed = failures.get(minute) || 0;
479 totalRequests += requests;
480 totalFailures += failed;
481 const apdex = computeApdex(lats);
482 if (apdex !== null) {
483 apdexValues.push(apdex);
484 }
485 series.push({
486 minute,
487 label: minute.slice(11),
488 requests,

Callers 1

parseUploadedFileFunction · 0.85

Calls 8

floorMinuteFunction · 0.85
toNumberFunction · 0.85
computeApdexFunction · 0.85
clamp01Function · 0.85
percentileStatsFunction · 0.85
finalizeRunFunction · 0.85
percentileFunction · 0.70
meanFunction · 0.70

Tested by

no test coverage detected