2022-02-01 23:03:16 +05:30
|
|
|
#
|
2021-07-14 23:36:27 +05:30
|
|
|
# Reference Guide - https://www.gnu.org/software/make/manual/make.html
|
|
|
|
|
#
|
2022-02-01 23:03:16 +05:30
|
|
|
|
|
|
|
|
# Build variables
|
|
|
|
|
BUILD_VERSION ?= $(shell git describe --always --tags)
|
|
|
|
|
BUILD_HASH ?= $(shell git rev-parse --short HEAD)
|
|
|
|
|
BUILD_TIME ?= $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
|
|
|
BUILD_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)
|
2022-10-06 20:13:30 +05:30
|
|
|
DEV_LICENSE_SIGNOZ_IO ?= https://staging-license.signoz.io/api/v1
|
2024-11-19 13:19:01 +05:30
|
|
|
ZEUS_URL ?= https://api.signoz.cloud
|
2023-10-07 21:23:53 +05:45
|
|
|
DEV_BUILD ?= "" # set to any non-empty value to enable dev build
|
2022-02-01 23:03:16 +05:30
|
|
|
|
2021-07-14 23:36:27 +05:30
|
|
|
# Internal variables or constants.
|
|
|
|
|
FRONTEND_DIRECTORY ?= frontend
|
|
|
|
|
QUERY_SERVICE_DIRECTORY ?= pkg/query-service
|
2022-10-06 20:13:30 +05:30
|
|
|
EE_QUERY_SERVICE_DIRECTORY ?= ee/query-service
|
2025-01-27 18:33:42 +05:45
|
|
|
STANDALONE_DIRECTORY ?= deploy/docker
|
|
|
|
|
SWARM_DIRECTORY ?= deploy/docker-swarm
|
2025-01-25 17:25:21 +05:45
|
|
|
CH_HISTOGRAM_QUANTILE_DIRECTORY ?= scripts/clickhouse/histogramquantile
|
2023-10-07 21:23:53 +05:45
|
|
|
|
|
|
|
|
GOOS ?= $(shell go env GOOS)
|
|
|
|
|
GOARCH ?= $(shell go env GOARCH)
|
|
|
|
|
GOPATH ?= $(shell go env GOPATH)
|
2021-07-14 23:36:27 +05:30
|
|
|
|
|
|
|
|
REPONAME ?= signoz
|
2023-09-17 10:40:45 +05:30
|
|
|
DOCKER_TAG ?= $(subst v,,$(BUILD_VERSION))
|
2021-07-14 23:36:27 +05:30
|
|
|
FRONTEND_DOCKER_IMAGE ?= frontend
|
2022-01-04 12:47:16 +02:00
|
|
|
QUERY_SERVICE_DOCKER_IMAGE ?= query-service
|
2021-07-14 23:36:27 +05:30
|
|
|
|
2022-02-01 23:03:16 +05:30
|
|
|
# Build-time Go variables
|
2022-10-06 20:13:30 +05:30
|
|
|
PACKAGE?=go.signoz.io/signoz
|
|
|
|
|
buildVersion=${PACKAGE}/pkg/query-service/version.buildVersion
|
|
|
|
|
buildHash=${PACKAGE}/pkg/query-service/version.buildHash
|
|
|
|
|
buildTime=${PACKAGE}/pkg/query-service/version.buildTime
|
|
|
|
|
gitBranch=${PACKAGE}/pkg/query-service/version.gitBranch
|
|
|
|
|
licenseSignozIo=${PACKAGE}/ee/query-service/constants.LicenseSignozIo
|
2024-11-19 13:19:01 +05:30
|
|
|
zeusURL=${PACKAGE}/ee/query-service/constants.ZeusURL
|
2022-02-01 23:03:16 +05:30
|
|
|
|
2024-11-19 13:19:01 +05:30
|
|
|
LD_FLAGS=-X ${buildHash}=${BUILD_HASH} -X ${buildTime}=${BUILD_TIME} -X ${buildVersion}=${BUILD_VERSION} -X ${gitBranch}=${BUILD_BRANCH} -X ${zeusURL}=${ZEUS_URL}
|
2022-10-06 20:13:30 +05:30
|
|
|
DEV_LD_FLAGS=-X ${licenseSignozIo}=${DEV_LICENSE_SIGNOZ_IO}
|
2022-02-01 23:03:16 +05:30
|
|
|
|
2022-05-25 18:06:14 +05:30
|
|
|
all: build-push-frontend build-push-query-service
|
2023-09-29 17:10:14 +05:30
|
|
|
|
|
|
|
|
# Steps to build static files of frontend
|
|
|
|
|
build-frontend-static:
|
|
|
|
|
@echo "------------------"
|
|
|
|
|
@echo "--> Building frontend static files"
|
|
|
|
|
@echo "------------------"
|
|
|
|
|
@cd $(FRONTEND_DIRECTORY) && \
|
|
|
|
|
rm -rf build && \
|
|
|
|
|
CI=1 yarn install && \
|
|
|
|
|
yarn build && \
|
|
|
|
|
ls -l build
|
|
|
|
|
|
2021-07-14 23:36:27 +05:30
|
|
|
# Steps to build and push docker image of frontend
|
|
|
|
|
.PHONY: build-frontend-amd64 build-push-frontend
|
|
|
|
|
# Step to build docker image of frontend in amd64 (used in build pipeline)
|
2023-09-29 17:10:14 +05:30
|
|
|
build-frontend-amd64: build-frontend-static
|
2021-07-14 23:36:27 +05:30
|
|
|
@echo "------------------"
|
|
|
|
|
@echo "--> Building frontend docker image for amd64"
|
|
|
|
|
@echo "------------------"
|
|
|
|
|
@cd $(FRONTEND_DIRECTORY) && \
|
2023-01-03 22:28:48 +05:30
|
|
|
docker build --file Dockerfile -t $(REPONAME)/$(FRONTEND_DOCKER_IMAGE):$(DOCKER_TAG) \
|
2022-03-23 00:02:50 +05:30
|
|
|
--build-arg TARGETPLATFORM="linux/amd64" .
|
2021-07-14 23:36:27 +05:30
|
|
|
|
|
|
|
|
# Step to build and push docker image of frontend(used in push pipeline)
|
2023-09-29 17:10:14 +05:30
|
|
|
build-push-frontend: build-frontend-static
|
2021-07-14 23:36:27 +05:30
|
|
|
@echo "------------------"
|
|
|
|
|
@echo "--> Building and pushing frontend docker image"
|
|
|
|
|
@echo "------------------"
|
|
|
|
|
@cd $(FRONTEND_DIRECTORY) && \
|
2023-06-16 00:06:01 +05:30
|
|
|
docker buildx build --file Dockerfile --progress plain --push --platform linux/arm64,linux/amd64 \
|
2022-03-23 00:02:50 +05:30
|
|
|
--tag $(REPONAME)/$(FRONTEND_DOCKER_IMAGE):$(DOCKER_TAG) .
|
2021-07-14 23:36:27 +05:30
|
|
|
|
2023-10-07 21:23:53 +05:45
|
|
|
# Steps to build static binary of query service
|
|
|
|
|
.PHONY: build-query-service-static
|
|
|
|
|
build-query-service-static:
|
|
|
|
|
@echo "------------------"
|
|
|
|
|
@echo "--> Building query-service static binary"
|
|
|
|
|
@echo "------------------"
|
|
|
|
|
@if [ $(DEV_BUILD) != "" ]; then \
|
|
|
|
|
cd $(QUERY_SERVICE_DIRECTORY) && \
|
|
|
|
|
CGO_ENABLED=1 go build -tags timetzdata -a -o ./bin/query-service-${GOOS}-${GOARCH} \
|
2024-10-21 00:24:12 +09:00
|
|
|
-ldflags "-linkmode external -extldflags '-static' -s -w ${LD_FLAGS} ${DEV_LD_FLAGS}"; \
|
2023-10-07 21:23:53 +05:45
|
|
|
else \
|
|
|
|
|
cd $(QUERY_SERVICE_DIRECTORY) && \
|
|
|
|
|
CGO_ENABLED=1 go build -tags timetzdata -a -o ./bin/query-service-${GOOS}-${GOARCH} \
|
|
|
|
|
-ldflags "-linkmode external -extldflags '-static' -s -w ${LD_FLAGS}"; \
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
.PHONY: build-query-service-static-amd64
|
|
|
|
|
build-query-service-static-amd64:
|
|
|
|
|
make GOARCH=amd64 build-query-service-static
|
|
|
|
|
|
|
|
|
|
.PHONY: build-query-service-static-arm64
|
|
|
|
|
build-query-service-static-arm64:
|
|
|
|
|
make CC=aarch64-linux-gnu-gcc GOARCH=arm64 build-query-service-static
|
|
|
|
|
|
|
|
|
|
# Steps to build static binary of query service for all platforms
|
|
|
|
|
.PHONY: build-query-service-static-all
|
2024-12-23 16:44:48 +05:30
|
|
|
build-query-service-static-all: build-query-service-static-amd64 build-query-service-static-arm64 build-frontend-static
|
2023-10-07 21:23:53 +05:45
|
|
|
|
2021-07-14 23:36:27 +05:30
|
|
|
# Steps to build and push docker image of query service
|
2023-10-07 21:23:53 +05:45
|
|
|
.PHONY: build-query-service-amd64 build-push-query-service
|
2021-07-14 23:36:27 +05:30
|
|
|
# Step to build docker image of query service in amd64 (used in build pipeline)
|
2024-12-23 16:44:48 +05:30
|
|
|
build-query-service-amd64: build-query-service-static-amd64 build-frontend-static
|
2021-07-14 23:36:27 +05:30
|
|
|
@echo "------------------"
|
|
|
|
|
@echo "--> Building query-service docker image for amd64"
|
|
|
|
|
@echo "------------------"
|
2022-10-06 20:13:30 +05:30
|
|
|
@docker build --file $(QUERY_SERVICE_DIRECTORY)/Dockerfile \
|
2023-10-07 21:23:53 +05:45
|
|
|
--tag $(REPONAME)/$(QUERY_SERVICE_DOCKER_IMAGE):$(DOCKER_TAG) \
|
|
|
|
|
--build-arg TARGETPLATFORM="linux/amd64" .
|
2021-07-14 23:36:27 +05:30
|
|
|
|
|
|
|
|
# Step to build and push docker image of query in amd64 and arm64 (used in push pipeline)
|
2023-10-07 21:23:53 +05:45
|
|
|
build-push-query-service: build-query-service-static-all
|
2021-07-14 23:36:27 +05:30
|
|
|
@echo "------------------"
|
|
|
|
|
@echo "--> Building and pushing query-service docker image"
|
|
|
|
|
@echo "------------------"
|
2023-06-16 00:06:01 +05:30
|
|
|
@docker buildx build --file $(QUERY_SERVICE_DIRECTORY)/Dockerfile --progress plain \
|
2023-10-07 21:23:53 +05:45
|
|
|
--push --platform linux/arm64,linux/amd64 \
|
2022-03-23 01:25:13 +05:30
|
|
|
--tag $(REPONAME)/$(QUERY_SERVICE_DOCKER_IMAGE):$(DOCKER_TAG) .
|
2021-07-14 23:36:27 +05:30
|
|
|
|
2022-10-06 20:13:30 +05:30
|
|
|
# Step to build EE docker image of query service in amd64 (used in build pipeline)
|
2023-10-08 00:44:39 +05:45
|
|
|
build-ee-query-service-amd64:
|
2022-10-06 20:13:30 +05:30
|
|
|
@echo "------------------"
|
|
|
|
|
@echo "--> Building query-service docker image for amd64"
|
|
|
|
|
@echo "------------------"
|
2023-10-08 00:44:39 +05:45
|
|
|
make QUERY_SERVICE_DIRECTORY=${EE_QUERY_SERVICE_DIRECTORY} build-query-service-amd64
|
2022-10-06 20:13:30 +05:30
|
|
|
|
|
|
|
|
# Step to build and push EE docker image of query in amd64 and arm64 (used in push pipeline)
|
2023-10-08 23:11:58 +05:45
|
|
|
build-push-ee-query-service:
|
2022-10-06 20:13:30 +05:30
|
|
|
@echo "------------------"
|
|
|
|
|
@echo "--> Building and pushing query-service docker image"
|
|
|
|
|
@echo "------------------"
|
2023-10-08 00:44:39 +05:45
|
|
|
make QUERY_SERVICE_DIRECTORY=${EE_QUERY_SERVICE_DIRECTORY} build-push-query-service
|
2022-10-06 20:13:30 +05:30
|
|
|
|
2022-01-25 16:31:19 +05:30
|
|
|
dev-setup:
|
|
|
|
|
mkdir -p /var/lib/signoz
|
|
|
|
|
sqlite3 /var/lib/signoz/signoz.db "VACUUM";
|
|
|
|
|
mkdir -p pkg/query-service/config/dashboards
|
|
|
|
|
@echo "------------------"
|
|
|
|
|
@echo "--> Local Setup completed"
|
|
|
|
|
@echo "------------------"
|
|
|
|
|
|
2023-01-03 22:28:48 +05:30
|
|
|
pull-signoz:
|
|
|
|
|
@docker-compose -f $(STANDALONE_DIRECTORY)/docker-compose.yaml pull
|
|
|
|
|
|
|
|
|
|
run-signoz:
|
2022-11-15 20:07:09 +05:30
|
|
|
@docker-compose -f $(STANDALONE_DIRECTORY)/docker-compose.yaml up --build -d
|
2022-01-25 16:31:19 +05:30
|
|
|
|
2024-06-04 18:25:24 +05:30
|
|
|
run-testing:
|
|
|
|
|
@docker-compose -f $(STANDALONE_DIRECTORY)/docker-compose.testing.yaml up --build -d
|
|
|
|
|
|
2023-01-03 22:28:48 +05:30
|
|
|
down-signoz:
|
2022-11-15 20:07:09 +05:30
|
|
|
@docker-compose -f $(STANDALONE_DIRECTORY)/docker-compose.yaml down -v
|
2022-03-23 00:51:24 +05:30
|
|
|
|
2022-03-23 00:02:50 +05:30
|
|
|
clear-standalone-data:
|
2022-04-06 00:05:05 +05:30
|
|
|
@docker run --rm -v "$(PWD)/$(STANDALONE_DIRECTORY)/data:/pwd" busybox \
|
2023-01-03 22:28:48 +05:30
|
|
|
sh -c "cd /pwd && rm -rf alertmanager/* clickhouse*/* signoz/* zookeeper-*/*"
|
2022-03-23 00:02:50 +05:30
|
|
|
|
|
|
|
|
clear-swarm-data:
|
2022-04-06 00:05:05 +05:30
|
|
|
@docker run --rm -v "$(PWD)/$(SWARM_DIRECTORY)/data:/pwd" busybox \
|
2023-01-03 22:28:48 +05:30
|
|
|
sh -c "cd /pwd && rm -rf alertmanager/* clickhouse*/* signoz/* zookeeper-*/*"
|
2023-01-11 16:12:47 +05:30
|
|
|
|
2023-06-16 00:06:01 +05:30
|
|
|
clear-standalone-ch:
|
|
|
|
|
@docker run --rm -v "$(PWD)/$(STANDALONE_DIRECTORY)/data:/pwd" busybox \
|
|
|
|
|
sh -c "cd /pwd && rm -rf clickhouse*/* zookeeper-*/*"
|
|
|
|
|
|
|
|
|
|
clear-swarm-ch:
|
|
|
|
|
@docker run --rm -v "$(PWD)/$(SWARM_DIRECTORY)/data:/pwd" busybox \
|
|
|
|
|
sh -c "cd /pwd && rm -rf clickhouse*/* zookeeper-*/*"
|
|
|
|
|
|
2024-09-09 23:13:14 +05:30
|
|
|
check-no-ee-references:
|
|
|
|
|
@echo "Checking for 'ee' package references in 'pkg' directory..."
|
|
|
|
|
@if grep -R --include="*.go" '.*/ee/.*' pkg/; then \
|
|
|
|
|
echo "Error: Found references to 'ee' packages in 'pkg' directory"; \
|
|
|
|
|
exit 1; \
|
|
|
|
|
else \
|
|
|
|
|
echo "No references to 'ee' packages found in 'pkg' directory"; \
|
|
|
|
|
fi
|
|
|
|
|
|
2023-01-11 16:12:47 +05:30
|
|
|
test:
|
2025-01-04 01:28:54 +05:30
|
|
|
go test ./pkg/...
|
2025-01-25 17:25:21 +05:45
|
|
|
|
|
|
|
|
goreleaser-snapshot:
|
|
|
|
|
@if [[ ${GORELEASER_WORKDIR} ]]; then \
|
|
|
|
|
cd ${GORELEASER_WORKDIR} && \
|
|
|
|
|
goreleaser release --clean --snapshot; \
|
|
|
|
|
cd -; \
|
|
|
|
|
else \
|
|
|
|
|
goreleaser release --clean --snapshot; \
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
goreleaser-snapshot-histogram-quantile:
|
|
|
|
|
make GORELEASER_WORKDIR=$(CH_HISTOGRAM_QUANTILE_DIRECTORY) goreleaser-snapshot
|