Skip to content

Commit 7d6a4c0

Browse files
authored
Merge pull request #205 from sfeifer/main
Multiple changes including transition from PCP Redis to PCP Valkey
2 parents 77809e9 + 4160045 commit 7d6a4c0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+732
-487
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ If applicable, add screenshots to help explain your problem.
2929
- Performance Co-Pilot:
3030
- Grafana:
3131
- grafana-pcp:
32-
- Redis (if applicable):
32+
- Valkey (if applicable):
3333

3434
**Additional context**
3535
Add any other context about the problem here.

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ jobs:
7272
name: build
7373
path: build
7474

75-
- name: Start PCP and Redis in a pod
75+
- name: Start PCP and Valkey in a pod
7676
run: |
7777
# workaround required on GitHub Actions to allow running systemd in rootless containers
7878
# https://github.com/actions/virtual-environments/issues/3536

CHANGELOG.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,20 @@
11
# Change Log
22

3-
## 5.1.2 (unreleased)
4-
3+
## 5.2.0 (2024-11-08)
4+
5+
* **valkey**: new PCP Valkey datasource (replacement for PCP Redis)
6+
* **redis**: PCP Redis datasource renamed to PCP Valkey due to licensing
7+
* **dashboards**: new PCP Vector Top Consumers dashboard
8+
* **dashboards**: new PCP Vector UWSGI overview dashboard
9+
* **dashboards**: new PCP Prometheus Host Overview dashboard
10+
* **test**: update cypress tests for grafana 10
11+
* **docs**: update donations page link with new fiscal sponsor details
12+
* **docs**: add .readthedocs.yaml file to keep grafana-pcp.readthedocs.io working
13+
* **docs**: fix command in installation doc to allow loading unsigned plugins for both containers and from source
514
* **build**: update grafana/plugin-validator and pin nodejs version
15+
* **build**: update Go and node dependencies
16+
* **ci**: update release scrip to use gh instead of deprecated hub command
17+
* **search**: metric search turned off until Valkey replacement arrives for RediSearch
618

719

820
## 5.1.1 (2022-10-27)

Makefile

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ watch-frontend: deps-frontend build-dashboards ## Auto rebuilt frontend on file
3636
yarn run watch
3737

3838
dev-backend: deps-backend
39-
go build -race -o ./dist/datasources/redis/pcp_redis_datasource_$$(go env GOOS)_$$(go env GOARCH) -tags netgo -ldflags -w ./pkg
39+
go build -race -o ./dist/datasources/valkey/pcp_valkey_datasource_$$(go env GOOS)_$$(go env GOARCH) -tags netgo -ldflags -w ./pkg
4040

4141
restart-backend: ## Rebuild and restart backend data source (as root)
4242
sudo -u "$$(stat -c '%U' .)" make dev-backend
43-
killall pcp_redis_datasource_$$(go env GOOS)_$$(go env GOARCH)
43+
killall pcp_valkey_datasource_$$(go env GOOS)_$$(go env GOARCH)
4444

4545

4646
##@ Build
@@ -61,10 +61,10 @@ GO_LD_FLAGS := -w -s -extldflags "-static"
6161
build-backend: deps-backend ## Build backend data source
6262
#mage buildAll
6363
for arch in amd64 arm arm64 s390x ppc64le 386; do \
64-
CGO_ENABLED=0 GOOS=linux GOARCH=$${arch} go build -o dist/datasources/redis/pcp_redis_datasource_linux_$${arch} -ldflags '$(GO_LD_FLAGS)' ./pkg; \
64+
CGO_ENABLED=0 GOOS=linux GOARCH=$${arch} go build -o dist/datasources/valkey/pcp_valkey_datasource_linux_$${arch} -ldflags '$(GO_LD_FLAGS)' ./pkg; \
6565
done
66-
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o dist/datasources/redis/pcp_redis_datasource_darwin_amd64 -ldflags '$(GO_LD_FLAGS)' ./pkg
67-
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o dist/datasources/redis/pcp_redis_datasource_windows_amd64.exe -ldflags '$(GO_LD_FLAGS)' ./pkg
66+
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o dist/datasources/valkey/pcp_valkey_datasource_darwin_amd64 -ldflags '$(GO_LD_FLAGS)' ./pkg
67+
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o dist/datasources/valkey/pcp_valkey_datasource_windows_amd64.exe -ldflags '$(GO_LD_FLAGS)' ./pkg
6868

