mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-14 03:25:57 +08:00
feat: docker/swarm deployment restructuring and improvements (#6904)
This PR consists of improvements and fixes related to SigNoz in Docker Standalone and Docker Swarm. - Docker/Swarm deploy directory restructuring and improvements - Prometheus metrics scraping using labels in Docker Standalone and Docker Swarm - Swarm: single schema-migrator container for both sync/async migrations - Remove Kubernetes HOTRod files (will be migrated to charts) - Fetch histogram-quantile from release instead of local binary mount --------- Signed-off-by: Prashant Shahi <prashant@signoz.io>
This commit is contained in:
parent
8d6731c7ba
commit
61a6c21edb
@ -4,3 +4,6 @@
|
|||||||
README.md
|
README.md
|
||||||
deploy
|
deploy
|
||||||
sample-apps
|
sample-apps
|
||||||
|
|
||||||
|
# frontend
|
||||||
|
node_modules
|
2
.github/workflows/releaser.yaml
vendored
2
.github/workflows/releaser.yaml
vendored
@ -7,6 +7,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
detect:
|
detect:
|
||||||
|
if: ${{ !startsWith(github.event.release.tag_name, 'histogram-quantile/') }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
release_type: ${{ steps.find.outputs.release_type }}
|
release_type: ${{ steps.find.outputs.release_type }}
|
||||||
@ -22,6 +23,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
echo "release_type=${release_type}" >> "$GITHUB_OUTPUT"
|
echo "release_type=${release_type}" >> "$GITHUB_OUTPUT"
|
||||||
charts:
|
charts:
|
||||||
|
if: ${{ !startsWith(github.event.release.tag_name, 'histogram-quantile/') }}
|
||||||
uses: signoz/primus.workflows/.github/workflows/github-trigger.yaml@main
|
uses: signoz/primus.workflows/.github/workflows/github-trigger.yaml@main
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
needs: [detect]
|
needs: [detect]
|
||||||
|
6
.gitignore
vendored
6
.gitignore
vendored
@ -52,7 +52,7 @@ ee/query-service/tests/test-deploy/data/
|
|||||||
/deploy/docker/clickhouse-setup/data/
|
/deploy/docker/clickhouse-setup/data/
|
||||||
/deploy/docker-swarm/clickhouse-setup/data/
|
/deploy/docker-swarm/clickhouse-setup/data/
|
||||||
bin/
|
bin/
|
||||||
|
.local/
|
||||||
*/query-service/queries.active
|
*/query-service/queries.active
|
||||||
|
|
||||||
# e2e
|
# e2e
|
||||||
@ -70,5 +70,9 @@ vendor/
|
|||||||
|
|
||||||
# git-town
|
# git-town
|
||||||
.git-branches.toml
|
.git-branches.toml
|
||||||
|
|
||||||
# goreleaser
|
# goreleaser
|
||||||
dist/
|
dist/
|
||||||
|
|
||||||
|
# ignore user_scripts that is fetched by init-clickhouse
|
||||||
|
deploy/common/clickhouse/user_scripts/
|
||||||
|
10
.gitpod.yml
10
.gitpod.yml
@ -3,16 +3,10 @@
|
|||||||
|
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Run Script to Comment ut required lines
|
|
||||||
init: |
|
|
||||||
cd ./.scripts
|
|
||||||
sh commentLinesForSetup.sh
|
|
||||||
|
|
||||||
- name: Run Docker Images
|
- name: Run Docker Images
|
||||||
init: |
|
init: |
|
||||||
cd ./deploy
|
cd ./deploy/docker
|
||||||
sudo docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d
|
sudo docker compose up -d
|
||||||
# command:
|
|
||||||
|
|
||||||
- name: Run Frontend
|
- name: Run Frontend
|
||||||
init: |
|
init: |
|
||||||
|
@ -141,9 +141,9 @@ Depending upon your area of expertise & interest, you can choose one or more to
|
|||||||
|
|
||||||
# 3. Develop Frontend 🌚
|
# 3. Develop Frontend 🌚
|
||||||
|
|
||||||
**Need to Update: [https://github.com/SigNoz/signoz/tree/develop/frontend](https://github.com/SigNoz/signoz/tree/develop/frontend)**
|
**Need to Update: [https://github.com/SigNoz/signoz/tree/main/frontend](https://github.com/SigNoz/signoz/tree/main/frontend)**
|
||||||
|
|
||||||
Also, have a look at [Frontend README.md](https://github.com/SigNoz/signoz/blob/develop/frontend/README.md) sections for more info on how to setup SigNoz frontend locally (with and without Docker).
|
Also, have a look at [Frontend README.md](https://github.com/SigNoz/signoz/blob/main/frontend/README.md) sections for more info on how to setup SigNoz frontend locally (with and without Docker).
|
||||||
|
|
||||||
## 3.1 Contribute to Frontend with Docker installation of SigNoz
|
## 3.1 Contribute to Frontend with Docker installation of SigNoz
|
||||||
|
|
||||||
@ -151,14 +151,14 @@ Also, have a look at [Frontend README.md](https://github.com/SigNoz/signoz/blob/
|
|||||||
```
|
```
|
||||||
git clone https://github.com/SigNoz/signoz.git && cd signoz
|
git clone https://github.com/SigNoz/signoz.git && cd signoz
|
||||||
```
|
```
|
||||||
- Comment out `frontend` service section at [`deploy/docker/clickhouse-setup/docker-compose.yaml#L68`](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml#L68)
|
- Comment out `frontend` service section at [`deploy/docker/docker-compose.yaml#L68`](https://github.com/SigNoz/signoz/blob/main/deploy/docker/docker-compose.yaml#L68)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
- run `cd deploy` to move to deploy directory,
|
- run `cd deploy` to move to deploy directory,
|
||||||
- Install signoz locally **without** the frontend,
|
- Install signoz locally **without** the frontend,
|
||||||
- Add / Uncomment the below configuration to query-service section at [`deploy/docker/clickhouse-setup/docker-compose.yaml#L47`](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml#L47)
|
- Add / Uncomment the below configuration to query-service section at [`deploy/docker/docker-compose.yaml#L47`](https://github.com/SigNoz/signoz/blob/main/deploy/docker/docker-compose.yaml#L47)
|
||||||
```
|
```
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
@ -167,9 +167,10 @@ Also, have a look at [Frontend README.md](https://github.com/SigNoz/signoz/blob/
|
|||||||
|
|
||||||
- Next run,
|
- Next run,
|
||||||
```
|
```
|
||||||
sudo docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d
|
cd deploy/docker
|
||||||
|
sudo docker compose up -d
|
||||||
```
|
```
|
||||||
- `cd ../frontend` and change baseURL in file [`frontend/src/constants/env.ts#L2`](https://github.com/SigNoz/signoz/blob/develop/frontend/src/constants/env.ts#L2) and for that, you need to create a `.env` file in the `frontend` directory with the following environment variable (`FRONTEND_API_ENDPOINT`) matching your configuration.
|
- `cd ../frontend` and change baseURL in file [`frontend/src/constants/env.ts#L2`](https://github.com/SigNoz/signoz/blob/main/frontend/src/constants/env.ts#L2) and for that, you need to create a `.env` file in the `frontend` directory with the following environment variable (`FRONTEND_API_ENDPOINT`) matching your configuration.
|
||||||
|
|
||||||
If you have backend api exposed via frontend nginx:
|
If you have backend api exposed via frontend nginx:
|
||||||
```
|
```
|
||||||
@ -186,11 +187,6 @@ Also, have a look at [Frontend README.md](https://github.com/SigNoz/signoz/blob/
|
|||||||
yarn dev
|
yarn dev
|
||||||
```
|
```
|
||||||
|
|
||||||
### Important Notes:
|
|
||||||
The Maintainers / Contributors who will change Line Numbers of `Frontend` & `Query-Section`, please update line numbers in [`/.scripts/commentLinesForSetup.sh`](https://github.com/SigNoz/signoz/blob/develop/.scripts/commentLinesForSetup.sh)
|
|
||||||
|
|
||||||
**[`^top^`](#contributing-guidelines)**
|
|
||||||
|
|
||||||
## 3.2 Contribute to Frontend without installing SigNoz backend
|
## 3.2 Contribute to Frontend without installing SigNoz backend
|
||||||
|
|
||||||
If you don't want to install the SigNoz backend just for doing frontend development, we can provide you with test environments that you can use as the backend.
|
If you don't want to install the SigNoz backend just for doing frontend development, we can provide you with test environments that you can use as the backend.
|
||||||
@ -216,7 +212,7 @@ Please ping us in the [`#contributing`](https://signoz-community.slack.com/archi
|
|||||||
|
|
||||||
# 4. Contribute to Backend (Query-Service) 🌑
|
# 4. Contribute to Backend (Query-Service) 🌑
|
||||||
|
|
||||||
**Need to Update: [https://github.com/SigNoz/signoz/tree/develop/pkg/query-service](https://github.com/SigNoz/signoz/tree/develop/pkg/query-service)**
|
**Need to Update: [https://github.com/SigNoz/signoz/tree/main/pkg/query-service](https://github.com/SigNoz/signoz/tree/main/pkg/query-service)**
|
||||||
|
|
||||||
## 4.1 Prerequisites
|
## 4.1 Prerequisites
|
||||||
|
|
||||||
@ -242,13 +238,13 @@ Please ping us in the [`#contributing`](https://signoz-community.slack.com/archi
|
|||||||
git clone https://github.com/SigNoz/signoz.git && cd signoz
|
git clone https://github.com/SigNoz/signoz.git && cd signoz
|
||||||
```
|
```
|
||||||
- run `sudo make dev-setup` to configure local setup to run query-service,
|
- run `sudo make dev-setup` to configure local setup to run query-service,
|
||||||
- Comment out `frontend` service section at [`deploy/docker/clickhouse-setup/docker-compose.yaml#L68`](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml#L68)
|
- Comment out `frontend` service section at [`deploy/docker/docker-compose.yaml#L68`](https://github.com/SigNoz/signoz/blob/main/deploy/docker/docker-compose.yaml#L68)
|
||||||
<img width="982" alt="develop-frontend" src="https://user-images.githubusercontent.com/52788043/179043977-012be8b0-a2ed-40d1-b2e6-2ab72d7989c0.png">
|
<img width="982" alt="develop-frontend" src="https://user-images.githubusercontent.com/52788043/179043977-012be8b0-a2ed-40d1-b2e6-2ab72d7989c0.png">
|
||||||
|
|
||||||
- Comment out `query-service` section at [`deploy/docker/clickhouse-setup/docker-compose.yaml#L41`,](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml#L41)
|
- Comment out `query-service` section at [`deploy/docker/docker-compose.yaml#L41`,](https://github.com/SigNoz/signoz/blob/main/deploy/docker/docker-compose.yaml#L41)
|
||||||
<img width="1068" alt="Screenshot 2022-07-14 at 22 48 07" src="https://user-images.githubusercontent.com/52788043/179044151-a65ba571-db0b-4a16-b64b-ca3fadcf3af0.png">
|
<img width="1068" alt="Screenshot 2022-07-14 at 22 48 07" src="https://user-images.githubusercontent.com/52788043/179044151-a65ba571-db0b-4a16-b64b-ca3fadcf3af0.png">
|
||||||
|
|
||||||
- add below configuration to `clickhouse` section at [`deploy/docker/clickhouse-setup/docker-compose.yaml`,](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml)
|
- add below configuration to `clickhouse` section at [`deploy/docker/docker-compose.yaml`,](https://github.com/SigNoz/signoz/blob/main/deploy/docker/docker-compose.yaml)
|
||||||
```
|
```
|
||||||
ports:
|
ports:
|
||||||
- 9001:9000
|
- 9001:9000
|
||||||
@ -258,9 +254,9 @@ Please ping us in the [`#contributing`](https://signoz-community.slack.com/archi
|
|||||||
- run `cd pkg/query-service/` to move to `query-service` directory,
|
- run `cd pkg/query-service/` to move to `query-service` directory,
|
||||||
- Then, you need to create a `.env` file with the following environment variable
|
- Then, you need to create a `.env` file with the following environment variable
|
||||||
```
|
```
|
||||||
SIGNOZ_LOCAL_DB_PATH="./signoz.db"
|
SIGNOZ_SQLSTORE_SQLITE_PATH="./signoz.db"
|
||||||
```
|
```
|
||||||
to set your local environment with the right `RELATIONAL_DATASOURCE_PATH` as mentioned in [`./constants/constants.go#L38`,](https://github.com/SigNoz/signoz/blob/develop/pkg/query-service/constants/constants.go#L38)
|
to set your local environment with the right `RELATIONAL_DATASOURCE_PATH` as mentioned in [`./constants/constants.go#L38`,](https://github.com/SigNoz/signoz/blob/main/pkg/query-service/constants/constants.go#L38)
|
||||||
|
|
||||||
- Now, install SigNoz locally **without** the `frontend` and `query-service`,
|
- Now, install SigNoz locally **without** the `frontend` and `query-service`,
|
||||||
- If you are using `x86_64` processors (All Intel/AMD processors) run `sudo make run-x86`
|
- If you are using `x86_64` processors (All Intel/AMD processors) run `sudo make run-x86`
|
||||||
@ -294,13 +290,10 @@ docker pull signoz/query-service:develop
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Important Note:
|
### Important Note:
|
||||||
The Maintainers / Contributors who will change Line Numbers of `Frontend` & `Query-Section`, please update line numbers in [`/.scripts/commentLinesForSetup.sh`](https://github.com/SigNoz/signoz/blob/develop/.scripts/commentLinesForSetup.sh)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
**Query Service should now be available at** [`http://localhost:8080`](http://localhost:8080)
|
**Query Service should now be available at** [`http://localhost:8080`](http://localhost:8080)
|
||||||
|
|
||||||
If you want to see how the frontend plays with query service, you can run the frontend also in your local env with the baseURL changed to `http://localhost:8080` in file [`frontend/src/constants/env.ts`](https://github.com/SigNoz/signoz/blob/develop/frontend/src/constants/env.ts) as the `query-service` is now running at port `8080`.
|
If you want to see how the frontend plays with query service, you can run the frontend also in your local env with the baseURL changed to `http://localhost:8080` in file [`frontend/src/constants/env.ts`](https://github.com/SigNoz/signoz/blob/main/frontend/src/constants/env.ts) as the `query-service` is now running at port `8080`.
|
||||||
|
|
||||||
<!-- Instead of configuring a local setup, you can also use [Gitpod](https://www.gitpod.io/), a VSCode-based Web IDE.
|
<!-- Instead of configuring a local setup, you can also use [Gitpod](https://www.gitpod.io/), a VSCode-based Web IDE.
|
||||||
|
|
||||||
|
14
Makefile
14
Makefile
@ -15,8 +15,8 @@ DEV_BUILD ?= "" # set to any non-empty value to enable dev build
|
|||||||
FRONTEND_DIRECTORY ?= frontend
|
FRONTEND_DIRECTORY ?= frontend
|
||||||
QUERY_SERVICE_DIRECTORY ?= pkg/query-service
|
QUERY_SERVICE_DIRECTORY ?= pkg/query-service
|
||||||
EE_QUERY_SERVICE_DIRECTORY ?= ee/query-service
|
EE_QUERY_SERVICE_DIRECTORY ?= ee/query-service
|
||||||
STANDALONE_DIRECTORY ?= deploy/docker/clickhouse-setup
|
STANDALONE_DIRECTORY ?= deploy/docker
|
||||||
SWARM_DIRECTORY ?= deploy/docker-swarm/clickhouse-setup
|
SWARM_DIRECTORY ?= deploy/docker-swarm
|
||||||
CH_HISTOGRAM_QUANTILE_DIRECTORY ?= scripts/clickhouse/histogramquantile
|
CH_HISTOGRAM_QUANTILE_DIRECTORY ?= scripts/clickhouse/histogramquantile
|
||||||
|
|
||||||
GOOS ?= $(shell go env GOOS)
|
GOOS ?= $(shell go env GOOS)
|
||||||
@ -143,16 +143,6 @@ dev-setup:
|
|||||||
@echo "--> Local Setup completed"
|
@echo "--> Local Setup completed"
|
||||||
@echo "------------------"
|
@echo "------------------"
|
||||||
|
|
||||||
run-local:
|
|
||||||
@docker-compose -f \
|
|
||||||
$(STANDALONE_DIRECTORY)/docker-compose-core.yaml -f $(STANDALONE_DIRECTORY)/docker-compose-local.yaml \
|
|
||||||
up --build -d
|
|
||||||
|
|
||||||
down-local:
|
|
||||||
@docker-compose -f \
|
|
||||||
$(STANDALONE_DIRECTORY)/docker-compose-core.yaml -f $(STANDALONE_DIRECTORY)/docker-compose-local.yaml \
|
|
||||||
down -v
|
|
||||||
|
|
||||||
pull-signoz:
|
pull-signoz:
|
||||||
@docker-compose -f $(STANDALONE_DIRECTORY)/docker-compose.yaml pull
|
@docker-compose -f $(STANDALONE_DIRECTORY)/docker-compose.yaml pull
|
||||||
|
|
||||||
|
@ -13,9 +13,9 @@
|
|||||||
|
|
||||||
<h3 align="center">
|
<h3 align="center">
|
||||||
<a href="https://signoz.io/docs"><b>Dokumentation</b></a> •
|
<a href="https://signoz.io/docs"><b>Dokumentation</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.md"><b>Readme auf Englisch </b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.md"><b>Readme auf Englisch </b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.zh-cn.md"><b>ReadMe auf Chinesisch</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.zh-cn.md"><b>ReadMe auf Chinesisch</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.pt-br.md"><b>ReadMe auf Portugiesisch</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.pt-br.md"><b>ReadMe auf Portugiesisch</b></a> •
|
||||||
<a href="https://signoz.io/slack"><b>Slack Community</b></a> •
|
<a href="https://signoz.io/slack"><b>Slack Community</b></a> •
|
||||||
<a href="https://twitter.com/SigNozHq"><b>Twitter</b></a>
|
<a href="https://twitter.com/SigNozHq"><b>Twitter</b></a>
|
||||||
</h3>
|
</h3>
|
||||||
|
@ -17,9 +17,9 @@
|
|||||||
|
|
||||||
<h3 align="center">
|
<h3 align="center">
|
||||||
<a href="https://signoz.io/docs"><b>Documentation</b></a> •
|
<a href="https://signoz.io/docs"><b>Documentation</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.zh-cn.md"><b>ReadMe in Chinese</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.zh-cn.md"><b>ReadMe in Chinese</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.de-de.md"><b>ReadMe in German</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.de-de.md"><b>ReadMe in German</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.pt-br.md"><b>ReadMe in Portuguese</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.pt-br.md"><b>ReadMe in Portuguese</b></a> •
|
||||||
<a href="https://signoz.io/slack"><b>Slack Community</b></a> •
|
<a href="https://signoz.io/slack"><b>Slack Community</b></a> •
|
||||||
<a href="https://twitter.com/SigNozHq"><b>Twitter</b></a>
|
<a href="https://twitter.com/SigNozHq"><b>Twitter</b></a>
|
||||||
</h3>
|
</h3>
|
||||||
|
@ -12,9 +12,9 @@
|
|||||||
|
|
||||||
<h3 align="center">
|
<h3 align="center">
|
||||||
<a href="https://signoz.io/docs"><b>文档</b></a> •
|
<a href="https://signoz.io/docs"><b>文档</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.zh-cn.md"><b>中文ReadMe</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.zh-cn.md"><b>中文ReadMe</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.de-de.md"><b>德文ReadMe</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.de-de.md"><b>德文ReadMe</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.pt-br.md"><b>葡萄牙语ReadMe</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.pt-br.md"><b>葡萄牙语ReadMe</b></a> •
|
||||||
<a href="https://signoz.io/slack"><b>Slack 社区</b></a> •
|
<a href="https://signoz.io/slack"><b>Slack 社区</b></a> •
|
||||||
<a href="https://twitter.com/SigNozHq"><b>Twitter</b></a>
|
<a href="https://twitter.com/SigNozHq"><b>Twitter</b></a>
|
||||||
</h3>
|
</h3>
|
||||||
|
@ -18,65 +18,64 @@ Now run the following command to install:
|
|||||||
|
|
||||||
### Using Docker Compose
|
### Using Docker Compose
|
||||||
|
|
||||||
If you don't have docker-compose set up, please follow [this guide](https://docs.docker.com/compose/install/)
|
If you don't have docker compose set up, please follow [this guide](https://docs.docker.com/compose/install/)
|
||||||
to set up docker compose before proceeding with the next steps.
|
to set up docker compose before proceeding with the next steps.
|
||||||
|
|
||||||
For x86 chip (amd):
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d
|
cd deploy/docker
|
||||||
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
Open http://localhost:3301 in your favourite browser. In couple of minutes, you should see
|
Open http://localhost:3301 in your favourite browser.
|
||||||
the data generated from hotrod in SigNoz UI.
|
|
||||||
|
|
||||||
## Kubernetes
|
To start collecting logs and metrics from your infrastructure, run the following command:
|
||||||
|
|
||||||
### Using Helm
|
|
||||||
|
|
||||||
#### Bring up SigNoz cluster
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
helm repo add signoz https://charts.signoz.io
|
cd generator/infra
|
||||||
|
docker compose up -d
|
||||||
kubectl create ns platform
|
|
||||||
|
|
||||||
helm -n platform install my-release signoz/signoz
|
|
||||||
```
|
```
|
||||||
|
|
||||||
To access the UI, you can `port-forward` the frontend service:
|
To start generating sample traces, run the following command:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
kubectl -n platform port-forward svc/my-release-frontend 3301:3301
|
cd generator/hotrod
|
||||||
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
Open http://localhost:3301 in your favourite browser. Few minutes after you generate load
|
In a couple of minutes, you should see the data generated from hotrod in SigNoz UI.
|
||||||
from the HotROD application, you should see the data generated from hotrod in SigNoz UI.
|
|
||||||
|
|
||||||
#### Test HotROD application with SigNoz
|
For more details, please refer to the [SigNoz documentation](https://signoz.io/docs/install/docker/).
|
||||||
|
|
||||||
|
## Docker Swarm
|
||||||
|
|
||||||
|
To install SigNoz using Docker Swarm, run the following command:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
kubectl create ns sample-application
|
cd deploy/docker-swarm
|
||||||
|
docker stack deploy -c docker-compose.yaml signoz
|
||||||
kubectl -n sample-application apply -f https://raw.githubusercontent.com/SigNoz/signoz/main/sample-apps/hotrod/hotrod.yaml
|
|
||||||
```
|
```
|
||||||
|
|
||||||
To generate load:
|
Open http://localhost:3301 in your favourite browser.
|
||||||
|
|
||||||
|
To start collecting logs and metrics from your infrastructure, run the following command:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
kubectl -n sample-application run strzal --image=djbingham/curl \
|
cd generator/infra
|
||||||
--restart='OnFailure' -i --tty --rm --command -- curl -X POST -F \
|
docker stack deploy -c docker-compose.yaml infra
|
||||||
'user_count=6' -F 'spawn_rate=2' http://locust-master:8089/swarm
|
|
||||||
```
|
```
|
||||||
|
|
||||||
To stop load:
|
To start generating sample traces, run the following command:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
kubectl -n sample-application run strzal --image=djbingham/curl \
|
cd generator/hotrod
|
||||||
--restart='OnFailure' -i --tty --rm --command -- curl \
|
docker stack deploy -c docker-compose.yaml hotrod
|
||||||
http://locust-master:8089/stop
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
In a couple of minutes, you should see the data generated from hotrod in SigNoz UI.
|
||||||
|
|
||||||
|
For more details, please refer to the [SigNoz documentation](https://signoz.io/docs/install/docker-swarm/).
|
||||||
|
|
||||||
## Uninstall/Troubleshoot?
|
## Uninstall/Troubleshoot?
|
||||||
|
|
||||||
Go to our official documentation site [signoz.io/docs](https://signoz.io/docs) for more.
|
Go to our official documentation site [signoz.io/docs](https://signoz.io/docs) for more.
|
||||||
|
|
||||||
|
@ -10,14 +10,14 @@
|
|||||||
<host>zookeeper-1</host>
|
<host>zookeeper-1</host>
|
||||||
<port>2181</port>
|
<port>2181</port>
|
||||||
</node>
|
</node>
|
||||||
<!-- <node index="2">
|
<node index="2">
|
||||||
<host>zookeeper-2</host>
|
<host>zookeeper-2</host>
|
||||||
<port>2181</port>
|
<port>2181</port>
|
||||||
</node>
|
</node>
|
||||||
<node index="3">
|
<node index="3">
|
||||||
<host>zookeeper-3</host>
|
<host>zookeeper-3</host>
|
||||||
<port>2181</port>
|
<port>2181</port>
|
||||||
</node> -->
|
</node>
|
||||||
</zookeeper>
|
</zookeeper>
|
||||||
|
|
||||||
<!-- Configuration of clusters that could be used in Distributed tables.
|
<!-- Configuration of clusters that could be used in Distributed tables.
|
||||||
@ -58,7 +58,7 @@
|
|||||||
<!-- <priority>1</priority> -->
|
<!-- <priority>1</priority> -->
|
||||||
</replica>
|
</replica>
|
||||||
</shard>
|
</shard>
|
||||||
<!-- <shard>
|
<shard>
|
||||||
<replica>
|
<replica>
|
||||||
<host>clickhouse-2</host>
|
<host>clickhouse-2</host>
|
||||||
<port>9000</port>
|
<port>9000</port>
|
||||||
@ -69,7 +69,7 @@
|
|||||||
<host>clickhouse-3</host>
|
<host>clickhouse-3</host>
|
||||||
<port>9000</port>
|
<port>9000</port>
|
||||||
</replica>
|
</replica>
|
||||||
</shard> -->
|
</shard>
|
||||||
</cluster>
|
</cluster>
|
||||||
</remote_servers>
|
</remote_servers>
|
||||||
</clickhouse>
|
</clickhouse>
|
@ -716,7 +716,7 @@
|
|||||||
asynchronous_metrics - send data from table system.asynchronous_metrics
|
asynchronous_metrics - send data from table system.asynchronous_metrics
|
||||||
status_info - send data from different component from CH, ex: Dictionaries status
|
status_info - send data from different component from CH, ex: Dictionaries status
|
||||||
-->
|
-->
|
||||||
<!--
|
|
||||||
<prometheus>
|
<prometheus>
|
||||||
<endpoint>/metrics</endpoint>
|
<endpoint>/metrics</endpoint>
|
||||||
<port>9363</port>
|
<port>9363</port>
|
||||||
@ -726,7 +726,6 @@
|
|||||||
<asynchronous_metrics>true</asynchronous_metrics>
|
<asynchronous_metrics>true</asynchronous_metrics>
|
||||||
<status_info>true</status_info>
|
<status_info>true</status_info>
|
||||||
</prometheus>
|
</prometheus>
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Query log. Used only for queries with setting log_queries = 1. -->
|
<!-- Query log. Used only for queries with setting log_queries = 1. -->
|
||||||
<query_log>
|
<query_log>
|
0
deploy/common/dashboards/.gitkeep
Normal file
0
deploy/common/dashboards/.gitkeep
Normal file
@ -12,10 +12,10 @@ alerting:
|
|||||||
- alertmanager:9093
|
- alertmanager:9093
|
||||||
|
|
||||||
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
|
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
|
||||||
rule_files:
|
rule_files: []
|
||||||
# - "first_rules.yml"
|
# - "first_rules.yml"
|
||||||
# - "second_rules.yml"
|
# - "second_rules.yml"
|
||||||
- 'alerts.yml'
|
# - 'alerts.yml'
|
||||||
|
|
||||||
# A scrape configuration containing exactly one endpoint to scrape:
|
# A scrape configuration containing exactly one endpoint to scrape:
|
||||||
# Here it's Prometheus itself.
|
# Here it's Prometheus itself.
|
0
deploy/docker-swarm/clickhouse-setup/.gitkeep
Normal file
0
deploy/docker-swarm/clickhouse-setup/.gitkeep
Normal file
@ -1,35 +0,0 @@
|
|||||||
global:
|
|
||||||
resolve_timeout: 1m
|
|
||||||
slack_api_url: 'https://hooks.slack.com/services/xxx'
|
|
||||||
|
|
||||||
route:
|
|
||||||
receiver: 'slack-notifications'
|
|
||||||
|
|
||||||
receivers:
|
|
||||||
- name: 'slack-notifications'
|
|
||||||
slack_configs:
|
|
||||||
- channel: '#alerts'
|
|
||||||
send_resolved: true
|
|
||||||
icon_url: https://avatars3.githubusercontent.com/u/3380462
|
|
||||||
title: |-
|
|
||||||
[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .CommonLabels.alertname }} for {{ .CommonLabels.job }}
|
|
||||||
{{- if gt (len .CommonLabels) (len .GroupLabels) -}}
|
|
||||||
{{" "}}(
|
|
||||||
{{- with .CommonLabels.Remove .GroupLabels.Names }}
|
|
||||||
{{- range $index, $label := .SortedPairs -}}
|
|
||||||
{{ if $index }}, {{ end }}
|
|
||||||
{{- $label.Name }}="{{ $label.Value -}}"
|
|
||||||
{{- end }}
|
|
||||||
{{- end -}}
|
|
||||||
)
|
|
||||||
{{- end }}
|
|
||||||
text: >-
|
|
||||||
{{ range .Alerts -}}
|
|
||||||
*Alert:* {{ .Annotations.title }}{{ if .Labels.severity }} - `{{ .Labels.severity }}`{{ end }}
|
|
||||||
|
|
||||||
*Description:* {{ .Annotations.description }}
|
|
||||||
|
|
||||||
*Details:*
|
|
||||||
{{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}`
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
@ -1,11 +0,0 @@
|
|||||||
groups:
|
|
||||||
- name: ExampleCPULoadGroup
|
|
||||||
rules:
|
|
||||||
- alert: HighCpuLoad
|
|
||||||
expr: system_cpu_load_average_1m > 0.1
|
|
||||||
for: 0m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: High CPU load
|
|
||||||
description: "CPU load is > 0.1\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
File diff suppressed because it is too large
Load Diff
@ -1,251 +0,0 @@
|
|||||||
version: "3.9"
|
|
||||||
x-clickhouse-defaults: &clickhouse-defaults
|
|
||||||
image: clickhouse/clickhouse-server:24.1.2-alpine
|
|
||||||
tty: true
|
|
||||||
deploy:
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
depends_on:
|
|
||||||
- zookeeper-1
|
|
||||||
# - zookeeper-2
|
|
||||||
# - zookeeper-3
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
healthcheck:
|
|
||||||
# "clickhouse", "client", "-u ${CLICKHOUSE_USER}", "--password ${CLICKHOUSE_PASSWORD}", "-q 'SELECT 1'"
|
|
||||||
test: ["CMD", "wget", "--spider", "-q", "0.0.0.0:8123/ping"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
ulimits:
|
|
||||||
nproc: 65535
|
|
||||||
nofile:
|
|
||||||
soft: 262144
|
|
||||||
hard: 262144
|
|
||||||
x-db-depend: &db-depend
|
|
||||||
depends_on:
|
|
||||||
- clickhouse
|
|
||||||
- otel-collector-migrator
|
|
||||||
# - clickhouse-2
|
|
||||||
# - clickhouse-3
|
|
||||||
services:
|
|
||||||
zookeeper-1:
|
|
||||||
image: bitnami/zookeeper:3.7.1
|
|
||||||
hostname: zookeeper-1
|
|
||||||
user: root
|
|
||||||
ports:
|
|
||||||
- "2181:2181"
|
|
||||||
- "2888:2888"
|
|
||||||
- "3888:3888"
|
|
||||||
volumes:
|
|
||||||
- ./data/zookeeper-1:/bitnami/zookeeper
|
|
||||||
environment:
|
|
||||||
- ZOO_SERVER_ID=1
|
|
||||||
# - ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888
|
|
||||||
- ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
- ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
# zookeeper-2:
|
|
||||||
# image: bitnami/zookeeper:3.7.0
|
|
||||||
# hostname: zookeeper-2
|
|
||||||
# user: root
|
|
||||||
# ports:
|
|
||||||
# - "2182:2181"
|
|
||||||
# - "2889:2888"
|
|
||||||
# - "3889:3888"
|
|
||||||
# volumes:
|
|
||||||
# - ./data/zookeeper-2:/bitnami/zookeeper
|
|
||||||
# environment:
|
|
||||||
# - ZOO_SERVER_ID=2
|
|
||||||
# - ZOO_SERVERS=zookeeper-1:2888:3888,0.0.0.0:2888:3888,zookeeper-3:2888:3888
|
|
||||||
# - ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
# - ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
|
|
||||||
# zookeeper-3:
|
|
||||||
# image: bitnami/zookeeper:3.7.0
|
|
||||||
# hostname: zookeeper-3
|
|
||||||
# user: root
|
|
||||||
# ports:
|
|
||||||
# - "2183:2181"
|
|
||||||
# - "2890:2888"
|
|
||||||
# - "3890:3888"
|
|
||||||
# volumes:
|
|
||||||
# - ./data/zookeeper-3:/bitnami/zookeeper
|
|
||||||
# environment:
|
|
||||||
# - ZOO_SERVER_ID=3
|
|
||||||
# - ZOO_SERVERS=zookeeper-1:2888:3888,zookeeper-2:2888:3888,0.0.0.0:2888:3888
|
|
||||||
# - ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
# - ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
clickhouse:
|
|
||||||
!!merge <<: *clickhouse-defaults
|
|
||||||
hostname: clickhouse
|
|
||||||
# ports:
|
|
||||||
# - "9000:9000"
|
|
||||||
# - "8123:8123"
|
|
||||||
# - "9181:9181"
|
|
||||||
volumes:
|
|
||||||
- ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
- ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
- ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
- ./data/clickhouse/:/var/lib/clickhouse/
|
|
||||||
# clickhouse-2:
|
|
||||||
# <<: *clickhouse-defaults
|
|
||||||
# hostname: clickhouse-2
|
|
||||||
# ports:
|
|
||||||
# - "9001:9000"
|
|
||||||
# - "8124:8123"
|
|
||||||
# - "9182:9181"
|
|
||||||
# volumes:
|
|
||||||
# - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
# - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
# - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
# - ./data/clickhouse-2/:/var/lib/clickhouse/
|
|
||||||
|
|
||||||
# clickhouse-3:
|
|
||||||
# <<: *clickhouse-defaults
|
|
||||||
# hostname: clickhouse-3
|
|
||||||
# ports:
|
|
||||||
# - "9002:9000"
|
|
||||||
# - "8125:8123"
|
|
||||||
# - "9183:9181"
|
|
||||||
# volumes:
|
|
||||||
# - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
# - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
# - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
# - ./data/clickhouse-3/:/var/lib/clickhouse/
|
|
||||||
alertmanager:
|
|
||||||
image: signoz/alertmanager:0.23.7
|
|
||||||
volumes:
|
|
||||||
- ./data/alertmanager:/data
|
|
||||||
command:
|
|
||||||
- --queryService.url=http://query-service:8085
|
|
||||||
- --storage.path=/data
|
|
||||||
depends_on:
|
|
||||||
- query-service
|
|
||||||
deploy:
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
query-service:
|
|
||||||
image: signoz/query-service:0.69.0
|
|
||||||
command: ["-config=/root/config/prometheus.yml", "--use-logs-new-schema=true", "--use-trace-new-schema=true"]
|
|
||||||
# ports:
|
|
||||||
# - "6060:6060" # pprof port
|
|
||||||
# - "8080:8080" # query-service port
|
|
||||||
volumes:
|
|
||||||
- ./prometheus.yml:/root/config/prometheus.yml
|
|
||||||
- ../dashboards:/root/config/dashboards
|
|
||||||
- ./data/signoz/:/var/lib/signoz/
|
|
||||||
environment:
|
|
||||||
- ClickHouseUrl=tcp://clickhouse:9000
|
|
||||||
- ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/
|
|
||||||
- SIGNOZ_LOCAL_DB_PATH=/var/lib/signoz/signoz.db
|
|
||||||
- DASHBOARDS_PATH=/root/config/dashboards
|
|
||||||
- STORAGE=clickhouse
|
|
||||||
- GODEBUG=netdns=go
|
|
||||||
- TELEMETRY_ENABLED=true
|
|
||||||
- DEPLOYMENT_TYPE=docker-swarm
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "wget", "--spider", "-q", "localhost:8080/api/v1/health"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
deploy:
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
!!merge <<: *db-depend
|
|
||||||
frontend:
|
|
||||||
image: signoz/frontend:0.69.0
|
|
||||||
deploy:
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
depends_on:
|
|
||||||
- alertmanager
|
|
||||||
- query-service
|
|
||||||
ports:
|
|
||||||
- "3301:3301"
|
|
||||||
volumes:
|
|
||||||
- ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf
|
|
||||||
otel-collector:
|
|
||||||
image: signoz/signoz-otel-collector:0.111.24
|
|
||||||
command: ["--config=/etc/otel-collector-config.yaml", "--manager-config=/etc/manager-config.yaml", "--feature-gates=-pkg.translator.prometheus.NormalizeName"]
|
|
||||||
user: root # required for reading docker container logs
|
|
||||||
volumes:
|
|
||||||
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
|
||||||
- ./otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
|
||||||
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
||||||
- /:/hostfs:ro
|
|
||||||
environment:
|
|
||||||
- OTEL_RESOURCE_ATTRIBUTES=host.name={{.Node.Hostname}},os.type={{.Node.Platform.OS}},dockerswarm.service.name={{.Service.Name}},dockerswarm.task.name={{.Task.Name}}
|
|
||||||
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
|
||||||
ports:
|
|
||||||
# - "1777:1777" # pprof extension
|
|
||||||
- "4317:4317" # OTLP gRPC receiver
|
|
||||||
- "4318:4318" # OTLP HTTP receiver
|
|
||||||
# - "8888:8888" # OtelCollector internal metrics
|
|
||||||
# - "8889:8889" # signoz spanmetrics exposed by the agent
|
|
||||||
# - "9411:9411" # Zipkin port
|
|
||||||
# - "13133:13133" # Health check extension
|
|
||||||
# - "14250:14250" # Jaeger gRPC
|
|
||||||
# - "14268:14268" # Jaeger thrift HTTP
|
|
||||||
# - "55678:55678" # OpenCensus receiver
|
|
||||||
# - "55679:55679" # zPages extension
|
|
||||||
deploy:
|
|
||||||
mode: global
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
depends_on:
|
|
||||||
- clickhouse
|
|
||||||
- otel-collector-migrator
|
|
||||||
- query-service
|
|
||||||
otel-collector-migrator:
|
|
||||||
image: signoz/signoz-schema-migrator:0.111.24
|
|
||||||
deploy:
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
delay: 5s
|
|
||||||
command:
|
|
||||||
- "sync"
|
|
||||||
- "--dsn=tcp://clickhouse:9000"
|
|
||||||
- "--up="
|
|
||||||
depends_on:
|
|
||||||
- clickhouse
|
|
||||||
# - clickhouse-2
|
|
||||||
# - clickhouse-3
|
|
||||||
logspout:
|
|
||||||
image: "gliderlabs/logspout:v3.2.14"
|
|
||||||
volumes:
|
|
||||||
- /etc/hostname:/etc/host_hostname:ro
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
command: syslog+tcp://otel-collector:2255
|
|
||||||
depends_on:
|
|
||||||
- otel-collector
|
|
||||||
deploy:
|
|
||||||
mode: global
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
hotrod:
|
|
||||||
image: jaegertracing/example-hotrod:1.30
|
|
||||||
command: ["all"]
|
|
||||||
environment:
|
|
||||||
- JAEGER_ENDPOINT=http://otel-collector:14268/api/traces
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
load-hotrod:
|
|
||||||
image: "signoz/locust:1.2.3"
|
|
||||||
hostname: load-hotrod
|
|
||||||
environment:
|
|
||||||
ATTACKED_HOST: http://hotrod:8080
|
|
||||||
LOCUST_MODE: standalone
|
|
||||||
NO_PROXY: standalone
|
|
||||||
TASK_DELAY_FROM: 5
|
|
||||||
TASK_DELAY_TO: 30
|
|
||||||
QUIET_MODE: "${QUIET_MODE:-false}"
|
|
||||||
LOCUST_OPTS: "--headless -u 10 -r 1"
|
|
||||||
volumes:
|
|
||||||
- ../common/locust-scripts:/locust
|
|
@ -1,31 +0,0 @@
|
|||||||
CREATE TABLE IF NOT EXISTS signoz_index (
|
|
||||||
timestamp DateTime64(9) CODEC(Delta, ZSTD(1)),
|
|
||||||
traceID String CODEC(ZSTD(1)),
|
|
||||||
spanID String CODEC(ZSTD(1)),
|
|
||||||
parentSpanID String CODEC(ZSTD(1)),
|
|
||||||
serviceName LowCardinality(String) CODEC(ZSTD(1)),
|
|
||||||
name LowCardinality(String) CODEC(ZSTD(1)),
|
|
||||||
kind Int32 CODEC(ZSTD(1)),
|
|
||||||
durationNano UInt64 CODEC(ZSTD(1)),
|
|
||||||
tags Array(String) CODEC(ZSTD(1)),
|
|
||||||
tagsKeys Array(String) CODEC(ZSTD(1)),
|
|
||||||
tagsValues Array(String) CODEC(ZSTD(1)),
|
|
||||||
statusCode Int64 CODEC(ZSTD(1)),
|
|
||||||
references String CODEC(ZSTD(1)),
|
|
||||||
externalHttpMethod Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
externalHttpUrl Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
component Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
dbSystem Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
dbName Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
dbOperation Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
peerService Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
INDEX idx_traceID traceID TYPE bloom_filter GRANULARITY 4,
|
|
||||||
INDEX idx_service serviceName TYPE bloom_filter GRANULARITY 4,
|
|
||||||
INDEX idx_name name TYPE bloom_filter GRANULARITY 4,
|
|
||||||
INDEX idx_kind kind TYPE minmax GRANULARITY 4,
|
|
||||||
INDEX idx_tagsKeys tagsKeys TYPE bloom_filter(0.01) GRANULARITY 64,
|
|
||||||
INDEX idx_tagsValues tagsValues TYPE bloom_filter(0.01) GRANULARITY 64,
|
|
||||||
INDEX idx_duration durationNano TYPE minmax GRANULARITY 1
|
|
||||||
) ENGINE MergeTree()
|
|
||||||
PARTITION BY toDate(timestamp)
|
|
||||||
ORDER BY (serviceName, -toUnixTimestamp(timestamp))
|
|
@ -1,51 +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 / {
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
# 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;
|
|
||||||
}
|
|
||||||
}
|
|
265
deploy/docker-swarm/docker-compose.ha.yaml
Normal file
265
deploy/docker-swarm/docker-compose.ha.yaml
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
x-clickhouse-defaults: &clickhouse-defaults
|
||||||
|
<<: *common
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
tty: true
|
||||||
|
deploy:
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9363"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
depends_on:
|
||||||
|
- zookeeper-1
|
||||||
|
- zookeeper-2
|
||||||
|
- zookeeper-3
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- 0.0.0.0:8123/ping
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
ulimits:
|
||||||
|
nproc: 65535
|
||||||
|
nofile:
|
||||||
|
soft: 262144
|
||||||
|
hard: 262144
|
||||||
|
x-zookeeper-defaults: &zookeeper-defaults
|
||||||
|
<<: *common
|
||||||
|
image: bitnami/zookeeper:3.7.1
|
||||||
|
user: root
|
||||||
|
deploy:
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9141"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
x-db-depend: &db-depend
|
||||||
|
<<: *common
|
||||||
|
depends_on:
|
||||||
|
- clickhouse
|
||||||
|
- clickhouse-2
|
||||||
|
- clickhouse-3
|
||||||
|
- schema-migrator
|
||||||
|
services:
|
||||||
|
init-clickhouse:
|
||||||
|
<<: *common
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
version="v0.0.1"
|
||||||
|
node_os=$$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||||
|
node_arch=$$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)
|
||||||
|
echo "Fetching histogram-binary for $${node_os}/$${node_arch}"
|
||||||
|
cd /tmp
|
||||||
|
wget -O histogram-quantile.tar.gz "https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2F$${version}/histogram-quantile_$${node_os}_$${node_arch}.tar.gz"
|
||||||
|
tar -xvzf histogram-quantile.tar.gz
|
||||||
|
mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
zookeeper-1:
|
||||||
|
<<: *zookeeper-defaults
|
||||||
|
# ports:
|
||||||
|
# - "2181:2181"
|
||||||
|
# - "2888:2888"
|
||||||
|
# - "3888:3888"
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/zookeeper-1:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=1
|
||||||
|
- ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
zookeeper-2:
|
||||||
|
<<: *zookeeper-defaults
|
||||||
|
# ports:
|
||||||
|
# - "2182:2181"
|
||||||
|
# - "2889:2888"
|
||||||
|
# - "3889:3888"
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/zookeeper-2:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=2
|
||||||
|
- ZOO_SERVERS=zookeeper-1:2888:3888,0.0.0.0:2888:3888,zookeeper-3:2888:3888
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
zookeeper-3:
|
||||||
|
<<: *zookeeper-defaults
|
||||||
|
# ports:
|
||||||
|
# - "2183:2181"
|
||||||
|
# - "2890:2888"
|
||||||
|
# - "3890:3888"
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/zookeeper-3:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=3
|
||||||
|
- ZOO_SERVERS=zookeeper-1:2888:3888,zookeeper-2:2888:3888,0.0.0.0:2888:3888
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
clickhouse:
|
||||||
|
<<: *clickhouse-defaults
|
||||||
|
# TODO: needed for schema-migrator to work, remove this redundancy once we have a better solution
|
||||||
|
hostname: clickhouse
|
||||||
|
# ports:
|
||||||
|
# - "9000:9000"
|
||||||
|
# - "8123:8123"
|
||||||
|
# - "9181:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- ./clickhouse-setup/data/clickhouse/:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
clickhouse-2:
|
||||||
|
<<: *clickhouse-defaults
|
||||||
|
hostname: clickhouse-2
|
||||||
|
# ports:
|
||||||
|
# - "9001:9000"
|
||||||
|
# - "8124:8123"
|
||||||
|
# - "9182:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- ./clickhouse-setup/data/clickhouse-2/:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
clickhouse-3:
|
||||||
|
<<: *clickhouse-defaults
|
||||||
|
hostname: clickhouse-3
|
||||||
|
# ports:
|
||||||
|
# - "9002:9000"
|
||||||
|
# - "8125:8123"
|
||||||
|
# - "9183:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../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:
|
||||||
|
<<: *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:
|
||||||
|
<<: *db-depend
|
||||||
|
image: signoz/query-service:0.69.0
|
||||||
|
command:
|
||||||
|
- --config=/root/config/prometheus.yml
|
||||||
|
- --use-logs-new-schema=true
|
||||||
|
- --use-trace-new-schema=true
|
||||||
|
# ports:
|
||||||
|
# - "8080:8080" # signoz port
|
||||||
|
# - "6060:6060" # pprof port
|
||||||
|
volumes:
|
||||||
|
- ../common/signoz/prometheus.yml:/root/config/prometheus.yml
|
||||||
|
- ../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_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
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- localhost:8080/api/v1/health
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
frontend:
|
||||||
|
<<: *common
|
||||||
|
image: signoz/frontend:0.69.0
|
||||||
|
depends_on:
|
||||||
|
- alertmanager
|
||||||
|
- query-service
|
||||||
|
ports:
|
||||||
|
- "3301:3301"
|
||||||
|
volumes:
|
||||||
|
- ../common/signoz/nginx-config.conf:/etc/nginx/conf.d/default.conf
|
||||||
|
otel-collector:
|
||||||
|
<<: *db-depend
|
||||||
|
image: signoz/signoz-otel-collector:0.111.24
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
- --manager-config=/etc/manager-config.yaml
|
||||||
|
- --copy-path=/var/tmp/collector-config.yaml
|
||||||
|
- --feature-gates=-pkg.translator.prometheus.NormalizeName
|
||||||
|
volumes:
|
||||||
|
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- ../common/signoz/otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
||||||
|
environment:
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name={{.Node.Hostname}},os.type={{.Node.Platform.OS}}
|
||||||
|
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
||||||
|
ports:
|
||||||
|
# - "1777:1777" # pprof extension
|
||||||
|
- "4317:4317" # OTLP gRPC receiver
|
||||||
|
- "4318:4318" # OTLP HTTP receiver
|
||||||
|
deploy:
|
||||||
|
replicas: 3
|
||||||
|
depends_on:
|
||||||
|
- clickhouse
|
||||||
|
- schema-migrator
|
||||||
|
- query-service
|
||||||
|
schema-migrator:
|
||||||
|
<<: *common
|
||||||
|
image: signoz/signoz-schema-migrator:0.111.24
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
delay: 5s
|
||||||
|
entrypoint: sh
|
||||||
|
command:
|
||||||
|
- -c
|
||||||
|
- "/signoz-schema-migrator sync --dsn=tcp://clickhouse:9000 --up= && /signoz-schema-migrator async --dsn=tcp://clickhouse:9000 --up="
|
||||||
|
depends_on:
|
||||||
|
- clickhouse
|
||||||
|
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
201
deploy/docker-swarm/docker-compose.yaml
Normal file
201
deploy/docker-swarm/docker-compose.yaml
Normal file
@ -0,0 +1,201 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
x-clickhouse-defaults: &clickhouse-defaults
|
||||||
|
<<: *common
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
tty: true
|
||||||
|
deploy:
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9363"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
depends_on:
|
||||||
|
- init-clickhouse
|
||||||
|
- zookeeper-1
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- 0.0.0.0:8123/ping
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
ulimits:
|
||||||
|
nproc: 65535
|
||||||
|
nofile:
|
||||||
|
soft: 262144
|
||||||
|
hard: 262144
|
||||||
|
x-zookeeper-defaults: &zookeeper-defaults
|
||||||
|
<<: *common
|
||||||
|
image: bitnami/zookeeper:3.7.1
|
||||||
|
user: root
|
||||||
|
deploy:
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9141"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
x-db-depend: &db-depend
|
||||||
|
<<: *common
|
||||||
|
depends_on:
|
||||||
|
- clickhouse
|
||||||
|
- schema-migrator
|
||||||
|
services:
|
||||||
|
init-clickhouse:
|
||||||
|
<<: *common
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
version="v0.0.1"
|
||||||
|
node_os=$$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||||
|
node_arch=$$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)
|
||||||
|
echo "Fetching histogram-binary for $${node_os}/$${node_arch}"
|
||||||
|
cd /tmp
|
||||||
|
wget -O histogram-quantile.tar.gz "https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2F$${version}/histogram-quantile_$${node_os}_$${node_arch}.tar.gz"
|
||||||
|
tar -xvzf histogram-quantile.tar.gz
|
||||||
|
mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
zookeeper-1:
|
||||||
|
<<: *zookeeper-defaults
|
||||||
|
# ports:
|
||||||
|
# - "2181:2181"
|
||||||
|
# - "2888:2888"
|
||||||
|
# - "3888:3888"
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/zookeeper-1:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=1
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
clickhouse:
|
||||||
|
<<: *clickhouse-defaults
|
||||||
|
# TODO: needed for clickhouse TCP connectio
|
||||||
|
hostname: clickhouse
|
||||||
|
# ports:
|
||||||
|
# - "9000:9000"
|
||||||
|
# - "8123:8123"
|
||||||
|
# - "9181:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- ./clickhouse-setup/data/clickhouse/:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
alertmanager:
|
||||||
|
<<: *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:
|
||||||
|
<<: *db-depend
|
||||||
|
image: signoz/query-service:0.69.0
|
||||||
|
command:
|
||||||
|
- --config=/root/config/prometheus.yml
|
||||||
|
- --use-logs-new-schema=true
|
||||||
|
- --use-trace-new-schema=true
|
||||||
|
# ports:
|
||||||
|
# - "8080:8080" # signoz port
|
||||||
|
# - "6060:6060" # pprof port
|
||||||
|
volumes:
|
||||||
|
- ../common/signoz/prometheus.yml:/root/config/prometheus.yml
|
||||||
|
- ../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_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
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- localhost:8080/api/v1/health
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
frontend:
|
||||||
|
<<: *common
|
||||||
|
image: signoz/frontend:0.69.0
|
||||||
|
depends_on:
|
||||||
|
- alertmanager
|
||||||
|
- query-service
|
||||||
|
ports:
|
||||||
|
- "3301:3301"
|
||||||
|
volumes:
|
||||||
|
- ../common/signoz/nginx-config.conf:/etc/nginx/conf.d/default.conf
|
||||||
|
otel-collector:
|
||||||
|
<<: *db-depend
|
||||||
|
image: signoz/signoz-otel-collector:0.111.24
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
- --manager-config=/etc/manager-config.yaml
|
||||||
|
- --copy-path=/var/tmp/collector-config.yaml
|
||||||
|
- --feature-gates=-pkg.translator.prometheus.NormalizeName
|
||||||
|
volumes:
|
||||||
|
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- ../common/signoz/otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
||||||
|
environment:
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name={{.Node.Hostname}},os.type={{.Node.Platform.OS}}
|
||||||
|
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
||||||
|
ports:
|
||||||
|
# - "1777:1777" # pprof extension
|
||||||
|
- "4317:4317" # OTLP gRPC receiver
|
||||||
|
- "4318:4318" # OTLP HTTP receiver
|
||||||
|
deploy:
|
||||||
|
replicas: 3
|
||||||
|
depends_on:
|
||||||
|
- clickhouse
|
||||||
|
- schema-migrator
|
||||||
|
- query-service
|
||||||
|
schema-migrator:
|
||||||
|
<<: *common
|
||||||
|
image: signoz/signoz-schema-migrator:0.111.24
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
delay: 5s
|
||||||
|
entrypoint: sh
|
||||||
|
command:
|
||||||
|
- -c
|
||||||
|
- "/signoz-schema-migrator sync --dsn=tcp://clickhouse:9000 --up= && /signoz-schema-migrator async --dsn=tcp://clickhouse:9000 --up="
|
||||||
|
depends_on:
|
||||||
|
- clickhouse
|
||||||
|
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
38
deploy/docker-swarm/generator/hotrod/docker-compose.yaml
Normal file
38
deploy/docker-swarm/generator/hotrod/docker-compose.yaml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
extra_hosts:
|
||||||
|
- host.docker.internal:host-gateway
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
services:
|
||||||
|
hotrod:
|
||||||
|
<<: *common
|
||||||
|
image: jaegertracing/example-hotrod:1.61.0
|
||||||
|
command: [ "all" ]
|
||||||
|
environment:
|
||||||
|
- OTEL_EXPORTER_OTLP_ENDPOINT=http://host.docker.internal:4318 #
|
||||||
|
load-hotrod:
|
||||||
|
<<: *common
|
||||||
|
image: "signoz/locust:1.2.3"
|
||||||
|
environment:
|
||||||
|
ATTACKED_HOST: http://hotrod:8080
|
||||||
|
LOCUST_MODE: standalone
|
||||||
|
NO_PROXY: standalone
|
||||||
|
TASK_DELAY_FROM: 5
|
||||||
|
TASK_DELAY_TO: 30
|
||||||
|
QUIET_MODE: "${QUIET_MODE:-false}"
|
||||||
|
LOCUST_OPTS: "--headless -u 10 -r 1"
|
||||||
|
volumes:
|
||||||
|
- ../../../common/locust-scripts:/locust
|
||||||
|
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
||||||
|
external: true
|
69
deploy/docker-swarm/generator/infra/docker-compose.yaml
Normal file
69
deploy/docker-swarm/generator/infra/docker-compose.yaml
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
extra_hosts:
|
||||||
|
- host.docker.internal:host-gateway
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
deploy:
|
||||||
|
mode: global
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
services:
|
||||||
|
otel-agent:
|
||||||
|
<<: *common
|
||||||
|
image: otel/opentelemetry-collector-contrib:0.111.0
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
volumes:
|
||||||
|
- ./otel-agent-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- /:/hostfs:ro
|
||||||
|
environment:
|
||||||
|
- SIGNOZ_COLLECTOR_ENDPOINT=http://host.docker.internal:4317 # In case of external SigNoz or cloud, update the endpoint and access token
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name={{.Node.Hostname}},os.type={{.Node.Platform.OS}}
|
||||||
|
# - SIGNOZ_ACCESS_TOKEN="<your-access-token>"
|
||||||
|
# Before exposing the ports, make sure the ports are not used by other services
|
||||||
|
# ports:
|
||||||
|
# - "4317:4317"
|
||||||
|
# - "4318:4318"
|
||||||
|
otel-metrics:
|
||||||
|
<<: *common
|
||||||
|
image: otel/opentelemetry-collector-contrib:0.111.0
|
||||||
|
user: 0:0 # If you have security concerns, you can replace this with your `UID:GID` that has necessary permissions to docker.sock
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
volumes:
|
||||||
|
- ./otel-metrics-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
environment:
|
||||||
|
- SIGNOZ_COLLECTOR_ENDPOINT=http://host.docker.internal:4317 # In case of external SigNoz or cloud, update the endpoint and access token
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name={{.Node.Hostname}},os.type={{.Node.Platform.OS}}
|
||||||
|
# - SIGNOZ_ACCESS_TOKEN="<your-access-token>"
|
||||||
|
# Before exposing the ports, make sure the ports are not used by other services
|
||||||
|
# ports:
|
||||||
|
# - "4317:4317"
|
||||||
|
# - "4318:4318"
|
||||||
|
deploy:
|
||||||
|
mode: replicated
|
||||||
|
replicas: 1
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- node.role == manager
|
||||||
|
logspout:
|
||||||
|
<<: *common
|
||||||
|
image: "gliderlabs/logspout:v3.2.14"
|
||||||
|
command: syslog+tcp://otel-agent:2255
|
||||||
|
user: root
|
||||||
|
volumes:
|
||||||
|
- /etc/hostname:/etc/host_hostname:ro
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
depends_on:
|
||||||
|
- otel-agent
|
||||||
|
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
||||||
|
external: true
|
102
deploy/docker-swarm/generator/infra/otel-agent-config.yaml
Normal file
102
deploy/docker-swarm/generator/infra/otel-agent-config.yaml
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
receivers:
|
||||||
|
hostmetrics:
|
||||||
|
collection_interval: 30s
|
||||||
|
root_path: /hostfs
|
||||||
|
scrapers:
|
||||||
|
cpu: {}
|
||||||
|
load: {}
|
||||||
|
memory: {}
|
||||||
|
disk: {}
|
||||||
|
filesystem: {}
|
||||||
|
network: {}
|
||||||
|
otlp:
|
||||||
|
protocols:
|
||||||
|
grpc:
|
||||||
|
endpoint: 0.0.0.0:4317
|
||||||
|
http:
|
||||||
|
endpoint: 0.0.0.0:4318
|
||||||
|
prometheus:
|
||||||
|
config:
|
||||||
|
global:
|
||||||
|
scrape_interval: 60s
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: otel-agent
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
- localhost:8888
|
||||||
|
labels:
|
||||||
|
job_name: otel-agent
|
||||||
|
tcplog/docker:
|
||||||
|
listen_address: "0.0.0.0:2255"
|
||||||
|
operators:
|
||||||
|
- type: regex_parser
|
||||||
|
regex: '^<([0-9]+)>[0-9]+ (?P<timestamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?) (?P<container_id>\S+) (?P<container_name>\S+) [0-9]+ - -( (?P<body>.*))?'
|
||||||
|
timestamp:
|
||||||
|
parse_from: attributes.timestamp
|
||||||
|
layout: '%Y-%m-%dT%H:%M:%S.%LZ'
|
||||||
|
- type: move
|
||||||
|
from: attributes["body"]
|
||||||
|
to: body
|
||||||
|
- type: remove
|
||||||
|
field: attributes.timestamp
|
||||||
|
# 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)).*"'
|
||||||
|
processors:
|
||||||
|
batch:
|
||||||
|
send_batch_size: 10000
|
||||||
|
send_batch_max_size: 11000
|
||||||
|
timeout: 10s
|
||||||
|
resourcedetection:
|
||||||
|
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
|
||||||
|
detectors:
|
||||||
|
# - ec2
|
||||||
|
# - gcp
|
||||||
|
# - azure
|
||||||
|
- env
|
||||||
|
- system
|
||||||
|
timeout: 2s
|
||||||
|
extensions:
|
||||||
|
health_check:
|
||||||
|
endpoint: 0.0.0.0:13133
|
||||||
|
pprof:
|
||||||
|
endpoint: 0.0.0.0:1777
|
||||||
|
exporters:
|
||||||
|
otlp:
|
||||||
|
endpoint: ${env:SIGNOZ_COLLECTOR_ENDPOINT}
|
||||||
|
tls:
|
||||||
|
insecure: true
|
||||||
|
headers:
|
||||||
|
signoz-access-token: ${env:SIGNOZ_ACCESS_TOKEN}
|
||||||
|
# debug: {}
|
||||||
|
service:
|
||||||
|
telemetry:
|
||||||
|
logs:
|
||||||
|
encoding: json
|
||||||
|
metrics:
|
||||||
|
address: 0.0.0.0:8888
|
||||||
|
extensions:
|
||||||
|
- health_check
|
||||||
|
- pprof
|
||||||
|
pipelines:
|
||||||
|
traces:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
metrics:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
metrics/hostmetrics:
|
||||||
|
receivers: [hostmetrics]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
metrics/prometheus:
|
||||||
|
receivers: [prometheus]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
logs:
|
||||||
|
receivers: [otlp, tcplog/docker]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
103
deploy/docker-swarm/generator/infra/otel-metrics-config.yaml
Normal file
103
deploy/docker-swarm/generator/infra/otel-metrics-config.yaml
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
receivers:
|
||||||
|
prometheus:
|
||||||
|
config:
|
||||||
|
global:
|
||||||
|
scrape_interval: 60s
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: otel-metrics
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
- localhost:8888
|
||||||
|
labels:
|
||||||
|
job_name: otel-metrics
|
||||||
|
# For Docker daemon metrics to be scraped, it must be configured to expose
|
||||||
|
# Prometheus metrics, as documented here: https://docs.docker.com/config/daemon/prometheus/
|
||||||
|
# - job_name: docker-daemon
|
||||||
|
# dockerswarm_sd_configs:
|
||||||
|
# - host: unix:///var/run/docker.sock
|
||||||
|
# role: nodes
|
||||||
|
# relabel_configs:
|
||||||
|
# - source_labels: [__meta_dockerswarm_node_address]
|
||||||
|
# target_label: __address__
|
||||||
|
# replacement: $1:9323
|
||||||
|
- job_name: "dockerswarm"
|
||||||
|
dockerswarm_sd_configs:
|
||||||
|
- host: unix:///var/run/docker.sock
|
||||||
|
role: tasks
|
||||||
|
relabel_configs:
|
||||||
|
- action: keep
|
||||||
|
regex: running
|
||||||
|
source_labels:
|
||||||
|
- __meta_dockerswarm_task_desired_state
|
||||||
|
- action: keep
|
||||||
|
regex: true
|
||||||
|
source_labels:
|
||||||
|
- __meta_dockerswarm_service_label_signoz_io_scrape
|
||||||
|
- regex: ([^:]+)(?::\d+)?
|
||||||
|
replacement: $1
|
||||||
|
source_labels:
|
||||||
|
- __address__
|
||||||
|
target_label: swarm_container_ip
|
||||||
|
- separator: .
|
||||||
|
source_labels:
|
||||||
|
- __meta_dockerswarm_service_name
|
||||||
|
- __meta_dockerswarm_task_slot
|
||||||
|
- __meta_dockerswarm_task_id
|
||||||
|
target_label: swarm_container_name
|
||||||
|
- target_label: __address__
|
||||||
|
source_labels:
|
||||||
|
- swarm_container_ip
|
||||||
|
- __meta_dockerswarm_service_label_signoz_io_port
|
||||||
|
separator: ":"
|
||||||
|
- source_labels:
|
||||||
|
- __meta_dockerswarm_service_label_signoz_io_path
|
||||||
|
target_label: __metrics_path__
|
||||||
|
- source_labels:
|
||||||
|
- __meta_dockerswarm_service_label_com_docker_stack_namespace
|
||||||
|
target_label: namespace
|
||||||
|
- source_labels:
|
||||||
|
- __meta_dockerswarm_service_name
|
||||||
|
target_label: service_name
|
||||||
|
- source_labels:
|
||||||
|
- __meta_dockerswarm_task_id
|
||||||
|
target_label: service_instance_id
|
||||||
|
- source_labels:
|
||||||
|
- __meta_dockerswarm_node_hostname
|
||||||
|
target_label: host_name
|
||||||
|
processors:
|
||||||
|
batch:
|
||||||
|
send_batch_size: 10000
|
||||||
|
send_batch_max_size: 11000
|
||||||
|
timeout: 10s
|
||||||
|
resourcedetection:
|
||||||
|
detectors:
|
||||||
|
- env
|
||||||
|
- system
|
||||||
|
timeout: 2s
|
||||||
|
extensions:
|
||||||
|
health_check:
|
||||||
|
endpoint: 0.0.0.0:13133
|
||||||
|
pprof:
|
||||||
|
endpoint: 0.0.0.0:1777
|
||||||
|
exporters:
|
||||||
|
otlp:
|
||||||
|
endpoint: ${env:SIGNOZ_COLLECTOR_ENDPOINT}
|
||||||
|
tls:
|
||||||
|
insecure: true
|
||||||
|
headers:
|
||||||
|
signoz-access-token: ${env:SIGNOZ_ACCESS_TOKEN}
|
||||||
|
# debug: {}
|
||||||
|
service:
|
||||||
|
telemetry:
|
||||||
|
logs:
|
||||||
|
encoding: json
|
||||||
|
metrics:
|
||||||
|
address: 0.0.0.0:8888
|
||||||
|
extensions:
|
||||||
|
- health_check
|
||||||
|
- pprof
|
||||||
|
pipelines:
|
||||||
|
metrics:
|
||||||
|
receivers: [prometheus]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
@ -1,85 +1,29 @@
|
|||||||
receivers:
|
receivers:
|
||||||
tcplog/docker:
|
|
||||||
listen_address: "0.0.0.0:2255"
|
|
||||||
operators:
|
|
||||||
- type: regex_parser
|
|
||||||
regex: '^<([0-9]+)>[0-9]+ (?P<timestamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?) (?P<container_id>\S+) (?P<container_name>\S+) [0-9]+ - -( (?P<body>.*))?'
|
|
||||||
timestamp:
|
|
||||||
parse_from: attributes.timestamp
|
|
||||||
layout: '%Y-%m-%dT%H:%M:%S.%LZ'
|
|
||||||
- type: move
|
|
||||||
from: attributes["body"]
|
|
||||||
to: body
|
|
||||||
- type: remove
|
|
||||||
field: attributes.timestamp
|
|
||||||
# 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|frontend|alertmanager|query-service|otel-collector|clickhouse|zookeeper)"'
|
|
||||||
opencensus:
|
|
||||||
endpoint: 0.0.0.0:55678
|
|
||||||
otlp:
|
otlp:
|
||||||
protocols:
|
protocols:
|
||||||
grpc:
|
grpc:
|
||||||
endpoint: 0.0.0.0:4317
|
endpoint: 0.0.0.0:4317
|
||||||
http:
|
http:
|
||||||
endpoint: 0.0.0.0:4318
|
endpoint: 0.0.0.0:4318
|
||||||
jaeger:
|
|
||||||
protocols:
|
|
||||||
grpc:
|
|
||||||
endpoint: 0.0.0.0:14250
|
|
||||||
thrift_http:
|
|
||||||
endpoint: 0.0.0.0:14268
|
|
||||||
# thrift_compact:
|
|
||||||
# endpoint: 0.0.0.0:6831
|
|
||||||
# thrift_binary:
|
|
||||||
# endpoint: 0.0.0.0:6832
|
|
||||||
hostmetrics:
|
|
||||||
collection_interval: 30s
|
|
||||||
root_path: /hostfs
|
|
||||||
scrapers:
|
|
||||||
cpu: {}
|
|
||||||
load: {}
|
|
||||||
memory: {}
|
|
||||||
disk: {}
|
|
||||||
filesystem: {}
|
|
||||||
network: {}
|
|
||||||
prometheus:
|
prometheus:
|
||||||
config:
|
config:
|
||||||
global:
|
global:
|
||||||
scrape_interval: 60s
|
scrape_interval: 60s
|
||||||
scrape_configs:
|
scrape_configs:
|
||||||
# otel-collector internal metrics
|
|
||||||
- job_name: otel-collector
|
- job_name: otel-collector
|
||||||
static_configs:
|
static_configs:
|
||||||
- targets:
|
- targets:
|
||||||
- localhost:8888
|
- localhost:8888
|
||||||
labels:
|
labels:
|
||||||
job_name: otel-collector
|
job_name: otel-collector
|
||||||
|
|
||||||
processors:
|
processors:
|
||||||
batch:
|
batch:
|
||||||
send_batch_size: 10000
|
send_batch_size: 10000
|
||||||
send_batch_max_size: 11000
|
send_batch_max_size: 11000
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
# memory_limiter:
|
|
||||||
# # 80% of maximum memory up to 2G
|
|
||||||
# limit_mib: 1500
|
|
||||||
# # 25% of limit up to 2G
|
|
||||||
# spike_limit_mib: 512
|
|
||||||
# check_interval: 5s
|
|
||||||
#
|
|
||||||
# # 50% of the maximum memory
|
|
||||||
# limit_percentage: 50
|
|
||||||
# # 20% of max memory usage spike expected
|
|
||||||
# spike_limit_percentage: 20
|
|
||||||
# queued_retry:
|
|
||||||
# num_workers: 4
|
|
||||||
# queue_size: 100
|
|
||||||
# retry_on_failure: true
|
|
||||||
resourcedetection:
|
resourcedetection:
|
||||||
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
|
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
|
||||||
detectors: [env, system] # include ec2 for AWS, gcp for GCP and azure for Azure.
|
detectors: [env, system]
|
||||||
timeout: 2s
|
timeout: 2s
|
||||||
signozspanmetrics/delta:
|
signozspanmetrics/delta:
|
||||||
metrics_exporter: clickhousemetricswrite
|
metrics_exporter: clickhousemetricswrite
|
||||||
@ -106,15 +50,11 @@ processors:
|
|||||||
- name: host.name
|
- name: host.name
|
||||||
- name: host.type
|
- name: host.type
|
||||||
- name: container.name
|
- name: container.name
|
||||||
|
|
||||||
extensions:
|
extensions:
|
||||||
health_check:
|
health_check:
|
||||||
endpoint: 0.0.0.0:13133
|
endpoint: 0.0.0.0:13133
|
||||||
zpages:
|
|
||||||
endpoint: 0.0.0.0:55679
|
|
||||||
pprof:
|
pprof:
|
||||||
endpoint: 0.0.0.0:1777
|
endpoint: 0.0.0.0:1777
|
||||||
|
|
||||||
exporters:
|
exporters:
|
||||||
clickhousetraces:
|
clickhousetraces:
|
||||||
datasource: tcp://clickhouse:9000/signoz_traces
|
datasource: tcp://clickhouse:9000/signoz_traces
|
||||||
@ -132,8 +72,7 @@ exporters:
|
|||||||
dsn: tcp://clickhouse:9000/signoz_logs
|
dsn: tcp://clickhouse:9000/signoz_logs
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
use_new_schema: true
|
use_new_schema: true
|
||||||
# logging: {}
|
# debug: {}
|
||||||
|
|
||||||
service:
|
service:
|
||||||
telemetry:
|
telemetry:
|
||||||
logs:
|
logs:
|
||||||
@ -142,26 +81,21 @@ service:
|
|||||||
address: 0.0.0.0:8888
|
address: 0.0.0.0:8888
|
||||||
extensions:
|
extensions:
|
||||||
- health_check
|
- health_check
|
||||||
- zpages
|
|
||||||
- pprof
|
- pprof
|
||||||
pipelines:
|
pipelines:
|
||||||
traces:
|
traces:
|
||||||
receivers: [jaeger, otlp]
|
receivers: [otlp]
|
||||||
processors: [signozspanmetrics/delta, batch]
|
processors: [signozspanmetrics/delta, batch]
|
||||||
exporters: [clickhousetraces]
|
exporters: [clickhousetraces]
|
||||||
metrics:
|
metrics:
|
||||||
receivers: [otlp]
|
receivers: [otlp]
|
||||||
processors: [batch]
|
processors: [batch]
|
||||||
exporters: [clickhousemetricswrite, clickhousemetricswritev2]
|
exporters: [clickhousemetricswrite, clickhousemetricswritev2]
|
||||||
metrics/hostmetrics:
|
|
||||||
receivers: [hostmetrics]
|
|
||||||
processors: [resourcedetection, batch]
|
|
||||||
exporters: [clickhousemetricswrite, clickhousemetricswritev2]
|
|
||||||
metrics/prometheus:
|
metrics/prometheus:
|
||||||
receivers: [prometheus]
|
receivers: [prometheus]
|
||||||
processors: [batch]
|
processors: [batch]
|
||||||
exporters: [clickhousemetricswrite/prometheus, clickhousemetricswritev2]
|
exporters: [clickhousemetricswrite/prometheus, clickhousemetricswritev2]
|
||||||
logs:
|
logs:
|
||||||
receivers: [otlp, tcplog/docker]
|
receivers: [otlp]
|
||||||
processors: [batch]
|
processors: [batch]
|
||||||
exporters: [clickhouselogsexporter]
|
exporters: [clickhouselogsexporter]
|
1
deploy/docker/.env
Normal file
1
deploy/docker/.env
Normal file
@ -0,0 +1 @@
|
|||||||
|
COMPOSE_PROJECT_NAME=clickhouse-setup
|
0
deploy/docker/clickhouse-setup/.gitkeep
Normal file
0
deploy/docker/clickhouse-setup/.gitkeep
Normal file
@ -1,35 +0,0 @@
|
|||||||
global:
|
|
||||||
resolve_timeout: 1m
|
|
||||||
slack_api_url: 'https://hooks.slack.com/services/xxx'
|
|
||||||
|
|
||||||
route:
|
|
||||||
receiver: 'slack-notifications'
|
|
||||||
|
|
||||||
receivers:
|
|
||||||
- name: 'slack-notifications'
|
|
||||||
slack_configs:
|
|
||||||
- channel: '#alerts'
|
|
||||||
send_resolved: true
|
|
||||||
icon_url: https://avatars3.githubusercontent.com/u/3380462
|
|
||||||
title: |-
|
|
||||||
[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .CommonLabels.alertname }} for {{ .CommonLabels.job }}
|
|
||||||
{{- if gt (len .CommonLabels) (len .GroupLabels) -}}
|
|
||||||
{{" "}}(
|
|
||||||
{{- with .CommonLabels.Remove .GroupLabels.Names }}
|
|
||||||
{{- range $index, $label := .SortedPairs -}}
|
|
||||||
{{ if $index }}, {{ end }}
|
|
||||||
{{- $label.Name }}="{{ $label.Value -}}"
|
|
||||||
{{- end }}
|
|
||||||
{{- end -}}
|
|
||||||
)
|
|
||||||
{{- end }}
|
|
||||||
text: >-
|
|
||||||
{{ range .Alerts -}}
|
|
||||||
*Alert:* {{ .Annotations.title }}{{ if .Labels.severity }} - `{{ .Labels.severity }}`{{ end }}
|
|
||||||
|
|
||||||
*Description:* {{ .Annotations.description }}
|
|
||||||
|
|
||||||
*Details:*
|
|
||||||
{{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}`
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
@ -1,11 +0,0 @@
|
|||||||
groups:
|
|
||||||
- name: ExampleCPULoadGroup
|
|
||||||
rules:
|
|
||||||
- alert: HighCpuLoad
|
|
||||||
expr: system_cpu_load_average_1m > 0.1
|
|
||||||
for: 0m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: High CPU load
|
|
||||||
description: "CPU load is > 0.1\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
@ -1,41 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<clickhouse>
|
|
||||||
<storage_configuration>
|
|
||||||
<disks>
|
|
||||||
<default>
|
|
||||||
<keep_free_space_bytes>10485760</keep_free_space_bytes>
|
|
||||||
</default>
|
|
||||||
<s3>
|
|
||||||
<type>s3</type>
|
|
||||||
<!-- For S3 cold storage,
|
|
||||||
if region is us-east-1, endpoint can be https://<bucket-name>.s3.amazonaws.com
|
|
||||||
if region is not us-east-1, endpoint should be https://<bucket-name>.s3-<region>.amazonaws.com
|
|
||||||
For GCS cold storage,
|
|
||||||
endpoint should be https://storage.googleapis.com/<bucket-name>/data/
|
|
||||||
-->
|
|
||||||
<endpoint>https://BUCKET-NAME.s3-REGION-NAME.amazonaws.com/data/</endpoint>
|
|
||||||
<access_key_id>ACCESS-KEY-ID</access_key_id>
|
|
||||||
<secret_access_key>SECRET-ACCESS-KEY</secret_access_key>
|
|
||||||
<!-- In case of S3, uncomment the below configuration in case you want to read
|
|
||||||
AWS credentials from the Environment variables if they exist. -->
|
|
||||||
<!-- <use_environment_credentials>true</use_environment_credentials> -->
|
|
||||||
<!-- In case of GCS, uncomment the below configuration, since GCS does
|
|
||||||
not support batch deletion and result in error messages in logs. -->
|
|
||||||
<!-- <support_batch_delete>false</support_batch_delete> -->
|
|
||||||
</s3>
|
|
||||||
</disks>
|
|
||||||
<policies>
|
|
||||||
<tiered>
|
|
||||||
<volumes>
|
|
||||||
<default>
|
|
||||||
<disk>default</disk>
|
|
||||||
</default>
|
|
||||||
<s3>
|
|
||||||
<disk>s3</disk>
|
|
||||||
<perform_ttl_move_on_insert>0</perform_ttl_move_on_insert>
|
|
||||||
</s3>
|
|
||||||
</volumes>
|
|
||||||
</tiered>
|
|
||||||
</policies>
|
|
||||||
</storage_configuration>
|
|
||||||
</clickhouse>
|
|
@ -1,123 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<clickhouse>
|
|
||||||
<!-- See also the files in users.d directory where the settings can be overridden. -->
|
|
||||||
|
|
||||||
<!-- Profiles of settings. -->
|
|
||||||
<profiles>
|
|
||||||
<!-- Default settings. -->
|
|
||||||
<default>
|
|
||||||
<!-- Maximum memory usage for processing single query, in bytes. -->
|
|
||||||
<max_memory_usage>10000000000</max_memory_usage>
|
|
||||||
|
|
||||||
<!-- How to choose between replicas during distributed query processing.
|
|
||||||
random - choose random replica from set of replicas with minimum number of errors
|
|
||||||
nearest_hostname - from set of replicas with minimum number of errors, choose replica
|
|
||||||
with minimum number of different symbols between replica's hostname and local hostname
|
|
||||||
(Hamming distance).
|
|
||||||
in_order - first live replica is chosen in specified order.
|
|
||||||
first_or_random - if first replica one has higher number of errors, pick a random one from replicas with minimum number of errors.
|
|
||||||
-->
|
|
||||||
<load_balancing>random</load_balancing>
|
|
||||||
</default>
|
|
||||||
|
|
||||||
<!-- Profile that allows only read queries. -->
|
|
||||||
<readonly>
|
|
||||||
<readonly>1</readonly>
|
|
||||||
</readonly>
|
|
||||||
</profiles>
|
|
||||||
|
|
||||||
<!-- Users and ACL. -->
|
|
||||||
<users>
|
|
||||||
<!-- If user name was not specified, 'default' user is used. -->
|
|
||||||
<default>
|
|
||||||
<!-- See also the files in users.d directory where the password can be overridden.
|
|
||||||
|
|
||||||
Password could be specified in plaintext or in SHA256 (in hex format).
|
|
||||||
|
|
||||||
If you want to specify password in plaintext (not recommended), place it in 'password' element.
|
|
||||||
Example: <password>qwerty</password>.
|
|
||||||
Password could be empty.
|
|
||||||
|
|
||||||
If you want to specify SHA256, place it in 'password_sha256_hex' element.
|
|
||||||
Example: <password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>
|
|
||||||
Restrictions of SHA256: impossibility to connect to ClickHouse using MySQL JS client (as of July 2019).
|
|
||||||
|
|
||||||
If you want to specify double SHA1, place it in 'password_double_sha1_hex' element.
|
|
||||||
Example: <password_double_sha1_hex>e395796d6546b1b65db9d665cd43f0e858dd4303</password_double_sha1_hex>
|
|
||||||
|
|
||||||
If you want to specify a previously defined LDAP server (see 'ldap_servers' in the main config) for authentication,
|
|
||||||
place its name in 'server' element inside 'ldap' element.
|
|
||||||
Example: <ldap><server>my_ldap_server</server></ldap>
|
|
||||||
|
|
||||||
If you want to authenticate the user via Kerberos (assuming Kerberos is enabled, see 'kerberos' in the main config),
|
|
||||||
place 'kerberos' element instead of 'password' (and similar) elements.
|
|
||||||
The name part of the canonical principal name of the initiator must match the user name for authentication to succeed.
|
|
||||||
You can also place 'realm' element inside 'kerberos' element to further restrict authentication to only those requests
|
|
||||||
whose initiator's realm matches it.
|
|
||||||
Example: <kerberos />
|
|
||||||
Example: <kerberos><realm>EXAMPLE.COM</realm></kerberos>
|
|
||||||
|
|
||||||
How to generate decent password:
|
|
||||||
Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
|
|
||||||
In first line will be password and in second - corresponding SHA256.
|
|
||||||
|
|
||||||
How to generate double SHA1:
|
|
||||||
Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
|
|
||||||
In first line will be password and in second - corresponding double SHA1.
|
|
||||||
-->
|
|
||||||
<password></password>
|
|
||||||
|
|
||||||
<!-- List of networks with open access.
|
|
||||||
|
|
||||||
To open access from everywhere, specify:
|
|
||||||
<ip>::/0</ip>
|
|
||||||
|
|
||||||
To open access only from localhost, specify:
|
|
||||||
<ip>::1</ip>
|
|
||||||
<ip>127.0.0.1</ip>
|
|
||||||
|
|
||||||
Each element of list has one of the following forms:
|
|
||||||
<ip> IP-address or network mask. Examples: 213.180.204.3 or 10.0.0.1/8 or 10.0.0.1/255.255.255.0
|
|
||||||
2a02:6b8::3 or 2a02:6b8::3/64 or 2a02:6b8::3/ffff:ffff:ffff:ffff::.
|
|
||||||
<host> Hostname. Example: server01.clickhouse.com.
|
|
||||||
To check access, DNS query is performed, and all received addresses compared to peer address.
|
|
||||||
<host_regexp> Regular expression for host names. Example, ^server\d\d-\d\d-\d\.clickhouse\.com$
|
|
||||||
To check access, DNS PTR query is performed for peer address and then regexp is applied.
|
|
||||||
Then, for result of PTR query, another DNS query is performed and all received addresses compared to peer address.
|
|
||||||
Strongly recommended that regexp is ends with $
|
|
||||||
All results of DNS requests are cached till server restart.
|
|
||||||
-->
|
|
||||||
<networks>
|
|
||||||
<ip>::/0</ip>
|
|
||||||
</networks>
|
|
||||||
|
|
||||||
<!-- Settings profile for user. -->
|
|
||||||
<profile>default</profile>
|
|
||||||
|
|
||||||
<!-- Quota for user. -->
|
|
||||||
<quota>default</quota>
|
|
||||||
|
|
||||||
<!-- User can create other users and grant rights to them. -->
|
|
||||||
<!-- <access_management>1</access_management> -->
|
|
||||||
</default>
|
|
||||||
</users>
|
|
||||||
|
|
||||||
<!-- Quotas. -->
|
|
||||||
<quotas>
|
|
||||||
<!-- Name of quota. -->
|
|
||||||
<default>
|
|
||||||
<!-- Limits for time interval. You could specify many intervals with different limits. -->
|
|
||||||
<interval>
|
|
||||||
<!-- Length of interval. -->
|
|
||||||
<duration>3600</duration>
|
|
||||||
|
|
||||||
<!-- No limits. Just calculate resource usage for time interval. -->
|
|
||||||
<queries>0</queries>
|
|
||||||
<errors>0</errors>
|
|
||||||
<result_rows>0</result_rows>
|
|
||||||
<read_rows>0</read_rows>
|
|
||||||
<execution_time>0</execution_time>
|
|
||||||
</interval>
|
|
||||||
</default>
|
|
||||||
</quotas>
|
|
||||||
</clickhouse>
|
|
@ -1,115 +0,0 @@
|
|||||||
version: "2.4"
|
|
||||||
include:
|
|
||||||
- test-app-docker-compose.yaml
|
|
||||||
services:
|
|
||||||
zookeeper-1:
|
|
||||||
image: bitnami/zookeeper:3.7.1
|
|
||||||
container_name: signoz-zookeeper-1
|
|
||||||
hostname: zookeeper-1
|
|
||||||
user: root
|
|
||||||
ports:
|
|
||||||
- "2181:2181"
|
|
||||||
- "2888:2888"
|
|
||||||
- "3888:3888"
|
|
||||||
volumes:
|
|
||||||
- ./data/zookeeper-1:/bitnami/zookeeper
|
|
||||||
environment:
|
|
||||||
- ZOO_SERVER_ID=1
|
|
||||||
# - ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888
|
|
||||||
- ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
- ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
clickhouse:
|
|
||||||
image: clickhouse/clickhouse-server:24.1.2-alpine
|
|
||||||
container_name: signoz-clickhouse
|
|
||||||
# ports:
|
|
||||||
# - "9000:9000"
|
|
||||||
# - "8123:8123"
|
|
||||||
tty: true
|
|
||||||
volumes:
|
|
||||||
- ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
- ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
- ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
- ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
- ./data/clickhouse/:/var/lib/clickhouse/
|
|
||||||
- ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
restart: on-failure
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
healthcheck:
|
|
||||||
# "clickhouse", "client", "-u ${CLICKHOUSE_USER}", "--password ${CLICKHOUSE_PASSWORD}", "-q 'SELECT 1'"
|
|
||||||
test: ["CMD", "wget", "--spider", "-q", "0.0.0.0:8123/ping"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
alertmanager:
|
|
||||||
container_name: signoz-alertmanager
|
|
||||||
image: signoz/alertmanager:0.23.7
|
|
||||||
volumes:
|
|
||||||
- ./data/alertmanager:/data
|
|
||||||
depends_on:
|
|
||||||
query-service:
|
|
||||||
condition: service_healthy
|
|
||||||
restart: on-failure
|
|
||||||
command:
|
|
||||||
- --queryService.url=http://query-service:8085
|
|
||||||
- --storage.path=/data
|
|
||||||
otel-collector-migrator:
|
|
||||||
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.24}
|
|
||||||
container_name: otel-migrator
|
|
||||||
command:
|
|
||||||
- "sync"
|
|
||||||
- "--dsn=tcp://clickhouse:9000"
|
|
||||||
- "--up="
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
# clickhouse-2:
|
|
||||||
# condition: service_healthy
|
|
||||||
# clickhouse-3:
|
|
||||||
# condition: service_healthy
|
|
||||||
# Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` & `./CONTRIBUTING.md`
|
|
||||||
otel-collector:
|
|
||||||
container_name: signoz-otel-collector
|
|
||||||
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.24}
|
|
||||||
command: ["--config=/etc/otel-collector-config.yaml", "--manager-config=/etc/manager-config.yaml", "--copy-path=/var/tmp/collector-config.yaml", "--feature-gates=-pkg.translator.prometheus.NormalizeName"]
|
|
||||||
# user: root # required for reading docker container logs
|
|
||||||
volumes:
|
|
||||||
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
|
||||||
- ./otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
|
||||||
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
||||||
- /:/hostfs:ro
|
|
||||||
environment:
|
|
||||||
- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux
|
|
||||||
ports:
|
|
||||||
# - "1777:1777" # pprof extension
|
|
||||||
- "4317:4317" # OTLP gRPC receiver
|
|
||||||
- "4318:4318" # OTLP HTTP receiver
|
|
||||||
# - "8888:8888" # OtelCollector internal metrics
|
|
||||||
# - "8889:8889" # signoz spanmetrics exposed by the agent
|
|
||||||
# - "9411:9411" # Zipkin port
|
|
||||||
# - "13133:13133" # health check extension
|
|
||||||
# - "14250:14250" # Jaeger gRPC
|
|
||||||
# - "14268:14268" # Jaeger thrift HTTP
|
|
||||||
# - "55678:55678" # OpenCensus receiver
|
|
||||||
# - "55679:55679" # zPages extension
|
|
||||||
restart: on-failure
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
otel-collector-migrator:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
query-service:
|
|
||||||
condition: service_healthy
|
|
||||||
logspout:
|
|
||||||
image: "gliderlabs/logspout:v3.2.14"
|
|
||||||
container_name: signoz-logspout
|
|
||||||
volumes:
|
|
||||||
- /etc/hostname:/etc/host_hostname:ro
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
command: syslog+tcp://otel-collector:2255
|
|
||||||
depends_on:
|
|
||||||
- otel-collector
|
|
||||||
restart: on-failure
|
|
@ -1,68 +0,0 @@
|
|||||||
version: "2.4"
|
|
||||||
|
|
||||||
services:
|
|
||||||
query-service:
|
|
||||||
hostname: query-service
|
|
||||||
build:
|
|
||||||
context: "../../../"
|
|
||||||
dockerfile: "./pkg/query-service/Dockerfile"
|
|
||||||
args:
|
|
||||||
LDFLAGS: ""
|
|
||||||
TARGETPLATFORM: "${GOOS}/${GOARCH}"
|
|
||||||
container_name: signoz-query-service
|
|
||||||
environment:
|
|
||||||
- ClickHouseUrl=tcp://clickhouse:9000
|
|
||||||
- ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/
|
|
||||||
- SIGNOZ_LOCAL_DB_PATH=/var/lib/signoz/signoz.db
|
|
||||||
- DASHBOARDS_PATH=/root/config/dashboards
|
|
||||||
- STORAGE=clickhouse
|
|
||||||
- GODEBUG=netdns=go
|
|
||||||
- TELEMETRY_ENABLED=true
|
|
||||||
volumes:
|
|
||||||
- ./prometheus.yml:/root/config/prometheus.yml
|
|
||||||
- ../dashboards:/root/config/dashboards
|
|
||||||
- ./data/signoz/:/var/lib/signoz/
|
|
||||||
command:
|
|
||||||
[
|
|
||||||
"-config=/root/config/prometheus.yml",
|
|
||||||
"--use-logs-new-schema=true",
|
|
||||||
"--use-trace-new-schema=true"
|
|
||||||
]
|
|
||||||
ports:
|
|
||||||
- "6060:6060"
|
|
||||||
- "8080:8080"
|
|
||||||
restart: on-failure
|
|
||||||
healthcheck:
|
|
||||||
test:
|
|
||||||
[
|
|
||||||
"CMD",
|
|
||||||
"wget",
|
|
||||||
"--spider",
|
|
||||||
"-q",
|
|
||||||
"localhost:8080/api/v1/health"
|
|
||||||
]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
|
|
||||||
frontend:
|
|
||||||
build:
|
|
||||||
context: "../../../frontend"
|
|
||||||
dockerfile: "./Dockerfile"
|
|
||||||
args:
|
|
||||||
TARGETOS: "${GOOS}"
|
|
||||||
TARGETPLATFORM: "${GOARCH}"
|
|
||||||
container_name: signoz-frontend
|
|
||||||
environment:
|
|
||||||
- FRONTEND_API_ENDPOINT=http://query-service:8080
|
|
||||||
restart: on-failure
|
|
||||||
depends_on:
|
|
||||||
- alertmanager
|
|
||||||
- query-service
|
|
||||||
ports:
|
|
||||||
- "3301:3301"
|
|
||||||
volumes:
|
|
||||||
- ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf
|
|
@ -1,257 +0,0 @@
|
|||||||
x-clickhouse-defaults: &clickhouse-defaults
|
|
||||||
restart: on-failure
|
|
||||||
# addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab
|
|
||||||
image: clickhouse/clickhouse-server:24.1.2-alpine
|
|
||||||
tty: true
|
|
||||||
depends_on:
|
|
||||||
- zookeeper-1
|
|
||||||
# - zookeeper-2
|
|
||||||
# - zookeeper-3
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
healthcheck:
|
|
||||||
# "clickhouse", "client", "-u ${CLICKHOUSE_USER}", "--password ${CLICKHOUSE_PASSWORD}", "-q 'SELECT 1'"
|
|
||||||
test: ["CMD", "wget", "--spider", "-q", "0.0.0.0:8123/ping"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
ulimits:
|
|
||||||
nproc: 65535
|
|
||||||
nofile:
|
|
||||||
soft: 262144
|
|
||||||
hard: 262144
|
|
||||||
x-db-depend: &db-depend
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
otel-collector-migrator-sync:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
# clickhouse-2:
|
|
||||||
# condition: service_healthy
|
|
||||||
# clickhouse-3:
|
|
||||||
# condition: service_healthy
|
|
||||||
services:
|
|
||||||
zookeeper-1:
|
|
||||||
image: bitnami/zookeeper:3.7.1
|
|
||||||
container_name: signoz-zookeeper-1
|
|
||||||
hostname: zookeeper-1
|
|
||||||
user: root
|
|
||||||
ports:
|
|
||||||
- "2181:2181"
|
|
||||||
- "2888:2888"
|
|
||||||
- "3888:3888"
|
|
||||||
volumes:
|
|
||||||
- ./data/zookeeper-1:/bitnami/zookeeper
|
|
||||||
environment:
|
|
||||||
- ZOO_SERVER_ID=1
|
|
||||||
# - ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888
|
|
||||||
- ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
- ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
# zookeeper-2:
|
|
||||||
# image: bitnami/zookeeper:3.7.0
|
|
||||||
# container_name: signoz-zookeeper-2
|
|
||||||
# hostname: zookeeper-2
|
|
||||||
# user: root
|
|
||||||
# ports:
|
|
||||||
# - "2182:2181"
|
|
||||||
# - "2889:2888"
|
|
||||||
# - "3889:3888"
|
|
||||||
# volumes:
|
|
||||||
# - ./data/zookeeper-2:/bitnami/zookeeper
|
|
||||||
# environment:
|
|
||||||
# - ZOO_SERVER_ID=2
|
|
||||||
# - ZOO_SERVERS=zookeeper-1:2888:3888,0.0.0.0:2888:3888,zookeeper-3:2888:3888
|
|
||||||
# - ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
# - ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
|
|
||||||
# zookeeper-3:
|
|
||||||
# image: bitnami/zookeeper:3.7.0
|
|
||||||
# container_name: signoz-zookeeper-3
|
|
||||||
# hostname: zookeeper-3
|
|
||||||
# user: root
|
|
||||||
# ports:
|
|
||||||
# - "2183:2181"
|
|
||||||
# - "2890:2888"
|
|
||||||
# - "3890:3888"
|
|
||||||
# volumes:
|
|
||||||
# - ./data/zookeeper-3:/bitnami/zookeeper
|
|
||||||
# environment:
|
|
||||||
# - ZOO_SERVER_ID=3
|
|
||||||
# - ZOO_SERVERS=zookeeper-1:2888:3888,zookeeper-2:2888:3888,0.0.0.0:2888:3888
|
|
||||||
# - ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
# - ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
clickhouse:
|
|
||||||
!!merge <<: *clickhouse-defaults
|
|
||||||
container_name: signoz-clickhouse
|
|
||||||
hostname: clickhouse
|
|
||||||
ports:
|
|
||||||
- "9000:9000"
|
|
||||||
- "8123:8123"
|
|
||||||
- "9181:9181"
|
|
||||||
volumes:
|
|
||||||
- ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
- ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
- ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
- ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
- ./data/clickhouse/:/var/lib/clickhouse/
|
|
||||||
- ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
# clickhouse-2:
|
|
||||||
# <<: *clickhouse-defaults
|
|
||||||
# container_name: signoz-clickhouse-2
|
|
||||||
# hostname: clickhouse-2
|
|
||||||
# ports:
|
|
||||||
# - "9001:9000"
|
|
||||||
# - "8124:8123"
|
|
||||||
# - "9182:9181"
|
|
||||||
# volumes:
|
|
||||||
# - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
# - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
# - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
# - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
# - ./data/clickhouse-2/:/var/lib/clickhouse/
|
|
||||||
# - ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
|
|
||||||
# clickhouse-3:
|
|
||||||
# <<: *clickhouse-defaults
|
|
||||||
# container_name: signoz-clickhouse-3
|
|
||||||
# hostname: clickhouse-3
|
|
||||||
# ports:
|
|
||||||
# - "9002:9000"
|
|
||||||
# - "8125:8123"
|
|
||||||
# - "9183:9181"
|
|
||||||
# volumes:
|
|
||||||
# - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
# - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
# - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
# - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
# - ./data/clickhouse-3/:/var/lib/clickhouse/
|
|
||||||
# - ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
alertmanager:
|
|
||||||
image: signoz/alertmanager:${ALERTMANAGER_TAG:-0.23.7}
|
|
||||||
container_name: signoz-alertmanager
|
|
||||||
volumes:
|
|
||||||
- ./data/alertmanager:/data
|
|
||||||
depends_on:
|
|
||||||
query-service:
|
|
||||||
condition: service_healthy
|
|
||||||
restart: on-failure
|
|
||||||
command:
|
|
||||||
- --queryService.url=http://query-service:8085
|
|
||||||
- --storage.path=/data
|
|
||||||
# Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` & `./CONTRIBUTING.md`
|
|
||||||
query-service:
|
|
||||||
image: signoz/query-service:${DOCKER_TAG:-0.69.0}
|
|
||||||
container_name: signoz-query-service
|
|
||||||
command: ["-config=/root/config/prometheus.yml", "--use-logs-new-schema=true", "--use-trace-new-schema=true"]
|
|
||||||
# ports:
|
|
||||||
# - "6060:6060" # pprof port
|
|
||||||
# - "8080:8080" # query-service port
|
|
||||||
volumes:
|
|
||||||
- ./prometheus.yml:/root/config/prometheus.yml
|
|
||||||
- ../dashboards:/root/config/dashboards
|
|
||||||
- ./data/signoz/:/var/lib/signoz/
|
|
||||||
environment:
|
|
||||||
- ClickHouseUrl=tcp://clickhouse:9000
|
|
||||||
- ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/
|
|
||||||
- SIGNOZ_LOCAL_DB_PATH=/var/lib/signoz/signoz.db
|
|
||||||
- DASHBOARDS_PATH=/root/config/dashboards
|
|
||||||
- STORAGE=clickhouse
|
|
||||||
- GODEBUG=netdns=go
|
|
||||||
- TELEMETRY_ENABLED=true
|
|
||||||
- DEPLOYMENT_TYPE=docker-standalone-amd
|
|
||||||
restart: on-failure
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "wget", "--spider", "-q", "localhost:8080/api/v1/health"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
!!merge <<: *db-depend
|
|
||||||
frontend:
|
|
||||||
image: signoz/frontend:${DOCKER_TAG:-0.69.0}
|
|
||||||
container_name: signoz-frontend
|
|
||||||
restart: on-failure
|
|
||||||
depends_on:
|
|
||||||
- alertmanager
|
|
||||||
- query-service
|
|
||||||
ports:
|
|
||||||
- "3301:3301"
|
|
||||||
volumes:
|
|
||||||
- ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf
|
|
||||||
otel-collector-migrator-sync:
|
|
||||||
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.24}
|
|
||||||
container_name: otel-migrator-sync
|
|
||||||
command:
|
|
||||||
- "sync"
|
|
||||||
- "--dsn=tcp://clickhouse:9000"
|
|
||||||
- "--up="
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
# clickhouse-2:
|
|
||||||
# condition: service_healthy
|
|
||||||
# clickhouse-3:
|
|
||||||
# condition: service_healthy
|
|
||||||
otel-collector-migrator-async:
|
|
||||||
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.24}
|
|
||||||
container_name: otel-migrator-async
|
|
||||||
command:
|
|
||||||
- "async"
|
|
||||||
- "--dsn=tcp://clickhouse:9000"
|
|
||||||
- "--up="
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
otel-collector-migrator-sync:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
# clickhouse-2:
|
|
||||||
# condition: service_healthy
|
|
||||||
# clickhouse-3:
|
|
||||||
# condition: service_healthy
|
|
||||||
otel-collector:
|
|
||||||
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.24}
|
|
||||||
container_name: signoz-otel-collector
|
|
||||||
command: ["--config=/etc/otel-collector-config.yaml", "--manager-config=/etc/manager-config.yaml", "--copy-path=/var/tmp/collector-config.yaml", "--feature-gates=-pkg.translator.prometheus.NormalizeName"]
|
|
||||||
user: root # required for reading docker container logs
|
|
||||||
volumes:
|
|
||||||
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
|
||||||
- ./otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
|
||||||
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
||||||
- /:/hostfs:ro
|
|
||||||
environment:
|
|
||||||
- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux
|
|
||||||
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
|
||||||
ports:
|
|
||||||
# - "1777:1777" # pprof extension
|
|
||||||
- "4317:4317" # OTLP gRPC receiver
|
|
||||||
- "4318:4318" # OTLP HTTP receiver
|
|
||||||
# - "8888:8888" # OtelCollector internal metrics
|
|
||||||
# - "8889:8889" # signoz spanmetrics exposed by the agent
|
|
||||||
# - "9411:9411" # Zipkin port
|
|
||||||
# - "13133:13133" # health check extension
|
|
||||||
# - "14250:14250" # Jaeger gRPC
|
|
||||||
# - "14268:14268" # Jaeger thrift HTTP
|
|
||||||
# - "55678:55678" # OpenCensus receiver
|
|
||||||
# - "55679:55679" # zPages extension
|
|
||||||
restart: on-failure
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
otel-collector-migrator-sync:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
query-service:
|
|
||||||
condition: service_healthy
|
|
||||||
logspout:
|
|
||||||
image: "gliderlabs/logspout:v3.2.14"
|
|
||||||
container_name: signoz-logspout
|
|
||||||
volumes:
|
|
||||||
- /etc/hostname:/etc/host_hostname:ro
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
command: syslog+tcp://otel-collector:2255
|
|
||||||
depends_on:
|
|
||||||
- otel-collector
|
|
||||||
restart: on-failure
|
|
@ -1,243 +0,0 @@
|
|||||||
version: "2.4"
|
|
||||||
include:
|
|
||||||
- test-app-docker-compose.yaml
|
|
||||||
x-clickhouse-defaults: &clickhouse-defaults
|
|
||||||
restart: on-failure
|
|
||||||
# addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab
|
|
||||||
image: clickhouse/clickhouse-server:24.1.2-alpine
|
|
||||||
tty: true
|
|
||||||
depends_on:
|
|
||||||
- zookeeper-1
|
|
||||||
# - zookeeper-2
|
|
||||||
# - zookeeper-3
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
healthcheck:
|
|
||||||
# "clickhouse", "client", "-u ${CLICKHOUSE_USER}", "--password ${CLICKHOUSE_PASSWORD}", "-q 'SELECT 1'"
|
|
||||||
test: ["CMD", "wget", "--spider", "-q", "0.0.0.0:8123/ping"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
ulimits:
|
|
||||||
nproc: 65535
|
|
||||||
nofile:
|
|
||||||
soft: 262144
|
|
||||||
hard: 262144
|
|
||||||
x-db-depend: &db-depend
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
otel-collector-migrator:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
# clickhouse-2:
|
|
||||||
# condition: service_healthy
|
|
||||||
# clickhouse-3:
|
|
||||||
# condition: service_healthy
|
|
||||||
services:
|
|
||||||
zookeeper-1:
|
|
||||||
image: bitnami/zookeeper:3.7.1
|
|
||||||
container_name: signoz-zookeeper-1
|
|
||||||
hostname: zookeeper-1
|
|
||||||
user: root
|
|
||||||
ports:
|
|
||||||
- "2181:2181"
|
|
||||||
- "2888:2888"
|
|
||||||
- "3888:3888"
|
|
||||||
volumes:
|
|
||||||
- ./data/zookeeper-1:/bitnami/zookeeper
|
|
||||||
environment:
|
|
||||||
- ZOO_SERVER_ID=1
|
|
||||||
# - ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888
|
|
||||||
- ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
- ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
# zookeeper-2:
|
|
||||||
# image: bitnami/zookeeper:3.7.0
|
|
||||||
# container_name: signoz-zookeeper-2
|
|
||||||
# hostname: zookeeper-2
|
|
||||||
# user: root
|
|
||||||
# ports:
|
|
||||||
# - "2182:2181"
|
|
||||||
# - "2889:2888"
|
|
||||||
# - "3889:3888"
|
|
||||||
# volumes:
|
|
||||||
# - ./data/zookeeper-2:/bitnami/zookeeper
|
|
||||||
# environment:
|
|
||||||
# - ZOO_SERVER_ID=2
|
|
||||||
# - ZOO_SERVERS=zookeeper-1:2888:3888,0.0.0.0:2888:3888,zookeeper-3:2888:3888
|
|
||||||
# - ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
# - ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
|
|
||||||
# zookeeper-3:
|
|
||||||
# image: bitnami/zookeeper:3.7.0
|
|
||||||
# container_name: signoz-zookeeper-3
|
|
||||||
# hostname: zookeeper-3
|
|
||||||
# user: root
|
|
||||||
# ports:
|
|
||||||
# - "2183:2181"
|
|
||||||
# - "2890:2888"
|
|
||||||
# - "3890:3888"
|
|
||||||
# volumes:
|
|
||||||
# - ./data/zookeeper-3:/bitnami/zookeeper
|
|
||||||
# environment:
|
|
||||||
# - ZOO_SERVER_ID=3
|
|
||||||
# - ZOO_SERVERS=zookeeper-1:2888:3888,zookeeper-2:2888:3888,0.0.0.0:2888:3888
|
|
||||||
# - ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
# - ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
clickhouse:
|
|
||||||
!!merge <<: *clickhouse-defaults
|
|
||||||
container_name: signoz-clickhouse
|
|
||||||
hostname: clickhouse
|
|
||||||
ports:
|
|
||||||
- "9000:9000"
|
|
||||||
- "8123:8123"
|
|
||||||
- "9181:9181"
|
|
||||||
volumes:
|
|
||||||
- ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
- ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
- ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
- ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
- ./data/clickhouse/:/var/lib/clickhouse/
|
|
||||||
- ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
# clickhouse-2:
|
|
||||||
# <<: *clickhouse-defaults
|
|
||||||
# container_name: signoz-clickhouse-2
|
|
||||||
# hostname: clickhouse-2
|
|
||||||
# ports:
|
|
||||||
# - "9001:9000"
|
|
||||||
# - "8124:8123"
|
|
||||||
# - "9182:9181"
|
|
||||||
# volumes:
|
|
||||||
# - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
# - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
# - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
# - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
# - ./data/clickhouse-2/:/var/lib/clickhouse/
|
|
||||||
# - ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
|
|
||||||
# clickhouse-3:
|
|
||||||
# <<: *clickhouse-defaults
|
|
||||||
# container_name: signoz-clickhouse-3
|
|
||||||
# hostname: clickhouse-3
|
|
||||||
# ports:
|
|
||||||
# - "9002:9000"
|
|
||||||
# - "8125:8123"
|
|
||||||
# - "9183:9181"
|
|
||||||
# volumes:
|
|
||||||
# - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
# - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
# - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
# - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
# - ./data/clickhouse-3/:/var/lib/clickhouse/
|
|
||||||
# - ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
alertmanager:
|
|
||||||
image: signoz/alertmanager:${ALERTMANAGER_TAG:-0.23.7}
|
|
||||||
container_name: signoz-alertmanager
|
|
||||||
volumes:
|
|
||||||
- ./data/alertmanager:/data
|
|
||||||
depends_on:
|
|
||||||
query-service:
|
|
||||||
condition: service_healthy
|
|
||||||
restart: on-failure
|
|
||||||
command:
|
|
||||||
- --queryService.url=http://query-service:8085
|
|
||||||
- --storage.path=/data
|
|
||||||
# Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` & `./CONTRIBUTING.md`
|
|
||||||
query-service:
|
|
||||||
image: signoz/query-service:${DOCKER_TAG:-0.69.0}
|
|
||||||
container_name: signoz-query-service
|
|
||||||
command: ["-config=/root/config/prometheus.yml", "-gateway-url=https://api.staging.signoz.cloud", "--use-logs-new-schema=true", "--use-trace-new-schema=true"]
|
|
||||||
# ports:
|
|
||||||
# - "6060:6060" # pprof port
|
|
||||||
# - "8080:8080" # query-service port
|
|
||||||
volumes:
|
|
||||||
- ./prometheus.yml:/root/config/prometheus.yml
|
|
||||||
- ../dashboards:/root/config/dashboards
|
|
||||||
- ./data/signoz/:/var/lib/signoz/
|
|
||||||
environment:
|
|
||||||
- ClickHouseUrl=tcp://clickhouse:9000
|
|
||||||
- ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/
|
|
||||||
- SIGNOZ_LOCAL_DB_PATH=/var/lib/signoz/signoz.db
|
|
||||||
- DASHBOARDS_PATH=/root/config/dashboards
|
|
||||||
- STORAGE=clickhouse
|
|
||||||
- GODEBUG=netdns=go
|
|
||||||
- TELEMETRY_ENABLED=true
|
|
||||||
- DEPLOYMENT_TYPE=docker-standalone-amd
|
|
||||||
- KAFKA_SPAN_EVAL=${KAFKA_SPAN_EVAL:-false}
|
|
||||||
restart: on-failure
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "wget", "--spider", "-q", "localhost:8080/api/v1/health"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
!!merge <<: *db-depend
|
|
||||||
frontend:
|
|
||||||
image: signoz/frontend:${DOCKER_TAG:-0.69.0}
|
|
||||||
container_name: signoz-frontend
|
|
||||||
restart: on-failure
|
|
||||||
depends_on:
|
|
||||||
- alertmanager
|
|
||||||
- query-service
|
|
||||||
ports:
|
|
||||||
- "3301:3301"
|
|
||||||
volumes:
|
|
||||||
- ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf
|
|
||||||
otel-collector-migrator:
|
|
||||||
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.24}
|
|
||||||
container_name: otel-migrator
|
|
||||||
command:
|
|
||||||
- "--dsn=tcp://clickhouse:9000"
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
# clickhouse-2:
|
|
||||||
# condition: service_healthy
|
|
||||||
# clickhouse-3:
|
|
||||||
# condition: service_healthy
|
|
||||||
otel-collector:
|
|
||||||
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.24}
|
|
||||||
container_name: signoz-otel-collector
|
|
||||||
command: ["--config=/etc/otel-collector-config.yaml", "--manager-config=/etc/manager-config.yaml", "--copy-path=/var/tmp/collector-config.yaml", "--feature-gates=-pkg.translator.prometheus.NormalizeName"]
|
|
||||||
user: root # required for reading docker container logs
|
|
||||||
volumes:
|
|
||||||
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
|
||||||
- ./otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
|
||||||
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
||||||
- /:/hostfs:ro
|
|
||||||
environment:
|
|
||||||
- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux
|
|
||||||
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
|
||||||
ports:
|
|
||||||
# - "1777:1777" # pprof extension
|
|
||||||
- "4317:4317" # OTLP gRPC receiver
|
|
||||||
- "4318:4318" # OTLP HTTP receiver
|
|
||||||
# - "8888:8888" # OtelCollector internal metrics
|
|
||||||
# - "8889:8889" # signoz spanmetrics exposed by the agent
|
|
||||||
# - "9411:9411" # Zipkin port
|
|
||||||
# - "13133:13133" # health check extension
|
|
||||||
# - "14250:14250" # Jaeger gRPC
|
|
||||||
# - "14268:14268" # Jaeger thrift HTTP
|
|
||||||
# - "55678:55678" # OpenCensus receiver
|
|
||||||
# - "55679:55679" # zPages extension
|
|
||||||
restart: on-failure
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
otel-collector-migrator:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
query-service:
|
|
||||||
condition: service_healthy
|
|
||||||
logspout:
|
|
||||||
image: "gliderlabs/logspout:v3.2.14"
|
|
||||||
container_name: signoz-logspout
|
|
||||||
volumes:
|
|
||||||
- /etc/hostname:/etc/host_hostname:ro
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
command: syslog+tcp://otel-collector:2255
|
|
||||||
depends_on:
|
|
||||||
- otel-collector
|
|
||||||
restart: on-failure
|
|
@ -1,3 +0,0 @@
|
|||||||
include:
|
|
||||||
- test-app-docker-compose.yaml
|
|
||||||
- docker-compose-minimal.yaml
|
|
@ -1,64 +0,0 @@
|
|||||||
<clickhouse>
|
|
||||||
<logger>
|
|
||||||
<!-- Possible levels [1]:
|
|
||||||
|
|
||||||
- none (turns off logging)
|
|
||||||
- fatal
|
|
||||||
- critical
|
|
||||||
- error
|
|
||||||
- warning
|
|
||||||
- notice
|
|
||||||
- information
|
|
||||||
- debug
|
|
||||||
- trace
|
|
||||||
|
|
||||||
[1]: https://github.com/pocoproject/poco/blob/poco-1.9.4-release/Foundation/include/Poco/Logger.h#L105-L114
|
|
||||||
-->
|
|
||||||
<level>information</level>
|
|
||||||
<log>/var/log/clickhouse-keeper/clickhouse-keeper.log</log>
|
|
||||||
<errorlog>/var/log/clickhouse-keeper/clickhouse-keeper.err.log</errorlog>
|
|
||||||
<!-- Rotation policy
|
|
||||||
See https://github.com/pocoproject/poco/blob/poco-1.9.4-release/Foundation/include/Poco/FileChannel.h#L54-L85
|
|
||||||
-->
|
|
||||||
<size>1000M</size>
|
|
||||||
<count>10</count>
|
|
||||||
<!-- <console>1</console> --> <!-- Default behavior is autodetection (log to console if not daemon mode and is tty) -->
|
|
||||||
</logger>
|
|
||||||
|
|
||||||
<listen_host>0.0.0.0</listen_host>
|
|
||||||
<max_connections>4096</max_connections>
|
|
||||||
|
|
||||||
<keeper_server>
|
|
||||||
<tcp_port>9181</tcp_port>
|
|
||||||
|
|
||||||
<!-- Must be unique among all keeper serves -->
|
|
||||||
<server_id>1</server_id>
|
|
||||||
|
|
||||||
<log_storage_path>/var/lib/clickhouse/coordination/logs</log_storage_path>
|
|
||||||
<snapshot_storage_path>/var/lib/clickhouse/coordination/snapshots</snapshot_storage_path>
|
|
||||||
|
|
||||||
<coordination_settings>
|
|
||||||
<operation_timeout_ms>10000</operation_timeout_ms>
|
|
||||||
<min_session_timeout_ms>10000</min_session_timeout_ms>
|
|
||||||
<session_timeout_ms>100000</session_timeout_ms>
|
|
||||||
<raft_logs_level>information</raft_logs_level>
|
|
||||||
<compress_logs>false</compress_logs>
|
|
||||||
<!-- All settings listed in https://github.com/ClickHouse/ClickHouse/blob/master/src/Coordination/CoordinationSettings.h -->
|
|
||||||
</coordination_settings>
|
|
||||||
|
|
||||||
<!-- enable sanity hostname checks for cluster configuration (e.g. if localhost is used with remote endpoints) -->
|
|
||||||
<hostname_checks_enabled>true</hostname_checks_enabled>
|
|
||||||
<raft_configuration>
|
|
||||||
<server>
|
|
||||||
<id>1</id>
|
|
||||||
|
|
||||||
<!-- Internal port and hostname -->
|
|
||||||
<hostname>clickhouses-keeper-1</hostname>
|
|
||||||
<port>9234</port>
|
|
||||||
</server>
|
|
||||||
|
|
||||||
<!-- Add more servers here -->
|
|
||||||
|
|
||||||
</raft_configuration>
|
|
||||||
</keeper_server>
|
|
||||||
</clickhouse>
|
|
@ -1 +0,0 @@
|
|||||||
server_endpoint: ws://query-service:4320/v1/opamp
|
|
@ -1,25 +0,0 @@
|
|||||||
# 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:
|
|
||||||
- alertmanager: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://clickhouse:9000/signoz_metrics
|
|
@ -1,26 +0,0 @@
|
|||||||
services:
|
|
||||||
hotrod:
|
|
||||||
image: jaegertracing/example-hotrod:1.30
|
|
||||||
container_name: hotrod
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
command: [ "all" ]
|
|
||||||
environment:
|
|
||||||
- JAEGER_ENDPOINT=http://otel-collector:14268/api/traces
|
|
||||||
|
|
||||||
load-hotrod:
|
|
||||||
image: "signoz/locust:1.2.3"
|
|
||||||
container_name: load-hotrod
|
|
||||||
hostname: load-hotrod
|
|
||||||
environment:
|
|
||||||
ATTACKED_HOST: http://hotrod:8080
|
|
||||||
LOCUST_MODE: standalone
|
|
||||||
NO_PROXY: standalone
|
|
||||||
TASK_DELAY_FROM: 5
|
|
||||||
TASK_DELAY_TO: 30
|
|
||||||
QUIET_MODE: "${QUIET_MODE:-false}"
|
|
||||||
LOCUST_OPTS: "--headless -u 10 -r 1"
|
|
||||||
volumes:
|
|
||||||
- ../common/locust-scripts:/locust
|
|
@ -1,16 +0,0 @@
|
|||||||
from locust import HttpUser, task, between
|
|
||||||
class UserTasks(HttpUser):
|
|
||||||
wait_time = between(5, 15)
|
|
||||||
|
|
||||||
@task
|
|
||||||
def rachel(self):
|
|
||||||
self.client.get("/dispatch?customer=123&nonse=0.6308392664170006")
|
|
||||||
@task
|
|
||||||
def trom(self):
|
|
||||||
self.client.get("/dispatch?customer=392&nonse=0.015296363321630757")
|
|
||||||
@task
|
|
||||||
def japanese(self):
|
|
||||||
self.client.get("/dispatch?customer=731&nonse=0.8022286220408668")
|
|
||||||
@task
|
|
||||||
def coffee(self):
|
|
||||||
self.client.get("/dispatch?customer=567&nonse=0.0022220379420636593")
|
|
283
deploy/docker/docker-compose.ha.yaml
Normal file
283
deploy/docker/docker-compose.ha.yaml
Normal file
@ -0,0 +1,283 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
restart: on-failure
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
x-clickhouse-defaults: &clickhouse-defaults
|
||||||
|
<<: *common
|
||||||
|
# addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
tty: true
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9363"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
depends_on:
|
||||||
|
init-clickhouse:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
zookeeper-1:
|
||||||
|
condition: service_healthy
|
||||||
|
zookeeper-2:
|
||||||
|
condition: service_healthy
|
||||||
|
zookeeper-3:
|
||||||
|
condition: service_healthy
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- 0.0.0.0:8123/ping
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
ulimits:
|
||||||
|
nproc: 65535
|
||||||
|
nofile:
|
||||||
|
soft: 262144
|
||||||
|
hard: 262144
|
||||||
|
x-zookeeper-defaults: &zookeeper-defaults
|
||||||
|
<<: *common
|
||||||
|
image: bitnami/zookeeper:3.7.1
|
||||||
|
user: root
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9141"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
x-db-depend: &db-depend
|
||||||
|
<<: *common
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-sync:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
services:
|
||||||
|
init-clickhouse:
|
||||||
|
<<: *common
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
container_name: signoz-init-clickhouse
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
version="v0.0.1"
|
||||||
|
node_os=$$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||||
|
node_arch=$$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)
|
||||||
|
echo "Fetching histogram-binary for $${node_os}/$${node_arch}"
|
||||||
|
cd /tmp
|
||||||
|
wget -O histogram-quantile.tar.gz "https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2F$${version}/histogram-quantile_$${node_os}_$${node_arch}.tar.gz"
|
||||||
|
tar -xvzf histogram-quantile.tar.gz
|
||||||
|
mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
zookeeper-1:
|
||||||
|
<<: *zookeeper-defaults
|
||||||
|
container_name: signoz-zookeeper-1
|
||||||
|
# ports:
|
||||||
|
# - "2181:2181"
|
||||||
|
# - "2888:2888"
|
||||||
|
# - "3888:3888"
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/zookeeper-1:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=1
|
||||||
|
- ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
zookeeper-2:
|
||||||
|
<<: *zookeeper-defaults
|
||||||
|
container_name: signoz-zookeeper-2
|
||||||
|
# ports:
|
||||||
|
# - "2182:2181"
|
||||||
|
# - "2889:2888"
|
||||||
|
# - "3889:3888"
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/zookeeper-2:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=2
|
||||||
|
- ZOO_SERVERS=zookeeper-1:2888:3888,0.0.0.0:2888:3888,zookeeper-3:2888:3888
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
zookeeper-3:
|
||||||
|
<<: *zookeeper-defaults
|
||||||
|
container_name: signoz-zookeeper-3
|
||||||
|
# ports:
|
||||||
|
# - "2183:2181"
|
||||||
|
# - "2890:2888"
|
||||||
|
# - "3890:3888"
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/zookeeper-3:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=3
|
||||||
|
- ZOO_SERVERS=zookeeper-1:2888:3888,zookeeper-2:2888:3888,0.0.0.0:2888:3888
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
clickhouse:
|
||||||
|
<<: *clickhouse-defaults
|
||||||
|
container_name: signoz-clickhouse
|
||||||
|
# ports:
|
||||||
|
# - "9000:9000"
|
||||||
|
# - "8123:8123"
|
||||||
|
# - "9181:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- ./clickhouse-setup/data/clickhouse/:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
clickhouse-2:
|
||||||
|
<<: *clickhouse-defaults
|
||||||
|
container_name: signoz-clickhouse-2
|
||||||
|
# ports:
|
||||||
|
# - "9001:9000"
|
||||||
|
# - "8124:8123"
|
||||||
|
# - "9182:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- ./clickhouse-setup/data/clickhouse-2/:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
clickhouse-3:
|
||||||
|
<<: *clickhouse-defaults
|
||||||
|
container_name: signoz-clickhouse-3
|
||||||
|
# ports:
|
||||||
|
# - "9002:9000"
|
||||||
|
# - "8125:8123"
|
||||||
|
# - "9183:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../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:
|
||||||
|
<<: *common
|
||||||
|
image: signoz/alertmanager:${ALERTMANAGER_TAG:-0.23.7}
|
||||||
|
container_name: signoz-alertmanager
|
||||||
|
command:
|
||||||
|
- --queryService.url=http://query-service:8085
|
||||||
|
- --storage.path=/data
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/alertmanager:/data
|
||||||
|
depends_on:
|
||||||
|
query-service:
|
||||||
|
condition: service_healthy
|
||||||
|
query-service:
|
||||||
|
<<: *db-depend
|
||||||
|
image: signoz/query-service:${DOCKER_TAG:-0.69.0}
|
||||||
|
container_name: signoz-query-service
|
||||||
|
command:
|
||||||
|
- --config=/root/config/prometheus.yml
|
||||||
|
- --use-logs-new-schema=true
|
||||||
|
- --use-trace-new-schema=true
|
||||||
|
# ports:
|
||||||
|
# - "3301:8080" # signoz port
|
||||||
|
# - "6060:6060" # pprof port
|
||||||
|
volumes:
|
||||||
|
- ../common/signoz/prometheus.yml:/root/config/prometheus.yml
|
||||||
|
- ../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_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db
|
||||||
|
- DASHBOARDS_PATH=/root/config/dashboards
|
||||||
|
- STORAGE=clickhouse
|
||||||
|
- GODEBUG=netdns=go
|
||||||
|
- TELEMETRY_ENABLED=true
|
||||||
|
- DEPLOYMENT_TYPE=docker-standalone-amd
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- localhost:8080/api/v1/health
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
frontend:
|
||||||
|
<<: *common
|
||||||
|
image: signoz/frontend:${DOCKER_TAG:-0.69.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:
|
||||||
|
<<: *db-depend
|
||||||
|
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.24}
|
||||||
|
container_name: signoz-otel-collector
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
- --manager-config=/etc/manager-config.yaml
|
||||||
|
- --copy-path=/var/tmp/collector-config.yaml
|
||||||
|
- --feature-gates=-pkg.translator.prometheus.NormalizeName
|
||||||
|
volumes:
|
||||||
|
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- ../common/signoz/otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
||||||
|
environment:
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux
|
||||||
|
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
||||||
|
ports:
|
||||||
|
# - "1777:1777" # pprof extension
|
||||||
|
- "4317:4317" # OTLP gRPC receiver
|
||||||
|
- "4318:4318" # OTLP HTTP receiver
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-sync:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
query-service:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-sync:
|
||||||
|
<<: *common
|
||||||
|
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.24}
|
||||||
|
container_name: schema-migrator-sync
|
||||||
|
command:
|
||||||
|
- sync
|
||||||
|
- --dsn=tcp://clickhouse:9000
|
||||||
|
- --up=
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-async:
|
||||||
|
<<: *db-depend
|
||||||
|
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.24}
|
||||||
|
container_name: schema-migrator-async
|
||||||
|
command:
|
||||||
|
- async
|
||||||
|
- --dsn=tcp://clickhouse:9000
|
||||||
|
- --up=
|
||||||
|
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
213
deploy/docker/docker-compose.testing.yaml
Normal file
213
deploy/docker/docker-compose.testing.yaml
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
restart: on-failure
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
x-clickhouse-defaults: &clickhouse-defaults
|
||||||
|
<<: *common
|
||||||
|
# addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
tty: true
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9363"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
depends_on:
|
||||||
|
init-clickhouse:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
zookeeper-1:
|
||||||
|
condition: service_healthy
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- 0.0.0.0:8123/ping
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
ulimits:
|
||||||
|
nproc: 65535
|
||||||
|
nofile:
|
||||||
|
soft: 262144
|
||||||
|
hard: 262144
|
||||||
|
x-zookeeper-defaults: &zookeeper-defaults
|
||||||
|
<<: *common
|
||||||
|
image: bitnami/zookeeper:3.7.1
|
||||||
|
user: root
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9141"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
x-db-depend: &db-depend
|
||||||
|
<<: *common
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-sync:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
services:
|
||||||
|
init-clickhouse:
|
||||||
|
<<: *common
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
container_name: signoz-init-clickhouse
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
version="v0.0.1"
|
||||||
|
node_os=$$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||||
|
node_arch=$$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)
|
||||||
|
echo "Fetching histogram-binary for $${node_os}/$${node_arch}"
|
||||||
|
cd /tmp
|
||||||
|
wget -O histogram-quantile.tar.gz "https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2F$${version}/histogram-quantile_$${node_os}_$${node_arch}.tar.gz"
|
||||||
|
tar -xvzf histogram-quantile.tar.gz
|
||||||
|
mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
zookeeper-1:
|
||||||
|
<<: *zookeeper-defaults
|
||||||
|
container_name: signoz-zookeeper-1
|
||||||
|
ports:
|
||||||
|
- "2181:2181"
|
||||||
|
- "2888:2888"
|
||||||
|
- "3888:3888"
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/zookeeper-1:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=1
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
clickhouse:
|
||||||
|
<<: *clickhouse-defaults
|
||||||
|
container_name: signoz-clickhouse
|
||||||
|
ports:
|
||||||
|
- "9000:9000"
|
||||||
|
- "8123:8123"
|
||||||
|
- "9181:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- ./clickhouse-setup/data/clickhouse/:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
alertmanager:
|
||||||
|
<<: *common
|
||||||
|
image: signoz/alertmanager:${ALERTMANAGER_TAG:-0.23.7}
|
||||||
|
container_name: signoz-alertmanager
|
||||||
|
command:
|
||||||
|
- --queryService.url=http://query-service:8085
|
||||||
|
- --storage.path=/data
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/alertmanager:/data
|
||||||
|
depends_on:
|
||||||
|
query-service:
|
||||||
|
condition: service_healthy
|
||||||
|
query-service:
|
||||||
|
<<: *db-depend
|
||||||
|
image: signoz/query-service:${DOCKER_TAG:-0.69.0}
|
||||||
|
container_name: signoz-query-service
|
||||||
|
command:
|
||||||
|
- --config=/root/config/prometheus.yml
|
||||||
|
- --gateway-url=https://api.staging.signoz.cloud
|
||||||
|
- --use-logs-new-schema=true
|
||||||
|
- --use-trace-new-schema=true
|
||||||
|
# ports:
|
||||||
|
# - "8080:8080" # signoz port
|
||||||
|
# - "6060:6060" # pprof port
|
||||||
|
volumes:
|
||||||
|
- ../common/signoz/prometheus.yml:/root/config/prometheus.yml
|
||||||
|
- ../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_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db
|
||||||
|
- DASHBOARDS_PATH=/root/config/dashboards
|
||||||
|
- STORAGE=clickhouse
|
||||||
|
- GODEBUG=netdns=go
|
||||||
|
- TELEMETRY_ENABLED=true
|
||||||
|
- DEPLOYMENT_TYPE=docker-standalone-amd
|
||||||
|
- KAFKA_SPAN_EVAL=${KAFKA_SPAN_EVAL:-false}
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- localhost:8080/api/v1/health
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
frontend:
|
||||||
|
<<: *common
|
||||||
|
image: signoz/frontend:${DOCKER_TAG:-0.69.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:
|
||||||
|
<<: *db-depend
|
||||||
|
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.24}
|
||||||
|
container_name: signoz-otel-collector
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
- --manager-config=/etc/manager-config.yaml
|
||||||
|
- --copy-path=/var/tmp/collector-config.yaml
|
||||||
|
- --feature-gates=-pkg.translator.prometheus.NormalizeName
|
||||||
|
volumes:
|
||||||
|
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- ../common/signoz/otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
||||||
|
environment:
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux
|
||||||
|
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
||||||
|
ports:
|
||||||
|
# - "1777:1777" # pprof extension
|
||||||
|
- "4317:4317" # OTLP gRPC receiver
|
||||||
|
- "4318:4318" # OTLP HTTP receiver
|
||||||
|
depends_on:
|
||||||
|
query-service:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-sync:
|
||||||
|
<<: *common
|
||||||
|
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.24}
|
||||||
|
container_name: schema-migrator-sync
|
||||||
|
command:
|
||||||
|
- sync
|
||||||
|
- --dsn=tcp://clickhouse:9000
|
||||||
|
- --up=
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-async:
|
||||||
|
<<: *db-depend
|
||||||
|
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.24}
|
||||||
|
container_name: schema-migrator-async
|
||||||
|
command:
|
||||||
|
- async
|
||||||
|
- --dsn=tcp://clickhouse:9000
|
||||||
|
- --up=
|
||||||
|
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
211
deploy/docker/docker-compose.yaml
Normal file
211
deploy/docker/docker-compose.yaml
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
restart: on-failure
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
x-clickhouse-defaults: &clickhouse-defaults
|
||||||
|
<<: *common
|
||||||
|
# addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
tty: true
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9363"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
depends_on:
|
||||||
|
init-clickhouse:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
zookeeper-1:
|
||||||
|
condition: service_healthy
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- 0.0.0.0:8123/ping
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
ulimits:
|
||||||
|
nproc: 65535
|
||||||
|
nofile:
|
||||||
|
soft: 262144
|
||||||
|
hard: 262144
|
||||||
|
x-zookeeper-defaults: &zookeeper-defaults
|
||||||
|
<<: *common
|
||||||
|
image: bitnami/zookeeper:3.7.1
|
||||||
|
user: root
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9141"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
x-db-depend: &db-depend
|
||||||
|
<<: *common
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-sync:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
services:
|
||||||
|
init-clickhouse:
|
||||||
|
<<: *common
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
container_name: signoz-init-clickhouse
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
version="v0.0.1"
|
||||||
|
node_os=$$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||||
|
node_arch=$$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)
|
||||||
|
echo "Fetching histogram-binary for $${node_os}/$${node_arch}"
|
||||||
|
cd /tmp
|
||||||
|
wget -O histogram-quantile.tar.gz "https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2F$${version}/histogram-quantile_$${node_os}_$${node_arch}.tar.gz"
|
||||||
|
tar -xvzf histogram-quantile.tar.gz
|
||||||
|
mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
zookeeper-1:
|
||||||
|
<<: *zookeeper-defaults
|
||||||
|
container_name: signoz-zookeeper-1
|
||||||
|
# ports:
|
||||||
|
# - "2181:2181"
|
||||||
|
# - "2888:2888"
|
||||||
|
# - "3888:3888"
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/zookeeper-1:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=1
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
clickhouse:
|
||||||
|
<<: *clickhouse-defaults
|
||||||
|
container_name: signoz-clickhouse
|
||||||
|
# ports:
|
||||||
|
# - "9000:9000"
|
||||||
|
# - "8123:8123"
|
||||||
|
# - "9181:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- ./clickhouse-setup/data/clickhouse/:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
alertmanager:
|
||||||
|
<<: *common
|
||||||
|
image: signoz/alertmanager:${ALERTMANAGER_TAG:-0.23.7}
|
||||||
|
container_name: signoz-alertmanager
|
||||||
|
command:
|
||||||
|
- --queryService.url=http://query-service:8085
|
||||||
|
- --storage.path=/data
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/alertmanager:/data
|
||||||
|
depends_on:
|
||||||
|
query-service:
|
||||||
|
condition: service_healthy
|
||||||
|
query-service:
|
||||||
|
<<: *db-depend
|
||||||
|
image: signoz/query-service:${DOCKER_TAG:-0.69.0}
|
||||||
|
container_name: signoz-query-service
|
||||||
|
command:
|
||||||
|
- --config=/root/config/prometheus.yml
|
||||||
|
- --use-logs-new-schema=true
|
||||||
|
- --use-trace-new-schema=true
|
||||||
|
# ports:
|
||||||
|
# - "3301:8080" # signoz port
|
||||||
|
# - "6060:6060" # pprof port
|
||||||
|
volumes:
|
||||||
|
- ../common/signoz/prometheus.yml:/root/config/prometheus.yml
|
||||||
|
- ../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_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db
|
||||||
|
- DASHBOARDS_PATH=/root/config/dashboards
|
||||||
|
- STORAGE=clickhouse
|
||||||
|
- GODEBUG=netdns=go
|
||||||
|
- TELEMETRY_ENABLED=true
|
||||||
|
- DEPLOYMENT_TYPE=docker-standalone-amd
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- localhost:8080/api/v1/health
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
frontend:
|
||||||
|
<<: *common
|
||||||
|
image: signoz/frontend:${DOCKER_TAG:-0.69.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:
|
||||||
|
<<: *db-depend
|
||||||
|
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.24}
|
||||||
|
container_name: signoz-otel-collector
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
- --manager-config=/etc/manager-config.yaml
|
||||||
|
- --copy-path=/var/tmp/collector-config.yaml
|
||||||
|
- --feature-gates=-pkg.translator.prometheus.NormalizeName
|
||||||
|
volumes:
|
||||||
|
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- ../common/signoz/otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
||||||
|
environment:
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux
|
||||||
|
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
||||||
|
ports:
|
||||||
|
# - "1777:1777" # pprof extension
|
||||||
|
- "4317:4317" # OTLP gRPC receiver
|
||||||
|
- "4318:4318" # OTLP HTTP receiver
|
||||||
|
depends_on:
|
||||||
|
query-service:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-sync:
|
||||||
|
<<: *common
|
||||||
|
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.24}
|
||||||
|
container_name: schema-migrator-sync
|
||||||
|
command:
|
||||||
|
- sync
|
||||||
|
- --dsn=tcp://clickhouse:9000
|
||||||
|
- --up=
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-async:
|
||||||
|
<<: *db-depend
|
||||||
|
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.24}
|
||||||
|
container_name: schema-migrator-async
|
||||||
|
command:
|
||||||
|
- async
|
||||||
|
- --dsn=tcp://clickhouse:9000
|
||||||
|
- --up=
|
||||||
|
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
39
deploy/docker/generator/hotrod/docker-compose.yaml
Normal file
39
deploy/docker/generator/hotrod/docker-compose.yaml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
extra_hosts:
|
||||||
|
- host.docker.internal:host-gateway
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
restart: on-failure
|
||||||
|
services:
|
||||||
|
hotrod:
|
||||||
|
<<: *common
|
||||||
|
image: jaegertracing/example-hotrod:1.61.0
|
||||||
|
container_name: hotrod
|
||||||
|
command: [ "all" ]
|
||||||
|
environment:
|
||||||
|
- OTEL_EXPORTER_OTLP_ENDPOINT=http://host.docker.internal:4318 # In case of external SigNoz or cloud, update the endpoint and access token
|
||||||
|
# - OTEL_OTLP_HEADERS=signoz-access-token=<your-access-token>
|
||||||
|
load-hotrod:
|
||||||
|
<<: *common
|
||||||
|
image: "signoz/locust:1.2.3"
|
||||||
|
container_name: load-hotrod
|
||||||
|
environment:
|
||||||
|
ATTACKED_HOST: http://hotrod:8080
|
||||||
|
LOCUST_MODE: standalone
|
||||||
|
NO_PROXY: standalone
|
||||||
|
TASK_DELAY_FROM: 5
|
||||||
|
TASK_DELAY_TO: 30
|
||||||
|
QUIET_MODE: "${QUIET_MODE:-false}"
|
||||||
|
LOCUST_OPTS: "--headless -u 10 -r 1"
|
||||||
|
volumes:
|
||||||
|
- ../../../common/locust-scripts:/locust
|
||||||
|
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
||||||
|
external: true
|
43
deploy/docker/generator/infra/docker-compose.yaml
Normal file
43
deploy/docker/generator/infra/docker-compose.yaml
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
extra_hosts:
|
||||||
|
- host.docker.internal:host-gateway
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
restart: on-failure
|
||||||
|
services:
|
||||||
|
otel-agent:
|
||||||
|
<<: *common
|
||||||
|
image: otel/opentelemetry-collector-contrib:0.111.0
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
volumes:
|
||||||
|
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- /:/hostfs:ro
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
environment:
|
||||||
|
- SIGNOZ_COLLECTOR_ENDPOINT=http://host.docker.internal:4317 # In case of external SigNoz or cloud, update the endpoint and access token
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux # Replace signoz-host with the actual hostname
|
||||||
|
# - SIGNOZ_ACCESS_TOKEN="<your-access-token>"
|
||||||
|
# Before exposing the ports, make sure the ports are not used by other services
|
||||||
|
# ports:
|
||||||
|
# - "4317:4317"
|
||||||
|
# - "4318:4318"
|
||||||
|
logspout:
|
||||||
|
<<: *common
|
||||||
|
image: "gliderlabs/logspout:v3.2.14"
|
||||||
|
volumes:
|
||||||
|
- /etc/hostname:/etc/host_hostname:ro
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
command: syslog+tcp://otel-agent:2255
|
||||||
|
depends_on:
|
||||||
|
- otel-agent
|
||||||
|
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
||||||
|
external: true
|
139
deploy/docker/generator/infra/otel-collector-config.yaml
Normal file
139
deploy/docker/generator/infra/otel-collector-config.yaml
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
receivers:
|
||||||
|
hostmetrics:
|
||||||
|
collection_interval: 30s
|
||||||
|
root_path: /hostfs
|
||||||
|
scrapers:
|
||||||
|
cpu: {}
|
||||||
|
load: {}
|
||||||
|
memory: {}
|
||||||
|
disk: {}
|
||||||
|
filesystem: {}
|
||||||
|
network: {}
|
||||||
|
otlp:
|
||||||
|
protocols:
|
||||||
|
grpc:
|
||||||
|
endpoint: 0.0.0.0:4317
|
||||||
|
http:
|
||||||
|
endpoint: 0.0.0.0:4318
|
||||||
|
prometheus:
|
||||||
|
config:
|
||||||
|
global:
|
||||||
|
scrape_interval: 60s
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: otel-collector
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
- localhost:8888
|
||||||
|
labels:
|
||||||
|
job_name: otel-collector
|
||||||
|
# For Docker daemon metrics to be scraped, it must be configured to expose
|
||||||
|
# Prometheus metrics, as documented here: https://docs.docker.com/config/daemon/prometheus/
|
||||||
|
# - job_name: docker-daemon
|
||||||
|
# static_configs:
|
||||||
|
# - targets:
|
||||||
|
# - host.docker.internal:9323
|
||||||
|
# labels:
|
||||||
|
# job_name: docker-daemon
|
||||||
|
- job_name: docker-container
|
||||||
|
docker_sd_configs:
|
||||||
|
- host: unix:///var/run/docker.sock
|
||||||
|
relabel_configs:
|
||||||
|
- action: keep
|
||||||
|
regex: true
|
||||||
|
source_labels:
|
||||||
|
- __meta_docker_container_label_signoz_io_scrape
|
||||||
|
- regex: true
|
||||||
|
source_labels:
|
||||||
|
- __meta_docker_container_label_signoz_io_path
|
||||||
|
target_label: __metrics_path__
|
||||||
|
- regex: (.+)
|
||||||
|
source_labels:
|
||||||
|
- __meta_docker_container_label_signoz_io_path
|
||||||
|
target_label: __metrics_path__
|
||||||
|
- separator: ":"
|
||||||
|
source_labels:
|
||||||
|
- __meta_docker_network_ip
|
||||||
|
- __meta_docker_container_label_signoz_io_port
|
||||||
|
target_label: __address__
|
||||||
|
- regex: '/(.*)'
|
||||||
|
replacement: '$1'
|
||||||
|
source_labels:
|
||||||
|
- __meta_docker_container_name
|
||||||
|
target_label: container_name
|
||||||
|
- regex: __meta_docker_container_label_signoz_io_(.+)
|
||||||
|
action: labelmap
|
||||||
|
replacement: $1
|
||||||
|
tcplog/docker:
|
||||||
|
listen_address: "0.0.0.0:2255"
|
||||||
|
operators:
|
||||||
|
- type: regex_parser
|
||||||
|
regex: '^<([0-9]+)>[0-9]+ (?P<timestamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?) (?P<container_id>\S+) (?P<container_name>\S+) [0-9]+ - -( (?P<body>.*))?'
|
||||||
|
timestamp:
|
||||||
|
parse_from: attributes.timestamp
|
||||||
|
layout: '%Y-%m-%dT%H:%M:%S.%LZ'
|
||||||
|
- type: move
|
||||||
|
from: attributes["body"]
|
||||||
|
to: body
|
||||||
|
- type: remove
|
||||||
|
field: attributes.timestamp
|
||||||
|
# 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)-.*)"'
|
||||||
|
processors:
|
||||||
|
batch:
|
||||||
|
send_batch_size: 10000
|
||||||
|
send_batch_max_size: 11000
|
||||||
|
timeout: 10s
|
||||||
|
resourcedetection:
|
||||||
|
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
|
||||||
|
detectors:
|
||||||
|
# - ec2
|
||||||
|
# - gcp
|
||||||
|
# - azure
|
||||||
|
- env
|
||||||
|
- system
|
||||||
|
timeout: 2s
|
||||||
|
extensions:
|
||||||
|
health_check:
|
||||||
|
endpoint: 0.0.0.0:13133
|
||||||
|
pprof:
|
||||||
|
endpoint: 0.0.0.0:1777
|
||||||
|
exporters:
|
||||||
|
otlp:
|
||||||
|
endpoint: ${env:SIGNOZ_COLLECTOR_ENDPOINT}
|
||||||
|
tls:
|
||||||
|
insecure: true
|
||||||
|
headers:
|
||||||
|
signoz-access-token: ${env:SIGNOZ_ACCESS_TOKEN}
|
||||||
|
# debug: {}
|
||||||
|
service:
|
||||||
|
telemetry:
|
||||||
|
logs:
|
||||||
|
encoding: json
|
||||||
|
metrics:
|
||||||
|
address: 0.0.0.0:8888
|
||||||
|
extensions:
|
||||||
|
- health_check
|
||||||
|
- pprof
|
||||||
|
pipelines:
|
||||||
|
traces:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
metrics:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
metrics/hostmetrics:
|
||||||
|
receivers: [hostmetrics]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
metrics/prometheus:
|
||||||
|
receivers: [prometheus]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
logs:
|
||||||
|
receivers: [otlp, tcplog/docker]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
@ -1,62 +1,21 @@
|
|||||||
receivers:
|
receivers:
|
||||||
tcplog/docker:
|
|
||||||
listen_address: "0.0.0.0:2255"
|
|
||||||
operators:
|
|
||||||
- type: regex_parser
|
|
||||||
regex: '^<([0-9]+)>[0-9]+ (?P<timestamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?) (?P<container_id>\S+) (?P<container_name>\S+) [0-9]+ - -( (?P<body>.*))?'
|
|
||||||
timestamp:
|
|
||||||
parse_from: attributes.timestamp
|
|
||||||
layout: '%Y-%m-%dT%H:%M:%S.%LZ'
|
|
||||||
- type: move
|
|
||||||
from: attributes["body"]
|
|
||||||
to: body
|
|
||||||
- type: remove
|
|
||||||
field: attributes.timestamp
|
|
||||||
# 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|frontend|alertmanager|query-service|otel-collector|clickhouse|zookeeper)"'
|
|
||||||
opencensus:
|
|
||||||
endpoint: 0.0.0.0:55678
|
|
||||||
otlp:
|
otlp:
|
||||||
protocols:
|
protocols:
|
||||||
grpc:
|
grpc:
|
||||||
endpoint: 0.0.0.0:4317
|
endpoint: 0.0.0.0:4317
|
||||||
http:
|
http:
|
||||||
endpoint: 0.0.0.0:4318
|
endpoint: 0.0.0.0:4318
|
||||||
jaeger:
|
|
||||||
protocols:
|
|
||||||
grpc:
|
|
||||||
endpoint: 0.0.0.0:14250
|
|
||||||
thrift_http:
|
|
||||||
endpoint: 0.0.0.0:14268
|
|
||||||
# thrift_compact:
|
|
||||||
# endpoint: 0.0.0.0:6831
|
|
||||||
# thrift_binary:
|
|
||||||
# endpoint: 0.0.0.0:6832
|
|
||||||
hostmetrics:
|
|
||||||
collection_interval: 30s
|
|
||||||
root_path: /hostfs
|
|
||||||
scrapers:
|
|
||||||
cpu: {}
|
|
||||||
load: {}
|
|
||||||
memory: {}
|
|
||||||
disk: {}
|
|
||||||
filesystem: {}
|
|
||||||
network: {}
|
|
||||||
prometheus:
|
prometheus:
|
||||||
config:
|
config:
|
||||||
global:
|
global:
|
||||||
scrape_interval: 60s
|
scrape_interval: 60s
|
||||||
scrape_configs:
|
scrape_configs:
|
||||||
# otel-collector internal metrics
|
|
||||||
- job_name: otel-collector
|
- job_name: otel-collector
|
||||||
static_configs:
|
static_configs:
|
||||||
- targets:
|
- targets:
|
||||||
- localhost:8888
|
- localhost:8888
|
||||||
labels:
|
labels:
|
||||||
job_name: otel-collector
|
job_name: otel-collector
|
||||||
|
|
||||||
processors:
|
processors:
|
||||||
batch:
|
batch:
|
||||||
send_batch_size: 10000
|
send_batch_size: 10000
|
||||||
@ -64,25 +23,11 @@ processors:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
resourcedetection:
|
resourcedetection:
|
||||||
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
|
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
|
||||||
detectors: [env, system] # include ec2 for AWS, gcp for GCP and azure for Azure.
|
detectors: [env, system]
|
||||||
timeout: 2s
|
timeout: 2s
|
||||||
# memory_limiter:
|
|
||||||
# # 80% of maximum memory up to 2G
|
|
||||||
# limit_mib: 1500
|
|
||||||
# # 25% of limit up to 2G
|
|
||||||
# spike_limit_mib: 512
|
|
||||||
# check_interval: 5s
|
|
||||||
#
|
|
||||||
# # 50% of the maximum memory
|
|
||||||
# limit_percentage: 50
|
|
||||||
# # 20% of max memory usage spike expected
|
|
||||||
# spike_limit_percentage: 20
|
|
||||||
# queued_retry:
|
|
||||||
# num_workers: 4
|
|
||||||
# queue_size: 100
|
|
||||||
# retry_on_failure: true
|
|
||||||
signozspanmetrics/delta:
|
signozspanmetrics/delta:
|
||||||
metrics_exporter: clickhousemetricswrite
|
metrics_exporter: clickhousemetricswrite
|
||||||
|
metrics_flush_interval: 60s
|
||||||
latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ]
|
latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ]
|
||||||
dimensions_cache_size: 100000
|
dimensions_cache_size: 100000
|
||||||
aggregation_temporality: AGGREGATION_TEMPORALITY_DELTA
|
aggregation_temporality: AGGREGATION_TEMPORALITY_DELTA
|
||||||
@ -105,7 +50,11 @@ processors:
|
|||||||
- name: host.name
|
- name: host.name
|
||||||
- name: host.type
|
- name: host.type
|
||||||
- name: container.name
|
- name: container.name
|
||||||
|
extensions:
|
||||||
|
health_check:
|
||||||
|
endpoint: 0.0.0.0:13133
|
||||||
|
pprof:
|
||||||
|
endpoint: 0.0.0.0:1777
|
||||||
exporters:
|
exporters:
|
||||||
clickhousetraces:
|
clickhousetraces:
|
||||||
datasource: tcp://clickhouse:9000/signoz_traces
|
datasource: tcp://clickhouse:9000/signoz_traces
|
||||||
@ -119,44 +68,34 @@ exporters:
|
|||||||
endpoint: tcp://clickhouse:9000/signoz_metrics
|
endpoint: tcp://clickhouse:9000/signoz_metrics
|
||||||
clickhousemetricswritev2:
|
clickhousemetricswritev2:
|
||||||
dsn: tcp://clickhouse:9000/signoz_metrics
|
dsn: tcp://clickhouse:9000/signoz_metrics
|
||||||
# logging: {}
|
|
||||||
clickhouselogsexporter:
|
clickhouselogsexporter:
|
||||||
dsn: tcp://clickhouse:9000/signoz_logs
|
dsn: tcp://clickhouse:9000/signoz_logs
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
use_new_schema: true
|
use_new_schema: true
|
||||||
extensions:
|
# debug: {}
|
||||||
health_check:
|
|
||||||
endpoint: 0.0.0.0:13133
|
|
||||||
zpages:
|
|
||||||
endpoint: 0.0.0.0:55679
|
|
||||||
pprof:
|
|
||||||
endpoint: 0.0.0.0:1777
|
|
||||||
|
|
||||||
service:
|
service:
|
||||||
telemetry:
|
telemetry:
|
||||||
logs:
|
logs:
|
||||||
encoding: json
|
encoding: json
|
||||||
metrics:
|
metrics:
|
||||||
address: 0.0.0.0:8888
|
address: 0.0.0.0:8888
|
||||||
extensions: [health_check, zpages, pprof]
|
extensions:
|
||||||
|
- health_check
|
||||||
|
- pprof
|
||||||
pipelines:
|
pipelines:
|
||||||
traces:
|
traces:
|
||||||
receivers: [jaeger, otlp]
|
receivers: [otlp]
|
||||||
processors: [signozspanmetrics/delta, batch]
|
processors: [signozspanmetrics/delta, batch]
|
||||||
exporters: [clickhousetraces]
|
exporters: [clickhousetraces]
|
||||||
metrics:
|
metrics:
|
||||||
receivers: [otlp]
|
receivers: [otlp]
|
||||||
processors: [batch]
|
processors: [batch]
|
||||||
exporters: [clickhousemetricswrite, clickhousemetricswritev2]
|
exporters: [clickhousemetricswrite, clickhousemetricswritev2]
|
||||||
metrics/hostmetrics:
|
|
||||||
receivers: [hostmetrics]
|
|
||||||
processors: [resourcedetection, batch]
|
|
||||||
exporters: [clickhousemetricswrite, clickhousemetricswritev2]
|
|
||||||
metrics/prometheus:
|
metrics/prometheus:
|
||||||
receivers: [prometheus]
|
receivers: [prometheus]
|
||||||
processors: [batch]
|
processors: [batch]
|
||||||
exporters: [clickhousemetricswrite/prometheus, clickhousemetricswritev2]
|
exporters: [clickhousemetricswrite/prometheus, clickhousemetricswritev2]
|
||||||
logs:
|
logs:
|
||||||
receivers: [otlp, tcplog/docker]
|
receivers: [otlp]
|
||||||
processors: [batch]
|
processors: [batch]
|
||||||
exporters: [clickhouselogsexporter]
|
exporters: [clickhouselogsexporter]
|
@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
set -o errexit
|
set -o errexit
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
BASE_DIR="$(dirname "$(readlink -f "$0")")"
|
||||||
|
DOCKER_STANDALONE_DIR="docker"
|
||||||
|
DOCKER_SWARM_DIR="docker-swarm" # TODO: Add docker swarm support
|
||||||
|
|
||||||
# Regular Colors
|
# Regular Colors
|
||||||
Black='\033[0;30m' # Black
|
Black='\033[0;30m' # Black
|
||||||
Red='\[\e[0;31m\]' # Red
|
Red='\[\e[0;31m\]' # Red
|
||||||
@ -257,12 +262,15 @@ wait_for_containers_start() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bye() { # Prints a friendly good bye message and exits the script.
|
bye() { # Prints a friendly good bye message and exits the script.
|
||||||
|
# Switch back to the original directory
|
||||||
|
popd > /dev/null 2>&1
|
||||||
if [[ "$?" -ne 0 ]]; then
|
if [[ "$?" -ne 0 ]]; then
|
||||||
set +o errexit
|
set +o errexit
|
||||||
|
|
||||||
echo "🔴 The containers didn't seem to start correctly. Please run the following command to check containers that may have errored out:"
|
echo "🔴 The containers didn't seem to start correctly. Please run the following command to check containers that may have errored out:"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "$sudo_cmd $docker_compose_cmd -f ./docker/clickhouse-setup/docker-compose.yaml ps -a"
|
echo -e "cd ${DOCKER_STANDALONE_DIR}"
|
||||||
|
echo -e "$sudo_cmd $docker_compose_cmd ps -a"
|
||||||
|
|
||||||
echo "Please read our troubleshooting guide https://signoz.io/docs/install/troubleshooting/"
|
echo "Please read our troubleshooting guide https://signoz.io/docs/install/troubleshooting/"
|
||||||
echo "or reach us for support in #help channel in our Slack Community https://signoz.io/slack"
|
echo "or reach us for support in #help channel in our Slack Community https://signoz.io/slack"
|
||||||
@ -471,9 +479,12 @@ fi
|
|||||||
|
|
||||||
start_docker
|
start_docker
|
||||||
|
|
||||||
|
# Switch to the Docker Standalone directory
|
||||||
|
pushd "${BASE_DIR}/${DOCKER_STANDALONE_DIR}" > /dev/null 2>&1
|
||||||
|
|
||||||
# check for open ports, if signoz is not installed
|
# check for open ports, if signoz is not installed
|
||||||
if is_command_present docker-compose; then
|
if is_command_present docker-compose; then
|
||||||
if $sudo_cmd $docker_compose_cmd -f ./docker/clickhouse-setup/docker-compose.yaml ps | grep "signoz-query-service" | grep -q "healthy" > /dev/null 2>&1; then
|
if $sudo_cmd $docker_compose_cmd ps | grep "signoz-query-service" | grep -q "healthy" > /dev/null 2>&1; then
|
||||||
echo "SigNoz already installed, skipping the occupied ports check"
|
echo "SigNoz already installed, skipping the occupied ports check"
|
||||||
else
|
else
|
||||||
check_ports_occupied
|
check_ports_occupied
|
||||||
@ -482,14 +493,14 @@ fi
|
|||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "\n🟡 Pulling the latest container images for SigNoz.\n"
|
echo -e "\n🟡 Pulling the latest container images for SigNoz.\n"
|
||||||
$sudo_cmd $docker_compose_cmd -f ./docker/clickhouse-setup/docker-compose.yaml pull
|
$sudo_cmd $docker_compose_cmd pull
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "🟡 Starting the SigNoz containers. It may take a few minutes ..."
|
echo "🟡 Starting the SigNoz containers. It may take a few minutes ..."
|
||||||
echo
|
echo
|
||||||
# The $docker_compose_cmd command does some nasty stuff for the `--detach` functionality. So we add a `|| true` so that the
|
# The $docker_compose_cmd command does some nasty stuff for the `--detach` functionality. So we add a `|| true` so that the
|
||||||
# script doesn't exit because this command looks like it failed to do it's thing.
|
# script doesn't exit because this command looks like it failed to do it's thing.
|
||||||
$sudo_cmd $docker_compose_cmd -f ./docker/clickhouse-setup/docker-compose.yaml up --detach --remove-orphans || true
|
$sudo_cmd $docker_compose_cmd up --detach --remove-orphans || true
|
||||||
|
|
||||||
wait_for_containers_start 60
|
wait_for_containers_start 60
|
||||||
echo ""
|
echo ""
|
||||||
@ -499,7 +510,14 @@ if [[ $status_code -ne 200 ]]; then
|
|||||||
echo "🔴 The containers didn't seem to start correctly. Please run the following command to check containers that may have errored out:"
|
echo "🔴 The containers didn't seem to start correctly. Please run the following command to check containers that may have errored out:"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
echo -e "$sudo_cmd $docker_compose_cmd -f ./docker/clickhouse-setup/docker-compose.yaml ps -a"
|
echo "cd ${DOCKER_STANDALONE_DIR}"
|
||||||
|
echo "$sudo_cmd $docker_compose_cmd ps -a"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "Try bringing down the containers and retrying the installation"
|
||||||
|
echo "cd ${DOCKER_STANDALONE_DIR}"
|
||||||
|
echo "$sudo_cmd $docker_compose_cmd down -v"
|
||||||
|
echo ""
|
||||||
|
|
||||||
echo "Please read our troubleshooting guide https://signoz.io/docs/install/troubleshooting/"
|
echo "Please read our troubleshooting guide https://signoz.io/docs/install/troubleshooting/"
|
||||||
echo "or reach us on SigNoz for support https://signoz.io/slack"
|
echo "or reach us on SigNoz for support https://signoz.io/slack"
|
||||||
@ -520,7 +538,10 @@ else
|
|||||||
echo "ℹ️ By default, retention period is set to 15 days for logs and traces, and 30 days for metrics."
|
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"
|
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"
|
||||||
|
|
||||||
echo "ℹ️ To bring down SigNoz and clean volumes : $sudo_cmd $docker_compose_cmd -f ./docker/clickhouse-setup/docker-compose.yaml down -v"
|
echo "ℹ️ To bring down SigNoz and clean volumes:"
|
||||||
|
echo ""
|
||||||
|
echo "cd ${DOCKER_STANDALONE_DIR}"
|
||||||
|
echo "$sudo_cmd $docker_compose_cmd down -v"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "+++++++++++++++++++++++++++++++++++++++++++++++++"
|
echo "+++++++++++++++++++++++++++++++++++++++++++++++++"
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
**Building image**
|
**Building image**
|
||||||
|
|
||||||
``docker-compose up`
|
``docker compose up`
|
||||||
/ This will also run
|
/ This will also run
|
||||||
|
|
||||||
or
|
or
|
||||||
@ -19,7 +19,7 @@ docker tag signoz/frontend:latest 7296823551/signoz:latest
|
|||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
docker-compose up
|
docker compose up
|
||||||
```
|
```
|
||||||
|
|
||||||
## Without Docker
|
## Without Docker
|
||||||
|
7
frontend/docker-compose.yaml
Normal file
7
frontend/docker-compose.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version: "3.9"
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
build: .
|
||||||
|
image: signoz/frontend:latest
|
||||||
|
ports:
|
||||||
|
- "3301:3301"
|
@ -1,7 +0,0 @@
|
|||||||
version: "3.9"
|
|
||||||
services:
|
|
||||||
web:
|
|
||||||
build: .
|
|
||||||
image: signoz/frontend:latest
|
|
||||||
ports:
|
|
||||||
- "3301:3301"
|
|
@ -7,10 +7,10 @@ Query service is the interface between frontend and databases. It is written in
|
|||||||
- clickhouse response in the format accepted by Frontend
|
- clickhouse response in the format accepted by Frontend
|
||||||
|
|
||||||
# Complete the clickhouse setup locally.
|
# Complete the clickhouse setup locally.
|
||||||
https://github.com/SigNoz/signoz/blob/main/CONTRIBUTING.md#to-run-clickhouse-setup-recommended-for-local-development
|
https://github.com/SigNoz/signoz/blob/main/CONTRIBUTING.md#42-to-run-clickhouse-setup-recommended-for-local-development
|
||||||
|
|
||||||
- Comment out the query-service and the frontend section in `signoz/deploy/docker/clickhouse-setup/docker-compose.yaml`
|
- Comment out the query-service and the frontend section in `signoz/deploy/docker/docker-compose.yaml`
|
||||||
- Change the alertmanager section in `signoz/deploy/docker/clickhouse-setup/docker-compose.yaml` as follows:
|
- Change the alertmanager section in `signoz/deploy/docker/docker-compose.yaml` as follows:
|
||||||
```console
|
```console
|
||||||
alertmanager:
|
alertmanager:
|
||||||
image: signoz/alertmanager:0.23.7
|
image: signoz/alertmanager:0.23.7
|
||||||
@ -30,9 +30,8 @@ alertmanager:
|
|||||||
```
|
```
|
||||||
- Run the following:
|
- Run the following:
|
||||||
```console
|
```console
|
||||||
cd signoz/
|
cd deploy/docker
|
||||||
If you are using x86_64 processors (All Intel/AMD processors) run sudo make run-x86
|
docker compose up -d
|
||||||
If you are on arm64 processors (Apple M1 Macs) run sudo make run-arm
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Backend Configuration
|
#### Backend Configuration
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
# HotROD Sample Application (Kubernetes)
|
|
||||||
|
|
||||||
Follow the steps in this section to install a sample application named HotR.O.D, and generate tracing data.
|
|
||||||
|
|
||||||
```console
|
|
||||||
kubectl create ns sample-application
|
|
||||||
|
|
||||||
kubectl -n sample-application apply -f https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
In case, you have installed SigNoz in namespace other than `platform` or selected Helm release name other than `my-release`, follow the steps below:
|
|
||||||
|
|
||||||
```console
|
|
||||||
export HELM_RELEASE=my-release-2
|
|
||||||
export SIGNOZ_NAMESPACE=platform-2
|
|
||||||
export HOTROD_NAMESPACE=sample-application-2
|
|
||||||
|
|
||||||
curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-install.sh | bash
|
|
||||||
```
|
|
||||||
|
|
||||||
To delete sample application:
|
|
||||||
|
|
||||||
```console
|
|
||||||
export HOTROD_NAMESPACE=sample-application-2
|
|
||||||
|
|
||||||
curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-delete.sh | bash
|
|
||||||
```
|
|
||||||
|
|
||||||
For testing with local scripts, you can use the following commands:
|
|
||||||
|
|
||||||
```console
|
|
||||||
# To install hotrod
|
|
||||||
cat hotrod-install.sh | bash
|
|
||||||
|
|
||||||
# To delete hotrod
|
|
||||||
cat hotrod-delete.sh | bash
|
|
||||||
```
|
|
@ -1,20 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
cd "$(dirname "${BASH_SOURCE[0]}")";
|
|
||||||
|
|
||||||
HOTROD_NAMESPACE=${HOTROD_NAMESPACE:-"sample-application"}
|
|
||||||
|
|
||||||
if [[ "${HOTROD_NAMESPACE}" == "default" || "${HOTROD_NAMESPACE}" == "kube-system" || "${HOTROD_NAMESPACE}" == "platform" ]]; then
|
|
||||||
echo "Default k8s namespace and SigNoz namespace must not be deleted"
|
|
||||||
echo "Deleting components only"
|
|
||||||
kubectl delete --namespace="${HOTROD_NAMESPACE}" -f <(cat hotrod-template.yaml || curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-template.yaml)
|
|
||||||
else
|
|
||||||
echo "Delete HotROD sample app namespace ${HOTROD_NAMESPACE}"
|
|
||||||
kubectl delete namespace "${HOTROD_NAMESPACE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "❌ Failed to delete HotROD sample application"
|
|
||||||
else
|
|
||||||
echo "✅ Successfully deleted HotROD sample application"
|
|
||||||
fi
|
|
@ -1,52 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
cd "$(dirname "${BASH_SOURCE[0]}")";
|
|
||||||
|
|
||||||
# Namespace to install sample app
|
|
||||||
HOTROD_NAMESPACE=${HOTROD_NAMESPACE:-"sample-application"}
|
|
||||||
SIGNOZ_NAMESPACE="${SIGNOZ_NAMESPACE:-platform}"
|
|
||||||
|
|
||||||
# HotROD's docker image
|
|
||||||
if [[ -z $HOTROD_IMAGE ]]; then
|
|
||||||
HOTROD_REPO="${HOTROD_REPO:-jaegertracing/example-hotrod}"
|
|
||||||
HOTROD_TAG="${HOTROD_TAG:-1.30}"
|
|
||||||
HOTROD_IMAGE="${HOTROD_REPO}:${HOTROD_TAG}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Locust's docker image
|
|
||||||
if [[ -z $LOCUST_IMAGE ]]; then
|
|
||||||
LOCUST_REPO="${LOCUST_REPO:-signoz/locust}"
|
|
||||||
LOCUST_TAG="${LOCUST_TAG:-1.2.3}"
|
|
||||||
LOCUST_IMAGE="${LOCUST_REPO}:${LOCUST_TAG}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Helm release name
|
|
||||||
HELM_RELEASE="${HELM_RELEASE:-my-release}"
|
|
||||||
|
|
||||||
# Otel Collector service address
|
|
||||||
if [[ -z $JAEGER_ENDPOINT ]]; then
|
|
||||||
if [[ "$HELM_RELEASE" == *"signoz"* ]]; then
|
|
||||||
JAEGER_ENDPOINT="http://${HELM_RELEASE}-otel-collector.${SIGNOZ_NAMESPACE}.svc.cluster.local:14268/api/traces"
|
|
||||||
else
|
|
||||||
JAEGER_ENDPOINT="http://${HELM_RELEASE}-signoz-otel-collector.${SIGNOZ_NAMESPACE}.svc.cluster.local:14268/api/traces"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create namespace for sample application if does not exist
|
|
||||||
kubectl create namespace "$HOTROD_NAMESPACE" --save-config --dry-run -o yaml 2>/dev/null | kubectl apply -f -
|
|
||||||
|
|
||||||
# Setup sample apps into specified namespace
|
|
||||||
kubectl apply --namespace="${HOTROD_NAMESPACE}" -f <( \
|
|
||||||
(cat hotrod-template.yaml 2>/dev/null || curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-template.yaml) | \
|
|
||||||
HOTROD_NAMESPACE="${HOTROD_NAMESPACE}" \
|
|
||||||
HOTROD_IMAGE="${HOTROD_IMAGE}" \
|
|
||||||
LOCUST_IMAGE="${LOCUST_IMAGE}" \
|
|
||||||
JAEGER_ENDPOINT="${JAEGER_ENDPOINT}" \
|
|
||||||
envsubst \
|
|
||||||
)
|
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "❌ Failed to deploy HotROD sample application"
|
|
||||||
else
|
|
||||||
echo "✅ Successfully deployed HotROD sample application"
|
|
||||||
fi
|
|
@ -1,202 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: locust-cm
|
|
||||||
data:
|
|
||||||
ATTACKED_HOST: http://hotrod:8080
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: scripts-cm
|
|
||||||
data:
|
|
||||||
locustfile.py: |
|
|
||||||
from locust import HttpUser, task, between
|
|
||||||
class UserTasks(HttpUser):
|
|
||||||
wait_time = between(5, 15)
|
|
||||||
|
|
||||||
@task
|
|
||||||
def rachel(self):
|
|
||||||
self.client.get("/dispatch?customer=123&nonse=0.6308392664170006")
|
|
||||||
@task
|
|
||||||
def trom(self):
|
|
||||||
self.client.get("/dispatch?customer=392&nonse=0.015296363321630757")
|
|
||||||
@task
|
|
||||||
def japanese(self):
|
|
||||||
self.client.get("/dispatch?customer=731&nonse=0.8022286220408668")
|
|
||||||
@task
|
|
||||||
def coffee(self):
|
|
||||||
self.client.get("/dispatch?customer=567&nonse=0.0022220379420636593")
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
service: hotrod
|
|
||||||
name: hotrod
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
service: hotrod
|
|
||||||
strategy: {}
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
service: hotrod
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- args:
|
|
||||||
- all
|
|
||||||
env:
|
|
||||||
- name: JAEGER_ENDPOINT
|
|
||||||
value: ${JAEGER_ENDPOINT}
|
|
||||||
image: ${HOTROD_IMAGE}
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: hotrod
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
restartPolicy: Always
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
service: hotrod
|
|
||||||
name: hotrod
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: "8080"
|
|
||||||
port: 8080
|
|
||||||
targetPort: 8080
|
|
||||||
selector:
|
|
||||||
service: hotrod
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
deployment.kubernetes.io/revision: "1"
|
|
||||||
labels:
|
|
||||||
role: locust-master
|
|
||||||
name: locust-master
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
role: locust-master
|
|
||||||
strategy:
|
|
||||||
rollingUpdate:
|
|
||||||
maxSurge: 1
|
|
||||||
maxUnavailable: 1
|
|
||||||
type: RollingUpdate
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
role: locust-master
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- image: ${LOCUST_IMAGE}
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: locust-master
|
|
||||||
env:
|
|
||||||
- name: ATTACKED_HOST
|
|
||||||
valueFrom:
|
|
||||||
configMapKeyRef:
|
|
||||||
name: locust-cm
|
|
||||||
key: ATTACKED_HOST
|
|
||||||
- name: LOCUST_MODE
|
|
||||||
value: MASTER
|
|
||||||
- name: LOCUST_OPTS
|
|
||||||
value: --print-stats
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /locust
|
|
||||||
name: locust-scripts
|
|
||||||
ports:
|
|
||||||
- containerPort: 5557
|
|
||||||
name: comm
|
|
||||||
- containerPort: 5558
|
|
||||||
name: comm-plus-1
|
|
||||||
- containerPort: 8089
|
|
||||||
name: web-ui
|
|
||||||
terminationMessagePath: /dev/termination-log
|
|
||||||
terminationMessagePolicy: File
|
|
||||||
dnsPolicy: ClusterFirst
|
|
||||||
restartPolicy: Always
|
|
||||||
schedulerName: default-scheduler
|
|
||||||
securityContext: {}
|
|
||||||
terminationGracePeriodSeconds: 30
|
|
||||||
volumes:
|
|
||||||
- name: locust-scripts
|
|
||||||
configMap:
|
|
||||||
name: scripts-cm
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
role: locust-master
|
|
||||||
name: locust-master
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- port: 5557
|
|
||||||
name: communication
|
|
||||||
- port: 5558
|
|
||||||
name: communication-plus-1
|
|
||||||
- port: 8089
|
|
||||||
targetPort: 8089
|
|
||||||
name: web-ui
|
|
||||||
selector:
|
|
||||||
role: locust-master
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
deployment.kubernetes.io/revision: "1"
|
|
||||||
labels:
|
|
||||||
role: locust-worker
|
|
||||||
name: locust-worker
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
role: locust-worker
|
|
||||||
strategy:
|
|
||||||
rollingUpdate:
|
|
||||||
maxSurge: 1
|
|
||||||
maxUnavailable: 1
|
|
||||||
type: RollingUpdate
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
role: locust-worker
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- image: ${LOCUST_IMAGE}
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: locust-worker
|
|
||||||
env:
|
|
||||||
- name: ATTACKED_HOST
|
|
||||||
valueFrom:
|
|
||||||
configMapKeyRef:
|
|
||||||
name: locust-cm
|
|
||||||
key: ATTACKED_HOST
|
|
||||||
- name: LOCUST_MODE
|
|
||||||
value: WORKER
|
|
||||||
- name: LOCUST_MASTER_HOST
|
|
||||||
value: locust-master
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /locust
|
|
||||||
name: locust-scripts
|
|
||||||
terminationMessagePath: /dev/termination-log
|
|
||||||
terminationMessagePolicy: File
|
|
||||||
dnsPolicy: ClusterFirst
|
|
||||||
restartPolicy: Always
|
|
||||||
schedulerName: default-scheduler
|
|
||||||
securityContext: {}
|
|
||||||
terminationGracePeriodSeconds: 30
|
|
||||||
volumes:
|
|
||||||
- name: locust-scripts
|
|
||||||
configMap:
|
|
||||||
name: scripts-cm
|
|
@ -1,202 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: locust-cm
|
|
||||||
data:
|
|
||||||
ATTACKED_HOST: http://hotrod:8080
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: scripts-cm
|
|
||||||
data:
|
|
||||||
locustfile.py: |
|
|
||||||
from locust import HttpUser, task, between
|
|
||||||
class UserTasks(HttpUser):
|
|
||||||
wait_time = between(5, 15)
|
|
||||||
|
|
||||||
@task
|
|
||||||
def rachel(self):
|
|
||||||
self.client.get("/dispatch?customer=123&nonse=0.6308392664170006")
|
|
||||||
@task
|
|
||||||
def trom(self):
|
|
||||||
self.client.get("/dispatch?customer=392&nonse=0.015296363321630757")
|
|
||||||
@task
|
|
||||||
def japanese(self):
|
|
||||||
self.client.get("/dispatch?customer=731&nonse=0.8022286220408668")
|
|
||||||
@task
|
|
||||||
def coffee(self):
|
|
||||||
self.client.get("/dispatch?customer=567&nonse=0.0022220379420636593")
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
service: hotrod
|
|
||||||
name: hotrod
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
service: hotrod
|
|
||||||
strategy: {}
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
service: hotrod
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- args:
|
|
||||||
- all
|
|
||||||
env:
|
|
||||||
- name: JAEGER_ENDPOINT
|
|
||||||
value: http://my-release-signoz-otel-collector.platform.svc.cluster.local:14268/api/traces
|
|
||||||
image: jaegertracing/example-hotrod:1.30
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: hotrod
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
restartPolicy: Always
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
service: hotrod
|
|
||||||
name: hotrod
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: "8080"
|
|
||||||
port: 8080
|
|
||||||
targetPort: 8080
|
|
||||||
selector:
|
|
||||||
service: hotrod
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
deployment.kubernetes.io/revision: "1"
|
|
||||||
labels:
|
|
||||||
role: locust-master
|
|
||||||
name: locust-master
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
role: locust-master
|
|
||||||
strategy:
|
|
||||||
rollingUpdate:
|
|
||||||
maxSurge: 1
|
|
||||||
maxUnavailable: 1
|
|
||||||
type: RollingUpdate
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
role: locust-master
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- image: signoz/locust:1.2.3
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: locust-master
|
|
||||||
env:
|
|
||||||
- name: ATTACKED_HOST
|
|
||||||
valueFrom:
|
|
||||||
configMapKeyRef:
|
|
||||||
name: locust-cm
|
|
||||||
key: ATTACKED_HOST
|
|
||||||
- name: LOCUST_MODE
|
|
||||||
value: MASTER
|
|
||||||
- name: LOCUST_OPTS
|
|
||||||
value: --print-stats
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /locust
|
|
||||||
name: locust-scripts
|
|
||||||
ports:
|
|
||||||
- containerPort: 5557
|
|
||||||
name: comm
|
|
||||||
- containerPort: 5558
|
|
||||||
name: comm-plus-1
|
|
||||||
- containerPort: 8089
|
|
||||||
name: web-ui
|
|
||||||
terminationMessagePath: /dev/termination-log
|
|
||||||
terminationMessagePolicy: File
|
|
||||||
dnsPolicy: ClusterFirst
|
|
||||||
restartPolicy: Always
|
|
||||||
schedulerName: default-scheduler
|
|
||||||
securityContext: {}
|
|
||||||
terminationGracePeriodSeconds: 30
|
|
||||||
volumes:
|
|
||||||
- name: locust-scripts
|
|
||||||
configMap:
|
|
||||||
name: scripts-cm
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
role: locust-master
|
|
||||||
name: locust-master
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- port: 5557
|
|
||||||
name: communication
|
|
||||||
- port: 5558
|
|
||||||
name: communication-plus-1
|
|
||||||
- port: 8089
|
|
||||||
targetPort: 8089
|
|
||||||
name: web-ui
|
|
||||||
selector:
|
|
||||||
role: locust-master
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
deployment.kubernetes.io/revision: "1"
|
|
||||||
labels:
|
|
||||||
role: locust-worker
|
|
||||||
name: locust-worker
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
role: locust-worker
|
|
||||||
strategy:
|
|
||||||
rollingUpdate:
|
|
||||||
maxSurge: 1
|
|
||||||
maxUnavailable: 1
|
|
||||||
type: RollingUpdate
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
role: locust-worker
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- image: signoz/locust:1.2.3
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: locust-worker
|
|
||||||
env:
|
|
||||||
- name: ATTACKED_HOST
|
|
||||||
valueFrom:
|
|
||||||
configMapKeyRef:
|
|
||||||
name: locust-cm
|
|
||||||
key: ATTACKED_HOST
|
|
||||||
- name: LOCUST_MODE
|
|
||||||
value: WORKER
|
|
||||||
- name: LOCUST_MASTER_HOST
|
|
||||||
value: locust-master
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /locust
|
|
||||||
name: locust-scripts
|
|
||||||
terminationMessagePath: /dev/termination-log
|
|
||||||
terminationMessagePolicy: File
|
|
||||||
dnsPolicy: ClusterFirst
|
|
||||||
restartPolicy: Always
|
|
||||||
schedulerName: default-scheduler
|
|
||||||
securityContext: {}
|
|
||||||
terminationGracePeriodSeconds: 30
|
|
||||||
volumes:
|
|
||||||
- name: locust-scripts
|
|
||||||
configMap:
|
|
||||||
name: scripts-cm
|
|
Loading…
x
Reference in New Issue
Block a user