blob: 01ee200e3ba99884694ed6c777ce1a71a0cde166 [file] [log] [blame]
include ../make/bazel.mk
.PHONY: build
build: ./modules/json/index.ts
$(BAZEL) build --config=mayberemote //perf/...
# Requires the CockroachDB emulator to be running.
generate_sql_schema:
cd ./go/sql; go run ./tosql
go run ./go/sql/exportschema --out ./go/sql/expectedschema/schema.json
run_cockroachdb_emulators:
../scripts/run_emulators/run_emulators start
.PHONY: docs
docs:
$(BAZEL) run --config=mayberemote //perf/go/perf-tool:perf-tool -- markdown > PERFTOOL.md
$(BAZEL) run --config=mayberemote //perf/go/perfserver -- markdown > PERFSERVER.md
.PHONY: release
release:
$(BAZEL) run --config=mayberemote //perf:push_perfserver
.PHONY: push
push:
$(BAZEL) run --config=mayberemote //perf:pushk_perfserver
.PHONY: release_backup
release_backup:
$(BAZEL) run --config=mayberemote //perf:push_perf-cockroachdb-backup
.PHONY: push_backup
push_backup: release_backup
$(BAZEL) run --config=mayberemote //perf:pushk_perf-cockroachdb-backup
# First create a list of all the modules that ./go/ts depends upon.
tsDependentModules := $(shell go list -f '{{ join .Imports "\n" }}' go.skia.org/infra/perf/go/ts/ )
# Then use that list to find all the Go files that make up those dependent modules.
tsDependentFiles := $(shell echo $(tsDependentModules) | xargs -L 1 go list -f '{{ $$dir := .Dir }}{{ range .GoFiles }}{{ $$dir }}/{{ . }}{{ "\n" }}{{ end }}' )
./modules/json/index.ts: $(tsDependentFiles)
go generate ./go/ts
.PHONY: test
test:
$(BAZEL) test --config=mayberemote //perf/...
.PHONY: demo_alert-config-sk
demo_alert-config-sk:
$(BAZEL) run --config=mayberemote //perf/modules/alert-config-sk:demo_page_server
.PHONY: demo_alerts-page-sk
demo_alerts-page-sk:
$(BAZEL) run --config=mayberemote //perf/modules/alerts-page-sk:demo_page_server
.PHONY: demo_algo-select-sk
demo_algo-select-sk:
$(BAZEL) run --config=mayberemote //perf/modules/algo-select-sk:demo_page_server
.PHONY: demo_calendar-input-sk
demo_calendar-input-sk:
$(BAZEL) run --config=mayberemote //perf/modules/calendar-input-sk:demo_page_server
.PHONY: demo_calendar-sk
demo_calendar-sk:
$(BAZEL) run --config=mayberemote //perf/modules/calendar-sk:demo_page_server
.PHONY: demo_cluster-lastn-page-sk
demo_cluster-lastn-page-sk:
$(BAZEL) run --config=mayberemote //perf/modules/cluster-lastn-page-sk:demo_page_server
.PHONY: demo_cluster-page-sk
demo_cluster-page-sk:
$(BAZEL) run --config=mayberemote //perf/modules/cluster-page-sk:demo_page_server
.PHONY: demo_cluster-summary2-sk
demo_cluster-summary2-sk:
$(BAZEL) run --config=mayberemote //perf/modules/cluster-summary2-sk:demo_page_server
.PHONY: demo_commit-detail-panel-sk
demo_commit-detail-panel-sk:
$(BAZEL) run --config=mayberemote //perf/modules/commit-detail-panel-sk:demo_page_server
.PHONY: demo_commit-detail-picker-sk
demo_commit-detail-picker-sk:
$(BAZEL) run --config=mayberemote //perf/modules/commit-detail-picker-sk:demo_page_server
.PHONY: demo_commit-detail-sk
demo_commit-detail-sk:
$(BAZEL) run --config=mayberemote //perf/modules/commit-detail-sk:demo_page_server
.PHONY: demo_day-range-sk
demo_day-range-sk:
$(BAZEL) run --config=mayberemote //perf/modules/day-range-sk:demo_page_server
.PHONY: demo_domain-picker-sk
demo_domain-picker-sk:
$(BAZEL) run --config=mayberemote //perf/modules/domain-picker-sk:demo_page_server
.PHONY: demo_ingest-file-links-sk
demo_ingest-file-links-sk:
$(BAZEL) run --config=mayberemote //perf/modules/ingest-file-links-sk:demo_page_server
.PHONY: demo_json-source-sk
demo_json-source-sk:
$(BAZEL) run --config=mayberemote //perf/modules/json-source-sk:demo_page_server
.PHONY: demo_perf-scaffold-sk
demo_perf-scaffold-sk:
$(BAZEL) run --config=mayberemote //perf/modules/perf-scaffold-sk:demo_page_server
.PHONY: demo_pivot-table-sk
demo_pivot-table-sk:
$(BAZEL) run --config=mayberemote //perf/modules/pivot-table-sk:demo_page_server
.PHONY: demo_plot-simple-sk
demo_plot-simple-sk:
$(BAZEL) run --config=mayberemote //perf/modules/plot-simple-sk:demo_page_server
.PHONY: demo_query-chooser-sk
demo_query-chooser-sk:
$(BAZEL) run --config=mayberemote //perf/modules/query-chooser-sk:demo_page_server
.PHONY: demo_query-count-sk
demo_query-count-sk:
$(BAZEL) run --config=mayberemote //perf/modules/query-count-sk:demo_page_server
.PHONY: demo_triage-page-sk
demo_triage-page-sk:
$(BAZEL) run --config=mayberemote //perf/modules/triage-page-sk:demo_page_server
.PHONY: demo_triage-status-sk
demo_triage-status-sk:
$(BAZEL) run --config=mayberemote //perf/modules/triage-status-sk:demo_page_server
.PHONY: demo_triage2-sk
demo_triage2-sk:
$(BAZEL) run --config=mayberemote //perf/modules/triage2-sk:demo_page_server
.PHONY: demo_tricon2-sk
demo_tricon2-sk:
$(BAZEL) run --config=mayberemote //perf/modules/tricon2-sk:demo_page_server
.PHONY: demo_trybot-page-sk
demo_trybot-page-sk:
$(BAZEL) run --config=mayberemote //perf/modules/trybot-page-sk:demo_page_server
.PHONY: demo_word-cloud-sk
demo_word-cloud-sk:
$(BAZEL) run --config=mayberemote //perf/modules/word-cloud-sk:demo_page_server
# Presumes you've already run:
#
# make build
#
# kubectl port-forward perf-cockroachdb-0 25000:26257
#
# Run "bazel build //perf/..." after making any frontend changes to pick up the
# change without restarting the golang server.
run-local-instance:
go run ./go/perfserver -- frontend \
--local \
--do_clustering=false \
--port=:8001 \
--noemail \
--config_filename=./configs/cdb-nano.json \
--num_continuous_parallel=1 \
--display_group_by=true \
--disable_metrics_update \
--resources_dir=../_bazel_bin/perf/pages/development/ \
--connection_string=postgresql://root@127.0.0.1:25000/skia?sslmode=disable \
--commit_range_url=https://skia.googlesource.com/skia/+log/{begin}..{end}
run-flutter-instance:
go run ./go/perfserver -- frontend \
--local \
--do_clustering=false \
--port=:8001 \
--noemail \
--config_filename=./configs/flutter-engine2.json \
--num_continuous_parallel=1 \
--display_group_by=true \
--resources_dir=../_bazel_bin/perf/pages/development/ \
--connection_string=postgresql://root@127.0.0.1:25000/flutter_engine2?sslmode=disable
# Before running this target you need to have a local single-instance of
# cockroachdb running, started like this:
#
# cd /tmp cockroach start-single-node --insecure --listen-addr=127.0.0.1
#
# Once the local instance of Perf is running you can visit:
#
# http://localhost:8002/.
run-demo-instance:
$(BAZEL) build --config=mayberemote -c dbg //perf/...
$(BAZEL) run --config=mayberemote -c dbg //perf/go/initdemo:initdemo
../_bazel_bin/perf/go/perfserver/perfserver_/perfserver ingest \
--local \
--config_filename=./configs/demo.json \
--connection_string=postgresql://root@127.0.0.1:26257/demo?sslmode=disable
../_bazel_bin/perf/go/perfserver/perfserver_/perfserver frontend \
--local \
--do_clustering=false \
--port=:8002 \
--prom_port=:20001 \
--config_filename=./configs/demo.json \
--display_group_by=false \
--resources_dir=../_bazel_bin/perf/pages/development/ \
--connection_string=postgresql://root@127.0.0.1:26257/demo?sslmode=disable
# Before running this target you need to have a local single-instance of
# cockroachdb running, started like this:
#
# cd /tmp cockroach start-single-node --insecure --listen-addr=127.0.0.1
run-demo-maintenance:
$(BAZEL) build --config=mayberemote -c dbg //perf/...
$(BAZEL) run --config=mayberemote -c dbg //perf/go/initdemo:initdemo
../_bazel_bin/perf/go/perfserver/perfserver_/perfserver ingest \
--local \
--config_filename=./configs/demo.json \
--connection_string=postgresql://root@127.0.0.1:26257/demo?sslmode=disable
../_bazel_bin/perf/go/perfserver/perfserver_/perfserver maintenance \
--local \
--config_filename=./configs/demo.json \
--connection_string=postgresql://root@127.0.0.1:26257/demo?sslmode=disable \
--migrate_regressions \
--refresh_query_cache \
--tiles_for_query_cache=5
run-demo-backend:
$(BAZEL) build --config=mayberemote -c dbg //perf/...
$(BAZEL) run --config=mayberemote -c dbg //perf/go/initdemo:initdemo
../_bazel_bin/perf/go/backend/backendserver/backendserver_/backendserver run \
--config_filename=./configs/demo.json \
--port=:8005 \
--prom_port=:20002 \
--commit_range_url=https://chromium.googlesource.com/chromium/src/+log/{begin}..{end}
run-demo-chromeperf:
$(BAZEL) build --config=mayberemote -c dbg //perf/...
$(BAZEL) run --config=mayberemote -c dbg //perf/go/initdemo:initdemo
../_bazel_bin/perf/go/perfserver/perfserver_/perfserver ingest \
--local \
--config_filename=./configs/demo.json \
--connection_string=postgresql://root@127.0.0.1:26257/demo?sslmode=disable
../_bazel_bin/perf/go/perfserver/perfserver_/perfserver frontend \
--local \
--do_clustering=false \
--port=:8002 \
--prom_port=:20001 \
--config_filename=./configs/demo.json \
--display_group_by=false \
--resources_dir=../_bazel_bin/perf/pages/development/ \
--commit_range_url=https://chromium.googlesource.com/chromium/src/+log/{begin}..{end}
--fetch_chrome_perf_anomalies=true
--connection_string=postgresql://root@127.0.0.1:26257/demo?sslmode=disable
run-demo-cluster:
$(BAZEL) build --config=mayberemote -c dbg //perf/...
$(BAZEL) run --config=mayberemote -c dbg //perf/go/initdemo:initdemo
../_bazel_bin/perf/go/perfserver/perfserver_/perfserver ingest \
--local \
--config_filename=./configs/demo.json \
--connection_string=postgresql://root@127.0.0.1:26257/demo?sslmode=disable
../_bazel_bin/perf/go/perfserver/perfserver_/perfserver cluster \
--local \
--prom_port=:20000 \
--config_filename=./configs/demo.json \
--num_continuous=50 \
--num_paramsets_for_queries=20 \
--port=:7000 \
--resources_dir=../_bazel_bin/perf/pages/development/ \
--num_continuous_parallel=1 \
--do_clustering=true \
--event_driven_regression_detection=true
run-auth-proxy-before-demo-instance:
bazelisk run //kube/cmd/auth-proxy -- \
--prom-port=:20003 \
--role=editor=google.com \
--authtype=mocked \
--mock_user=$(USER)@google.com \
--port=:8003 \
--target_port=http://127.0.0.1:8002 \
--local
run-auth-proxy-before-backend:
bazelisk run //kube/cmd/auth-proxy -- \
--prom-port=:20003 \
--role=editor=google.com \
--authtype=mocked \
--mock_user=$(USER)@google.com \
--port=:8003 \
--target_port=:8005 \
--local \
--self_sign_localhost_tls
# Used to test chrome-perf-public ingestion into a local CDB instance.
#
# Before running this target you need to have a local single-instance of
# cockroachdb running, started like this:
#
# cd /tmp cockroach start-single-node --insecure --listen-addr=127.0.0.1
#
run-chrome-ingest-demo-instance:
$(BAZEL) build --config=mayberemote -c dbg //perf/...
$(BAZEL) run --config=mayberemote -c dbg //perf/go/initdemo:initdemo -- --databasename=chrome_pub
../_bazel_bin/perf/go/perfserver/perfserver_/perfserver ingest \
--local \
--num_parallel_ingesters=1 \
--config_filename=./configs/chrome-perf-public.json \
--connection_string=postgresql://root@127.0.0.1:26257/chrome_pub?sslmode=disable