blaze-performance-tester 3.2.31 → 3.2.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.js +58 -3
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -5747,7 +5747,7 @@ var i18n = {
5747
5747
  good: "(\u0905\u091A\u094D\u091B\u093E)"
5748
5748
  },
5749
5749
  verdict: "\u{1F916} \u090F\u0906\u0908 \u0938\u094D\u091F\u094D\u0930\u0947\u0938-\u091F\u0947\u0938\u094D\u091F\u093F\u0902\u0917 \u090F\u091C\u0947\u0902\u091F \u0915\u093E \u0928\u093F\u0930\u094D\u0923\u092F",
5750
- health: { title: "\u092C\u094D\u0932\u0947\u091C\u093C \u0930\u0928 \u0939\u0947\u0932\u094D\u0925 \u0938\u094D\u0915\u094B\u0930", subtitle: "\u0915\u0902\u092A\u094B\u091C\u093F\u091F \u0930\u0928 \u0915\u094D\u0935\u093E\u0932\u093F\u091F\u0940 \u0907\u0902\u091C\u0928 \u0930\u0947\u091F\u093F\u0902\u0917" },
5750
+ health: { title: "\u092C\u094D\u0932\u0947\u091C\u093C \u0930\u0928 \u0939\u0947\u0932\u094D\u0925 \u0938\u094D\u0915\u094B\u0930", subtitle: "\u0915\u0902\u092A\u094B\u091C\u093F\u091F \u0930\u0928 QUALITY \u0907\u0902\u091C\u0928 \u0930\u0947\u091F\u093F\u0902\u0917" },
5751
5751
  matrix: {
5752
5752
  title: "\u{1F4CB} HTTP \u0930\u093F\u0938\u094D\u092A\u0949\u0928\u094D\u0938 \u092E\u0948\u091F\u094D\u0930\u093F\u0915\u094D\u0938",
5753
5753
  info: "\u0938\u0942\u091A\u0928\u093E\u0924\u094D\u092E\u0915",
@@ -5867,7 +5867,7 @@ var i18n = {
5867
5867
  title: "\u0DA7\u0DD9\u0DBD\u0DD2\u0DB8\u0DD9\u0DA7\u0DCA\u200D\u0DBB\u0DD2 \u0D85\u0DB1\u0DD4\u0D9A\u0DD8\u0DAD\u0DD2 \u0DBD\u0DDC\u0D9C\u0DCA",
5868
5868
  threads: "\u0DC3\u0DB8\u0D9C\u0DCF\u0DB8\u0DD3\u0DAD\u0DCA\u0DC0\u0DBA (Threads)",
5869
5869
  throughput: "\u0DB4\u0DCA\u200D\u0DBB\u0DC0\u0DCF\u0DC4 \u0D85\u0DB1\u0DD4\u0DB4\u0DCF\u0DAD\u0DBA",
5870
- avgLatency: "\u0DC3\u0DCF\u0DB8\u0DCF\u0DB1\u0DCA\u200D\u0DBA \u0DB4\u0DCA\u200D\u0DBB\u0DB8\u0DCF\u0DAF\u0DBA",
5870
+ avgLatency: "\u0DC3\u0DCF\u0DB8\u0DCF\u0DB1\u0DCA\u200D\u0E22 \u0DB4\u0DCA\u200D\u0DBB\u0DB8\u0DCF\u0DAF\u0DBA",
5871
5871
  p95: "P95 \u0DB4\u0DCA\u200D\u0DBB\u0DB8\u0DCF\u0DAF\u0DBA",
5872
5872
  errors: "\u0DAF\u0DDD\u0DC2 \u0D85\u0DB1\u0DD4\u0DB4\u0DCF\u0DAD\u0DBA",
5873
5873
  status: "\u0DAD\u0DAD\u0DCA\u0DC0\u0DBA",
@@ -6749,9 +6749,14 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
6749
6749
  </table>
6750
6750
  </div>`;
6751
6751
  let logClustersHtml = "";
6752
+ let formattedTicketLogs = "No structural error codes encountered.";
6752
6753
  if (semanticReport) {
6753
6754
  const totalLogCount = semanticReport.clusters.reduce((sum, c) => sum + c.count, 0);
6754
- const uniquePatternsCount = semanticReport.clusters.length;
6755
+ formattedTicketLogs = semanticReport.clusters.slice(0, 5).map((c) => {
6756
+ const cleanBlueprint = c.template.replace(/\[\d{4}-\d{2}-\d{2}.*?\]\s*/, "");
6757
+ return `[${c.severity}] Count: ${c.count} | Cat: ${c.category}
6758
+ \u21B3 ${cleanBlueprint}`;
6759
+ }).join("\n\n");
6755
6760
  logClustersHtml = `
6756
6761
  <div class="card" style="margin-top: 2rem; background: #131c2e; border: 1px solid #1e293b;">
6757
6762
  <h3 style="border-bottom: none; padding-bottom: 0rem; margin-bottom: 0.25rem; display: flex; align-items: center; gap: 0.5rem; color: #ffffff; font-size: 1.2rem;">
@@ -6798,6 +6803,25 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
6798
6803
  </table>
6799
6804
  </div>`;
6800
6805
  }
6806
+ const generatedTicketMarkdown = `## \u{1F6A8} Performance Degradation Ticket (Blaze Incident Framework)
6807
+
6808
+ ### \u{1F4CA} 1. System Telemetry Metrics
6809
+ - **Blaze Core Health Score:** ${cards.healthScore}/100
6810
+ - **Target Threshold Apdex:** ${config.targetApdex} (Realized Apdex: ${cards.apdex.toFixed(2)})
6811
+ - **Peak Aggregated Throughput:** ${cards.throughput.toFixed(1)} req/sec
6812
+ - **P95 Latency Window:** ${cards.p95Latency.toFixed(1)} ms
6813
+ - **Observed System Error Rate:** ${(cards.errorRate * 100).toFixed(2)}%
6814
+
6815
+ ### \u{1F9E0} 2. Architectural Sizing Recommendations
6816
+ - **Recommended Remediation Profile:** Upgrade capacity to a minimum configuration tier of **${recommendedCpuCores} CPU Cores** and **${recommendedRamGb} GB RAM**.
6817
+ - **Estimated OpEx Budget Shift:** ~$${estimatedMonthlyCost}/month based on system concurrency profiles.
6818
+
6819
+ ### \u274C 3. Structural Log Blueprint Failures
6820
+ \`\`\`
6821
+ ${formattedTicketLogs}
6822
+ \`\`\`
6823
+
6824
+ *Ticket generated autonomously via Blaze Fix-It Ticket Engine pipeline. Status: Pending Triage.*`;
6801
6825
  const breakdownRates = responseMatrix.breakdownRates || {};
6802
6826
  const breakdownGridHtml = [400, 401, 403, 404, 429, 500, 502, 503, 504].map((code) => {
6803
6827
  const rate = breakdownRates[code] || 0;
@@ -6987,6 +7011,19 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
6987
7011
  </div>
6988
7012
  </div>
6989
7013
 
7014
+ <!-- \u{1F3AB} Generative Fix-It Tickets Feature UI Component -->
7015
+ <div class="card" style="margin-top: 2rem; background: #0c1c18; border: 1px solid #10b981;">
7016
+ <h3 style="color: #34d399; display: flex; align-items: center; justify-content: space-between; font-size: 1.2rem; border-bottom: 1px solid #1f2937; padding-bottom: 0.5rem;">
7017
+ <span>\u{1F3AB} Generative Fix-It Ticket Engine</span>
7018
+ <button id="btnCopyTicket" onclick="copyFixItTicketMarkdown()" style="background: #10b981; color: #0c1c18; border: none; padding: 0.4rem 0.9rem; border-radius: 4px; cursor: pointer; font-weight: bold; font-size: 0.85rem; transition: background 0.2s;">
7019
+ \u{1F4CB} Copy Ticket Markdown
7020
+ </button>
7021
+ </h3>
7022
+ <div style="background: #040d0a; border: 1px solid #14532d; border-radius: 6px; padding: 1rem; max-height: 300px; overflow-y: auto;">
7023
+ <pre id="ticketBodyPreview" style="margin: 0; color: #a7f3d0; font-family: monospace; font-size: 0.85rem; white-space: pre-wrap; word-break: break-all;"></pre>
7024
+ </div>
7025
+ </div>
7026
+
6990
7027
  <div class="charts-grid" style="margin-top: 2rem;">
6991
7028
  <div class="graph-card">
6992
7029
  <div class="graph-title">${dict.charts.volume}</div>
@@ -7049,6 +7086,24 @@ function exportHtmlDashboard(history, config, verdictReason, semanticReport, res
7049
7086
  </div>
7050
7087
 
7051
7088
  <script>
7089
+ // Inject and expose the formatted Fix-It Ticket Markdown
7090
+ const rawTicketMarkdown = ${JSON.stringify(generatedTicketMarkdown)};
7091
+ document.getElementById('ticketBodyPreview').textContent = rawTicketMarkdown;
7092
+
7093
+ function copyFixItTicketMarkdown() {
7094
+ navigator.clipboard.writeText(rawTicketMarkdown).then(() => {
7095
+ const btn = document.getElementById('btnCopyTicket');
7096
+ btn.textContent = '\u2705 Copied!';
7097
+ btn.style.background = '#34d399';
7098
+ setTimeout(() => {
7099
+ btn.textContent = '\u{1F4CB} Copy Ticket Markdown';
7100
+ btn.style.background = '#10b981';
7101
+ }, 2000);
7102
+ }).catch(err => {
7103
+ console.error('Failed to copy ticket layout text blueprint: ', err);
7104
+ });
7105
+ }
7106
+
7052
7107
  const labels = ${JSON.stringify(labels)};
7053
7108
  const successRequestsData = ${JSON.stringify(successRequestsData)};
7054
7109
  const failedWorkloadsData = ${JSON.stringify(failedWorkloadsData)};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blaze-performance-tester",
3
- "version": "3.2.31",
3
+ "version": "3.2.33",
4
4
  "description": "A high-performance, multi-threaded load testing engine built with Rust and QuickJS.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",