From d67772c8d96cd66345a6460e8b2c387108b375a5 Mon Sep 17 00:00:00 2001 From: Cypher-CP0 Date: Tue, 14 Jul 2026 15:42:54 +0530 Subject: [PATCH] fix: correct field name in performance test counter (totalRuns not total_runs) Signed-off-by: Cypher-CP0 --- src/sections/Counters/index.js | 7 +- src/sections/Meshery/Features-Col/index.js | 40 ++- .../How-meshery-works/specs/data-card.js | 74 +++--- src/sections/Projects/Nighthawk/index.js | 241 ++++++++++++++---- 4 files changed, 265 insertions(+), 97 deletions(-) diff --git a/src/sections/Counters/index.js b/src/sections/Counters/index.js index 7f90f142f3e0d..a9bf3b24a7a79 100644 --- a/src/sections/Counters/index.js +++ b/src/sections/Counters/index.js @@ -12,8 +12,11 @@ const Counters = () => { useEffect(() => { fetch(URL) - .then(response => response.json()) - .then(result => setPerformanceCount(result.total_runs)); + .then((response) => response.json()) + .then((result) => setPerformanceCount(result.totalRuns)) + .catch((error) => + console.error("Error fetching performance test count:", error), + ); }, []); return ( diff --git a/src/sections/Meshery/Features-Col/index.js b/src/sections/Meshery/Features-Col/index.js index 9b33e6683ad9b..549ad63470752 100644 --- a/src/sections/Meshery/Features-Col/index.js +++ b/src/sections/Meshery/Features-Col/index.js @@ -18,7 +18,22 @@ function getServiceFeature(service, index) { - + + + + {service.content} @@ -38,7 +53,7 @@ function getFeatureBlock(feature, index, performanceCount) { {feature.services.map((service, index) => - getServiceFeature(service, index) + getServiceFeature(service, index), )} @@ -49,7 +64,12 @@ function getFeatureBlock(feature, index, performanceCount) { end={ feature.count.value !== 0 ? feature.count.value : performanceCount } - suffix= {(feature.count.description == "components" || feature.count.description == "cloud native integrations") ? "+" : " "} + suffix={ + feature.count.description == "components" || + feature.count.description == "cloud native integrations" + ? "+" + : " " + } />

{feature.count.description}

@@ -60,7 +80,8 @@ function getFeatureBlock(feature, index, performanceCount) { const Features = () => { const [performanceCount, setPerformanceCount] = useState(0); - const performanceCountEndpoint = "https://cloud.layer5.io/api/performance/results/total"; + const performanceCountEndpoint = + "https://cloud.layer5.io/api/performance/results/total"; useEffect(() => { fetch(performanceCountEndpoint) @@ -72,13 +93,13 @@ const Features = () => { return response.json(); }) .then((resultcount) => { - if (resultcount && typeof resultcount.total_runs === "number") { - setPerformanceCount(resultcount.total_runs); + if (resultcount && typeof resultcount.totalRuns === "number") { + setPerformanceCount(resultcount.totalRuns); } }) .catch((error) => { - console.log("Failed to fetch performance count:", error.message); - // Keep default value of 0 if fetch fails + console.error("Failed to fetch performance count:", error.message); + // Keep default value of 0 if fetch fails }); }, []); @@ -94,12 +115,11 @@ const Features = () => { {data.map((feature, index) => - getFeatureBlock(feature, index, performanceCount) + getFeatureBlock(feature, index, performanceCount), )} ); }; - export default Features; diff --git a/src/sections/Meshery/How-meshery-works/specs/data-card.js b/src/sections/Meshery/How-meshery-works/specs/data-card.js index 1925ab2a72e0c..d275f300a57fc 100644 --- a/src/sections/Meshery/How-meshery-works/specs/data-card.js +++ b/src/sections/Meshery/How-meshery-works/specs/data-card.js @@ -8,41 +8,39 @@ import Counter from "../../../../reusecore/Counter"; import { URL } from "../../../Counters/index"; const DataCardWrapper = styled.div` - background: ${props => props.theme.grey222222ToWhite}; + background: ${(props) => props.theme.grey222222ToWhite}; border-radius: 10px; - color: ${props => props.theme.text}; + color: ${(props) => props.theme.text}; padding: 2rem; transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); - - ul{ + + ul { list-style: none; padding: 0; } - .col-1 li{ - display: flex; - align-items: center; - vertical-align: center; - margin-bottom: 1.5rem; - img{ - margin-right: 1rem; - } - h5{ - font-weight: 600; - transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); - } - } - - .col-2 li { - h3{ - color: ${props => props.theme.secondaryColor}; - font-weight: 700; - } - p { - font-size: 16px; - } - } - - + .col-1 li { + display: flex; + align-items: center; + vertical-align: center; + margin-bottom: 1.5rem; + img { + margin-right: 1rem; + } + h5 { + font-weight: 600; + transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); + } + } + + .col-2 li { + h3 { + color: ${(props) => props.theme.secondaryColor}; + font-weight: 700; + } + p { + font-size: 16px; + } + } `; const DataCard = () => { @@ -51,7 +49,10 @@ const DataCard = () => { useEffect(() => { fetch(URL) .then((response) => response.json()) - .then((result) => setPerformanceCount(result.total_runs)); + .then((result) => setPerformanceCount(result.totalRuns)) + .catch((error) => + console.error("Error fetching performance test count:", error), + ); }, []); return ( @@ -77,22 +78,13 @@ const DataCard = () => {
  • - +

    Users

  • - +

    Performance tests run

  • diff --git a/src/sections/Projects/Nighthawk/index.js b/src/sections/Projects/Nighthawk/index.js index 89e71edf13df1..868457127783a 100644 --- a/src/sections/Projects/Nighthawk/index.js +++ b/src/sections/Projects/Nighthawk/index.js @@ -12,7 +12,8 @@ import cncf from "./images/cncf-white.svg"; const explain1 = "./images/Rectangle 479.webp"; const explain2 = "./images/optimizing-your-average-response-time.webp"; -const explain3 = "./images/Comparison-of-different-modes-of-delivery-of-service-mesh-network-functions.webp"; +const explain3 = + "./images/Comparison-of-different-modes-of-delivery-of-service-mesh-network-functions.webp"; import { Gnhwrapper, CardsContainer } from "./gnh.style"; @@ -25,7 +26,10 @@ const Projects = () => { useEffect(() => { fetch(URL) .then((response) => response.json()) - .then((result) => setPerformanceCount(result.total_runs)); + .then((result) => setPerformanceCount(result.totalRuns)) + .catch((error) => + console.error("Error fetching performance test count:", error), + ); }, []); return ( @@ -34,13 +38,18 @@ const Projects = () => {
    - +
    {/* */} -

    Unlock distributed systems behavioral performance analysis

    -

    Meshery is the easiest way to get started with Nighthawk on any cloud or platform.

    +

    + Unlock distributed systems behavioral performance analysis +

    +

    + Meshery is the easiest way to get started with Nighthawk on + any cloud or platform. +

    @@ -49,19 +58,27 @@ const Projects = () => {
    -

    +

    + +

    Histogram Statistics

    -

    +

    + +

    Meshery Tests

    -

    +

    + +

    Closed and Open-loop

    -

    +

    + +

    Percentiles calculated

    @@ -69,10 +86,17 @@ const Projects = () => {

    What is Nighthawk?

    -

    Nighthawk is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate or with an adaptive request rate. Layer5 offers a custom distribution of Nighthawk with intelligent adaptive load controllers to automatically identify optimal configurations for your service mesh deployment. - As a Layer 7 performance characterization tool supporting HTTP/HTTPS/HTTP2, Nighthawk is Meshery's (and Envoy's) load generator and is written in C++. +

    + Nighthawk is a versatile HTTP load testing tool built out of a need + to drill HTTP services with a constant request rate or with an + adaptive request rate. Layer5 offers a custom distribution of + Nighthawk with intelligent adaptive load controllers to + automatically identify optimal configurations for your service mesh + deployment. As a Layer 7 performance characterization tool + supporting HTTP/HTTPS/HTTP2, Nighthawk is Meshery's (and Envoy's) + load generator and is written in C++.

    - +
    @@ -80,7 +104,11 @@ const Projects = () => {

    Nighthawk and Meshery

    -

    Meshery integrates Nighthawk as one of (currently) three choices of load generator for characterizing and managing the performance of service meshes and their workloads.

    +

    + Meshery integrates Nighthawk as one of (currently) three + choices of load generator for characterizing and managing the + performance of service meshes and their workloads.{" "} +

    @@ -97,8 +125,22 @@ const Projects = () => {

    Easing Management of the Nighthawk Lifecycle

    -

    As with a lot of open source projects, there is a lack of consistent tooling. This makes it difficult to have easily repeatable tests in that the building, deploying, and maintaining of Nighthawk instances (potentially a fleet of Nighthawk instances) is a burden without additional tooling.

    -
    @@ -106,8 +148,19 @@ const Projects = () => {

    Distributed Performance Management

    -

    Distributed load testing offers insight into system behaviors that arguably more accurately represent real world behaviors of services under load as that load comes from any number of sources.

    -

    Engineers need multi-variate load generation and analysis techniques offered through distributed performance analysis. Nighthawk is being improved so that it can be horizontally scalable - such that multiple instances will be cognizant of one another and able to coordinate amongst each other. Nighthawk is growing in popularity with Layer5, Google, Red Hat, and AWS investing into it.

    +

    + Distributed load testing offers insight into system behaviors that + arguably more accurately represent real world behaviors of services + under load as that load comes from any number of sources. +

    +

    + Engineers need multi-variate load generation and analysis techniques + offered through distributed performance analysis. Nighthawk is being + improved so that it can be horizontally scalable - such that + multiple instances will be cognizant of one another and able to + coordinate amongst each other. Nighthawk is growing in popularity + with Layer5, Google, Red Hat, and AWS investing into it. +

    @@ -116,7 +169,15 @@ const Projects = () => {

    SERVICE MESH PERFORMANCE COMPATIBILITY

    -

    Enabling Standards-based, Distributed Performance Management - Nighthawk integrates Meshery and Nighthawk. Through this integration Meshery facilitates Service Mesh Performance (SMP) compatibility for Nighthawk.

    +

    + Enabling Standards-based, Distributed Performance Management + - Nighthawk integrates Meshery and Nighthawk. Through this + integration Meshery facilitates{" "} + + Service Mesh Performance (SMP) + {" "} + compatibility for Nighthawk. +

    @@ -142,8 +203,16 @@ const Projects = () => { cpu image

    SCHEDULING AND ANALYSIS

    -

    Nighthawk integrates with Meshery and provides you with the ability to schedule performance tests or insert them into your CI pipeline.

    -

    Adaptive analysis in which you may run multi-stage performance tests and persist their results in a historical archive is also enabled through integration with Meshery.

    +

    + Nighthawk integrates with Meshery{" "} + and provides you with the ability to schedule performance + tests or insert them into your CI pipeline. +

    +

    + Adaptive analysis in which you may run multi-stage + performance tests and persist their results in a historical + archive is also enabled through integration with Meshery. +

    @@ -154,53 +223,134 @@ const Projects = () => {
    - Cloud Native Distributed Performance Management + Cloud Native Distributed Performance Management

    Standards-based, distributed performance management

    -

    Nighthawk will provide generally-available distributions of Nighthawk under different architectures and platforms and easy-to-use tooling for installation and operation. This will include creating distributions of Nighthawk as well as augmenting existing tooling, Meshery, to retrieve these arch-specific packages and update their deployments.

    +

    + Nighthawk will provide generally-available distributions of + Nighthawk under different architectures and platforms and + easy-to-use tooling for installation and operation. This will + include creating distributions of Nighthawk as well as + augmenting existing tooling, Meshery, to retrieve these + arch-specific packages and update their deployments. +

    -
    - + - + - + - + @@ -212,8 +362,11 @@ const Projects = () => {
    cncf logo -

    Participate in the state of the art.
    - Join us in the Cloud Native Computing Foundation's Service Mesh Working Group. +

    + {" "} + Participate in the state of the art.
    + Join us in the Cloud Native Computing Foundation's Service Mesh + Working Group.

    + + + + +

    - Further the state of distributed
    - performance management. + Further the state of distributed
    + performance management.

    - Enable standards-based, distributed performance management through compatibility with the Service Mesh Performance (SMP) specification. + Enable standards-based, distributed performance + management through compatibility with the Service Mesh + Performance (SMP) specification.
    + + + + + -

    - Facilitate Nighthawk adoption. -

    - Deliver trusted, certified builds, distributed via the most popular package managers: apt, yum, Homebrew, and platforms: Docker and Meshery. - Bridge Nighthawk’s C++ with the lingua franca of Cloud Native: Golang. +

    Facilitate Nighthawk adoption.

    + Deliver trusted, certified builds, distributed via the + most popular package managers: apt, yum, Homebrew, and + platforms: Docker and Meshery. Bridge Nighthawk’s C++ + with the lingua franca of Cloud Native: Golang.
    + + + + +

    - Deliver easy-to-use, repeatable
    - tooling. + Deliver easy-to-use, repeatable
    + tooling.

    - To leverage Nighthawk as the performance characterization tool as used in the 30 patterns in the Service Mesh Patterns book. + To leverage Nighthawk as the performance + characterization tool as used in the 30 patterns in the + Service Mesh Patterns book.
    + + + + + -

    - Educate the ecosystem -

    - Educate the ecosystem through the CNCF Service Mesh Working Group. +

    Educate the ecosystem

    + Educate the ecosystem through the CNCF Service Mesh + Working Group.