6969
build: build-dashboards build-frontend build-backend ## Build everything
7070

@@ -99,21 +99,21 @@ test: test-frontend test-backend ## Run all tests
9999

100100
##@ UI tests
101101

102-
test-ui-start-pod: ## Start PCP and Redis in a pod
102+
test-ui-start-pod: ## Start PCP and Valkey in a pod
103103
-podman pod rm -f grafana-pcp-tests
104104
podman pod create --name grafana-pcp-tests -p 3001:3000
105105
podman run --pod grafana-pcp-tests --name grafana-pcp-tests-pcp -d --systemd always quay.io/performancecopilot/pcp
106-
podman run --pod grafana-pcp-tests --name grafana-pcp-tests-redis -d docker.io/library/redis:6
106+
podman run --pod grafana-pcp-tests --name grafana-pcp-tests-valkey -d docker.io/valkey/valkey:7
107107

108108
test-ui-start-grafana-dist: ## Start Grafana with grafana-pcp from the dist/ folder
109109
podman run --pod grafana-pcp-tests --name grafana-pcp-tests-grafana -d --replace \
110-
-e GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS="performancecopilot-pcp-app,performancecopilot-redis-datasource,performancecopilot-vector-datasource,performancecopilot-bpftrace-datasource,performancecopilot-flamegraph-panel,performancecopilot-breadcrumbs-panel,performancecopilot-troubleshooting-panel" \
110+
-e GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS="performancecopilot-pcp-app,performancecopilot-valkey-datasource,performancecopilot-vector-datasource,performancecopilot-bpftrace-datasource,performancecopilot-flamegraph-panel,performancecopilot-breadcrumbs-panel,performancecopilot-troubleshooting-panel" \
111111
-v $$(pwd)/dist:/var/lib/grafana/plugins/performancecopilot-pcp-app \
112112
$(GRAFANA_IMAGE)
113113

114114
test-ui-start-grafana-build: ## Start Grafana with grafana-pcp from build/performancecopilot-pcp-app-*.zip
115115
podman run --pod grafana-pcp-tests --name grafana-pcp-tests-grafana -d --replace \
116-
-e GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS="performancecopilot-pcp-app,performancecopilot-redis-datasource,performancecopilot-vector-datasource,performancecopilot-bpftrace-datasource,performancecopilot-flamegraph-panel,performancecopilot-breadcrumbs-panel,performancecopilot-troubleshooting-panel" \
116+
-e GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS="performancecopilot-pcp-app,performancecopilot-valkey-datasource,performancecopilot-vector-datasource,performancecopilot-bpftrace-datasource,performancecopilot-flamegraph-panel,performancecopilot-breadcrumbs-panel,performancecopilot-troubleshooting-panel" \
117117
-e GF_INSTALL_PLUGINS="/tmp/plugin.zip;performancecopilot-pcp-app" \
118118
-v $$(pwd)/build/$$(basename build/performancecopilot-pcp-app-*.zip):/tmp/plugin.zip \
119119
$(GRAFANA_IMAGE)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ It presents a unifying abstraction for all of the performance data in a system,
3131
* support for repeated panels
3232
* sample dashboards for all data sources
3333

34-
[1] PCP Redis
34+
[1] PCP Valkey
3535
[2] PCP Vector
3636
[3] PCP bpftrace
3737

ci/scripts/github-release.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ if [[ "${GRAFANA_PLUGIN_VERSION}" == *beta* ]]; then
1616
PRERELEASE_ARG="-p"
1717
fi
1818

