From eee3f7d549182348a12362fbcedfa7f6bd0742cc Mon Sep 17 00:00:00 2001 From: Prashant Shahi Date: Fri, 14 Mar 2025 17:23:10 +0530 Subject: [PATCH] feat: signoz package and deprecation of frontend, alertmanager (#7301) ### Summary - signoz package with goreleaser - frontend deprecation - alertmanager deprecation --------- Signed-off-by: Prashant Shahi --- .github/workflows/build.yaml | 20 +- ...leaser.yaml => gor-histogramquantile.yaml} | 3 +- .github/workflows/gor-signoz-community.yaml | 155 +++++++++++++++ .github/workflows/gor-signoz.yaml | 168 ++++++++++++++++ .github/workflows/push.yaml | 181 +++++------------- .github/workflows/staging-deployment.yaml | 3 +- .github/workflows/testing-deployment.yaml | 3 +- .gitpod.yml | 4 +- Makefile | 166 ++++++++-------- conf/cache-config.yml | 4 + conf/prometheus.yml | 25 +++ deploy/README.md | 4 +- deploy/common/signoz/nginx-config.conf | 64 ------- .../signoz/otel-collector-opamp-config.yaml | 2 +- deploy/docker-swarm/docker-compose.ha.yaml | 37 +--- deploy/docker-swarm/docker-compose.yaml | 36 +--- .../generator/infra/otel-agent-config.yaml | 2 +- deploy/docker/docker-compose.ha.yaml | 47 ++--- deploy/docker/docker-compose.testing.yaml | 43 +---- deploy/docker/docker-compose.yaml | 47 ++--- .../infra/otel-collector-config.yaml | 2 +- deploy/install.sh | 10 +- ee/query-service/.goreleaser.yaml | 70 +++++++ ee/query-service/Dockerfile | 10 +- ee/query-service/constants/constants.go | 2 +- frontend/.dockerignore | 3 - frontend/Dockerfile | 18 -- frontend/conf/default.conf | 33 ---- frontend/docker-compose.yaml | 7 - frontend/example.env | 4 +- pkg/query-service/.goreleaser.yaml | 68 +++++++ pkg/query-service/Dockerfile | 13 +- .../histogramquantile/.goreleaser.yaml | 22 +-- .../email/invitation_email_template.html | 14 ++ 34 files changed, 733 insertions(+), 557 deletions(-) rename .github/workflows/{goreleaser.yaml => gor-histogramquantile.yaml} (96%) create mode 100644 .github/workflows/gor-signoz-community.yaml create mode 100644 .github/workflows/gor-signoz.yaml create mode 100644 conf/cache-config.yml create mode 100644 conf/prometheus.yml delete mode 100644 deploy/common/signoz/nginx-config.conf create mode 100644 ee/query-service/.goreleaser.yaml delete mode 100644 frontend/.dockerignore delete mode 100644 frontend/Dockerfile delete mode 100644 frontend/conf/default.conf delete mode 100644 frontend/docker-compose.yaml create mode 100644 pkg/query-service/.goreleaser.yaml create mode 100644 templates/email/invitation_email_template.html diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 81f0c86cc8..360fa4ec08 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -14,12 +14,12 @@ jobs: uses: actions/checkout@v4 - name: Install dependencies run: cd frontend && yarn install - - name: Build frontend docker image + - name: Build frontend static files shell: bash run: | - make build-frontend-amd64 + make build-frontend-static - build-query-service: + build-signoz: runs-on: ubuntu-latest steps: - name: Checkout code @@ -27,13 +27,13 @@ jobs: - name: Setup golang uses: actions/setup-go@v4 with: - go-version: "1.21" - - name: Build query-service image + go-version: "1.22" + - name: Build signoz image shell: bash run: | - make build-query-service-amd64 + make build-signoz-amd64 - build-ee-query-service: + build-signoz-community: runs-on: ubuntu-latest steps: - name: Checkout code @@ -41,8 +41,8 @@ jobs: - name: Setup golang uses: actions/setup-go@v4 with: - go-version: "1.21" - - name: Build EE query-service image + go-version: "1.22" + - name: Build signoz community image shell: bash run: | - make build-ee-query-service-amd64 + make build-signoz-community-amd64 diff --git a/.github/workflows/goreleaser.yaml b/.github/workflows/gor-histogramquantile.yaml similarity index 96% rename from .github/workflows/goreleaser.yaml rename to .github/workflows/gor-histogramquantile.yaml index 3e479ac261..dbdbb8e84c 100644 --- a/.github/workflows/goreleaser.yaml +++ b/.github/workflows/gor-histogramquantile.yaml @@ -1,9 +1,8 @@ -name: goreleaser +name: gor-histogramquantile on: push: tags: - - v* - histogram-quantile/v* permissions: diff --git a/.github/workflows/gor-signoz-community.yaml b/.github/workflows/gor-signoz-community.yaml new file mode 100644 index 0000000000..b3c72da837 --- /dev/null +++ b/.github/workflows/gor-signoz-community.yaml @@ -0,0 +1,155 @@ +name: gor-signoz-community + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + - 'v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+' + +permissions: + contents: write + +jobs: + prepare: + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: get-sha + shell: bash + run: | + echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + - name: build-frontend + run: make build-frontend-static + - name: upload-frontend-artifact + uses: actions/upload-artifact@v4 + with: + name: community-frontend-build-${{ env.sha_short }} + path: frontend/build + build: + needs: prepare + strategy: + matrix: + os: + - ubuntu-latest + - macos-latest + env: + CONFIG_PATH: pkg/query-service/.goreleaser.yaml + runs-on: ${{ matrix.os }} + steps: + - name: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: setup-qemu + uses: docker/setup-qemu-action@v3 + if: matrix.os == 'ubuntu-latest' + - name: setup-buildx + uses: docker/setup-buildx-action@v3 + if: matrix.os == 'ubuntu-latest' + - name: ghcr-login + uses: docker/login-action@v3 + if: matrix.os != 'macos-latest' + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: setup-go + uses: actions/setup-go@v5 + with: + go-version: "1.22" + - name: cross-compilation-tools + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu musl-tools + - name: get-sha + shell: bash + run: | + echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + - name: download-frontend-artifact + uses: actions/download-artifact@v4 + with: + name: community-frontend-build-${{ env.sha_short }} + path: frontend/build + - name: cache-linux + uses: actions/cache@v4 + if: matrix.os == 'ubuntu-latest' + with: + path: dist/linux + key: signoz-community-linux-${{ env.sha_short }} + - name: cache-darwin + uses: actions/cache@v4 + if: matrix.os == 'macos-latest' + with: + path: dist/darwin + key: signoz-community-darwin-${{ env.sha_short }} + - name: release + uses: goreleaser/goreleaser-action@v6 + with: + distribution: goreleaser-pro + version: '~> v2' + args: release --config ${{ env.CONFIG_PATH }} --clean --split + workdir: . + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} + release: + runs-on: ubuntu-latest + needs: build + env: + DOCKER_CLI_EXPERIMENTAL: "enabled" + WORKDIR: pkg/query-service + steps: + - name: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: setup-qemu + uses: docker/setup-qemu-action@v3 + - name: setup-buildx + uses: docker/setup-buildx-action@v3 + - name: cosign-installer + uses: sigstore/cosign-installer@v3.8.1 + - name: download-syft + uses: anchore/sbom-action/download-syft@v0.18.0 + - name: ghcr-login + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: setup-go + uses: actions/setup-go@v5 + with: + go-version: "1.22" + + # copy the caches from build + - name: get-sha + shell: bash + run: | + echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + - name: cache-linux + id: cache-linux + uses: actions/cache@v4 + with: + path: dist/linux + key: signoz-community-linux-${{ env.sha_short }} + - name: cache-darwin + id: cache-darwin + uses: actions/cache@v4 + with: + path: dist/darwin + key: signoz-community-darwin-${{ env.sha_short }} + + # release + - uses: goreleaser/goreleaser-action@v6 + if: steps.cache-linux.outputs.cache-hit == 'true' && steps.cache-darwin.outputs.cache-hit == 'true' # only run if caches hit + with: + distribution: goreleaser-pro + version: '~> v2' + args: continue --merge + workdir: . + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} diff --git a/.github/workflows/gor-signoz.yaml b/.github/workflows/gor-signoz.yaml new file mode 100644 index 0000000000..e0b0de93f5 --- /dev/null +++ b/.github/workflows/gor-signoz.yaml @@ -0,0 +1,168 @@ +name: gor-signoz + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + - 'v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+' + +permissions: + contents: write + +jobs: + prepare: + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: get-sha + shell: bash + run: | + echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + - name: dotenv-frontend + working-directory: frontend + run: | + echo 'INTERCOM_APP_ID="${{ secrets.INTERCOM_APP_ID }}"' > .env + echo 'SEGMENT_ID="${{ secrets.SEGMENT_ID }}"' >> .env + echo 'SENTRY_AUTH_TOKEN="${{ secrets.SENTRY_AUTH_TOKEN }}"' >> .env + echo 'SENTRY_ORG="${{ secrets.SENTRY_ORG }}"' >> .env + echo 'SENTRY_PROJECT_ID="${{ secrets.SENTRY_PROJECT_ID }}"' >> .env + echo 'SENTRY_DSN="${{ secrets.SENTRY_DSN }}"' >> .env + echo 'TUNNEL_URL="${{ secrets.TUNNEL_URL }}"' >> .env + echo 'TUNNEL_DOMAIN="${{ secrets.TUNNEL_DOMAIN }}"' >> .env + echo 'POSTHOG_KEY="${{ secrets.POSTHOG_KEY }}"' >> .env + echo 'CUSTOMERIO_ID="${{ secrets.CUSTOMERIO_ID }}"' >> .env + echo 'CUSTOMERIO_SITE_ID="${{ secrets.CUSTOMERIO_SITE_ID }}"' >> .env + - name: build-frontend + run: make build-frontend-static + - name: upload-frontend-artifact + uses: actions/upload-artifact@v4 + with: + name: frontend-build-${{ env.sha_short }} + path: frontend/build + build: + needs: prepare + strategy: + matrix: + os: + - ubuntu-latest + - macos-latest + env: + CONFIG_PATH: ee/query-service/.goreleaser.yaml + runs-on: ${{ matrix.os }} + steps: + - name: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: setup-qemu + uses: docker/setup-qemu-action@v3 + if: matrix.os == 'ubuntu-latest' + - name: setup-buildx + uses: docker/setup-buildx-action@v3 + if: matrix.os == 'ubuntu-latest' + - name: ghcr-login + uses: docker/login-action@v3 + if: matrix.os != 'macos-latest' + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: setup-go + uses: actions/setup-go@v5 + with: + go-version: "1.22" + - name: cross-compilation-tools + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu musl-tools + - name: get-sha + shell: bash + run: | + echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + - name: download-frontend-artifact + uses: actions/download-artifact@v4 + with: + name: frontend-build-${{ env.sha_short }} + path: frontend/build + - name: cache-linux + uses: actions/cache@v4 + if: matrix.os == 'ubuntu-latest' + with: + path: dist/linux + key: signoz-linux-${{ env.sha_short }} + - name: cache-darwin + uses: actions/cache@v4 + if: matrix.os == 'macos-latest' + with: + path: dist/darwin + key: signoz-darwin-${{ env.sha_short }} + - name: release + uses: goreleaser/goreleaser-action@v6 + with: + distribution: goreleaser-pro + version: '~> v2' + args: release --config ${{ env.CONFIG_PATH }} --clean --split + workdir: . + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} + release: + runs-on: ubuntu-latest + needs: build + env: + DOCKER_CLI_EXPERIMENTAL: "enabled" + steps: + - name: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: setup-qemu + uses: docker/setup-qemu-action@v3 + - name: setup-buildx + uses: docker/setup-buildx-action@v3 + - name: cosign-installer + uses: sigstore/cosign-installer@v3.8.1 + - name: download-syft + uses: anchore/sbom-action/download-syft@v0.18.0 + - name: ghcr-login + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: setup-go + uses: actions/setup-go@v5 + with: + go-version: "1.22" + + # copy the caches from build + - name: get-sha + shell: bash + run: | + echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + - name: cache-linux + id: cache-linux + uses: actions/cache@v4 + with: + path: dist/linux + key: signoz-linux-${{ env.sha_short }} + - name: cache-darwin + id: cache-darwin + uses: actions/cache@v4 + with: + path: dist/darwin + key: signoz-darwin-${{ env.sha_short }} + + # release + - uses: goreleaser/goreleaser-action@v6 + if: steps.cache-linux.outputs.cache-hit == 'true' && steps.cache-darwin.outputs.cache-hit == 'true' # only run if caches hit + with: + distribution: goreleaser-pro + version: '~> v2' + args: continue --merge + workdir: . + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} diff --git a/.github/workflows/push.yaml b/.github/workflows/push.yaml index ea9be067bd..be4eb10538 100644 --- a/.github/workflows/push.yaml +++ b/.github/workflows/push.yaml @@ -8,56 +8,27 @@ on: - v* jobs: - image-build-and-push-query-service: + image-build-and-push-signoz: runs-on: ubuntu-latest steps: - - name: Checkout code + - name: checkout uses: actions/checkout@v4 - - name: Setup golang + - name: setup uses: actions/setup-go@v4 with: - go-version: "1.21" - - name: Set up QEMU + go-version: "1.22" + - name: setup-qemu uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx + - name: setup-buildx uses: docker/setup-buildx-action@v3 with: version: latest - - name: Login to DockerHub + - name: docker-login uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - uses: benjlevesque/short-sha@v2.2 - id: short-sha - - name: Get branch name - id: branch-name - uses: tj-actions/branch-names@v7.0.7 - - name: Set docker tag environment - run: | - if [ '${{ steps.branch-name.outputs.is_tag }}' == 'true' ]; then - tag="${{ steps.branch-name.outputs.tag }}" - tag="${tag:1}" - echo "DOCKER_TAG=${tag}-oss" >> $GITHUB_ENV - elif [ '${{ steps.branch-name.outputs.current_branch }}' == 'main' ]; then - echo "DOCKER_TAG=latest-oss" >> $GITHUB_ENV - else - echo "DOCKER_TAG=${{ steps.branch-name.outputs.current_branch }}-oss" >> $GITHUB_ENV - fi - - name: Install cross-compilation tools - run: | - set -ex - sudo apt-get update - sudo apt-get install -y gcc-aarch64-linux-gnu musl-tools - - name: Build and push docker image - run: make build-push-query-service - - image-build-and-push-ee-query-service: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - name: Create .env file + - name: create-env-file run: | echo 'INTERCOM_APP_ID="${{ secrets.INTERCOM_APP_ID }}"' > frontend/.env echo 'SEGMENT_ID="${{ secrets.SEGMENT_ID }}"' >> frontend/.env @@ -70,140 +41,94 @@ jobs: echo 'POSTHOG_KEY="${{ secrets.POSTHOG_KEY }}"' >> frontend/.env echo 'CUSTOMERIO_ID="${{ secrets.CUSTOMERIO_ID }}"' >> frontend/.env echo 'CUSTOMERIO_SITE_ID="${{ secrets.CUSTOMERIO_SITE_ID }}"' >> frontend/.env - - name: Setup golang - uses: actions/setup-go@v4 - with: - go-version: "1.21" - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - with: - version: latest - - name: Login to DockerHub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - uses: benjlevesque/short-sha@v2.2 id: short-sha - - name: Get branch name + - name: branch-name id: branch-name uses: tj-actions/branch-names@v7.0.7 - - name: Set docker tag environment + - name: docker-tag run: | if [ '${{ steps.branch-name.outputs.is_tag }}' == 'true' ]; then - tag="${{ steps.branch-name.outputs.tag }}" - tag="${tag:1}" - echo "DOCKER_TAG=$tag" >> $GITHUB_ENV + echo "DOCKER_TAG=${{ steps.branch-name.outputs.tag }}" >> $GITHUB_ENV elif [ '${{ steps.branch-name.outputs.current_branch }}' == 'main' ]; then echo "DOCKER_TAG=latest" >> $GITHUB_ENV else echo "DOCKER_TAG=${{ steps.branch-name.outputs.current_branch }}" >> $GITHUB_ENV fi - - name: Install cross-compilation tools + - name: cross-compilation-tools run: | set -ex sudo apt-get update sudo apt-get install -y gcc-aarch64-linux-gnu musl-tools - - name: Build and push docker image - run: make build-push-ee-query-service - - image-build-and-push-frontend: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - name: Install dependencies - working-directory: frontend - run: yarn install - - name: Run Prettier - working-directory: frontend - run: npm run prettify - continue-on-error: true - - name: Run ESLint - working-directory: frontend - run: npm run lint - continue-on-error: true - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - with: - version: latest - - name: Login to DockerHub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - uses: benjlevesque/short-sha@v2.2 - id: short-sha - - name: Get branch name - id: branch-name - uses: tj-actions/branch-names@v7.0.7 - - name: Set docker tag environment + - name: publish-signoz + run: make build-push-signoz + - name: qs-docker-tag run: | if [ '${{ steps.branch-name.outputs.is_tag }}' == 'true' ]; then tag="${{ steps.branch-name.outputs.tag }}" tag="${tag:1}" - echo "DOCKER_TAG=$tag" >> $GITHUB_ENV + echo "DOCKER_TAG=${tag}" >> $GITHUB_ENV elif [ '${{ steps.branch-name.outputs.current_branch }}' == 'main' ]; then echo "DOCKER_TAG=latest" >> $GITHUB_ENV else echo "DOCKER_TAG=${{ steps.branch-name.outputs.current_branch }}" >> $GITHUB_ENV fi - - name: Build and push docker image - run: make build-push-frontend + - name: publish-query-service + run: | + SIGNOZ_DOCKER_IMAGE=query-service make build-push-signoz - image-build-and-push-frontend-ee: + image-build-and-push-signoz-community: runs-on: ubuntu-latest steps: - - name: Checkout code + - name: checkout uses: actions/checkout@v4 - - name: Create .env file - run: | - echo 'INTERCOM_APP_ID="${{ secrets.INTERCOM_APP_ID }}"' > frontend/.env - echo 'SEGMENT_ID="${{ secrets.SEGMENT_ID }}"' >> frontend/.env - echo 'SENTRY_AUTH_TOKEN="${{ secrets.SENTRY_AUTH_TOKEN }}"' >> frontend/.env - echo 'SENTRY_ORG="${{ secrets.SENTRY_ORG }}"' >> frontend/.env - echo 'SENTRY_PROJECT_ID="${{ secrets.SENTRY_PROJECT_ID }}"' >> frontend/.env - echo 'SENTRY_DSN="${{ secrets.SENTRY_DSN }}"' >> frontend/.env - echo 'TUNNEL_URL="${{ secrets.TUNNEL_URL }}"' >> frontend/.env - echo 'TUNNEL_DOMAIN="${{ secrets.TUNNEL_DOMAIN }}"' >> frontend/.env - echo 'POSTHOG_KEY="${{ secrets.POSTHOG_KEY }}"' >> frontend/.env - - name: Install dependencies - working-directory: frontend - run: yarn install - - name: Run Prettier - working-directory: frontend - run: npm run prettify - continue-on-error: true - - name: Run ESLint - working-directory: frontend - run: npm run lint - continue-on-error: true - - name: Set up Docker Buildx + - name: setup-go + uses: actions/setup-go@v4 + with: + go-version: "1.22" + - name: setup-qemu + uses: docker/setup-qemu-action@v3 + - name: setup-buildx uses: docker/setup-buildx-action@v3 with: version: latest - - name: Login to DockerHub + - name: docker-login uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - uses: benjlevesque/short-sha@v2.2 id: short-sha - - name: Get branch name + - name: branch-name id: branch-name uses: tj-actions/branch-names@v7.0.7 - - name: Set docker tag environment + - name: docker-tag + run: | + if [ '${{ steps.branch-name.outputs.is_tag }}' == 'true' ]; then + echo "DOCKER_TAG=${{ steps.branch-name.outputs.tag }}" >> $GITHUB_ENV + elif [ '${{ steps.branch-name.outputs.current_branch }}' == 'main' ]; then + echo "DOCKER_TAG=latest" >> $GITHUB_ENV + else + echo "DOCKER_TAG=${{ steps.branch-name.outputs.current_branch }}" >> $GITHUB_ENV + fi + - name: cross-compilation-tools + run: | + set -ex + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu musl-tools + - name: publish-signoz-community + run: make build-push-signoz-community + - name: qs-docker-tag run: | if [ '${{ steps.branch-name.outputs.is_tag }}' == 'true' ]; then tag="${{ steps.branch-name.outputs.tag }}" tag="${tag:1}" - echo "DOCKER_TAG=${tag}-ee" >> $GITHUB_ENV + echo "DOCKER_TAG=${tag}-oss" >> $GITHUB_ENV elif [ '${{ steps.branch-name.outputs.current_branch }}' == 'main' ]; then - echo "DOCKER_TAG=latest-ee" >> $GITHUB_ENV + echo "DOCKER_TAG=latest-oss" >> $GITHUB_ENV else - echo "DOCKER_TAG=${{ steps.branch-name.outputs.current_branch }}-ee" >> $GITHUB_ENV + echo "DOCKER_TAG=${{ steps.branch-name.outputs.current_branch }}-oss" >> $GITHUB_ENV fi - - name: Build and push docker image - run: make build-push-frontend + - name: publish-query-service-oss + run: | + SIGNOZ_COMMUNITY_DOCKER_IMAGE=query-service make build-push-signoz-community diff --git a/.github/workflows/staging-deployment.yaml b/.github/workflows/staging-deployment.yaml index 6125283a87..6ebfcfbfb5 100644 --- a/.github/workflows/staging-deployment.yaml +++ b/.github/workflows/staging-deployment.yaml @@ -49,8 +49,7 @@ jobs: git fetch origin git checkout ${GITHUB_BRANCH} git pull - make build-ee-query-service-amd64 - make build-frontend-amd64 + make build-signoz-amd64 make run-testing EOF gcloud beta compute ssh ${GCP_INSTANCE} --zone ${GCP_ZONE} --ssh-key-expire-after=15m --tunnel-through-iap --project ${GCP_PROJECT} --command "${COMMAND}" diff --git a/.github/workflows/testing-deployment.yaml b/.github/workflows/testing-deployment.yaml index 6362331e7b..d33d06bd3f 100644 --- a/.github/workflows/testing-deployment.yaml +++ b/.github/workflows/testing-deployment.yaml @@ -49,8 +49,7 @@ jobs: # This is added to include the scenerio when new commit in PR is force-pushed git branch -D ${GITHUB_BRANCH} git checkout --track origin/${GITHUB_BRANCH} - make build-ee-query-service-amd64 - make build-frontend-amd64 + make build-signoz-amd64 make run-testing EOF gcloud beta compute ssh ${GCP_INSTANCE} --zone ${GCP_ZONE} --ssh-key-expire-after=15m --tunnel-through-iap --project ${GCP_PROJECT} --command "${COMMAND}" diff --git a/.gitpod.yml b/.gitpod.yml index 660e186b9a..f8e78b6a45 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -16,10 +16,8 @@ tasks: yarn dev ports: - - port: 3301 - onOpen: open-browser - port: 8080 - onOpen: ignore + onOpen: open-browser - port: 9000 onOpen: ignore - port: 8123 diff --git a/Makefile b/Makefile index 7d7516738b..02a86cf850 100644 --- a/Makefile +++ b/Makefile @@ -7,8 +7,10 @@ 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) +LICENSE_SIGNOZ_IO ?= https://license.signoz.io/api/v1 DEV_LICENSE_SIGNOZ_IO ?= https://staging-license.signoz.io/api/v1 ZEUS_URL ?= https://api.signoz.cloud +DEV_ZEUS_URL ?= https://api.staging.signoz.cloud DEV_BUILD ?= "" # set to any non-empty value to enable dev build # Internal variables or constants. @@ -18,15 +20,16 @@ EE_QUERY_SERVICE_DIRECTORY ?= ee/query-service STANDALONE_DIRECTORY ?= deploy/docker SWARM_DIRECTORY ?= deploy/docker-swarm CH_HISTOGRAM_QUANTILE_DIRECTORY ?= scripts/clickhouse/histogramquantile +GORELEASER_BIN ?= goreleaser GOOS ?= $(shell go env GOOS) GOARCH ?= $(shell go env GOARCH) GOPATH ?= $(shell go env GOPATH) REPONAME ?= signoz -DOCKER_TAG ?= $(subst v,,$(BUILD_VERSION)) -FRONTEND_DOCKER_IMAGE ?= frontend -QUERY_SERVICE_DOCKER_IMAGE ?= query-service +DOCKER_TAG ?= $(BUILD_VERSION) +SIGNOZ_DOCKER_IMAGE ?= signoz +SIGNOZ_COMMUNITY_DOCKER_IMAGE ?= signoz-community # Build-time Go variables PACKAGE?=go.signoz.io/signoz @@ -37,8 +40,9 @@ gitBranch=${PACKAGE}/pkg/query-service/version.gitBranch licenseSignozIo=${PACKAGE}/ee/query-service/constants.LicenseSignozIo zeusURL=${PACKAGE}/ee/query-service/constants.ZeusURL -LD_FLAGS=-X ${buildHash}=${BUILD_HASH} -X ${buildTime}=${BUILD_TIME} -X ${buildVersion}=${BUILD_VERSION} -X ${gitBranch}=${BUILD_BRANCH} -X ${zeusURL}=${ZEUS_URL} -DEV_LD_FLAGS=-X ${licenseSignozIo}=${DEV_LICENSE_SIGNOZ_IO} +LD_FLAGS=-X ${buildHash}=${BUILD_HASH} -X ${buildTime}=${BUILD_TIME} -X ${buildVersion}=${BUILD_VERSION} -X ${gitBranch}=${BUILD_BRANCH} +PROD_LD_FLAGS=-X ${zeusURL}=${ZEUS_URL} -X ${licenseSignozIo}=${LICENSE_SIGNOZ_IO} +DEV_LD_FLAGS=-X ${zeusURL}=${DEV_ZEUS_URL} -X ${licenseSignozIo}=${DEV_LICENSE_SIGNOZ_IO} ############################################################## @@ -75,7 +79,7 @@ run-go: ## Runs the go backend server --use-logs-new-schema true \ --use-trace-new-schema true -all: build-push-frontend build-push-query-service +all: build-push-frontend build-push-signoz # Steps to build static files of frontend build-frontend-static: @@ -88,87 +92,67 @@ build-frontend-static: yarn build && \ ls -l build -# 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) -build-frontend-amd64: build-frontend-static +# Steps to build static binary of signoz +.PHONY: build-signoz-static +build-signoz-static: @echo "------------------" - @echo "--> Building frontend docker image for amd64" - @echo "------------------" - @cd $(FRONTEND_DIRECTORY) && \ - docker build --file Dockerfile -t $(REPONAME)/$(FRONTEND_DOCKER_IMAGE):$(DOCKER_TAG) \ - --build-arg TARGETPLATFORM="linux/amd64" . - -# Step to build and push docker image of frontend(used in push pipeline) -build-push-frontend: build-frontend-static - @echo "------------------" - @echo "--> Building and pushing frontend docker image" - @echo "------------------" - @cd $(FRONTEND_DIRECTORY) && \ - docker buildx build --file Dockerfile --progress plain --push --platform linux/arm64,linux/amd64 \ - --tag $(REPONAME)/$(FRONTEND_DOCKER_IMAGE):$(DOCKER_TAG) . - -# 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 "--> Building signoz 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} \ + cd $(EE_QUERY_SERVICE_DIRECTORY) && \ + CGO_ENABLED=1 go build -tags timetzdata -a -o ./bin/signoz-${GOOS}-${GOARCH} \ -ldflags "-linkmode external -extldflags '-static' -s -w ${LD_FLAGS} ${DEV_LD_FLAGS}"; \ 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}"; \ + cd $(EE_QUERY_SERVICE_DIRECTORY) && \ + CGO_ENABLED=1 go build -tags timetzdata -a -o ./bin/signoz-${GOOS}-${GOARCH} \ + -ldflags "-linkmode external -extldflags '-static' -s -w ${LD_FLAGS} ${PROD_LD_FLAGS}"; \ fi -.PHONY: build-query-service-static-amd64 -build-query-service-static-amd64: - make GOARCH=amd64 build-query-service-static +.PHONY: build-signoz-static-amd64 +build-signoz-static-amd64: + make GOARCH=amd64 build-signoz-static -.PHONY: build-query-service-static-arm64 -build-query-service-static-arm64: - make CC=aarch64-linux-gnu-gcc GOARCH=arm64 build-query-service-static +.PHONY: build-signoz-static-arm64 +build-signoz-static-arm64: + make CC=aarch64-linux-gnu-gcc GOARCH=arm64 build-signoz-static -# Steps to build static binary of query service for all platforms -.PHONY: build-query-service-static-all -build-query-service-static-all: build-query-service-static-amd64 build-query-service-static-arm64 build-frontend-static +# Steps to build static binary of signoz for all platforms +.PHONY: build-signoz-static-all +build-signoz-static-all: build-signoz-static-amd64 build-signoz-static-arm64 build-frontend-static -# Steps to build and push docker image of query service -.PHONY: build-query-service-amd64 build-push-query-service -# Step to build docker image of query service in amd64 (used in build pipeline) -build-query-service-amd64: build-query-service-static-amd64 build-frontend-static +# Steps to build and push docker image of signoz +.PHONY: build-signoz-amd64 build-push-signoz +# Step to build docker image of signoz in amd64 (used in build pipeline) +build-signoz-amd64: build-signoz-static-amd64 build-frontend-static @echo "------------------" - @echo "--> Building query-service docker image for amd64" + @echo "--> Building signoz docker image for amd64" @echo "------------------" - @docker build --file $(QUERY_SERVICE_DIRECTORY)/Dockerfile \ - --tag $(REPONAME)/$(QUERY_SERVICE_DOCKER_IMAGE):$(DOCKER_TAG) \ + @docker build --file $(EE_QUERY_SERVICE_DIRECTORY)/Dockerfile \ + --tag $(REPONAME)/$(SIGNOZ_DOCKER_IMAGE):$(DOCKER_TAG) \ --build-arg TARGETPLATFORM="linux/amd64" . # Step to build and push docker image of query in amd64 and arm64 (used in push pipeline) -build-push-query-service: build-query-service-static-all +build-push-signoz: build-signoz-static-all @echo "------------------" - @echo "--> Building and pushing query-service docker image" + @echo "--> Building and pushing signoz docker image" @echo "------------------" - @docker buildx build --file $(QUERY_SERVICE_DIRECTORY)/Dockerfile --progress plain \ + @docker buildx build --file $(EE_QUERY_SERVICE_DIRECTORY)/Dockerfile --progress plain \ --push --platform linux/arm64,linux/amd64 \ - --tag $(REPONAME)/$(QUERY_SERVICE_DOCKER_IMAGE):$(DOCKER_TAG) . + --tag $(REPONAME)/$(SIGNOZ_DOCKER_IMAGE):$(DOCKER_TAG) . -# Step to build EE docker image of query service in amd64 (used in build pipeline) -build-ee-query-service-amd64: +# Step to build docker image of signoz community in amd64 (used in build pipeline) +build-signoz-community-amd64: @echo "------------------" - @echo "--> Building query-service docker image for amd64" + @echo "--> Building signoz docker image for amd64" @echo "------------------" - make QUERY_SERVICE_DIRECTORY=${EE_QUERY_SERVICE_DIRECTORY} build-query-service-amd64 + make EE_QUERY_SERVICE_DIRECTORY=${QUERY_SERVICE_DIRECTORY} SIGNOZ_DOCKER_IMAGE=${SIGNOZ_COMMUNITY_DOCKER_IMAGE} build-signoz-amd64 -# Step to build and push EE docker image of query in amd64 and arm64 (used in push pipeline) -build-push-ee-query-service: +# Step to build and push docker image of signoz community in amd64 and arm64 (used in push pipeline) +build-push-signoz-community: @echo "------------------" - @echo "--> Building and pushing query-service docker image" + @echo "--> Building and pushing signoz community docker image" @echo "------------------" - make QUERY_SERVICE_DIRECTORY=${EE_QUERY_SERVICE_DIRECTORY} build-push-query-service + make EE_QUERY_SERVICE_DIRECTORY=${QUERY_SERVICE_DIRECTORY} SIGNOZ_DOCKER_IMAGE=${SIGNOZ_COMMUNITY_DOCKER_IMAGE} build-push-signoz pull-signoz: @docker-compose -f $(STANDALONE_DIRECTORY)/docker-compose.yaml pull @@ -182,22 +166,6 @@ run-testing: down-signoz: @docker-compose -f $(STANDALONE_DIRECTORY)/docker-compose.yaml down -v -clear-standalone-data: - @docker run --rm -v "$(PWD)/$(STANDALONE_DIRECTORY)/data:/pwd" busybox \ - sh -c "cd /pwd && rm -rf alertmanager/* clickhouse*/* signoz/* zookeeper-*/*" - -clear-swarm-data: - @docker run --rm -v "$(PWD)/$(SWARM_DIRECTORY)/data:/pwd" busybox \ - sh -c "cd /pwd && rm -rf alertmanager/* clickhouse*/* signoz/* zookeeper-*/*" - -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-*/*" - check-no-ee-references: @echo "Checking for 'ee' package references in 'pkg' directory..." @if grep -R --include="*.go" '.*/ee/.*' pkg/; then \ @@ -210,14 +178,42 @@ check-no-ee-references: test: go test ./pkg/... -goreleaser-snapshot: +######################################################## +# Goreleaser +######################################################## +.PHONY: gor-snapshot gor-snapshot-histogram-quantile gor-snapshot-signoz gor-snapshot-signoz-community gor-split gor-split-histogram-quantile gor-split-signoz gor-split-signoz-community gor-merge + +gor-snapshot: @if [[ ${GORELEASER_WORKDIR} ]]; then \ - cd ${GORELEASER_WORKDIR} && \ - goreleaser release --clean --snapshot; \ - cd -; \ + ${GORELEASER_BIN} release --config ${GORELEASER_WORKDIR}/.goreleaser.yaml --clean --snapshot; \ else \ - goreleaser release --clean --snapshot; \ + ${GORELEASER_BIN} release --clean --snapshot; \ fi -goreleaser-snapshot-histogram-quantile: +gor-snapshot-histogram-quantile: make GORELEASER_WORKDIR=$(CH_HISTOGRAM_QUANTILE_DIRECTORY) goreleaser-snapshot + +gor-snapshot-signoz: build-frontend-static + make GORELEASER_WORKDIR=$(EE_QUERY_SERVICE_DIRECTORY) goreleaser-snapshot + +gor-snapshot-signoz-community: build-frontend-static + make GORELEASER_WORKDIR=$(QUERY_SERVICE_DIRECTORY) goreleaser-snapshot + +gor-split: + @if [[ ${GORELEASER_WORKDIR} ]]; then \ + ${GORELEASER_BIN} release --config ${GORELEASER_WORKDIR}/.goreleaser.yaml --clean --split; \ + else \ + ${GORELEASER_BIN} release --clean --split; \ + fi + +gor-split-histogram-quantile: + make GORELEASER_WORKDIR=$(CH_HISTOGRAM_QUANTILE_DIRECTORY) goreleaser-split + +gor-split-signoz: build-frontend-static + make GORELEASER_WORKDIR=$(EE_QUERY_SERVICE_DIRECTORY) goreleaser-split + +gor-split-signoz-community: build-frontend-static + make GORELEASER_WORKDIR=$(QUERY_SERVICE_DIRECTORY) goreleaser-split + +gor-merge: + ${GORELEASER_BIN} continue --merge diff --git a/conf/cache-config.yml b/conf/cache-config.yml new file mode 100644 index 0000000000..b1bd329584 --- /dev/null +++ b/conf/cache-config.yml @@ -0,0 +1,4 @@ +provider: "inmemory" +inmemory: + ttl: 60m + cleanupInterval: 10m diff --git a/conf/prometheus.yml b/conf/prometheus.yml new file mode 100644 index 0000000000..6513cd0c3f --- /dev/null +++ b/conf/prometheus.yml @@ -0,0 +1,25 @@ +# my global config +global: + scrape_interval: 5s # Set the scrape interval to every 15 seconds. Default is every 1 minute. + evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. + # scrape_timeout is set to the global default (10s). + +# Alertmanager configuration +alerting: + alertmanagers: + - static_configs: + - targets: + - 127.0.0.1:9093 + +# Load rules once and periodically evaluate them according to the global 'evaluation_interval'. +rule_files: + # - "first_rules.yml" + # - "second_rules.yml" + - 'alerts.yml' + +# A scrape configuration containing exactly one endpoint to scrape: +# Here it's Prometheus itself. +scrape_configs: [] + +remote_read: + - url: tcp://localhost:9000/signoz_metrics diff --git a/deploy/README.md b/deploy/README.md index 597dc855f8..2e693b0653 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -26,7 +26,7 @@ cd deploy/docker docker compose up -d ``` -Open http://localhost:3301 in your favourite browser. +Open http://localhost:8080 in your favourite browser. To start collecting logs and metrics from your infrastructure, run the following command: @@ -55,7 +55,7 @@ cd deploy/docker-swarm docker stack deploy -c docker-compose.yaml signoz ``` -Open http://localhost:3301 in your favourite browser. +Open http://localhost:8080 in your favourite browser. To start collecting logs and metrics from your infrastructure, run the following command: diff --git a/deploy/common/signoz/nginx-config.conf b/deploy/common/signoz/nginx-config.conf deleted file mode 100644 index 6826589d66..0000000000 --- a/deploy/common/signoz/nginx-config.conf +++ /dev/null @@ -1,64 +0,0 @@ -map $http_upgrade $connection_upgrade { - default upgrade; - '' close; -} - -server { - listen 3301; - server_name _; - - gzip on; - gzip_static on; - gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; - gzip_proxied any; - gzip_vary on; - gzip_comp_level 6; - gzip_buffers 16 8k; - gzip_http_version 1.1; - - # to handle uri issue 414 from nginx - client_max_body_size 24M; - large_client_header_buffers 8 128k; - - location / { - if ( $uri = '/index.html' ) { - add_header Cache-Control no-store always; - } - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html; - } - - location ~ ^/api/(v1|v3)/logs/(tail|livetail){ - proxy_pass http://query-service:8080; - proxy_http_version 1.1; - - # connection will be closed if no data is read for 600s between successive read operations - proxy_read_timeout 600s; - - # dont buffer the data send it directly to client. - proxy_buffering off; - proxy_cache off; - } - - location /api { - proxy_pass http://query-service:8080/api; - # connection will be closed if no data is read for 600s between successive read operations - proxy_read_timeout 600s; - } - - location /ws { - proxy_pass http://query-service:8080/ws; - proxy_http_version 1.1; - proxy_set_header Upgrade "websocket"; - proxy_set_header Connection "upgrade"; - proxy_read_timeout 86400; - } - - # redirect server error pages to the static page /50x.html - # - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root /usr/share/nginx/html; - } -} \ No newline at end of file diff --git a/deploy/common/signoz/otel-collector-opamp-config.yaml b/deploy/common/signoz/otel-collector-opamp-config.yaml index e408b55ef6..7267607752 100644 --- a/deploy/common/signoz/otel-collector-opamp-config.yaml +++ b/deploy/common/signoz/otel-collector-opamp-config.yaml @@ -1 +1 @@ -server_endpoint: ws://query-service:4320/v1/opamp +server_endpoint: ws://signoz:4320/v1/opamp diff --git a/deploy/docker-swarm/docker-compose.ha.yaml b/deploy/docker-swarm/docker-compose.ha.yaml index cb65f6f026..6f2f03d4b3 100644 --- a/deploy/docker-swarm/docker-compose.ha.yaml +++ b/deploy/docker-swarm/docker-compose.ha.yaml @@ -172,19 +172,9 @@ services: - ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml - ./clickhouse-setup/data/clickhouse-3/:/var/lib/clickhouse/ # - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml - alertmanager: - !!merge <<: *common - image: signoz/alertmanager:0.23.7 - command: - - --queryService.url=http://query-service:8085 - - --storage.path=/data - volumes: - - ./clickhouse-setup/data/alertmanager:/data - depends_on: - - query-service - query-service: + signoz: !!merge <<: *db-depend - image: signoz/query-service:0.75.0 + image: signoz/signoz:v0.76.0-rc.3 command: - --config=/root/config/prometheus.yml - --use-logs-new-schema=true @@ -197,14 +187,15 @@ services: - ../common/dashboards:/root/config/dashboards - ./clickhouse-setup/data/signoz/:/var/lib/signoz/ environment: - - ClickHouseUrl=tcp://clickhouse:9000 - - ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/ + - SIGNOZ_ALERTMANAGER_PROVIDER=signoz + - SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://clickhouse:9000 - SIGNOZ_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db - DASHBOARDS_PATH=/root/config/dashboards - STORAGE=clickhouse - GODEBUG=netdns=go - TELEMETRY_ENABLED=true - DEPLOYMENT_TYPE=docker-swarm + - SIGNOZ_JWT_SECRET=secret healthcheck: test: - CMD @@ -215,19 +206,9 @@ services: interval: 30s timeout: 5s retries: 3 - frontend: - !!merge <<: *common - image: signoz/frontend:0.75.0 - depends_on: - - alertmanager - - query-service - ports: - - "3301:3301" - volumes: - - ../common/signoz/nginx-config.conf:/etc/nginx/conf.d/default.conf otel-collector: !!merge <<: *db-depend - image: signoz/signoz-otel-collector:0.111.29 + image: signoz/signoz-otel-collector:0.111.30 command: - --config=/etc/otel-collector-config.yaml - --manager-config=/etc/manager-config.yaml @@ -248,10 +229,10 @@ services: depends_on: - clickhouse - schema-migrator - - query-service + - signoz schema-migrator: !!merge <<: *common - image: signoz/signoz-schema-migrator:0.111.29 + image: signoz/signoz-schema-migrator:0.111.30 deploy: restart_policy: condition: on-failure @@ -266,8 +247,6 @@ networks: signoz-net: name: signoz-net volumes: - alertmanager: - name: signoz-alertmanager clickhouse: name: signoz-clickhouse clickhouse-2: diff --git a/deploy/docker-swarm/docker-compose.yaml b/deploy/docker-swarm/docker-compose.yaml index 3ae08b44ae..29b7460988 100644 --- a/deploy/docker-swarm/docker-compose.yaml +++ b/deploy/docker-swarm/docker-compose.yaml @@ -108,19 +108,9 @@ services: - ../common/clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml - clickhouse:/var/lib/clickhouse/ # - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml - alertmanager: - !!merge <<: *common - image: signoz/alertmanager:0.23.7 - command: - - --queryService.url=http://query-service:8085 - - --storage.path=/data - volumes: - - alertmanager:/data - depends_on: - - query-service - query-service: + signoz: !!merge <<: *db-depend - image: signoz/query-service:0.75.0 + image: signoz/signoz:v0.76.0-rc.3 command: - --config=/root/config/prometheus.yml - --use-logs-new-schema=true @@ -133,8 +123,8 @@ services: - ../common/dashboards:/root/config/dashboards - sqlite:/var/lib/signoz/ environment: - - ClickHouseUrl=tcp://clickhouse:9000 - - ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/ + - SIGNOZ_ALERTMANAGER_PROVIDER=signoz + - SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://clickhouse:9000 - SIGNOZ_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db - DASHBOARDS_PATH=/root/config/dashboards - STORAGE=clickhouse @@ -151,19 +141,9 @@ services: interval: 30s timeout: 5s retries: 3 - frontend: - !!merge <<: *common - image: signoz/frontend:0.75.0 - depends_on: - - alertmanager - - query-service - ports: - - "3301:3301" - volumes: - - ../common/signoz/nginx-config.conf:/etc/nginx/conf.d/default.conf otel-collector: !!merge <<: *db-depend - image: signoz/signoz-otel-collector:0.111.29 + image: signoz/signoz-otel-collector:0.111.30 command: - --config=/etc/otel-collector-config.yaml - --manager-config=/etc/manager-config.yaml @@ -184,10 +164,10 @@ services: depends_on: - clickhouse - schema-migrator - - query-service + - signoz schema-migrator: !!merge <<: *common - image: signoz/signoz-schema-migrator:0.111.29 + image: signoz/signoz-schema-migrator:0.111.30 deploy: restart_policy: condition: on-failure @@ -202,8 +182,6 @@ networks: signoz-net: name: signoz-net volumes: - alertmanager: - name: signoz-alertmanager clickhouse: name: signoz-clickhouse sqlite: diff --git a/deploy/docker-swarm/generator/infra/otel-agent-config.yaml b/deploy/docker-swarm/generator/infra/otel-agent-config.yaml index eb60c1091b..8b187f2f9c 100644 --- a/deploy/docker-swarm/generator/infra/otel-agent-config.yaml +++ b/deploy/docker-swarm/generator/infra/otel-agent-config.yaml @@ -42,7 +42,7 @@ receivers: # please remove names from below if you want to collect logs from them - type: filter id: signoz_logs_filter - expr: 'attributes.container_name matches "^(signoz_(logspout|alertmanager|query-service|otel-collector|clickhouse|zookeeper))|(infra_(logspout|otel-agent|otel-metrics)).*"' + expr: 'attributes.container_name matches "^(signoz_(logspout|signoz|otel-collector|clickhouse|zookeeper))|(infra_(logspout|otel-agent|otel-metrics)).*"' processors: batch: send_batch_size: 10000 diff --git a/deploy/docker/docker-compose.ha.yaml b/deploy/docker/docker-compose.ha.yaml index e659ba31aa..c0e984556e 100644 --- a/deploy/docker/docker-compose.ha.yaml +++ b/deploy/docker/docker-compose.ha.yaml @@ -175,36 +175,24 @@ services: - ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml - clickhouse-3:/var/lib/clickhouse/ # - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml - alertmanager: - !!merge <<: *common - image: signoz/alertmanager:${ALERTMANAGER_TAG:-0.23.7} - container_name: signoz-alertmanager - command: - - --queryService.url=http://query-service:8085 - - --storage.path=/data - volumes: - - alertmanager:/data - depends_on: - query-service: - condition: service_healthy - query-service: + signoz: !!merge <<: *db-depend - image: signoz/query-service:${DOCKER_TAG:-0.75.0} - container_name: signoz-query-service + image: signoz/signoz:${DOCKER_TAG:-v0.76.0-rc.3} + container_name: signoz command: - --config=/root/config/prometheus.yml - --use-logs-new-schema=true - --use-trace-new-schema=true - # ports: - # - "3301:8080" # signoz port + ports: + - "8080:8080" # signoz port # - "6060:6060" # pprof port volumes: - ../common/signoz/prometheus.yml:/root/config/prometheus.yml - ../common/dashboards:/root/config/dashboards - sqlite:/var/lib/signoz/ environment: - - ClickHouseUrl=tcp://clickhouse:9000 - - ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/ + - SIGNOZ_ALERTMANAGER_PROVIDER=signoz + - SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://clickhouse:9000 - SIGNOZ_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db - DASHBOARDS_PATH=/root/config/dashboards - STORAGE=clickhouse @@ -221,21 +209,10 @@ services: interval: 30s timeout: 5s retries: 3 - frontend: - !!merge <<: *common - image: signoz/frontend:${DOCKER_TAG:-0.75.0} - container_name: signoz-frontend - depends_on: - - alertmanager - - query-service - ports: - - "3301:3301" - volumes: - - ../common/signoz/nginx-config.conf:/etc/nginx/conf.d/default.conf # TODO: support otel-collector multiple replicas. Nginx/Traefik for loadbalancing? otel-collector: !!merge <<: *db-depend - image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.29} + image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.30} container_name: signoz-otel-collector command: - --config=/etc/otel-collector-config.yaml @@ -257,11 +234,11 @@ services: condition: service_healthy schema-migrator-sync: condition: service_completed_successfully - query-service: + signoz: condition: service_healthy schema-migrator-sync: !!merge <<: *common - image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.29} + image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.30} container_name: schema-migrator-sync command: - sync @@ -272,7 +249,7 @@ services: condition: service_healthy schema-migrator-async: !!merge <<: *db-depend - image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.29} + image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.30} container_name: schema-migrator-async command: - async @@ -283,8 +260,6 @@ networks: signoz-net: name: signoz-net volumes: - alertmanager: - name: signoz-alertmanager clickhouse: name: signoz-clickhouse clickhouse-2: diff --git a/deploy/docker/docker-compose.testing.yaml b/deploy/docker/docker-compose.testing.yaml index 0dd533b977..6647536340 100644 --- a/deploy/docker/docker-compose.testing.yaml +++ b/deploy/docker/docker-compose.testing.yaml @@ -108,22 +108,10 @@ services: - ../common/clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml - clickhouse:/var/lib/clickhouse/ # - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml - alertmanager: - !!merge <<: *common - image: signoz/alertmanager:${ALERTMANAGER_TAG:-0.23.7} - container_name: signoz-alertmanager - command: - - --queryService.url=http://query-service:8085 - - --storage.path=/data - volumes: - - alertmanager:/data - depends_on: - query-service: - condition: service_healthy - query-service: + signoz: !!merge <<: *db-depend - image: signoz/query-service:${DOCKER_TAG:-0.75.0} - container_name: signoz-query-service + image: signoz/signoz:${DOCKER_TAG:-v0.76.0-rc.3} + container_name: signoz command: - --config=/root/config/prometheus.yml - --gateway-url=https://api.staging.signoz.cloud @@ -137,8 +125,8 @@ services: - ../common/dashboards:/root/config/dashboards - sqlite:/var/lib/signoz/ environment: - - ClickHouseUrl=tcp://clickhouse:9000 - - ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/ + - SIGNOZ_ALERTMANAGER_PROVIDER=signoz + - SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://clickhouse:9000 - SIGNOZ_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db - DASHBOARDS_PATH=/root/config/dashboards - STORAGE=clickhouse @@ -156,20 +144,9 @@ services: interval: 30s timeout: 5s retries: 3 - frontend: - !!merge <<: *common - image: signoz/frontend:${DOCKER_TAG:-0.75.0} - container_name: signoz-frontend - depends_on: - - alertmanager - - query-service - ports: - - "3301:3301" - volumes: - - ../common/signoz/nginx-config.conf:/etc/nginx/conf.d/default.conf otel-collector: !!merge <<: *db-depend - image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.29} + image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.30} container_name: signoz-otel-collector command: - --config=/etc/otel-collector-config.yaml @@ -187,11 +164,11 @@ services: - "4317:4317" # OTLP gRPC receiver - "4318:4318" # OTLP HTTP receiver depends_on: - query-service: + signoz: condition: service_healthy schema-migrator-sync: !!merge <<: *common - image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.29} + image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.30} container_name: schema-migrator-sync command: - sync @@ -203,7 +180,7 @@ services: restart: on-failure schema-migrator-async: !!merge <<: *db-depend - image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.29} + image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.30} container_name: schema-migrator-async command: - async @@ -214,8 +191,6 @@ networks: signoz-net: name: signoz-net volumes: - alertmanager: - name: signoz-alertmanager clickhouse: name: signoz-clickhouse sqlite: diff --git a/deploy/docker/docker-compose.yaml b/deploy/docker/docker-compose.yaml index d108c12ec0..9106c8acf2 100644 --- a/deploy/docker/docker-compose.yaml +++ b/deploy/docker/docker-compose.yaml @@ -108,36 +108,24 @@ services: - ../common/clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml - clickhouse:/var/lib/clickhouse/ # - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml - alertmanager: - !!merge <<: *common - image: signoz/alertmanager:${ALERTMANAGER_TAG:-0.23.7} - container_name: signoz-alertmanager - command: - - --queryService.url=http://query-service:8085 - - --storage.path=/data - volumes: - - alertmanager:/data - depends_on: - query-service: - condition: service_healthy - query-service: + signoz: !!merge <<: *db-depend - image: signoz/query-service:${DOCKER_TAG:-0.75.0} - container_name: signoz-query-service + image: signoz/signoz:${DOCKER_TAG:-v0.76.0-rc.3} + container_name: signoz command: - --config=/root/config/prometheus.yml - --use-logs-new-schema=true - --use-trace-new-schema=true - # ports: - # - "3301:8080" # signoz port + ports: + - "8080:8080" # signoz port # - "6060:6060" # pprof port volumes: - ../common/signoz/prometheus.yml:/root/config/prometheus.yml - ../common/dashboards:/root/config/dashboards - sqlite:/var/lib/signoz/ environment: - - ClickHouseUrl=tcp://clickhouse:9000 - - ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/ + - SIGNOZ_ALERTMANAGER_PROVIDER=signoz + - SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://clickhouse:9000 - SIGNOZ_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db - DASHBOARDS_PATH=/root/config/dashboards - STORAGE=clickhouse @@ -154,20 +142,9 @@ services: interval: 30s timeout: 5s retries: 3 - frontend: - !!merge <<: *common - image: signoz/frontend:${DOCKER_TAG:-0.75.0} - container_name: signoz-frontend - depends_on: - - alertmanager - - query-service - ports: - - "3301:3301" - volumes: - - ../common/signoz/nginx-config.conf:/etc/nginx/conf.d/default.conf otel-collector: !!merge <<: *db-depend - image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.29} + image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.30} container_name: signoz-otel-collector command: - --config=/etc/otel-collector-config.yaml @@ -185,11 +162,11 @@ services: - "4317:4317" # OTLP gRPC receiver - "4318:4318" # OTLP HTTP receiver depends_on: - query-service: + signoz: condition: service_healthy schema-migrator-sync: !!merge <<: *common - image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.29} + image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.30} container_name: schema-migrator-sync command: - sync @@ -201,7 +178,7 @@ services: restart: on-failure schema-migrator-async: !!merge <<: *db-depend - image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.29} + image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.30} container_name: schema-migrator-async command: - async @@ -212,8 +189,6 @@ networks: signoz-net: name: signoz-net volumes: - alertmanager: - name: signoz-alertmanager clickhouse: name: signoz-clickhouse sqlite: diff --git a/deploy/docker/generator/infra/otel-collector-config.yaml b/deploy/docker/generator/infra/otel-collector-config.yaml index ea0a3e846f..97b038794d 100644 --- a/deploy/docker/generator/infra/otel-collector-config.yaml +++ b/deploy/docker/generator/infra/otel-collector-config.yaml @@ -79,7 +79,7 @@ receivers: # please remove names from below if you want to collect logs from them - type: filter id: signoz_logs_filter - expr: 'attributes.container_name matches "^(signoz-(|alertmanager|query-service|otel-collector|clickhouse|zookeeper))|(infra-(logspout|otel-agent)-.*)"' + expr: 'attributes.container_name matches "^signoz|(signoz-(|otel-collector|clickhouse|zookeeper))|(infra-(logspout|otel-agent)-.*)"' processors: batch: send_batch_size: 10000 diff --git a/deploy/install.sh b/deploy/install.sh index b2282100a1..0aed7d0673 100755 --- a/deploy/install.sh +++ b/deploy/install.sh @@ -127,7 +127,7 @@ check_os() { # The script should error out in case they aren't available check_ports_occupied() { local port_check_output - local ports_pattern="3301|4317" + local ports_pattern="8080|4317" if is_mac; then port_check_output="$(netstat -anp tcp | awk '$6 == "LISTEN" && $4 ~ /^.*\.('"$ports_pattern"')$/')" @@ -144,7 +144,7 @@ check_ports_occupied() { send_event "port_not_available" echo "+++++++++++ ERROR ++++++++++++++++++++++" - echo "SigNoz requires ports 3301 & 4317 to be open. Please shut down any other service(s) that may be running on these ports." + echo "SigNoz requires ports 8080 & 4317 to be open. Please shut down any other service(s) that may be running on these ports." echo "You can run SigNoz on another port following this guide https://signoz.io/docs/install/troubleshooting/" echo "++++++++++++++++++++++++++++++++++++++++" echo "" @@ -248,7 +248,7 @@ wait_for_containers_start() { # The while loop is important because for-loops don't work for dynamic values while [[ $timeout -gt 0 ]]; do - status_code="$(curl -s -o /dev/null -w "%{http_code}" "http://localhost:3301/api/v1/health?live=1" || true)" + status_code="$(curl -s -o /dev/null -w "%{http_code}" "http://localhost:8080/api/v1/health?live=1" || true)" if [[ status_code -eq 200 ]]; then break else @@ -484,7 +484,7 @@ pushd "${BASE_DIR}/${DOCKER_STANDALONE_DIR}" > /dev/null 2>&1 # check for open ports, if signoz is not installed if is_command_present docker-compose; then - if $sudo_cmd $docker_compose_cmd ps | grep "signoz-query-service" | grep -q "healthy" > /dev/null 2>&1; then + if $sudo_cmd $docker_compose_cmd ps | grep "signoz" | grep -q "healthy" > /dev/null 2>&1; then echo "SigNoz already installed, skipping the occupied ports check" else check_ports_occupied @@ -533,7 +533,7 @@ else echo "" echo "đŸŸĸ Your installation is complete!" echo "" - echo -e "đŸŸĸ Your frontend is running on http://localhost:3301" + echo -e "đŸŸĸ SigNoz is running on http://localhost:8080" echo "" echo "â„šī¸ By default, retention period is set to 15 days for logs and traces, and 30 days for metrics." echo -e "To change this, navigate to the General tab on the Settings page of SigNoz UI. For more details, refer to https://signoz.io/docs/userguide/retention-period \n" diff --git a/ee/query-service/.goreleaser.yaml b/ee/query-service/.goreleaser.yaml new file mode 100644 index 0000000000..83a6a8101e --- /dev/null +++ b/ee/query-service/.goreleaser.yaml @@ -0,0 +1,70 @@ +# yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json +# vim: set ts=2 sw=2 tw=0 fo=cnqoj +version: 2 + +project_name: signoz + +before: + hooks: + - go mod tidy + +builds: + - id: signoz + binary: bin/signoz + main: ee/query-service/main.go + env: + - CGO_ENABLED=1 + - >- + {{- if eq .Os "linux" }} + {{- if eq .Arch "arm64" }}CC=aarch64-linux-gnu-gcc{{- end }} + {{- end }} + goos: + - linux + - darwin + goarch: + - amd64 + - arm64 + goamd64: + - v1 + goarm64: + - v8.0 + ldflags: + - -s -w + - -X github.com/SigNoz/signoz/pkg/query-service/version.version={{ .Version }} + - -X main.commit={{ .Commit }} -X main.date={{ .CommitDate }} + - -X main.builtBy=goreleaser + - -X go.signoz.io/signoz/pkg/query-service/version.buildVersion={{ .Version }} + - -X go.signoz.io/signoz/pkg/query-service/version.buildHash={{ .ShortCommit }} + - -X go.signoz.io/signoz/pkg/query-service/version.buildTime={{ .Date }} + - -X go.signoz.io/signoz/pkg/query-service/version.gitBranch={{ .Branch }} + - -X go.signoz.io/signoz/ee/query-service/constants.ZeusURL=https://api.signoz.cloud + - -X go.signoz.io/signoz/ee/query-service/constants.LicenseSignozIo=https://license.signoz.io/api/v1 + - >- + {{- if eq .Os "linux" }}-linkmode external -extldflags '-static'{{- end }} + mod_timestamp: "{{ .CommitTimestamp }}" + tags: + - timetzdata + +archives: + - formats: + - tar.gz + name_template: >- + {{ .ProjectName }}_{{- .Os }}_{{- .Arch }} + wrap_in_directory: true + strip_binary_directory: false + files: + - src: README.md + dst: README.md + - src: LICENSE + dst: LICENSE + - src: frontend/build + dst: web + - src: conf + dst: conf + - src: templates + dst: templates + +release: + name_template: "v{{ .Version }}" + draft: false + prerelease: auto diff --git a/ee/query-service/Dockerfile b/ee/query-service/Dockerfile index ae4b260f9a..a01620f249 100644 --- a/ee/query-service/Dockerfile +++ b/ee/query-service/Dockerfile @@ -13,21 +13,21 @@ RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/* # set working directory WORKDIR /root -# copy the query-service binary -COPY ee/query-service/bin/query-service-${TARGETOS}-${TARGETARCH} /root/query-service +# copy the signoz binary +COPY ee/query-service/bin/signoz-${TARGETOS}-${TARGETARCH} /root/signoz # copy prometheus YAML config COPY pkg/query-service/config/prometheus.yml /root/config/prometheus.yml COPY pkg/query-service/templates /root/templates -# Make query-service executable for non-root users -RUN chmod 755 /root /root/query-service +# Make signoz executable for non-root users +RUN chmod 755 /root /root/signoz # Copy frontend COPY frontend/build/ /etc/signoz/web/ # run the binary -ENTRYPOINT ["./query-service"] +ENTRYPOINT ["./signoz"] CMD ["-config", "/root/config/prometheus.yml"] diff --git a/ee/query-service/constants/constants.go b/ee/query-service/constants/constants.go index 57f5692971..701495c6eb 100644 --- a/ee/query-service/constants/constants.go +++ b/ee/query-service/constants/constants.go @@ -5,7 +5,7 @@ import ( ) const ( - DefaultSiteURL = "https://localhost:3301" + DefaultSiteURL = "https://localhost:8080" ) var LicenseSignozIo = "https://license.signoz.io/api/v1" diff --git a/frontend/.dockerignore b/frontend/.dockerignore deleted file mode 100644 index 840adcb19f..0000000000 --- a/frontend/.dockerignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -.vscode -.git diff --git a/frontend/Dockerfile b/frontend/Dockerfile deleted file mode 100644 index 1d0449f796..0000000000 --- a/frontend/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM nginx:1.26-alpine - -# Add Maintainer Info -LABEL maintainer="signoz" - -# Set working directory -WORKDIR /frontend - -# Remove default nginx index page -RUN rm -rf /usr/share/nginx/html/* - -# Copy custom nginx config and static files -COPY conf/default.conf /etc/nginx/conf.d/default.conf -COPY build /usr/share/nginx/html - -EXPOSE 3301 - -ENTRYPOINT ["nginx", "-g", "daemon off;"] diff --git a/frontend/conf/default.conf b/frontend/conf/default.conf deleted file mode 100644 index 8c1eafe956..0000000000 --- a/frontend/conf/default.conf +++ /dev/null @@ -1,33 +0,0 @@ -server { - listen 3301; - server_name _; - - gzip on; - gzip_static on; - gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; - gzip_proxied any; - gzip_vary on; - gzip_comp_level 6; - gzip_buffers 16 8k; - gzip_http_version 1.1; - - # to handle uri issue 414 from nginx - client_max_body_size 24M; - large_client_header_buffers 8 128k; - - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html; - } - location = /api { - proxy_pass http://signoz-query-service:8080/api; - } - - # redirect server error pages to the static page /50x.html - # - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root /usr/share/nginx/html; - } -} \ No newline at end of file diff --git a/frontend/docker-compose.yaml b/frontend/docker-compose.yaml deleted file mode 100644 index 3b871ca848..0000000000 --- a/frontend/docker-compose.yaml +++ /dev/null @@ -1,7 +0,0 @@ -version: "3.9" -services: - web: - build: . - image: signoz/frontend:latest - ports: - - "3301:3301" diff --git a/frontend/example.env b/frontend/example.env index 0ddbfb2837..d5bc6b187f 100644 --- a/frontend/example.env +++ b/frontend/example.env @@ -1,7 +1,7 @@ NODE_ENV="development" BUNDLE_ANALYSER="true" -FRONTEND_API_ENDPOINT="http://localhost:3301/" +FRONTEND_API_ENDPOINT="http://localhost:8080/" INTERCOM_APP_ID="intercom-app-id" -PLAYWRIGHT_TEST_BASE_URL="http://localhost:3301" +PLAYWRIGHT_TEST_BASE_URL="http://localhost:8080" CI="1" \ No newline at end of file diff --git a/pkg/query-service/.goreleaser.yaml b/pkg/query-service/.goreleaser.yaml new file mode 100644 index 0000000000..e47c62eb86 --- /dev/null +++ b/pkg/query-service/.goreleaser.yaml @@ -0,0 +1,68 @@ +# yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json +# vim: set ts=2 sw=2 tw=0 fo=cnqoj +version: 2 + +project_name: signoz-community + +before: + hooks: + - go mod tidy + +builds: + - id: signoz + binary: bin/signoz + main: pkg/query-service/main.go + env: + - CGO_ENABLED=1 + - >- + {{- if eq .Os "linux" }} + {{- if eq .Arch "arm64" }}CC=aarch64-linux-gnu-gcc{{- end }} + {{- end }} + goos: + - linux + - darwin + goarch: + - amd64 + - arm64 + goamd64: + - v1 + goarm64: + - v8.0 + ldflags: + - -s -w + - -X github.com/SigNoz/signoz/pkg/query-service/version.version={{ .Version }} + - -X main.commit={{ .Commit }} -X main.date={{ .CommitDate }} + - -X main.builtBy=goreleaser + - -X go.signoz.io/signoz/pkg/query-service/version.buildVersion={{ .Version }} + - -X go.signoz.io/signoz/pkg/query-service/version.buildHash={{ .ShortCommit }} + - -X go.signoz.io/signoz/pkg/query-service/version.buildTime={{ .Date }} + - -X go.signoz.io/signoz/pkg/query-service/version.gitBranch={{ .Branch }} + - >- + {{- if eq .Os "linux" }}-linkmode external -extldflags '-static'{{- end }} + mod_timestamp: "{{ .CommitTimestamp }}" + tags: + - timetzdata + +archives: + - formats: + - tar.gz + name_template: >- + {{ .ProjectName }}_{{- .Os }}_{{- .Arch }} + wrap_in_directory: true + strip_binary_directory: false + files: + - src: README.md + dst: README.md + - src: LICENSE + dst: LICENSE + - src: frontend/build + dst: web + - src: conf + dst: conf + - src: templates + dst: templates + +release: + name_template: "v{{ .Version }}" + draft: false + prerelease: auto diff --git a/pkg/query-service/Dockerfile b/pkg/query-service/Dockerfile index 0d75b78b94..07caa03bf3 100644 --- a/pkg/query-service/Dockerfile +++ b/pkg/query-service/Dockerfile @@ -13,21 +13,24 @@ RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/* # set working directory WORKDIR /root -# copy the query-service binary -COPY pkg/query-service/bin/query-service-${TARGETOS}-${TARGETARCH} /root/query-service +# copy the signoz binary +COPY pkg/query-service/bin/signoz-${TARGETOS}-${TARGETARCH} /root/signoz # copy prometheus YAML config COPY pkg/query-service/config/prometheus.yml /root/config/prometheus.yml COPY pkg/query-service/templates /root/templates -# Make query-service executable for non-root users -RUN chmod 755 /root /root/query-service +# Make signoz executable for non-root users +RUN chmod 755 /root /root/signoz + +# Copy frontend +COPY frontend/build/ /etc/signoz/web/ # Copy frontend COPY frontend/build/ /etc/signoz/web/ # run the binary -ENTRYPOINT ["./query-service"] +ENTRYPOINT ["./signoz"] CMD ["-config", "/root/config/prometheus.yml"] diff --git a/scripts/clickhouse/histogramquantile/.goreleaser.yaml b/scripts/clickhouse/histogramquantile/.goreleaser.yaml index 006edfe1cb..49d3f5f4d1 100644 --- a/scripts/clickhouse/histogramquantile/.goreleaser.yaml +++ b/scripts/clickhouse/histogramquantile/.goreleaser.yaml @@ -10,16 +10,12 @@ monorepo: before: hooks: - go mod tidy - - cp ../../../LICENSE . - - cp ../../../README.md . - -after: - hooks: - - rm LICENSE - - rm README.md builds: - - env: + - id: signoz + binary: bin/histogram-quantile + main: scripts/clickhouse/histogramquantile/main.go + env: - CGO_ENABLED=0 goos: - linux @@ -27,6 +23,10 @@ builds: goarch: - amd64 - arm64 + goamd64: + - v1 + goarm64: + - v8.0 archives: - formats: @@ -38,8 +38,4 @@ archives: - LICENSE release: - footer: >- - - --- - - Released by [GoReleaser](https://github.com/goreleaser/goreleaser). + name_template: "histogram-quantile/v{{ .Version }}" diff --git a/templates/email/invitation_email_template.html b/templates/email/invitation_email_template.html new file mode 100644 index 0000000000..75fa3a32e8 --- /dev/null +++ b/templates/email/invitation_email_template.html @@ -0,0 +1,14 @@ + + + +

Hi {{.CustomerName}},

+

You have been invited to join SigNoz project by {{.InviterName}} ({{.InviterEmail}}).

+

Please click on the following button to accept the invitation:

+ Accept Invitation +

Button not working? Paste the following link into your browser:

+

{{.Link}}

+

Follow docs here 👉 to Get Started with SigNoz Cloud

+

Thanks,

+

SigNoz Team

+ +