diff --git a/0002-add-uwsgi-dashboard.patch b/0002-add-uwsgi-dashboard.patch new file mode 100644 index 0000000000000000000000000000000000000000..4b858152b5ae8fa01261aebda6eb49bdc4a03bf0 --- /dev/null +++ b/0002-add-uwsgi-dashboard.patch @@ -0,0 +1,197 @@ +From e27f6d2954201734d30713a870d279de87fadd2d Mon Sep 17 00:00:00 2001 +From: Sam Feifer +Date: Tue, 2 Jul 2024 12:01:39 -0400 +Subject: [PATCH] uwsgi dashboard patch + +--- + .../pcp-vector-uwsgi-overview.jsonnet | 160 ++++++++++++++++++ + src/datasources/vector/plugin.json | 5 + + 2 files changed, 165 insertions(+) + create mode 100644 src/datasources/vector/dashboards/pcp-vector-uwsgi-overview.jsonnet + +diff --git a/src/datasources/vector/dashboards/pcp-vector-uwsgi-overview.jsonnet b/src/datasources/vector/dashboards/pcp-vector-uwsgi-overview.jsonnet +new file mode 100644 +index 0000000..2c9d2a4 +--- /dev/null ++++ b/src/datasources/vector/dashboards/pcp-vector-uwsgi-overview.jsonnet +@@ -0,0 +1,160 @@ ++local grafana = import 'grafonnet/grafana.libsonnet'; ++ ++grafana.dashboard.new( ++ 'PCP Vector: UWSGI Overview', ++ tags=['pcp-vector', 'uwsgi'], ++ time_from='now-5m', ++ time_to='now', ++ refresh='5s', ++) ++.addTemplate( ++ grafana.template.datasource( ++ 'datasource', ++ 'performancecopilot-vector-datasource', ++ 'PCP Vector', ++ ) ++) ++.addPanel( ++ grafana.graphPanel.new( ++ 'Total Worker Count', ++ datasource='$datasource', ++ decimals=0, ++ min=0 ++ ) ++ .addTargets([ ++ { expr: 'uwsgi.summary.total_workers', format: 'time_series', legendFormat: '$metric' }, ++ ]), gridPos={ ++ x: 0, ++ y: 0, ++ w: 12, ++ h: 8, ++ } ++) ++.addPanel( ++ grafana.graphPanel.new( ++ 'Pause Worker Count', ++ datasource='$datasource', ++ decimals=0, ++ min=0, ++ ) ++ .addTargets([ ++ { expr: 'uwsgi.summary.total_pause_worker_count', format: 'time_series', legendFormat: '$metric' }, ++ ]), gridPos={ ++ x: 12, ++ y: 0, ++ w: 12, ++ h: 8, ++ } ++) ++.addPanel( ++ grafana.graphPanel.new( ++ 'Idle Worker Count', ++ datasource='$datasource', ++ decimals=0, ++ min=0, ++ ) ++ .addTargets([ ++ { expr: 'uwsgi.summary.total_idle_worker_count', format: 'time_series', legendFormat: '$metric' }, ++ ]), gridPos={ ++ x: 0, ++ y: 8, ++ w: 12, ++ h: 8, ++ } ++) ++.addPanel( ++ grafana.graphPanel.new( ++ 'Busy Worker Count', ++ datasource='$datasource', ++ decimals=0, ++ min=0, ++ ) ++ .addTargets([ ++ { expr: 'uwsgi.summary.total_busy_worker_count', format: 'time_series', legendFormat: '$metric' }, ++ ]), gridPos={ ++ x: 12, ++ y: 8, ++ w: 12, ++ h: 8, ++ } ++) ++.addPanel( ++ grafana.graphPanel.new( ++ 'Harakiri Count', ++ datasource='$datasource', ++ decimals=0, ++ min=0, ++ ) ++ .addTargets([ ++ { expr: 'uwsgi.summary.total_harakiri_count', format: 'time_series', legendFormat: '$metric' }, ++ ]), gridPos={ ++ x: 0, ++ y: 16, ++ w: 12, ++ h: 8, ++ } ++) ++.addPanel( ++ grafana.graphPanel.new( ++ 'Total Exceptions', ++ datasource='$datasource', ++ decimals=0, ++ min=0, ++ ) ++ .addTargets([ ++ { expr: 'uwsgi.summary.total_exceptions', format: 'time_series', legendFormat: '$metric' }, ++ ]), gridPos={ ++ x: 12, ++ y: 16, ++ w: 12, ++ h: 8, ++ } ++) ++.addPanel( ++ grafana.graphPanel.new( ++ 'Total Workers Acceptions Requests', ++ datasource='$datasource', ++ decimals=0, ++ min=0, ++ ) ++ .addTargets([ ++ { expr: 'uwsgi.summary.total_workers_accepting_requests', format: 'time_series', legendFormat: '$metric' }, ++ ]), gridPos={ ++ x: 0, ++ y: 24, ++ w: 12, ++ h: 8, ++ } ++) ++.addPanel( ++ grafana.graphPanel.new( ++ 'Total Requests Served', ++ datasource='$datasource', ++ decimals=0, ++ min=0, ++ ) ++ .addTargets([ ++ { expr: 'uwsgi.summary.total_requests_served', format: 'time_series', legendFormat: '$metric' }, ++ ]), gridPos={ ++ x: 12, ++ y: 24, ++ w: 12, ++ h: 8, ++ } ++) ++.addPanel( ++ grafana.graphPanel.new( ++ 'Average Response Time (msec)', ++ datasource='$datasource', ++ decimals=0, ++ min=0, ++ ) ++ .addTargets([ ++ { expr: 'uwsgi.summary.avg_response_time_msec', format: 'time_series', legendFormat: '$metric' }, ++ ]), gridPos={ ++ x: 0, ++ y: 32, ++ w: 12, ++ h: 8, ++ } ++) +\ No newline at end of file +diff --git a/src/datasources/vector/plugin.json b/src/datasources/vector/plugin.json +index a28e3f4..277c8c9 100644 +--- a/src/datasources/vector/plugin.json ++++ b/src/datasources/vector/plugin.json +@@ -45,6 +45,11 @@ + "type": "dashboard", + "name": "PCP Vector: Microsoft SQL Server", + "path": "dashboards/pcp-vector-mssql-server.json" ++ }, ++ { ++ "type": "dashboard", ++ "name": "PCP Vector: UWSGI Overview", ++ "path": "dashboards/pcp-vector-uwsgi-overview.json" + } + ] + } +-- +2.45.2 + diff --git a/create_bundles.sh b/create_bundles.sh index 278046bc63c74547ee5921ec889779fc2477302e..ddc81eacbce0325ab9654dfe705850709422ec78 100755 --- a/create_bundles.sh +++ b/create_bundles.sh @@ -26,6 +26,9 @@ go mod vendor awk '$2 ~ /^v/ && $4 != "indirect" {print "Provides: bundled(golang(" $1 ")) = " substr($2, 2)}' go.mod | \ sed -E 's/=(.*)-(.*)-(.*)/=\1-\2.\3/g' > "../${VENDOR_TAR}.manifest" +# patch in uwsgi dashboard before webpack compilation +patch -p1 --fuzz=0 < ../0002-add-uwsgi-dashboard.patch + # Vendor Node.js dependencies patch -p1 --fuzz=0 < ../0001-remove-unused-frontend-crypto.patch yarn install --frozen-lockfile diff --git a/download b/download index 99b37780011f523154641e58fec057feac3eeda7..4e95302b492314c490e2b0dac524fc228f368897 100644 --- a/download +++ b/download @@ -1,3 +1,3 @@ 758ada54f4d55b2579bc50b12ef56287 grafana-pcp-5.1.1.tar.gz -eb8bfe1d66c8c3492967f0b235239c04 grafana-pcp-vendor-5.1.1-1.tar.xz -073d3ef217979e547e6869e731298c96 grafana-pcp-webpack-5.1.1-1.tar.gz +e808ad263cec1ea9bd9df09b4dc38730 grafana-pcp-vendor-5.1.1-8.tar.xz +8d2f301be7046eb5864b19edfc87842f grafana-pcp-webpack-5.1.1-8.tar.gz diff --git a/grafana-pcp.spec b/grafana-pcp.spec index f87f29c018f819d2b90ccdba4ad68aeaade668d7..919b437a18f20a653b9d4c799f5506e6de7347d1 100644 --- a/grafana-pcp.spec +++ b/grafana-pcp.spec @@ -17,20 +17,20 @@ end} Name: grafana-pcp Version: 5.1.1 -Release: 2%{anolis_release}%{?dist} +Release: 8%{anolis_release}%{?dist} Summary: Performance Co-Pilot Grafana Plugin License: ASL 2.0 URL: https://github.com/performancecopilot/grafana-pcp Source0: https://github.com/performancecopilot/grafana-pcp/archive/v%{version}/%{name}-%{version}.tar.gz -Source1: grafana-pcp-vendor-%{version}-1.tar.xz +Source1: grafana-pcp-vendor-%{version}-8.tar.xz # Note: In case there were no changes to this tarball, the NVR of this tarball # lags behind the NVR of this package. %if %{compile_frontend} == 0 # Source2 contains the precompiled frontend and dashboards # Note: In case there were no changes to this tarball, the NVR of this tarball # lags behind the NVR of this package. -Source2: grafana-pcp-webpack-%{version}-1.tar.gz +Source2: grafana-pcp-webpack-%{version}-8.tar.gz %endif Source3: create_bundles.sh Source4: build_frontend.sh @@ -38,6 +38,7 @@ Source5: list_bundled_nodejs_packages.py Source6: create_bundles_in_container.sh Patch1: 0001-remove-unused-frontend-crypto.patch +Patch2: 0002-add-uwsgi-dashboard.patch # Intersection of go_arches and nodejs_arches ExclusiveArch: %{grafanapcp_arches} @@ -138,7 +139,7 @@ bpftrace scripts from pmdabpftrace(1), as well as several dashboards. %endif %patch -P 1 -p1 - +%patch -P 2 -p1 %build # Build frontend data sources @@ -202,9 +203,12 @@ yarn test %changelog -* Tue Jun 04 2024 Liwei Ge 5.1.1-2.0.1 +* Mon Aug 19 2024 Liwei Ge 5.1.1-8.0.1 - Support loongarch build +* Mon Jul 8 2024 Sam Feifer - 5.1.1-8 +- Add a premade uwsgi dashboard for the vector datasource + * Tue Apr 16 2024 Sam Feifer 5.1.1-2 - fix CVE-2024-1394