19-
hub release create \
20-
-m "grafana-pcp v${GRAFANA_PLUGIN_VERSION}" \
21-
-m "${RELEASE_NOTES}" \
22-
-a "build/${GRAFANA_PLUGIN_ARTIFACT}" \
23-
-a "build/${GRAFANA_PLUGIN_ARTIFACT_CHECKSUM}" \
24-
$PRERELEASE_ARG \
25-
"v${GRAFANA_PLUGIN_VERSION}"
19+
gh release create \
20+
"v${GRAFANA_PLUGIN_VERSION}" \
21+
-t "grafana-pcp v${GRAFANA_PLUGIN_VERSION}" \
22+
-n "${RELEASE_NOTES}" \
23+
"build/${GRAFANA_PLUGIN_ARTIFACT}" \
24+
"build/${GRAFANA_PLUGIN_ARTIFACT_CHECKSUM}" \
25+
${PRERELEASE_ARG}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
describe('PCP Redis data source', () => {
1+
describe('PCP Valkey data source', () => {
22
before(() => {
33
cy.task('grafana:reset');
44
cy.login();
55
cy.enablePlugin();
6-
cy.addDatasource('performancecopilot-redis-datasource', 'PCP Redis data source');
6+
cy.addDatasource('performancecopilot-valkey-datasource', 'PCP Valkey data source');
77
});
88

99
beforeEach(() => {
@@ -12,9 +12,9 @@ describe('PCP Redis data source', () => {
1212

1313
it('should import bundled dashboards', () => {
1414
cy.visit('/datasources');
15-
cy.contains('PCP Redis').click();
15+
cy.contains('PCP Valkey').click();
1616
cy.contains('Dashboards').click({ force: true });
17-
cy.contains('td', 'PCP Redis: Host Overview').siblings().contains('Import').click({ force: true });
17+
cy.contains('td', 'PCP Valkey: Host Overview').siblings().contains('Import').click({ force: true });
1818
cy.contains('Dashboard Imported');
1919
});
2020

@@ -27,7 +27,7 @@ describe('PCP Redis data source', () => {
2727
cy.contains('Add a new panel').click();
2828
} else {
2929
cy.contains('Add visualization').click();
30-
cy.get('div.scrollbar-view').contains('PCP Redis').click();
30+
cy.get('div.scrollbar-view').contains('PCP Valkey').click();
3131
}
3232
});
3333

cypress/e2e/setup.cy.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ describe('grafana-pcp setup', () => {
1313
cy.get('button').should('include.text', 'Disable');
1414
});
1515

16-
it('should setup PCP Redis data source', () => {
16+
it('should setup PCP Valkey data source', () => {
1717
cy.visit('/datasources/new');
18-
cy.contains('PCP Redis').click();
18+
cy.contains('PCP Valkey').click();
1919
cy.get('input[placeholder="http://localhost:44322"]').type('http://localhost:44322');
2020
cy.get('button[type=submit]').click();
2121
cy.contains('Data source is working');

docs/architecture.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,18 @@ Monitored hosts run the **Performance Metrics Collector Daemon (PMCD)**, which c
1414
Each **PMDA** is responsible for gathering metrics of one specific domain - e.g., the kernel, services (e.g., PostgreSQL), or other instrumented applications.
1515
The **pmlogger** daemon records metrics from **pmcd** and stores them in archive files on the hard drive.
1616

17-
Since **PCP 5** metrics can also be stored in the redis database, which allows multi-host performance analysis, the **pmproxy** daemon discovers new archives (created by **pmlogger**) and stores them in a redis database.
17+
Since **PCP 5** metrics can also be stored in the valkey database, which allows multi-host performance analysis, the **pmproxy** daemon discovers new archives (created by **pmlogger**) and stores them in a valkey database.
1818

1919
Dashboards
2020
----------
2121

2222
Performance Co-Pilot metrics can be analyzed with Grafana dashboards, using the **grafana-pcp** plugin.
2323
There are two modes available:
2424

25-
* historical metrics across multiple hosts using the :doc:`datasources/redis` data source
25+
* historical metrics across multiple hosts using the :doc:`datasources/valkey` data source
2626
* live, on-host metrics using the :doc:`datasources/vector` data source
2727

28-
The :doc:`datasources/redis` data source sends :ref:`pmseries <pmseries-query-language>` queries to **pmproxy**, which in turn queries the redis database for metrics.
28+
The :doc:`datasources/valkey` data source sends :ref:`pmseries <pmseries-query-language>` queries to **pmproxy**, which in turn queries the valkey database for metrics.
2929
The :doc:`datasources/vector` data source connects to **pmproxy**, which in turn requests live metrics directly from a local or remote **PMCD**.
3030
In this case, metrics are stored temporarily in the browser, and metric values are lost when the browser tab is refreshed.
31-
The :doc:`PCP Redis data source <datasources/redis>` is required for persistence.
31+
The :doc:`PCP Valkey data source <datasources/valkey>` is required for persistence.

docs/datasources/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Overview
33

44
.. include:: ../refs.rst
55

6-
PCP Redis
6+
PCP Valkey
77
---------
88

99
This data source queries the fast, scalable time series capabilities provided by the `pmseries`_ functionality.

0 commit comments

Comments
 (0)