Resolves: RHEL-30019

Adds pcp vector uwsgi dashboard
This commit is contained in:
Sam Feifer 2024-07-08 11:13:20 -04:00
parent a386deeaff
commit aab627f4b1
5 changed files with 212 additions and 6 deletions

2
.gitignore vendored
View File

@ -7,3 +7,5 @@ SOURCES/grafana-pcp-webpack-3.2.0-1.tar.gz
/grafana-pcp-5.1.1.tar.gz
/grafana-pcp-webpack-5.1.1-1.tar.gz
/grafana-pcp-vendor-5.1.1-1.tar.xz
/grafana-pcp-webpack-5.1.1-8.tar.gz
/grafana-pcp-vendor-5.1.1-8.tar.xz

View File

@ -0,0 +1,197 @@
From e27f6d2954201734d30713a870d279de87fadd2d Mon Sep 17 00:00:00 2001
From: Sam Feifer <sfeifer@redhat.com>
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

View File

@ -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

View File

@ -16,20 +16,20 @@ end}
Name: grafana-pcp
Version: 5.1.1
Release: 2%{?dist}
Release: 8%{?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
@ -37,6 +37,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}
@ -134,7 +135,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
@ -193,6 +194,9 @@ yarn test
%changelog
* Mon Jul 8 2024 Sam Feifer <sfeifer@redhat.com> - 5.1.1-8
- Add a premade uwsgi dashboard for the vector datasource
* Tue Apr 16 2024 Sam Feifer <sfeifer@redhat.com> 5.1.1-2
- fix CVE-2024-1394

View File

@ -1,3 +1,3 @@
SHA512 (grafana-pcp-5.1.1.tar.gz) = 697dfbe1e5cd5d66080197dab2798af0965747a4460d15e62c3497f64674bcc77fc776ac5c95cb7043dcf534e8e0eae47afd7500a5851a0d35ad1062e8d4ac2e
SHA512 (grafana-pcp-webpack-5.1.1-1.tar.gz) = 0c71a9c1fc87a58273a5b4d06c0482e2e059bd9aee1dfb200f5a1e8c52f82af1394bdccfbf5c25d20b021e58db7c2185d0c14f85d77f00a51926f80dfa0dade5
SHA512 (grafana-pcp-vendor-5.1.1-1.tar.xz) = 8a10a72ef9dd3622d02f7418c98b8e34eb1c978bfac9c0e29bd3099a1c1fc80b61375d6947d29a85256614ce4e01021af38a8d0f4f735daf594e6789169a32bf
SHA512 (grafana-pcp-webpack-5.1.1-8.tar.gz) = 77e9e6f306425983808f414662cbb2db9077e7c9fcca36a33033e56b527b339d40415df54fb63465ddd701861f89da19b7f1524eb5aa05c1425f3870e017d467
SHA512 (grafana-pcp-vendor-5.1.1-8.tar.xz) = 239eab5405d42769c8f77f408de06588c299ee0df7ea22c5509a32274380670dad560279cff27ebf2b1814bf293dda27c772989b3f6a0777c591397a07583f04