From d7f7f2052004a13ce09e9bbbc404e79aefcff6df Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Wed, 13 Jul 2022 02:23:06 +0530 Subject: [PATCH 01/42] 1st iteration --- CONTRIBUTING.md | 297 +++++++++++++++++++++++++----------------------- 1 file changed, 155 insertions(+), 142 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 54ff60451b..ca6eef6f25 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,147 +1,13 @@ -# How to Contribute +## Welcome to SigNoz contributing section. Thank you for taking out the time to contribute to this project. -There are primarily 2 areas in which you can contribute in SigNoz +Sections: +1. [General Guidelines](#1-general-instructions) +2. [How to Contribute](#2-how-to-contribute) +3. [Develop Frontend](#3-develop-frontend) +4. [Contribute to Query-Service](#4-contribute-to-query-service) +5. [Contribute to SigNoz Helm Chart](#5-contribute-to-signoz-helm-chart) -- Frontend ( written in Typescript, React) -- Backend - ( Query Service - written in Go) - -Depending upon your area of expertise & interest, you can chose one or more to contribute. Below are detailed instructions to contribute in each area - -> Please note: If you want to work on an issue, please ask the maintainers to assign the issue to you before starting work on it. This would help us understand who is working on an issue and prevent duplicate work. πŸ™πŸ» - -> If you just raise a PR, without the corresponding issue being assigned to you - it may not be accepted. - -# Develop Frontend - -Need to update [https://github.com/SigNoz/signoz/tree/main/frontend](https://github.com/SigNoz/signoz/tree/main/frontend) - -### Contribute to Frontend with Docker installation of SigNoz - -- `git clone https://github.com/SigNoz/signoz.git && cd signoz` -- comment out frontend service section at `deploy/docker/clickhouse-setup/docker-compose.yaml#L62` -- run `cd deploy` to move to deploy directory -- Install signoz locally without the frontend - - Add below configuration to query-service section at `docker/clickhouse-setup/docker-compose.yaml#L38` - - ```docker - ports: - - "8080:8080" - ``` - - If you are using x86_64 processors (All Intel/AMD processors) run `sudo docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d` - - If you are on arm64 processors (Apple M1 Macbooks) run `sudo docker-compose -f docker/clickhouse-setup/docker-compose.arm.yaml up -d` -- `cd ../frontend` and change baseURL to `http://localhost:8080` in file `src/constants/env.ts` -- `yarn install` -- `yarn dev` - -> Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` - -### Contribute to Frontend without installing SigNoz backend - -If you don't want to install SigNoz backend just for doing frontend development, we can provide you with test environments which you can use as the backend. Please ping us in #contributing channel in our [slack community](https://signoz.io/slack) and we will DM you with `` - -- `git clone https://github.com/SigNoz/signoz.git && cd signoz/frontend` -- Create a file `.env` with `FRONTEND_API_ENDPOINT=` -- `yarn install` -- `yarn dev` - -**_Frontend should now be accessible at `http://localhost:3301/application`_** - -# Contribute to 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) - -### To run ClickHouse setup (recommended for local development) - -- git clone https://github.com/SigNoz/signoz.git -- run `cd signoz` to move to signoz directory -- run `sudo make dev-setup` to configure local setup to run query-service -- comment out frontend service section at `docker/clickhouse-setup/docker-compose.yaml` -- comment out query-service section at `docker/clickhouse-setup/docker-compose.yaml` -- add below configuration to clickhouse section at `docker/clickhouse-setup/docker-compose.yaml` -```docker - expose: - - 9000 - ports: - - 9001:9000 -``` - -- run `cd pkg/query-service/` to move to query-service directory -- Open ./constants/constants.go - - Replace ```const RELATIONAL_DATASOURCE_PATH = "/var/lib/signoz/signoz.db"``` \ - with ```const RELATIONAL_DATASOURCE_PATH = "./signoz.db".``` - -- 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 on arm64 processors (Apple M1 Macbooks) run `sudo make run-arm` - -#### Run locally -```console -ClickHouseUrl=tcp://localhost:9001 STORAGE=clickhouse go run main.go -``` - -> Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` - -**_Query Service should now be available at `http://localhost:8080`_** - -> If you want to see how, frontend plays with query service, you can run frontend also in you local env with the baseURL changed to `http://localhost:8080` in file `src/constants/env.ts` as the query-service is now running at port `8080` - ---- - - -# Contribute to SigNoz Helm Chart - -Need to update [https://github.com/SigNoz/charts](https://github.com/SigNoz/charts). - -### To run helm chart for local development - -- run `git clone https://github.com/SigNoz/charts.git` followed by `cd charts` -- it is recommended to use lightweight kubernetes (k8s) cluster for local development: - - [kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation) - - [k3d](https://k3d.io/#installation) - - [minikube](https://minikube.sigs.k8s.io/docs/start/) -- create a k8s cluster and make sure `kubectl` points to the locally created k8s cluster -- run `make dev-install` to install SigNoz chart with `my-release` release name in `platform` namespace. -- run `kubectl -n platform port-forward svc/my-release-signoz-frontend 3301:3301` to make SigNoz UI available at [localhost:3301](http://localhost:3301) - -**To install HotROD sample app:** - -```bash -curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-install.sh \ - | HELM_RELEASE=my-release SIGNOZ_NAMESPACE=platform bash -``` - -**To load data with HotROD sample app:** - -```bash -kubectl -n sample-application run strzal --image=djbingham/curl \ - --restart='OnFailure' -i --tty --rm --command -- curl -X POST -F \ - 'locust_count=6' -F 'hatch_rate=2' http://locust-master:8089/swarm -``` - -**To stop the load generation:** - -```bash -kubectl -n sample-application run strzal --image=djbingham/curl \ - --restart='OnFailure' -i --tty --rm --command -- curl \ - http://locust-master:8089/stop -``` - -**To delete HotROD sample app:** - -```bash -curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-delete.sh \ - | HOTROD_NAMESPACE=sample-application bash -``` - ---- - -## General Instructions +# 1. General Instructions **Before making any significant changes, please open an issue**. Each issue should describe the following: @@ -188,3 +54,150 @@ e.g. If you are submitting a fix for an issue in frontend - PR name should be pr 2. Follow [GitHub Flow](https://guides.github.com/introduction/flow/) guidelines for your contribution flows 3. Feel free to ping us on `#contributing` or `#contributing-frontend` on our slack community if you need any help on this :) + + +# 2. How to Contribute + +There are primarily 2 areas in which you can contribute in SigNoz + +- Frontend ( written in Typescript, React) +- Backend - ( Query Service - written in Go) + +Depending upon your area of expertise & interest, you can chose one or more to contribute. Below are detailed instructions to contribute in each area + +> Please note: If you want to work on an issue, please ask the maintainers to assign the issue to you before starting work on it. This would help us understand who is working on an issue and prevent duplicate work. πŸ™πŸ» + +> If you just raise a PR, without the corresponding issue being assigned to you - it may not be accepted. + +# 3. Develop Frontend + +Need to update [https://github.com/SigNoz/signoz/tree/main/frontend](https://github.com/SigNoz/signoz/tree/main/frontend) + +### 3.1 Contribute to Frontend with Docker installation of SigNoz + +- `git clone https://github.com/SigNoz/signoz.git && cd signoz` +- comment out frontend service section at `deploy/docker/clickhouse-setup/docker-compose.yaml#L62` +- run `cd deploy` to move to deploy directory +- Install signoz locally without the frontend + - Add below configuration to query-service section at `docker/clickhouse-setup/docker-compose.yaml#L38` + + ```docker + ports: + - "8080:8080" + ``` + - If you are using x86_64 processors (All Intel/AMD processors) run `sudo docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d` + - If you are on arm64 processors (Apple M1 Macbooks) run `sudo docker-compose -f docker/clickhouse-setup/docker-compose.arm.yaml up -d` +- `cd ../frontend` and change baseURL to `http://localhost:8080` in file `src/constants/env.ts` +- `yarn install` +- `yarn dev` + +> Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` + +### 3.2 Contribute to Frontend without installing SigNoz backend + +If you don't want to install SigNoz backend just for doing frontend development, we can provide you with test environments which you can use as the backend. Please ping us in #contributing channel in our [slack community](https://signoz.io/slack) and we will DM you with `` + +- `git clone https://github.com/SigNoz/signoz.git && cd signoz/frontend` +- Create a file `.env` with `FRONTEND_API_ENDPOINT=` +- `yarn install` +- `yarn dev` + +**_Frontend should now be accessible at `http://localhost:3301/application`_** + +# 4. Contribute to 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 To run ClickHouse setup (recommended for local development) + +- git clone https://github.com/SigNoz/signoz.git +- run `cd signoz` to move to signoz directory +- run `sudo make dev-setup` to configure local setup to run query-service +- comment out frontend service section at `docker/clickhouse-setup/docker-compose.yaml` +- comment out query-service section at `docker/clickhouse-setup/docker-compose.yaml` +- add below configuration to clickhouse section at `docker/clickhouse-setup/docker-compose.yaml` +```docker + expose: + - 9000 + ports: + - 9001:9000 +``` + +- run `cd pkg/query-service/` to move to query-service directory +- Open ./constants/constants.go + - Replace ```const RELATIONAL_DATASOURCE_PATH = "/var/lib/signoz/signoz.db"``` \ + with ```const RELATIONAL_DATASOURCE_PATH = "./signoz.db".``` + +- 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 on arm64 processors (Apple M1 Macbooks) run `sudo make run-arm` + +#### 4.2 Run locally +```console +ClickHouseUrl=tcp://localhost:9001 STORAGE=clickhouse go run main.go +``` + +> Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` + +**_Query Service should now be available at `http://localhost:8080`_** + +> If you want to see how, frontend plays with query service, you can run frontend also in you local env with the baseURL changed to `http://localhost:8080` in file `src/constants/env.ts` as the query-service is now running at port `8080` + +--- + + +# 5. Contribute to SigNoz Helm Chart + +Need to update [https://github.com/SigNoz/charts](https://github.com/SigNoz/charts). + +### 5.1 To run helm chart for local development + +- run `git clone https://github.com/SigNoz/charts.git` followed by `cd charts` +- it is recommended to use lightweight kubernetes (k8s) cluster for local development: + - [kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation) + - [k3d](https://k3d.io/#installation) + - [minikube](https://minikube.sigs.k8s.io/docs/start/) +- create a k8s cluster and make sure `kubectl` points to the locally created k8s cluster +- run `make dev-install` to install SigNoz chart with `my-release` release name in `platform` namespace. +- run `kubectl -n platform port-forward svc/my-release-signoz-frontend 3301:3301` to make SigNoz UI available at [localhost:3301](http://localhost:3301) + +**To install HotROD sample app:** + +```bash +curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-install.sh \ + | HELM_RELEASE=my-release SIGNOZ_NAMESPACE=platform bash +``` + +**To load data with HotROD sample app:** + +```bash +kubectl -n sample-application run strzal --image=djbingham/curl \ + --restart='OnFailure' -i --tty --rm --command -- curl -X POST -F \ + 'locust_count=6' -F 'hatch_rate=2' http://locust-master:8089/swarm +``` + +**To stop the load generation:** + +```bash +kubectl -n sample-application run strzal --image=djbingham/curl \ + --restart='OnFailure' -i --tty --rm --command -- curl \ + http://locust-master:8089/stop +``` + +**To delete HotROD sample app:** + +```bash +curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-delete.sh \ + | HOTROD_NAMESPACE=sample-application bash +``` + +--- + +Again, feel free to ping us on `#contributing` or `#contributing-frontend` on our slack community if you need any help on this :) + From 8477aebc8e16aa8885ff0188808c5d74446c5bfb Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Wed, 13 Jul 2022 12:27:28 +0530 Subject: [PATCH 02/42] V2 --- CONTRIBUTING.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ca6eef6f25..b53a00b588 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,11 +1,13 @@ ## Welcome to SigNoz contributing section. Thank you for taking out the time to contribute to this project. -Sections: -1. [General Guidelines](#1-general-instructions) -2. [How to Contribute](#2-how-to-contribute) -3. [Develop Frontend](#3-develop-frontend) -4. [Contribute to Query-Service](#4-contribute-to-query-service) -5. [Contribute to SigNoz Helm Chart](#5-contribute-to-signoz-helm-chart) +## Sections: +- [General Guidelines](#1-general-instructions) +- [How to Contribute](#2-how-to-contribute) +- [Develop Frontend](#3-develop-frontend) + - [Contribute to Frontend with Docker installation of SigNoz](#31-contribute-to-frontend-with-docker-installation-of-signoz) + - [Contribute to Frontend without installing SigNoz backend](#32-contribute-to-frontend-without-installing-signoz-backend) +- [Contribute to Query-Service](#4-contribute-to-query-service) +- [Contribute to SigNoz Helm Chart](#5-contribute-to-signoz-helm-chart) # 1. General Instructions @@ -36,7 +38,7 @@ and open a pull request(s). Unless your change is small, Please consider submitt stability and quality of the component. -You can always reach out to `ankit@signoz.io` to understand more about the repo and product. We are very responsive over email and [slack](https://signoz.io/slack). +You can always reach out to `ankit@signoz.io` to understand more about the repo and product. We are very responsive over email and [SLACK](https://signoz.io/slack). - If you find any bugs, please create an issue - If you find anything missing in documentation, you can create an issue with label **documentation** @@ -132,14 +134,14 @@ Need to update [https://github.com/SigNoz/signoz/tree/main/pkg/query-service](ht - If you are using x86_64 processors (All Intel/AMD processors) run `sudo make run-x86` - If you are on arm64 processors (Apple M1 Macbooks) run `sudo make run-arm` -#### 4.2 Run locally +#### Run locally ```console ClickHouseUrl=tcp://localhost:9001 STORAGE=clickhouse go run main.go ``` > Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` -**_Query Service should now be available at `http://localhost:8080`_** +**_Query Service should now be available at [http://localhost:8080](http://localhost:8080)_** > If you want to see how, frontend plays with query service, you can run frontend also in you local env with the baseURL changed to `http://localhost:8080` in file `src/constants/env.ts` as the query-service is now running at port `8080` From 54e09e1292a7e9a073a54b70a97315ed99ee7c6a Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Wed, 13 Jul 2022 13:48:18 +0530 Subject: [PATCH 03/42] v3 --- CONTRIBUTING.md | 137 +++++++++++++++++++++++++++++------------------- 1 file changed, 84 insertions(+), 53 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b53a00b588..8a3daaabcc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,10 @@ -## Welcome to SigNoz contributing section. Thank you for taking out the time to contribute to this project. +# Contributing Guidelines + +#### Welcome to SigNoz Contributing section πŸŽ‰ + +Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional documentation, we greatly value feedback and contributions from our community. + +Please read through this document before submitting any issues or pull requests to ensure we have all the necessary information to effectively respond to your bug report or contribution. ## Sections: - [General Guidelines](#1-general-instructions) @@ -9,69 +15,87 @@ - [Contribute to Query-Service](#4-contribute-to-query-service) - [Contribute to SigNoz Helm Chart](#5-contribute-to-signoz-helm-chart) -# 1. General Instructions +# 1. General Instructions πŸ“ -**Before making any significant changes, please open an issue**. Each issue -should describe the following: +Before making any significant changes and before filing an issue, please check [existing open](https://github.com/SigNoz/signoz/issues?q=is%3Aopen+is%3Aissue), or [recently closed](https://github.com/SigNoz/signoz/issues?q=is%3Aissue+is%3Aclosed), issues to make sure somebody else hasn't already reported the issue. Please try to include as much information as you can. -* Requirement - what kind of use case are you trying to solve? -* Proposal - what do you suggest to solve the problem or improve the existing +#### Details like these are incredibly useful: + +- **Requirement** - what kind of use case are you trying to solve? +- **Proposal** - what do you suggest to solve the problem or improve the existing situation? -* Any open questions to address +- Any open questions to address❓ + +#### If you are reporting a bug, details like these are incredibly useful: + +- A reproducible test case or series of steps. +- The version of our code being used. +- Any modifications you've made relevant to the bug🐞. +- Anything unusual about your environment or deployment. + +
Discussing your proposed changes ahead of time will make the contribution -process smooth for everyone. Once the approach is agreed upon, make your changes -and open a pull request(s). Unless your change is small, Please consider submitting different PRs: +process smooth for everyone. -* First PR should include the overall structure of the new component: - * Readme, configuration, interfaces or base classes etc... +Once the approach is agreed uponβœ…, make your changes +and open a Pull Request(s). + +**Note:** Unless your change is small, **please** consider submitting different Pull Rrequest(s): + +* 1️⃣ First PR should include the overall structure of the new component: + * Readme, configuration, interfaces or base classes, etc... * This PR is usually trivial to review, so the size limit does not apply to it. -* Second PR should include the concrete implementation of the component. If the - size of this PR is larger than the recommended size consider splitting it in +* 2️⃣ Second PR should include the concrete implementation of the component. If the + size of this PR is larger than the recommended size, consider splitting it into multiple PRs. * If there are multiple sub-component then ideally each one should be implemented as a separate pull request. -* Last PR should include changes to any user facing documentation. And should include - end to end tests if applicable. The component must be enabled +* Last PR should include changes to any user-facing documentation. And should include + end-to-end tests if applicable. The component must be enabled only after sufficient testing, and there is enough confidence in the stability and quality of the component. You can always reach out to `ankit@signoz.io` to understand more about the repo and product. We are very responsive over email and [SLACK](https://signoz.io/slack). -- If you find any bugs, please create an issue -- If you find anything missing in documentation, you can create an issue with label **documentation** -- If you want to build any new feature, please create an issue with label `enhancement` -- If you want to discuss something about the product, start a new [discussion](https://github.com/SigNoz/signoz/discussions) +- If you find any **bugs** β†’ please create an **issue.** +- If you find anything **missing** in documentation β†’ you can create an issue with the label **`documentation`**. +- If you want to build any **new feature** β†’ please create an issue with the label **`enhancement`**. +- If you want to **discuss** something about the product, start a new [**discussion**.](https://github.com/SigNoz/signoz/discussions) -### Conventions to follow when submitting commits, PRs +
-1. We try to follow https://www.conventionalcommits.org/en/v1.0.0/ +### Conventions to follow when submitting Commits and Pull Request(s). -More specifically the commits and PRs should have type specifiers prefixed in the name. [This](https://www.conventionalcommits.org/en/v1.0.0/#specification) should give you a better idea. +- We try to follow [Conventional Commits.](https://www.conventionalcommits.org/en/v1.0.0/) +, more specifically the commits and PRs should have type specifiers prefixed in the name. [This](https://www.conventionalcommits.org/en/v1.0.0/#specification) should give you a better idea. -e.g. If you are submitting a fix for an issue in frontend - PR name should be prefixed with `fix(FE):` +e.g. If you are submitting a fix for an issue in frontend, the PR name should be prefixed with **`fix(FE):`** -2. Follow [GitHub Flow](https://guides.github.com/introduction/flow/) guidelines for your contribution flows +- Follow [GitHub Flow](https://guides.github.com/introduction/flow/) guidelines for your contribution flows. -3. Feel free to ping us on `#contributing` or `#contributing-frontend` on our slack community if you need any help on this :) +- Feel free to ping us on [#contributing](https://signoz-community.slack.com/archives/C01LWQ8KS7M) or [#contributing-frontend](https://signoz-community.slack.com/archives/C027134DM8B) on our slack community if you need any help on this :) +
-# 2. How to Contribute +# 2. How to Contribute πŸ™‹πŸ»β€β™‚οΈ -There are primarily 2 areas in which you can contribute in SigNoz +#### There are primarily 2 areas in which you can contribute to SigNoz -- Frontend ( written in Typescript, React) -- Backend - ( Query Service - written in Go) +- **Frontend** (Written in Typescript, React) +- **Backend** (Query Service, written in Go) -Depending upon your area of expertise & interest, you can chose one or more to contribute. Below are detailed instructions to contribute in each area +Depending upon your area of expertise & interest, you can choose one or more to contribute. Below are detailed instructions to contribute in each area. -> Please note: If you want to work on an issue, please ask the maintainers to assign the issue to you before starting work on it. This would help us understand who is working on an issue and prevent duplicate work. πŸ™πŸ» +**Please note:** If you want to work on an issue, please ask the maintainers to assign the issue to you before starting work on it. This would help us understand who is working on an issue and prevent duplicate work. πŸ™πŸ» -> If you just raise a PR, without the corresponding issue being assigned to you - it may not be accepted. +⚠️ If you just raise a PR, without the corresponding issue being assigned to you - it may not be accepted. -# 3. Develop Frontend +
+ +# 3. Develop Frontend 🌝 Need to update [https://github.com/SigNoz/signoz/tree/main/frontend](https://github.com/SigNoz/signoz/tree/main/frontend) @@ -97,7 +121,7 @@ Need to update [https://github.com/SigNoz/signoz/tree/main/frontend](https://git ### 3.2 Contribute to Frontend without installing SigNoz backend -If you don't want to install SigNoz backend just for doing frontend development, we can provide you with test environments which you can use as the backend. Please ping us in #contributing channel in our [slack community](https://signoz.io/slack) and we will DM you with `` +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. Please ping us in the #contributing channel in our [slack community](https://signoz.io/slack) and we will DM you with `` - `git clone https://github.com/SigNoz/signoz.git && cd signoz/frontend` - Create a file `.env` with `FRONTEND_API_ENDPOINT=` @@ -106,18 +130,23 @@ If you don't want to install SigNoz backend just for doing frontend development, **_Frontend should now be accessible at `http://localhost:3301/application`_** -# 4. Contribute to 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. Contribute to Backend (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 To run ClickHouse setup (recommended for local development) -- git clone https://github.com/SigNoz/signoz.git -- run `cd signoz` to move to signoz directory -- run `sudo make dev-setup` to configure local setup to run query-service -- comment out frontend service section at `docker/clickhouse-setup/docker-compose.yaml` -- comment out query-service section at `docker/clickhouse-setup/docker-compose.yaml` -- add below configuration to clickhouse section at `docker/clickhouse-setup/docker-compose.yaml` +- Clone SigNoz, +``` +git clone https://github.com/SigNoz/signoz.git +``` +- run `cd signoz` to move to signoz directory, +- run `sudo make dev-setup` to configure local setup to run query-service, +- comment out frontend service section at [`docker/clickhouse-setup/docker-compose.yaml`,](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml) +- comment out query-service section at [`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 [`docker/clickhouse-setup/docker-compose.yaml`,](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml) ```docker expose: - 9000 @@ -125,14 +154,14 @@ Need to update [https://github.com/SigNoz/signoz/tree/main/pkg/query-service](ht - 9001:9000 ``` -- run `cd pkg/query-service/` to move to query-service directory -- Open ./constants/constants.go +- run `cd pkg/query-service/` to move to `query-service` directory, +- Open [`./constants/constants.go`,](https://github.com/SigNoz/signoz/blob/develop/pkg/query-service/constants/constants.go) - Replace ```const RELATIONAL_DATASOURCE_PATH = "/var/lib/signoz/signoz.db"``` \ - with ```const RELATIONAL_DATASOURCE_PATH = "./signoz.db".``` + with β†’ ```const RELATIONAL_DATASOURCE_PATH = "./signoz.db".``` -- 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 on arm64 processors (Apple M1 Macbooks) run `sudo make run-arm` +- 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 on `arm64` processors (Apple M1 Macs) run `sudo make run-arm` #### Run locally ```console @@ -143,7 +172,7 @@ ClickHouseUrl=tcp://localhost:9001 STORAGE=clickhouse go run main.go **_Query Service should now be available at [http://localhost:8080](http://localhost:8080)_** -> If you want to see how, frontend plays with query service, you can run frontend also in you local env with the baseURL changed to `http://localhost:8080` in file `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 `src/constants/env.ts` as the query-service is now running at port `8080` --- +> To use it on your forked repo, edit the 'Open in Gitpod' button URL to `https://gitpod.io/#https://github.com//signoz` --> + +
# 5. Contribute to SigNoz Helm Chart @@ -169,14 +200,14 @@ Need to update [https://github.com/SigNoz/charts](https://github.com/SigNoz/char - run `make dev-install` to install SigNoz chart with `my-release` release name in `platform` namespace. - run `kubectl -n platform port-forward svc/my-release-signoz-frontend 3301:3301` to make SigNoz UI available at [localhost:3301](http://localhost:3301) -**To install HotROD sample app:** +**To install the HotROD sample app:** ```bash curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-install.sh \ | HELM_RELEASE=my-release SIGNOZ_NAMESPACE=platform bash ``` -**To load data with HotROD sample app:** +**To load data with the HotROD sample app:** ```bash kubectl -n sample-application run strzal --image=djbingham/curl \ @@ -192,7 +223,7 @@ kubectl -n sample-application run strzal --image=djbingham/curl \ http://locust-master:8089/stop ``` -**To delete HotROD sample app:** +**To delete the HotROD sample app:** ```bash curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-delete.sh \ From 61b79742dc397de0c7c130057181637dbd838f30 Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Wed, 13 Jul 2022 17:17:37 +0530 Subject: [PATCH 04/42] v4 --- CONTRIBUTING.md | 192 +++++++++++++++++++++++++++++++----------------- 1 file changed, 124 insertions(+), 68 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8a3daaabcc..3b2bf060d8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,18 +6,30 @@ Thank you for your interest in contributing to our project. Whether it's a bug r Please read through this document before submitting any issues or pull requests to ensure we have all the necessary information to effectively respond to your bug report or contribution. +## Finding contributions to work on πŸ’¬ + +Looking at the existing issues is a great way to find something to contribute on. +Also, have a look at these [good first issues labels](https://github.com/SigNoz/signoz/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to start with. + ## Sections: -- [General Guidelines](#1-general-instructions) -- [How to Contribute](#2-how-to-contribute) -- [Develop Frontend](#3-develop-frontend) +- [General Instructions](#1-general-instructions-) + - [For Creating Issue(s)](#11-for-creating-issues) + - [For Pull Requests(s)](#12-for-pull-requests) +- [How to Contribute](#2-how-to-contribute-%EF%B8%8F) +- [Develop Frontend](#3-develop-frontend-) - [Contribute to Frontend with Docker installation of SigNoz](#31-contribute-to-frontend-with-docker-installation-of-signoz) - [Contribute to Frontend without installing SigNoz backend](#32-contribute-to-frontend-without-installing-signoz-backend) -- [Contribute to Query-Service](#4-contribute-to-query-service) -- [Contribute to SigNoz Helm Chart](#5-contribute-to-signoz-helm-chart) +- [Contribute to Backend (Query-Service)](#4-contribute-to-backend-query-service-) + - [To run ClickHouse setup](#41-to-run-clickhouse-setup-recommended-for-local-development) +- [Contribute to SigNoz Helm Chart](#5-contribute-to-signoz-helm-chart-) + - [To run helm chart for local development](#51-to-run-helm-chart-for-local-development) # 1. General Instructions πŸ“ -Before making any significant changes and before filing an issue, please check [existing open](https://github.com/SigNoz/signoz/issues?q=is%3Aopen+is%3Aissue), or [recently closed](https://github.com/SigNoz/signoz/issues?q=is%3Aissue+is%3Aclosed), issues to make sure somebody else hasn't already reported the issue. Please try to include as much information as you can. +## 1.1 For Creating Issue(s) +Before making any significant changes and before filing a new issue, please check [existing open](https://github.com/SigNoz/signoz/issues?q=is%3Aopen+is%3Aissue), or [recently closed](https://github.com/SigNoz/signoz/issues?q=is%3Aissue+is%3Aclosed) issues to make sure somebody else hasn't already reported the issue. Please try to include as much information as you can. + +**Issue Types** - [Bug Report](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=&template=bug_report.md&title=) | [Feature Request](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=&template=feature_request.md&title=) | [Performance Issue Report](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=&template=performance-issue-report.md&title=) | [Report a Security Vulnerability](https://github.com/SigNoz/signoz/security/policy) #### Details like these are incredibly useful: @@ -33,12 +45,16 @@ Before making any significant changes and before filing an issue, please check [ - Any modifications you've made relevant to the bug🐞. - Anything unusual about your environment or deployment. +Discussing your proposed changes ahead of time will make the contribution +process smooth for everyone πŸ™Œ. + + **[`^top^`](#)** +
-Discussing your proposed changes ahead of time will make the contribution -process smooth for everyone. +## 1.2 For Pull Request(s) -Once the approach is agreed uponβœ…, make your changes +Once the approach is agreed upon βœ…, make your changes and open a Pull Request(s). **Note:** Unless your change is small, **please** consider submitting different Pull Rrequest(s): @@ -48,11 +64,11 @@ and open a Pull Request(s). * This PR is usually trivial to review, so the size limit does not apply to it. * 2️⃣ Second PR should include the concrete implementation of the component. If the - size of this PR is larger than the recommended size, consider splitting it into + size of this PR is larger than the recommended size, consider **splitting** βš”οΈ it into multiple PRs. * If there are multiple sub-component then ideally each one should be implemented as - a separate pull request. -* Last PR should include changes to any user-facing documentation. And should include + a **separate** pull request. +* Last PR should include changes to **any user-facing documentation.** And should include end-to-end tests if applicable. The component must be enabled only after sufficient testing, and there is enough confidence in the stability and quality of the component. @@ -60,6 +76,7 @@ and open a Pull Request(s). You can always reach out to `ankit@signoz.io` to understand more about the repo and product. We are very responsive over email and [SLACK](https://signoz.io/slack). +### Pointers: - If you find any **bugs** β†’ please create an **issue.** - If you find anything **missing** in documentation β†’ you can create an issue with the label **`documentation`**. - If you want to build any **new feature** β†’ please create an issue with the label **`enhancement`**. @@ -69,23 +86,24 @@ You can always reach out to `ankit@signoz.io` to understand more about the repo ### Conventions to follow when submitting Commits and Pull Request(s). -- We try to follow [Conventional Commits.](https://www.conventionalcommits.org/en/v1.0.0/) -, more specifically the commits and PRs should have type specifiers prefixed in the name. [This](https://www.conventionalcommits.org/en/v1.0.0/#specification) should give you a better idea. +We try to follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/), more specifically the commits and PRs **should have type specifiers** prefixed in the name. [This](https://www.conventionalcommits.org/en/v1.0.0/#specification) should give you a better idea. e.g. If you are submitting a fix for an issue in frontend, the PR name should be prefixed with **`fix(FE):`** - Follow [GitHub Flow](https://guides.github.com/introduction/flow/) guidelines for your contribution flows. -- Feel free to ping us on [#contributing](https://signoz-community.slack.com/archives/C01LWQ8KS7M) or [#contributing-frontend](https://signoz-community.slack.com/archives/C027134DM8B) on our slack community if you need any help on this :) +- Feel free to ping us on [`#contributing`](https://signoz-community.slack.com/archives/C01LWQ8KS7M) or [`#contributing-frontend`](https://signoz-community.slack.com/archives/C027134DM8B) on our slack community if you need any help on this :) + **[`^top^`](#)** +
# 2. How to Contribute πŸ™‹πŸ»β€β™‚οΈ #### There are primarily 2 areas in which you can contribute to SigNoz -- **Frontend** (Written in Typescript, React) -- **Backend** (Query Service, written in Go) +- [**Frontend**](#3-develop-frontend-) (Written in Typescript, React) +- [**Backend**]() (Query Service, written in Go) Depending upon your area of expertise & interest, you can choose one or more to contribute. Below are detailed instructions to contribute in each area. @@ -93,66 +111,92 @@ Depending upon your area of expertise & interest, you can choose one or more to ⚠️ If you just raise a PR, without the corresponding issue being assigned to you - it may not be accepted. + **[`^top^`](#)** +
-# 3. Develop Frontend 🌝 +# 3. Develop Frontend 🌚 -Need to update [https://github.com/SigNoz/signoz/tree/main/frontend](https://github.com/SigNoz/signoz/tree/main/frontend) +**Need to Update: [https://github.com/SigNoz/signoz/tree/main/frontend](https://github.com/SigNoz/signoz/tree/main/frontend)** ### 3.1 Contribute to Frontend with Docker installation of SigNoz -- `git clone https://github.com/SigNoz/signoz.git && cd signoz` -- comment out frontend service section at `deploy/docker/clickhouse-setup/docker-compose.yaml#L62` -- run `cd deploy` to move to deploy directory -- Install signoz locally without the frontend - - Add below configuration to query-service section at `docker/clickhouse-setup/docker-compose.yaml#L38` - +- Clone the SigNoz repository and cd into signoz directory, + ``` + 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/a09a4c264e49694c331c08c3dd15cc2bf6dc9106/deploy/docker/clickhouse-setup/docker-compose.yaml#L68) +- run `cd deploy` to move to deploy directory, +- Install signoz locally **without** the frontend, + - Add below configuration to query-service section at [`deploy/docker/clickhouse-setup/docker-compose.yaml#L47`](https://github.com/SigNoz/signoz/blob/a09a4c264e49694c331c08c3dd15cc2bf6dc9106/deploy/docker/clickhouse-setup/docker-compose.yaml#L47) ```docker ports: - "8080:8080" ``` - - If you are using x86_64 processors (All Intel/AMD processors) run `sudo docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d` - - If you are on arm64 processors (Apple M1 Macbooks) run `sudo docker-compose -f docker/clickhouse-setup/docker-compose.arm.yaml up -d` -- `cd ../frontend` and change baseURL to `http://localhost:8080` in file `src/constants/env.ts` -- `yarn install` -- `yarn dev` + + - If you are using `x86_64` processors (All Intel/AMD processors) run + ``` + sudo docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d + ``` + - If you are on `arm64` processors (Apple M1 Macbooks) run + ``` + sudo docker-compose -f docker/clickhouse-setup/docker-compose.arm.yaml up -d + ``` +- `cd ../frontend` and change baseURL to `http://localhost:8080` in file [`src/constants/env.ts`](https://github.com/SigNoz/signoz/blob/develop/frontend/src/constants/env.ts) +- Next, + ``` + yarn install + yarn dev + ``` -> Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` +### 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^`](#)** ### 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. Please ping us in the #contributing channel in our [slack community](https://signoz.io/slack) and we will DM you with `` +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. -- `git clone https://github.com/SigNoz/signoz.git && cd signoz/frontend` -- Create a file `.env` with `FRONTEND_API_ENDPOINT=` -- `yarn install` -- `yarn dev` +- Clone the SigNoz repository and cd into signoz/frontend directory, + ``` + git clone https://github.com/SigNoz/signoz.git && cd signoz/frontend + ```` +- Create a file `.env` in the `frontend` directory with `FRONTEND_API_ENDPOINT=` +- Next, + ``` + yarn install + yarn dev + ``` -**_Frontend should now be accessible at `http://localhost:3301/application`_** +Please ping us in the [`#contributing`](https://signoz-community.slack.com/archives/C01LWQ8KS7M) channel or ask `@Prashant Shahi` in our [Slack Community](https://signoz.io/slack) and we will DM you with ``. +**Frontend should now be accessible at** [`http://localhost:3301/application`](http://localhost:3301/application) + + **[`^top^`](#)** +
-# 4. Contribute to Backend (Query-Service) πŸŒ• +# 4. Contribute to Backend (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) +**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 To run ClickHouse setup (recommended for local development) -- Clone SigNoz, +- Clone the SigNoz repository and cd into signoz directory, ``` -git clone https://github.com/SigNoz/signoz.git +git clone https://github.com/SigNoz/signoz.git && cd signoz ``` -- run `cd signoz` to move to signoz directory, - run `sudo make dev-setup` to configure local setup to run query-service, -- comment out frontend service section at [`docker/clickhouse-setup/docker-compose.yaml`,](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml) -- comment out query-service section at [`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 [`docker/clickhouse-setup/docker-compose.yaml`,](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml) -```docker - expose: - - 9000 - ports: - - 9001:9000 -``` +- comment out frontend service section at [`deploy/docker/clickhouse-setup/docker-compose.yaml`,](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml) +- comment out query-service 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/clickhouse-setup/docker-compose.yaml`,](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml) + ``` + expose: + - 9000 + ports: + - 9001:9000 + ``` - run `cd pkg/query-service/` to move to `query-service` directory, - Open [`./constants/constants.go`,](https://github.com/SigNoz/signoz/blob/develop/pkg/query-service/constants/constants.go) @@ -163,18 +207,19 @@ git clone https://github.com/SigNoz/signoz.git - If you are using `x86_64` processors (All Intel/AMD processors) run `sudo make run-x86` - If you are on `arm64` processors (Apple M1 Macs) run `sudo make run-arm` -#### Run locally -```console +#### Run locally, +``` ClickHouseUrl=tcp://localhost:9001 STORAGE=clickhouse go run main.go ``` +### 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) -> Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` -**_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 `src/constants/env.ts` as the query-service is now running at port `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`. ---- + **[`^top^`](#)** +
-# 5. Contribute to SigNoz Helm Chart +# 5. Contribute to SigNoz Helm Chart πŸ“Š -Need to update [https://github.com/SigNoz/charts](https://github.com/SigNoz/charts). +**Need to Update: [https://github.com/SigNoz/charts](https://github.com/SigNoz/charts).** ### 5.1 To run helm chart for local development -- run `git clone https://github.com/SigNoz/charts.git` followed by `cd charts` -- it is recommended to use lightweight kubernetes (k8s) cluster for local development: +- Clone the SigNoz repository and cd into charts directory, +``` +git clone https://github.com/SigNoz/charts.git && cd charts +``` +- It is recommended to use lightweight kubernetes (k8s) cluster for local development: - [kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation) - [k3d](https://k3d.io/#installation) - [minikube](https://minikube.sigs.k8s.io/docs/start/) -- create a k8s cluster and make sure `kubectl` points to the locally created k8s cluster -- run `make dev-install` to install SigNoz chart with `my-release` release name in `platform` namespace. -- run `kubectl -n platform port-forward svc/my-release-signoz-frontend 3301:3301` to make SigNoz UI available at [localhost:3301](http://localhost:3301) +- create a k8s cluster and make sure `kubectl` points to the locally created k8s cluster, +- run `make dev-install` to install SigNoz chart with `my-release` release name in `platform` namespace, +- next run, +``` +kubectl -n platform port-forward svc/my-release-signoz-frontend 3301:3301 +``` +to make SigNoz UI available at [localhost:3301](http://localhost:3301) -**To install the HotROD sample app:** +**5.1.1 To install the HotROD sample app:** ```bash curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-install.sh \ | HELM_RELEASE=my-release SIGNOZ_NAMESPACE=platform bash ``` -**To load data with the HotROD sample app:** +**5.1.2 To load data with the HotROD sample app:** ```bash kubectl -n sample-application run strzal --image=djbingham/curl \ @@ -215,7 +269,7 @@ kubectl -n sample-application run strzal --image=djbingham/curl \ 'locust_count=6' -F 'hatch_rate=2' http://locust-master:8089/swarm ``` -**To stop the load generation:** +**5.1.3 To stop the load generation:** ```bash kubectl -n sample-application run strzal --image=djbingham/curl \ @@ -223,13 +277,15 @@ kubectl -n sample-application run strzal --image=djbingham/curl \ http://locust-master:8089/stop ``` -**To delete the HotROD sample app:** +**5.1.4 To delete the HotROD sample app:** ```bash curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-delete.sh \ | HOTROD_NAMESPACE=sample-application bash ``` + **[`^top^`](#)** + --- Again, feel free to ping us on `#contributing` or `#contributing-frontend` on our slack community if you need any help on this :) From ef69505bf9a21b7438985161d1c9edf6d4935f4e Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Wed, 13 Jul 2022 17:22:31 +0530 Subject: [PATCH 05/42] remove arm version of docker-compose file --- CONTRIBUTING.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3b2bf060d8..ae2f595b2f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -125,23 +125,19 @@ Depending upon your area of expertise & interest, you can choose one or more to ``` 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/a09a4c264e49694c331c08c3dd15cc2bf6dc9106/deploy/docker/clickhouse-setup/docker-compose.yaml#L68) +- 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) - run `cd deploy` to move to deploy directory, - Install signoz locally **without** the frontend, - - Add below configuration to query-service section at [`deploy/docker/clickhouse-setup/docker-compose.yaml#L47`](https://github.com/SigNoz/signoz/blob/a09a4c264e49694c331c08c3dd15cc2bf6dc9106/deploy/docker/clickhouse-setup/docker-compose.yaml#L47) + - Add 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) ```docker ports: - "8080:8080" ``` - - If you are using `x86_64` processors (All Intel/AMD processors) run + - Next run, ``` sudo docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d ``` - - If you are on `arm64` processors (Apple M1 Macbooks) run - ``` - sudo docker-compose -f docker/clickhouse-setup/docker-compose.arm.yaml up -d - ``` - `cd ../frontend` and change baseURL to `http://localhost:8080` in file [`src/constants/env.ts`](https://github.com/SigNoz/signoz/blob/develop/frontend/src/constants/env.ts) - Next, ``` From ab52538e91e622e4e7239a965d91d0a76b1cb356 Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Wed, 13 Jul 2022 17:43:23 +0530 Subject: [PATCH 06/42] v5 --- CONTRIBUTING.md | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ae2f595b2f..085e40742f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -54,8 +54,23 @@ process smooth for everyone πŸ™Œ. ## 1.2 For Pull Request(s) -Once the approach is agreed upon βœ…, make your changes -and open a Pull Request(s). +Contributions via pull requests are much appreciated. Once the approach is agreed upon βœ…, make your changes and open a Pull Request(s). +Before sending us a pull request, please ensure that, + +- Fork the SigNoz repo on GitHub, clone it on your machine. +- Create a branch with your changes. +- You are working against the latest source on the `develop` branch. +- Modify the source; please focus only on the specific change you are contributing. +- Ensure local tests pass. +- Commit to your fork using clear commit messages. +- Send us a pull request, answering any default questions in the pull request interface. +- Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation +- Once you've pushed your commits to GitHub, make sure that your branch can be auto-merged (there are no merge conflicts). If not, on your computer, merge main into your branch, resolve any merge conflicts, make sure everything still runs correctly and passes all the tests, and then push up those changes. +- Once the change has been approved and merged, we will inform you in a comment. + + +GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and +[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). **Note:** Unless your change is small, **please** consider submitting different Pull Rrequest(s): @@ -284,5 +299,10 @@ curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-del --- +## License + +By contributing to FBShipIt, you agree that your contributions will be licensed under its MIT license. + Again, feel free to ping us on `#contributing` or `#contributing-frontend` on our slack community if you need any help on this :) +Thank You! From 0ceaa56679545b3663cbb74f8367b8fb33ae8dd4 Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Wed, 13 Jul 2022 17:46:48 +0530 Subject: [PATCH 07/42] v6 --- CONTRIBUTING.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 085e40742f..2dab66f09d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,6 +11,7 @@ Please read through this document before submitting any issues or pull requests Looking at the existing issues is a great way to find something to contribute on. Also, have a look at these [good first issues labels](https://github.com/SigNoz/signoz/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to start with. + ## Sections: - [General Instructions](#1-general-instructions-) - [For Creating Issue(s)](#11-for-creating-issues) @@ -299,6 +300,17 @@ curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-del --- +## Other ways to contribute + +There are many other ways to get involved with the community and to participate in this project: + +- Use the product, submitting GitHub issues when a problem is found. +- Help code review pull requests and participate in issue threads. +- Submit a new feature request as an issue. +- Help answer questions on forums such as Stack Overflow and [SigNoz Community Slack Channel](https://signoz.io/slack). +- Tell others about the project on Twitter, your blog, etc. + + ## License By contributing to FBShipIt, you agree that your contributions will be licensed under its MIT license. From 3dc1dc970fe746476572f7dbe00162807b3f0907 Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Wed, 13 Jul 2022 18:00:46 +0530 Subject: [PATCH 08/42] v6 --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2dab66f09d..9bee883ec3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ #### Welcome to SigNoz Contributing section πŸŽ‰ -Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional documentation, we greatly value feedback and contributions from our community. +Hi there! We're thrilled that you'd like to contribute to this project, thank you for your interest. Whether it's a bug report, new feature, correction, or additional documentation, we greatly value feedback and contributions from our community. Please read through this document before submitting any issues or pull requests to ensure we have all the necessary information to effectively respond to your bug report or contribution. From 3e2a6df2005a8d7c9ce0e1b12fd2fcfec406e2ef Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Wed, 13 Jul 2022 18:08:02 +0530 Subject: [PATCH 09/42] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9bee883ec3..3809a5dda9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -313,7 +313,7 @@ There are many other ways to get involved with the community and to participate ## License -By contributing to FBShipIt, you agree that your contributions will be licensed under its MIT license. +By contributing to SigNoz, you agree that your contributions will be licensed under its MIT license. Again, feel free to ping us on `#contributing` or `#contributing-frontend` on our slack community if you need any help on this :) From 83f3180641eeddf892399bd2c4a6c77f92ce3871 Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Wed, 13 Jul 2022 23:28:13 +0530 Subject: [PATCH 10/42] Update CONTRIBUTING.md --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3809a5dda9..ba5177c79d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -93,9 +93,9 @@ GitHub provides additional document on [forking a repository](https://help.githu You can always reach out to `ankit@signoz.io` to understand more about the repo and product. We are very responsive over email and [SLACK](https://signoz.io/slack). ### Pointers: -- If you find any **bugs** β†’ please create an **issue.** +- If you find any **bugs** β†’ please create an [**issue.**](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=&template=bug_report.md&title=) - If you find anything **missing** in documentation β†’ you can create an issue with the label **`documentation`**. -- If you want to build any **new feature** β†’ please create an issue with the label **`enhancement`**. +- If you want to build any **new feature** β†’ please create an [issue with the label **`enhancement`**.](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=&template=feature_request.md&title=) - If you want to **discuss** something about the product, start a new [**discussion**.](https://github.com/SigNoz/signoz/discussions)
@@ -119,7 +119,7 @@ e.g. If you are submitting a fix for an issue in frontend, the PR name should be #### There are primarily 2 areas in which you can contribute to SigNoz - [**Frontend**](#3-develop-frontend-) (Written in Typescript, React) -- [**Backend**]() (Query Service, written in Go) +- [**Backend**](#4-contribute-to-backend-query-service-) (Query Service, written in Go) Depending upon your area of expertise & interest, you can choose one or more to contribute. Below are detailed instructions to contribute in each area. From 8db4793ad6cb004a03baa1756aa628e74b8d62d5 Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Wed, 13 Jul 2022 23:33:41 +0530 Subject: [PATCH 11/42] change main branch to develop branch for contribution --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ba5177c79d..86ecd37ed5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing Guidelines -#### Welcome to SigNoz Contributing section πŸŽ‰ +## Welcome to SigNoz Contributing section πŸŽ‰ Hi there! We're thrilled that you'd like to contribute to this project, thank you for your interest. Whether it's a bug report, new feature, correction, or additional documentation, we greatly value feedback and contributions from our community. @@ -133,7 +133,7 @@ Depending upon your area of expertise & interest, you can choose one or more to # 3. Develop Frontend 🌚 -**Need to Update: [https://github.com/SigNoz/signoz/tree/main/frontend](https://github.com/SigNoz/signoz/tree/main/frontend)** +**Need to Update: [https://github.com/SigNoz/signoz/tree/develop/frontend](https://github.com/SigNoz/signoz/tree/develop/frontend)** ### 3.1 Contribute to Frontend with Docker installation of SigNoz @@ -191,7 +191,7 @@ Please ping us in the [`#contributing`](https://signoz-community.slack.com/archi # 4. Contribute to Backend (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) +**Need to Update:** [**https://github.com/SigNoz/signoz/tree/develop/pkg/query-service**](https://github.com/SigNoz/signoz/tree/develop/pkg/query-service) ### 4.1 To run ClickHouse setup (recommended for local development) From 3ea36092f66730d90decf2c2ed29f9cea843d2a7 Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Wed, 13 Jul 2022 23:44:25 +0530 Subject: [PATCH 12/42] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 86ecd37ed5..078e7f5ed6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -144,7 +144,7 @@ Depending upon your area of expertise & interest, you can choose one or more to - 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) - run `cd deploy` to move to deploy directory, - Install signoz locally **without** the frontend, - - Add 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/clickhouse-setup/docker-compose.yaml#L47`](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml#L47) ```docker ports: - "8080:8080" From 7da69f6a75c76edefd7ac3118aa67f8910a32fb6 Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Thu, 14 Jul 2022 00:21:59 +0530 Subject: [PATCH 13/42] Update CONTRIBUTING.md --- CONTRIBUTING.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 078e7f5ed6..86d4010def 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -200,9 +200,9 @@ Please ping us in the [`#contributing`](https://signoz-community.slack.com/archi git clone https://github.com/SigNoz/signoz.git && cd signoz ``` - 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`,](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml) -- comment out query-service 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/clickhouse-setup/docker-compose.yaml`,](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml) +- 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 `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) +- 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) ``` expose: - 9000 @@ -211,7 +211,7 @@ git clone https://github.com/SigNoz/signoz.git && cd signoz ``` - run `cd pkg/query-service/` to move to `query-service` directory, -- Open [`./constants/constants.go`,](https://github.com/SigNoz/signoz/blob/develop/pkg/query-service/constants/constants.go) +- Open [`./constants/constants.go#L38`,](https://github.com/SigNoz/signoz/blob/develop/pkg/query-service/constants/constants.go#L38) - Replace ```const RELATIONAL_DATASOURCE_PATH = "/var/lib/signoz/signoz.db"``` \ with β†’ ```const RELATIONAL_DATASOURCE_PATH = "./signoz.db".``` From bebfaa1c4c0f479af1261579848325f0c715914a Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Thu, 14 Jul 2022 22:41:11 +0530 Subject: [PATCH 14/42] Update CONTRIBUTING.md --- CONTRIBUTING.md | 91 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 69 insertions(+), 22 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 86d4010def..4bb6509924 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,6 +6,12 @@ Hi there! We're thrilled that you'd like to contribute to this project, thank yo Please read through this document before submitting any issues or pull requests to ensure we have all the necessary information to effectively respond to your bug report or contribution. +- We accept contributions made to the [SigNoz `develop` branch]() +- Find all SigNoz Docker Hub images here + - [signoz/frontend](https://hub.docker.com/r/signoz/frontend) + - [signoz/query-service](https://hub.docker.com/r/signoz/query-service) + - [signoz/otelcontribcol](https://hub.docker.com/r/signoz/otelcontribcol) + ## Finding contributions to work on πŸ’¬ Looking at the existing issues is a great way to find something to contribute on. @@ -24,6 +30,7 @@ Also, have a look at these [good first issues labels](https://github.com/SigNoz/ - [To run ClickHouse setup](#41-to-run-clickhouse-setup-recommended-for-local-development) - [Contribute to SigNoz Helm Chart](#5-contribute-to-signoz-helm-chart-) - [To run helm chart for local development](#51-to-run-helm-chart-for-local-development) +- [Other Ways to Contribute](#other-ways-to-contribute) # 1. General Instructions πŸ“ @@ -135,26 +142,43 @@ Depending upon your area of expertise & interest, you can choose one or more to **Need to Update: [https://github.com/SigNoz/signoz/tree/develop/frontend](https://github.com/SigNoz/signoz/tree/develop/frontend)** -### 3.1 Contribute to Frontend with Docker installation of SigNoz +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). + +## 3.1 Contribute to Frontend with Docker installation of SigNoz - Clone the SigNoz repository and cd into signoz directory, ``` 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) + +![develop-frontend](https://user-images.githubusercontent.com/52788043/179009217-6692616b-17dc-4d27-b587-9d007098d739.jpeg) + + - run `cd deploy` to move to deploy directory, - 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) - ```docker + ``` ports: - "8080:8080" ``` +query service - Next run, ``` sudo docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d ``` -- `cd ../frontend` and change baseURL to `http://localhost:8080` in file [`src/constants/env.ts`](https://github.com/SigNoz/signoz/blob/develop/frontend/src/constants/env.ts) +- `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. + + If you have backend api exposed via frontend nginx: + ``` + FRONTEND_API_ENDPOINT=http://localhost:3301 + ``` + If not: + ``` + FRONTEND_API_ENDPOINT=http://localhost:8080 + ``` + - Next, ``` yarn install @@ -166,7 +190,7 @@ The Maintainers / Contributors who will change Line Numbers of `Frontend` & `Que **[`^top^`](#)** -### 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. @@ -193,27 +217,27 @@ Please ping us in the [`#contributing`](https://signoz-community.slack.com/archi **Need to Update:** [**https://github.com/SigNoz/signoz/tree/develop/pkg/query-service**](https://github.com/SigNoz/signoz/tree/develop/pkg/query-service) -### 4.1 To run ClickHouse setup (recommended for local development) +## 4.1 To run ClickHouse setup (recommended for local development) - Clone the SigNoz repository and cd into signoz directory, -``` -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, - 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 `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) - 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) ``` - expose: - - 9000 ports: - 9001:9000 ``` - run `cd pkg/query-service/` to move to `query-service` directory, -- Open [`./constants/constants.go#L38`,](https://github.com/SigNoz/signoz/blob/develop/pkg/query-service/constants/constants.go#L38) - - Replace ```const RELATIONAL_DATASOURCE_PATH = "/var/lib/signoz/signoz.db"``` \ - with β†’ ```const RELATIONAL_DATASOURCE_PATH = "./signoz.db".``` +- Then, you need to create a `.env` file with the following environment variable + ``` + SIGNOZ_LOCAL_DB_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) - 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` @@ -223,6 +247,29 @@ git clone https://github.com/SigNoz/signoz.git && cd signoz ``` ClickHouseUrl=tcp://localhost:9001 STORAGE=clickhouse go run main.go ``` + +#### Build and Run locally +``` +cd pkg/query-service +go build -o build/query-service main.go +ClickHouseUrl=tcp://localhost:9001 STORAGE=clickhouse build/query-service +``` + +#### Docker Images +The docker images of query-service is available at https://hub.docker.com/r/signoz/query-service + +``` +docker pull signoz/query-service +``` + +``` +docker pull signoz/query-service:latest +``` + +``` +docker pull signoz/query-service:develop +``` + ### 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) @@ -248,12 +295,12 @@ Click the button below. A workspace with all required environments will be creat **Need to Update: [https://github.com/SigNoz/charts](https://github.com/SigNoz/charts).** -### 5.1 To run helm chart for local development +## 5.1 To run helm chart for local development - Clone the SigNoz repository and cd into charts directory, -``` -git clone https://github.com/SigNoz/charts.git && cd charts -``` + ``` + git clone https://github.com/SigNoz/charts.git && cd charts + ``` - It is recommended to use lightweight kubernetes (k8s) cluster for local development: - [kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation) - [k3d](https://k3d.io/#installation) @@ -261,9 +308,9 @@ git clone https://github.com/SigNoz/charts.git && cd charts - create a k8s cluster and make sure `kubectl` points to the locally created k8s cluster, - run `make dev-install` to install SigNoz chart with `my-release` release name in `platform` namespace, - next run, -``` -kubectl -n platform port-forward svc/my-release-signoz-frontend 3301:3301 -``` + ``` + kubectl -n platform port-forward svc/my-release-signoz-frontend 3301:3301 + ``` to make SigNoz UI available at [localhost:3301](http://localhost:3301) **5.1.1 To install the HotROD sample app:** @@ -300,7 +347,7 @@ curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-del --- -## Other ways to contribute +## Other Ways to Contribute There are many other ways to get involved with the community and to participate in this project: @@ -315,6 +362,6 @@ There are many other ways to get involved with the community and to participate By contributing to SigNoz, you agree that your contributions will be licensed under its MIT license. -Again, feel free to ping us on `#contributing` or `#contributing-frontend` on our slack community if you need any help on this :) +Again, Feel free to ping us on [`#contributing`](https://signoz-community.slack.com/archives/C01LWQ8KS7M) or [`#contributing-frontend`](https://signoz-community.slack.com/archives/C027134DM8B) on our slack community if you need any help on this :) Thank You! From 4ad79bee1855909d12c4817007d1052614e13a9b Mon Sep 17 00:00:00 2001 From: Priyansh Khodiyar Date: Thu, 14 Jul 2022 22:51:51 +0530 Subject: [PATCH 15/42] add images --- CONTRIBUTING.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4bb6509924..cff1047baf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -225,12 +225,17 @@ Please ping us in the [`#contributing`](https://signoz-community.slack.com/archi ``` - 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) +develop-frontend + - 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) +Screenshot 2022-07-14 at 22 48 07 + - 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) ``` ports: - 9001:9000 ``` +Screenshot 2022-07-14 at 22 50 37 - run `cd pkg/query-service/` to move to `query-service` directory, - Then, you need to create a `.env` file with the following environment variable From 964b819f20df44a15972266f3b3be87525a91e73 Mon Sep 17 00:00:00 2001 From: Ankit Anand <83692067+ankit01-oss@users.noreply.github.com> Date: Fri, 15 Jul 2022 13:38:39 +0530 Subject: [PATCH 16/42] Update CONTRIBUTING.md (#1) --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cff1047baf..80e07b7522 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,7 +15,7 @@ Please read through this document before submitting any issues or pull requests ## Finding contributions to work on πŸ’¬ Looking at the existing issues is a great way to find something to contribute on. -Also, have a look at these [good first issues labels](https://github.com/SigNoz/signoz/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to start with. +Also, have a look at these [good first issues label](https://github.com/SigNoz/signoz/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to start with. ## Sections: From d92aad38dfd437fd50407def620ceea5dd13c9b0 Mon Sep 17 00:00:00 2001 From: Amol Umbark Date: Sat, 16 Jul 2022 12:08:17 +0530 Subject: [PATCH 17/42] fix: removed background color from sections in alert ui (#1413) --- frontend/src/container/FormAlertRules/styles.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/frontend/src/container/FormAlertRules/styles.ts b/frontend/src/container/FormAlertRules/styles.ts index 3c64414cbe..4ec8dcafbd 100644 --- a/frontend/src/container/FormAlertRules/styles.ts +++ b/frontend/src/container/FormAlertRules/styles.ts @@ -74,14 +74,12 @@ export const InputSmall = styled(Input)` width: 40% !important; `; -export const FormContainer = styled.div` +export const FormContainer = styled(Card)` padding: 2em; margin-top: 1rem; display: flex; flex-direction: column; - background: #141414; border-radius: 4px; - border: 1px solid #303030; `; export const ThresholdInput = styled(InputNumber)` From 1b6597b9743bd375139bbcfe217b3b753c7e91aa Mon Sep 17 00:00:00 2001 From: Amol Umbark Date: Tue, 19 Jul 2022 11:29:32 +0530 Subject: [PATCH 18/42] fix: resolved issue with promql rule creation (#1422) --- .../src/container/FormAlertRules/index.tsx | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/frontend/src/container/FormAlertRules/index.tsx b/frontend/src/container/FormAlertRules/index.tsx index 38fcaad04d..440b20238f 100644 --- a/frontend/src/container/FormAlertRules/index.tsx +++ b/frontend/src/container/FormAlertRules/index.tsx @@ -177,25 +177,26 @@ function FormAlertRules({ return false; } - Object.keys(metricQueries).forEach((key) => { - if (metricQueries[key].metricName === '') { - retval = false; - notification.error({ - message: 'Error', - description: t('metricname_missing', { where: metricQueries[key].name }), - }); - } - }); - - Object.keys(formulaQueries).forEach((key) => { - if (formulaQueries[key].expression === '') { - retval = false; - notification.error({ - message: 'Error', - description: t('expression_missing', formulaQueries[key].name), - }); - } - }); + if (queryCategory === EQueryType.QUERY_BUILDER) { + Object.keys(metricQueries).forEach((key) => { + if (metricQueries[key].metricName === '') { + retval = false; + notification.error({ + message: 'Error', + description: t('metricname_missing', { where: metricQueries[key].name }), + }); + } + }); + Object.keys(formulaQueries).forEach((key) => { + if (formulaQueries[key].expression === '') { + retval = false; + notification.error({ + message: 'Error', + description: t('expression_missing', formulaQueries[key].name), + }); + } + }); + } return retval; }, [t, alertDef, queryCategory, metricQueries, formulaQueries, promQueries]); @@ -235,7 +236,7 @@ function FormAlertRules({ description: !ruleId || ruleId === 0 ? t('rule_created') : t('rule_edited'), }); - console.log('invalidting cache'); + // invalidate rule in cache ruleCache.invalidateQueries(['ruleId', ruleId]); From 475c44a00070fa917ebdabbab7c7cb2c1da84c81 Mon Sep 17 00:00:00 2001 From: Amol Umbark Date: Tue, 19 Jul 2022 11:30:56 +0530 Subject: [PATCH 19/42] fix: increased debounce to 1000 (from 500). also reduced networkcalls in getquery range (#1423) --- .../src/container/FormAlertRules/ChartPreview/index.tsx | 8 ++++++-- frontend/src/container/FormAlertRules/index.tsx | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/frontend/src/container/FormAlertRules/ChartPreview/index.tsx b/frontend/src/container/FormAlertRules/ChartPreview/index.tsx index b6f51227da..88364fad1b 100644 --- a/frontend/src/container/FormAlertRules/ChartPreview/index.tsx +++ b/frontend/src/container/FormAlertRules/ChartPreview/index.tsx @@ -66,8 +66,12 @@ function ChartPreview({ }), enabled: query != null && - (query.queryType !== EQueryType.PROM || - (query.promQL?.length > 0 && query.promQL[0].query !== '')), + ((query.queryType === EQueryType.PROM && + query.promQL?.length > 0 && + query.promQL[0].query !== '') || + (query.queryType === EQueryType.QUERY_BUILDER && + query.metricsBuilder?.queryBuilder?.length > 0 && + query.metricsBuilder?.queryBuilder[0].metricName !== '')), }); const chartDataSet = queryResponse.isError diff --git a/frontend/src/container/FormAlertRules/index.tsx b/frontend/src/container/FormAlertRules/index.tsx index 440b20238f..8643eb4060 100644 --- a/frontend/src/container/FormAlertRules/index.tsx +++ b/frontend/src/container/FormAlertRules/index.tsx @@ -83,7 +83,7 @@ function FormAlertRules({ // staged query is used to display chart preview const [stagedQuery, setStagedQuery] = useState(); - const debouncedStagedQuery = useDebounce(stagedQuery, 500); + const debouncedStagedQuery = useDebounce(stagedQuery, 1000); // this use effect initiates staged query and // other queries based on server data. From acb37218157626f377c8daab56fcc6ddf5a7a163 Mon Sep 17 00:00:00 2001 From: Akshay Awate <32165684+AkshayAwate@users.noreply.github.com> Date: Wed, 20 Jul 2022 23:30:21 +0530 Subject: [PATCH 20/42] refactor: start_docker() (#1410) * refactor: start_docker() Co-authored-by: akshay --- deploy/install.sh | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/deploy/install.sh b/deploy/install.sh index 492336a566..34ca5356bb 100755 --- a/deploy/install.sh +++ b/deploy/install.sh @@ -204,9 +204,14 @@ start_docker() { echo "Starting docker service" $sudo_cmd systemctl start docker.service fi + # if [[ -z $sudo_cmd ]]; then + # docker ps > /dev/null && true + # if [[ $? -ne 0 ]]; then + # request_sudo + # fi + # fi if [[ -z $sudo_cmd ]]; then - docker ps > /dev/null && true - if [[ $? -ne 0 ]]; then + if ! docker ps > /dev/null && true; then request_sudo fi fi @@ -268,8 +273,12 @@ request_sudo() { if (( $EUID != 0 )); then sudo_cmd="sudo" echo -e "Please enter your sudo password, if prompt." - $sudo_cmd -l | grep -e "NOPASSWD: ALL" > /dev/null - if [[ $? -ne 0 ]] && ! $sudo_cmd -v; then + # $sudo_cmd -l | grep -e "NOPASSWD: ALL" > /dev/null + # if [[ $? -ne 0 ]] && ! $sudo_cmd -v; then + # echo "Need sudo privileges to proceed with the installation." + # exit 1; + # fi + if ! $sudo_cmd -l | grep -e "NOPASSWD: ALL" > /dev/null && ! $sudo_cmd -v; then echo "Need sudo privileges to proceed with the installation." exit 1; fi @@ -303,8 +312,13 @@ echo -e "🌏 Detecting your OS ...\n" check_os # Obtain unique installation id -sysinfo="$(uname -a)" -if [[ $? -ne 0 ]]; then +# sysinfo="$(uname -a)" +# if [[ $? -ne 0 ]]; then +# uuid="$(uuidgen)" +# uuid="${uuid:-$(cat /proc/sys/kernel/random/uuid)}" +# sysinfo="${uuid:-$(cat /proc/sys/kernel/random/uuid)}" +# fi +if ! sysinfo="$(uname -a)"; then uuid="$(uuidgen)" uuid="${uuid:-$(cat /proc/sys/kernel/random/uuid)}" sysinfo="${uuid:-$(cat /proc/sys/kernel/random/uuid)}" From ff9c41464b54b05cdb4f4019c3ac7d6ba16ce70f Mon Sep 17 00:00:00 2001 From: Palash Gupta Date: Thu, 21 Jul 2022 11:25:54 +0530 Subject: [PATCH 21/42] test: error and error details case is added (#1420) --- frontend/package.json | 1 + frontend/playwright.config.ts | 4 +- frontend/src/store/index.ts | 4 + frontend/src/store/reducers/global.ts | 4 +- frontend/tests/expectionDetails/index.spec.ts | 101 ++++++++++++ ...-200-from-details-page-1-Signoz-darwin.png | Bin 0 -> 187092 bytes ...nd-when-api-return-404-1-Signoz-darwin.png | Bin 0 -> 39506 bytes frontend/tests/expections/index.spec.ts | 148 ++++++++++++++++++ ...ve-a-valid-Breadcrumbs-1-Signoz-darwin.png | Bin 0 -> 61476 bytes ...uld-have-a-valid-route-1-Signoz-darwin.png | Bin 0 -> 43130 bytes ...der-data-in-antd-table-1-Signoz-darwin.png | Bin 0 -> 117914 bytes ...e-page-with-404-status-1-Signoz-darwin.png | Bin 0 -> 61476 bytes ...ith-no-data-antd-table-1-Signoz-darwin.png | Bin 0 -> 59550 bytes .../tests/fixtures/api/allErrors/200.json | 92 +++++++++++ .../tests/fixtures/api/errorDetails/200.json | 12 ++ .../tests/fixtures/api/errorDetails/404.json | 5 + .../tests/fixtures/api/getNextPrev/200.json | 7 + frontend/tests/fixtures/constant.ts | 2 + frontend/tests/login/fail.spec.ts | 1 + ...e-Something-went-wrong-1-Signoz-darwin.png | Bin 0 -> 8076 bytes frontend/tests/login/index.spec.ts | 1 + ...n-when-api-returns-200-1-Signoz-darwin.png | Bin 0 -> 47462 bytes frontend/tests/service/index.spec.ts | 10 ++ ...erice-Page-is-rendered-1-Signoz-darwin.png | Bin 0 -> 41410 bytes frontend/tests/signup/index.spec.ts | 8 + ...ame-with-valid-details-1-Signoz-darwin.png | Bin 0 -> 71480 bytes ...ail-with-valid-details-1-Signoz-darwin.png | Bin 0 -> 71623 bytes ...ord-with-valid-details-1-Signoz-darwin.png | Bin 0 -> 70414 bytes ...ame-with-valid-details-1-Signoz-darwin.png | Bin 0 -> 71414 bytes ...Invite-link-validation-1-Signoz-darwin.png | Bin 0 -> 67365 bytes ...ord-with-valid-details-1-Signoz-darwin.png | Bin 0 -> 73701 bytes ...-up-with-valid-details-1-Signoz-darwin.png | Bin 0 -> 55058 bytes ...edirected-to-dashboard-1-Signoz-darwin.png | Bin 0 -> 71503 bytes 33 files changed, 397 insertions(+), 3 deletions(-) create mode 100644 frontend/tests/expectionDetails/index.spec.ts create mode 100644 frontend/tests/expectionDetails/index.spec.ts-snapshots/Expections-Details-Render-Success-Data-when-200-from-details-page-1-Signoz-darwin.png create mode 100644 frontend/tests/expectionDetails/index.spec.ts-snapshots/Expections-Details-Should-have-not-found-when-api-return-404-1-Signoz-darwin.png create mode 100644 frontend/tests/expections/index.spec.ts create mode 100644 frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-have-a-valid-Breadcrumbs-1-Signoz-darwin.png create mode 100644 frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-have-a-valid-route-1-Signoz-darwin.png create mode 100644 frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-render-data-in-antd-table-1-Signoz-darwin.png create mode 100644 frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-render-the-page-with-404-status-1-Signoz-darwin.png create mode 100644 frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-render-the-page-with-50-26a88--in-antd-notification-with-no-data-antd-table-1-Signoz-darwin.png create mode 100644 frontend/tests/fixtures/api/allErrors/200.json create mode 100644 frontend/tests/fixtures/api/errorDetails/200.json create mode 100644 frontend/tests/fixtures/api/errorDetails/404.json create mode 100644 frontend/tests/fixtures/api/getNextPrev/200.json create mode 100644 frontend/tests/login/fail.spec.ts-snapshots/Version-API-fail-while-loading-login-page-Something-went-wrong-1-Signoz-darwin.png create mode 100644 frontend/tests/login/index.spec.ts-snapshots/Login-Page-Version-of-the-application-when-api-returns-200-1-Signoz-darwin.png create mode 100644 frontend/tests/service/index.spec.ts-snapshots/Service-Page-Serice-Page-is-rendered-1-Signoz-darwin.png create mode 100644 frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Empty-Company-name-with-valid-details-1-Signoz-darwin.png create mode 100644 frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Empty-Email-with-valid-details-1-Signoz-darwin.png create mode 100644 frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Empty-Password-and-confirm-password-with-valid-details-1-Signoz-darwin.png create mode 100644 frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Empty-name-with-valid-details-1-Signoz-darwin.png create mode 100644 frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Invite-link-validation-1-Signoz-darwin.png create mode 100644 frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Miss-Match-Password-and-confirm-password-with-valid-details-1-Signoz-darwin.png create mode 100644 frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-User-Sign-up-with-valid-details-1-Signoz-darwin.png create mode 100644 frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-When-User-successfull-signup-and-logged-in-he-should-be-redirected-to-dashboard-1-Signoz-darwin.png diff --git a/frontend/package.json b/frontend/package.json index 868e95dce7..1fd5563c0b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -16,6 +16,7 @@ "playwright": "NODE_ENV=testing playwright test --config=./playwright.config.ts", "playwright:local:debug": "PWDEBUG=console yarn playwright --headed --browser=chromium", "playwright:codegen:local":"playwright codegen http://localhost:3301", + "playwright:codegen:local:auth":"yarn playwright:codegen:local --load-storage=tests/auth.json", "husky:configure": "cd .. && husky install frontend/.husky && cd frontend && chmod ug+x .husky/*", "commitlint": "commitlint --edit $1" }, diff --git a/frontend/playwright.config.ts b/frontend/playwright.config.ts index 6733c67536..0b24052fc8 100644 --- a/frontend/playwright.config.ts +++ b/frontend/playwright.config.ts @@ -14,8 +14,8 @@ const config: PlaywrightTestConfig = { baseURL: process.env.PLAYWRIGHT_TEST_BASE_URL || 'http://localhost:3301', }, updateSnapshots: 'all', - fullyParallel: false, - quiet: true, + fullyParallel: !!process.env.CI, + quiet: false, testMatch: ['**/*.spec.ts'], reporter: process.env.CI ? 'github' : 'list', }; diff --git a/frontend/src/store/index.ts b/frontend/src/store/index.ts index 3ff983b82e..6796207357 100644 --- a/frontend/src/store/index.ts +++ b/frontend/src/store/index.ts @@ -18,4 +18,8 @@ const store = createStore( ), ); +if (window !== undefined) { + window.store = store; +} + export default store; diff --git a/frontend/src/store/reducers/global.ts b/frontend/src/store/reducers/global.ts index 084e7cd377..896c6586e3 100644 --- a/frontend/src/store/reducers/global.ts +++ b/frontend/src/store/reducers/global.ts @@ -10,7 +10,9 @@ const intitalState: GlobalReducer = { maxTime: Date.now() * 1000000, minTime: (Date.now() - 15 * 60 * 1000) * 1000000, loading: true, - selectedTime: getDefaultOption(window.location.pathname), + selectedTime: getDefaultOption( + typeof window !== 'undefined' ? window?.location?.pathname : '', + ), }; const globalTimeReducer = ( diff --git a/frontend/tests/expectionDetails/index.spec.ts b/frontend/tests/expectionDetails/index.spec.ts new file mode 100644 index 0000000000..f5dbb8c923 --- /dev/null +++ b/frontend/tests/expectionDetails/index.spec.ts @@ -0,0 +1,101 @@ +import { expect, Page, test } from '@playwright/test'; +import ROUTES from 'constants/routes'; + +import allErrorList from '../fixtures/api/allErrors/200.json'; +import errorDetailSuccess from '../fixtures/api/errorDetails/200.json'; +import errorDetailNotFound from '../fixtures/api/errorDetails/404.json'; +import nextPreviousSuccess from '../fixtures/api/getNextPrev/200.json'; +import { loginApi } from '../fixtures/common'; +import { JsonApplicationType } from '../fixtures/constant'; + +let page: Page; +const timestamp = '1657794588955274000'; + +test.describe('Expections Details', async () => { + test.beforeEach(async ({ baseURL, browser }) => { + const context = await browser.newContext({ storageState: 'tests/auth.json' }); + const newPage = await context.newPage(); + + await loginApi(newPage); + + await newPage.goto(`${baseURL}${ROUTES.APPLICATION}`); + + page = newPage; + }); + + test('Should have not found when api return 404', async () => { + await Promise.all([ + page.route('**/errorFromGroupID**', (route) => + route.fulfill({ + status: 404, + contentType: JsonApplicationType, + body: JSON.stringify(errorDetailNotFound), + }), + ), + page.route('**/nextPrevErrorIDs**', (route) => + route.fulfill({ + status: 404, + contentType: JsonApplicationType, + body: JSON.stringify([]), + }), + ), + ]); + + await page.goto( + `${ROUTES.ERROR_DETAIL}?groupId=${allErrorList[0].groupID}×tamp=${timestamp}`, + { + waitUntil: 'networkidle', + }, + ); + + const NoDataLocator = page.locator('text=Not Found'); + const isVisible = await NoDataLocator.isVisible(); + const text = await NoDataLocator.textContent(); + + expect(isVisible).toBe(true); + expect(text).toBe('Not Found'); + expect(await page.screenshot()).toMatchSnapshot(); + }); + + test('Render Success Data when 200 from details page', async () => { + await Promise.all([ + page.route('**/errorFromGroupID**', (route) => + route.fulfill({ + status: 200, + contentType: JsonApplicationType, + body: JSON.stringify(errorDetailSuccess), + }), + ), + page.route('**/nextPrevErrorIDs**', (route) => + route.fulfill({ + status: 200, + contentType: JsonApplicationType, + body: JSON.stringify(nextPreviousSuccess), + }), + ), + ]); + + await page.goto( + `${ROUTES.ERROR_DETAIL}?groupId=${allErrorList[0].groupID}×tamp=${timestamp}`, + { + waitUntil: 'networkidle', + }, + ); + + const traceDetailButton = page.locator('text=See the error in trace graph'); + const olderButton = page.locator('text=Older'); + const newerButton = page.locator(`text=Newer`); + + expect(await traceDetailButton.isVisible()).toBe(true); + expect(await olderButton.isVisible()).toBe(true); + expect(await newerButton.isVisible()).toBe(true); + + expect(await traceDetailButton.textContent()).toBe( + 'See the error in trace graph', + ); + expect(await olderButton.textContent()).toBe('Older'); + expect(await newerButton.textContent()).toBe('Newer'); + + expect(await page.screenshot()).toMatchSnapshot(); + }); +}); diff --git a/frontend/tests/expectionDetails/index.spec.ts-snapshots/Expections-Details-Render-Success-Data-when-200-from-details-page-1-Signoz-darwin.png b/frontend/tests/expectionDetails/index.spec.ts-snapshots/Expections-Details-Render-Success-Data-when-200-from-details-page-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..ed84333d6769125cfe0bb25c0cda91a467f12e99 GIT binary patch literal 187092 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 => { + const text = page.locator('text=No Data'); + + expect(text).toBeVisible(); + expect(text).toHaveText('No Data'); + + const textType = [ + 'Exception Type', + 'Error Message', + 'Last Seen', + 'First Seen', + 'Application', + ]; + + textType.forEach(async (text) => { + const textLocator = page.locator(`text=${text}`); + + const textContent = await textLocator.textContent(); + + expect(textContent).toBe(text); + expect(textLocator).not.toBeNull(); + + expect(textLocator).toBeVisible(); + await expect(textLocator).toHaveText(`${text}`); + }); +}; + +let page: Page; + +test.describe('Expections page', async () => { + test.beforeEach(async ({ baseURL, browser }) => { + const context = await browser.newContext({ storageState: 'tests/auth.json' }); + const newPage = await context.newPage(); + + await loginApi(newPage); + + await newPage.goto(`${baseURL}${ROUTES.APPLICATION}`); + + page = newPage; + }); + + test('Should have a valid route', async () => { + await page.goto(ROUTES.ALL_ERROR); + + await expect(page).toHaveURL(ROUTES.ALL_ERROR); + expect(await page.screenshot()).toMatchSnapshot(); + }); + + test('Should have a valid Breadcrumbs', async () => { + await page.goto(ROUTES.ALL_ERROR, { + waitUntil: 'networkidle', + }); + + const expectionsLocator = page.locator('a:has-text("Exceptions")'); + + await expect(expectionsLocator).toBeVisible(); + await expect(expectionsLocator).toHaveText('Exceptions'); + await expect(expectionsLocator).toHaveAttribute('href', ROUTES.ALL_ERROR); + expect(await page.screenshot()).toMatchSnapshot(); + }); + + test('Should render the page with 404 status', async () => { + await page.route('**listErrors', (route) => + route.fulfill({ + status: 404, + contentType: JsonApplicationType, + body: JSON.stringify([]), + }), + ); + + await page.goto(ROUTES.ALL_ERROR, { + waitUntil: 'networkidle', + }); + + await noDataTableData(page); + expect(await page.screenshot()).toMatchSnapshot(); + }); + + test('Should render the page with 500 status in antd notification with no data antd table', async () => { + await page.route(`**/listErrors**`, (route) => + route.fulfill({ + status: 500, + contentType: JsonApplicationType, + body: JSON.stringify([]), + }), + ); + + await page.goto(ROUTES.ALL_ERROR, { + waitUntil: 'networkidle', + }); + + const text = 'Something went wrong'; + + const el = page.locator(`text=${text}`); + + expect(el).toBeVisible(); + expect(el).toHaveText(`${text}`); + expect(await el.getAttribute('disabled')).toBe(null); + + await noDataTableData(page); + expect(await page.screenshot()).toMatchSnapshot(); + }); + + test('Should render data in antd table', async () => { + await Promise.all([ + page.route(`**/listErrors**`, (route) => + route.fulfill({ + status: 200, + contentType: JsonApplicationType, + body: JSON.stringify(successAllErrors), + }), + ), + + page.route('**/countErrors**', (route) => + route.fulfill({ + status: 200, + contentType: JsonApplicationType, + body: JSON.stringify(200), + }), + ), + ]); + + await page.goto(ROUTES.ALL_ERROR, { + waitUntil: 'networkidle', + }); + + await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight)); + + const expectionType = page.locator( + `td:has-text("${successAllErrors[1].exceptionType}")`, + ); + + expect(expectionType).toBeVisible(); + + const second = page.locator('li > a:has-text("2") >> nth=0'); + const isVisisble = await second.isVisible(); + + expect(isVisisble).toBe(true); + expect(await page.screenshot()).toMatchSnapshot(); + }); +}); diff --git a/frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-have-a-valid-Breadcrumbs-1-Signoz-darwin.png b/frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-have-a-valid-Breadcrumbs-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..a482ae42a65861467c3780222480a501d550b7a7 GIT binary patch literal 61476 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 ZIH#iXWlR4Y8@dhF4zn+_zBv5de*wuN`~Ls{ literal 0 HcmV?d00001 diff --git a/frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-have-a-valid-route-1-Signoz-darwin.png b/frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-have-a-valid-route-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..fc6187b7888b6ea417a42ce32fd78920d9db07d0 GIT binary patch literal 43130 zcmdqJ1yt2**eAM4gHn+YQ4|TKm6ApUNkQo@1*E%EP*6god!tg)-7NwF64D(Kn@;JP zXCL%@-^`j>Yu2oLzq{tL7Do>3`2XK{o?pHD-BTGcg7XyT5eNi!JIhluQU%6SCh20}vQfr4Y)(x`)@g5q)0`cAwwUHFBE=P)ka5TC1( zBu+ki`*!)+(%W+^Up{&fXxftCWq)P(@=dLQK)SZ=o%^Y-tT_?s7ZR?q$YzqjIp&k(n% z|9r{4x`ViU@y}OU?PY}D-^VHFoJWX?{P|*F!}0w46l#(vOyR#z2|h24@$v6d#Bov( zPyaq82~+-m`8Js|0|JE&87xVNre?L&uIPG_O}c-Ho;Q=BKqIBY70&f4o!DJtD;7 z;6z#snMJSmgKWH4Jk2xQ)qn3;gZJ?0=-k<}wd3Pd9v&TjMN3Pj`2_{dEiKf1d=+tq zD&;L42-8`M4a>j{f)fNU_J54_p7!kOs;q*-p@b6{B5O7OLapV-Ybi`3$8jY9V5nesS@$&z?P_6m*T!tgxT7 zCq?_^=b-n!=7K^j4AEj#wan63fNh7cu_Xxbq_he3_0{SM?mQ zNF`rKyiZr#5cE>F#q6eW8}Z;N>RmeX50QmCTKgiKJ$d<}J!8q2bU`BJI1z|D4e($sw{5~o;a zgy77FYok{esakUznHzHxShig<$M4{>6CC>(b zvgakkn?-5Q5^>!QwsCZ(8Uqj4o2bY(ivLchC0E%wW&cT0a|?1hER&5nn1 zi-m8zZsxOi-p^zIb@tq`GywI?Y79F|A5-3%ZlzU$?EqM()QF;6z?qj38pe zPgGgWGV1msiwu9`LvS@;w|*wirKkt9c0o{-@1TSJ{_B|fmBf95MDg)`ym#!^X>XL@ z={*z3FLuy^-DC0NQ%OR7xK&I{{c57oYAnxgUqRgAp?6nIb^qMY#4EhEFOeocfByWv zG8*f$Qs%op)l^_HE{HJh%bYip&(W&FJCCp^n<3?OSiu*DE#o*HEVfZ(G+fM__&5-g zzg30gZ@K&a#QOPudQRefzr#d?MYNj*I!n`+qoIHzGemRwzA-VjlD zTNKMDeiu!VPgAymgww+=iB5WZ7srlya12{7eh3e++d+|EX2uS9`}W3-8y~-~W+gp* z_z+fADN`|Kq*~V4EC%XC7h8n;ra>e9>#g#4->w8*5;DTBW9FSXcOuvCQU7xeJf^nwYG`o<1T#7$0YE+NFoDqGsuyq zFFlA<{EDyi%!(_Fo9LD&`rGY$rayGoz%_aPYZI5|T6i06xZ zgGV+S>zk9q%3Ae1#G!R{@AuMRsJeOC8|SSB-GagI(5PjpPE3LkpnmJ0g2Q~Dh}e`INPt~V)n_bdVhh@0#{K@(hNtZ+a~S=MNIjy zN}^!njfY^}P3)36Y~ijFWNy}2lInnQ&*V45)zCs`qgO|Y^LB|lc70>lX!wOl)dP8Z zPL!L!X8iae9VbISAz|T*eZ9&HZ|6g0G z+H-t#P?fV$LuujWBcBVz#5V24fL5eqIGPWRpc_Q-*wDptTj26Pm@eoLlu}V4=d)kZ z>C04gs-FE3JtZ*Q$?+tDh55cEw0HDZaBBiz=7iTZ9HR*p+4!etqF7vy5_3fanpxM) z2KL3c`f3qs{r4kQqYLmnID&3F-6fQzqFZ6u5_o=jovHTMK&~zpltEOetl(rbeZn`6 zHoY^R4Z%ocyS%J`;)Gw_@87m5Phyp(dtWy^o5lDj`;<2BO4=Lq4g&MB-~}v!H^LfM zJc%O23G8ZPD_R}M|D_qyyn5s)Jro@VX~di}fCP zS(1TlyT!h-et$C7cAM27n|Q-TCXuUy5}|Y#ugt4TT)BF+^>A;qgOBxeom?#AkM_aw zN+&CGW3Hj0Od%pnC9-#+@G&9o$6rg-Eod3&*4))!)*b52_@drmw=F()Ay+{O(RY3= z^EQ6wf)kPcZ9rErw}^T+zbf&Chkp4hg9W~6@~O@>3A}d3(QiDS`iTn5@P1OmsM22^ zeef$l>|M+n_53iGW69P~(6w*wOE-$wc%6pMh;Y;HzvJ%Uk=ZXMaHIoUJ4DwQ zhWr|#;OARTJ~ZXJs;uQiYhNLt9SgA6NgI{D+gfCUl385@_BUI`ty7DzD4Oc&QMm51 zlt0gV@j>*GKk7_LS;$9Iw}+?RmoP$E9Y> z+*&_hE4ycT^mQXISPlngUh?%Ee*ePB8J^GPU&4^{rJbcX7`kx?t(0G{Z~e1@=(nh1 z<6efq#S)PXW>i>;-3A zH-=7CRTUc>`@-eRVXN+;bWhGZGSt9UL3$iJ(a9q5YZa9>!*kkT>dxYA9uk#kRXHyW z6}7qmICLKCZ+d@J#9H&f8&^7t4Fi$d-R!nAieh&C%RfjWb!C02aXqh8Z++*l!l?OZ ztdeCO7fo-8Dz((te_pPcdH={^Y+x){p2slDmEERej(yPncH%U~#3y{VCjoKOo5fFL zWU4=!)e0T`CN?rMx=%^yez43`S4yzF%g zQi%)nJRwH6x^<`BI=>%{=?s4gA83a-_eENxe8ANa#397KXsEHj6MebohTNR0^M@V#iTzQ zXCho#Ydu>sATUtB11Zpxq18myO1&-Ky;e2M2$| za<9f6x$cZQeEar|?Zx*C2*9$Hb?QJ7&~&t`vd-rEP+y=G z`RI}dQ1XO;Mlfr%xjk$V8Wkm8Vm|uz{rhb#i_vn<)yhqo>f^>BD(&gAcc-BH`%Jy{ z3*yFRA+`)oL5pEZsk2m+RN|@MORSP`E?m&Ut6|_=&+~qO>%;y!6Emoa{a6F%r6q6E z^cYUX?!^1g*L>}Zhfgf{Qf;IIda6|3BVBGPWlv9US`f3mH9|6eXDTPAmkBEk%2!IK zRp5GYdHIn|a;lYWU4|)@8z+#6$HKPVHa;GnsSk5?Kir>sR(!I#K<(?%5KZi;)Lgap z74L;1O8ef+7&@1o6@9=1G<0;BPOT3sG(3`r3Jg1D0Z_e|?@9)7A|9ZNC5+i7ETCBv zkJ*}+hTFl6f`UjiqK+2Jb{KQ=1tyJBr;UnpQ7L?Rae`-j&DBr+m)gIJ1#0b1 zq;j2Rp`w!s8`^bCn)e!K+p&X#Ajw^QU|T?p%OMbJdQ)d!ou`AR;8f?;>?Oi zQv4%|1@WFJj5fVcntmf-f|ui+^>|sRhClq(auboBko()r*Vj;)Yc7IQgth1T_mmMx zW}pzoX2X|ANgLsxw?RRyT{gEK2YiI`ji}t}Q(qdZ8g{X$^TJWcS-DejG~rFOaj;rL z=AwnVL{2UaJbIwo&E*xz+rLs_++8dyd*suk;<{?W6mGY7=A7=-g}Tr2PmD|B!r7h( z_0jar_Q~e7b&qj8Vbh$j*DJp^QT)7|GGJcG`;PZjq(fz)DH&__NUOR@&~p{H^&=-- z*l_Fp&0cR%e9+z-hMZI>e*OAYxpjj@KbZo7DV=T9)lVcH_L4mx7A}72m(5FmfC5IYLyTv|&syptf?VD!#CH>h zDcmF+M_YDxdux~Rzb#v@9kNzA+6;$}6(bRyN6Kek^4`_7x8yTY>TcZR=KL(>{QyS$N!%@H5P z0#I4H#6MeEA;oD~r&fO6LDQANr=h@XfNfNTyUN>c+@XQ+1d*7D!qZEjY z=Gve)nR?n8PelKlr~rJ%Wi5Zy5sgZ)y;Xe;JK(WE5S@sxTzS`KFxC0#(Kjd?ri1so zx}~(vtN&U5Ni;udjqj_Cy{|BLSmQfM=fR^RtrxW$m+v7IrydasH%q;mD^#$r?G{64 zIV&klmNI{6Bl;0<#JrZEjFS)_Psj5XRsxpL)Irm|fFJV6wT|B-UZ2l+T3QujYO|<& z*n~?U&aR0Qgc82e|GBvr-qff4XI_I_!~c^Y*^GJ30;5}~Uby>^{r3SoImeT3dA5P* zH^Eltr+(|Yc5S<03bmg<2>A8Jqb!EYOfpNYNb|1p_A=> z?JTM;p=P{2Q`;?evtHp}g3XakV6kfhz$92HH zl0_ZN&TxWM=|Ge5}xkT|0U;XJmU*B8p$Mw@y*6XARyb+se2Jo3I52|tgz&b zPv$T1PyK;atD$_R{ySSiPX?A@`D9|)2J`OCzeq>a#-3b-^po}jAiwYY{HQrN!ajWX z>W@rHP7V$Uc?d)q8VQ-cyZ-!V9M7lw85lJ}W*hDypAycv5zb1cA1Tdsdc(t4TfFbv8 z#-aaTf$MEpgd9urzqdyndFlUA|Kk6^Ci$T@Mtq?xYS!J*oyf- zxRw7+$44^^k*i(f4r?N8?>@AXWN;{6zj+hBr@}pAiPf*^pcx%>>)+*bsn7qe_{s6n zyPzOoe$~?ZL_|b}UtgaCLCiTv|HTV7w|!fgxckrOp4+dEUF+sh&C?T&{>}RD^C?&) z5h|B;b#>th)@u`WdP01$W9Im}0*u3A(EpP_R7;BmC5tTDMhv9M(^GJneg|nsEfWQ=@aoko)8XR41o!=Oo&Y~`L1Na^(__QO z>gGt(tl)wk_!-o+fn|I9rGYw^)v7bKxw`c)d(%k{c2-lLB|csP?%3J+)Y{rQipwm< zArl?~75(gWk3*}*fGggx%|RnT*v@yoaX;FBR%WdaZA!h^RCi^hY|PM?@S5asvDy0O z<}DtcXs69tCuI>XqpsJ(<`sb-Ki<$_A+xfwsytY!pxx*H+k-_u#`$?_ST>ZnQ8a zcSUy3(*OepG|cY0YniT;b-wl$))|#5XU-I(U#qJfAf=we!<#}Sc+lOw8w?E-{V)V5 zpXc!Llb~mrj#Um0rvMAv-P?0&Li;yj?i76@Zg{7tOK|%x0ns3lX0rT?!uD2BA zT8z?_^2NEXWW1*L*Pf4-+hOD2+_hg)0VNzk&TfE@0CDp<%nBG1A=PdN5iO{HSHj6~ ziyO`a5V596ZFkkrf(Gqz%||=qvZ(g>`H?bq`-*rV$!LHIWR7mj-W}vvLQ&OlmgC|J-yEmb!BVvmD?}3l#IJe!C>a8FlB00@s95v9qcqM+q3Jp zT)ubj9)g_PJg$Vi85m;&2+B@CiZE0P3&Dbu*ei2(W=u7kOt z0PpXpPkXeA5+GXBc~?I@@^$?EQ_QF@^GZCg-DhA`g=WJMxC9hy)1k6mA0J>L%&WGP zR@o;fClR{`2UrvK6;+c|wRz8*?z`=CT;sK!7`CWMmWpH<%c?iTBO*feq{)x15uuea zPecFwgaj&1;~t%^Bnc;^|NHj_GcDmS3=F!8Oq64|E!tN`E70mKy)2R``CoBJ`_j_;wFO^U@7)W5rMSv92HKZ}I^3Uu0iB?rAZp2CbGFSEb{hN& z?4v5Tgf_iAxK6xE!-7GCWtoOkBao;qcft<-O?<#qXn<8{F^=3`9^RbvrOLOOYSgQA z`Ma-z4_n;uEG0N$4|*Ih6 zh=}NK-Ktmr_5$1wCe{4c@SKfr#Il_k%B=s<1?2R|I1wYD2qFMIOULt)c*1~(goS+r zsbF^|QrmA7798LD`ub$?u=y?MhgB{+=&6I9{-%3=8g|eNL&NS02MaoxxbI!bQg`va zVcPY`aY48H&T}9L6PYR#{~0C`<_2AmFo%zJr-Jyly+r?J0r05=<9x3>zh$l7^=b^f z+MOsyWO1X+Wyd^*!|3aWn~w%6o!B+YZ9hTX%v8zq!a75UCL{&$fCwhlhp?$&9rI%S zYq(1`h~gnYKoyshlS7&?s}bib`qDR4qVnI_^>1&>d%cdoFgvcI*jYeCW|u zx2OsSf`^H`u#r_Vwy|x+QggV02Qzwui;HW#w5%^jTh`I>zOtrWc**Bga9^UiEv_Rh zs`u!K1b1)1MI@@1m?KOF^BXEYufhIGgk8bEJ@DKUbyz3rPfD`Ke&O#b;2}d36qHPj zq(qJT(fNeey3>2^uz1NhWZ=K=0s?66-u+q8yJK2cS0_BSiI9>9MflF0J1BnQTp0E^ zey9A}&OFe%l9G}p!0LWsF6Rm*mUZ>c-?kt2UGyA6ltua9?N8U|IM4J`)o!atMxtO)>#P~^SXHZ zB$1=rfAbQ-*2;;G2_8Orw6|O`-r~X_CkYkjk&=kv55f}Nbv%~Ud5s8H2C)nFO=5Ab z$?EU+f0F9_8Hzg&4<0;7N=b>>;Yhli40ofRc+uy{q_)KF>mDX6s(&wEMC5-6UbG`F z-+8W-K~gdtIK0fVhHRbr%F$*WrTP=LYCMDoKoVAa$)~NYo!NJIB4JggF|fRyA2WvI z0?sE`Wj~_sCRV2Y1s^Gem`{@e0I{Uv_=N2u(teSH&3 zmMfh$-v$P@?QFGik88Y+Ce4PfCLPNaXxy9blyh{n>VX1vfVD~Wj|iYaiH0?(%h#?2 z>XL(Dl_Y;)SG-^=ZgvQz0vqYc(WdI=;Bj2LLFM*4 zxTFTiNq4E$bC5|vcyrzARi?ae`SJUvQO}o)DMr@d`A`=*lxaYHpc%J=0fV;J1Y3V@ zyhaG&Fz&_;rufvD%j%3TmHPx}N1s46Q%F~M2gM0(eR$#EA=WlGr>b_w5@D4CbAz&5 zHuauQTtZ?p#w2^PS6N$sduedQ2^9|j$ntR43hBBbQGIgkg02_W97Zr|L9ynsoIpTz zoq}Pd0V50w2qv5D+|!k+9j$cb9GS?^N2Y&7&47|d2EhrI@Gsr4MGWmGDZz@xKfrHMkn+b*ngsO za+d(0++<_>5NlB#{qf^R>W)0nW6>*mw~CjNaLoO{>~mt`6#-`s5cX$b9BIL2q;lVV z1>*HRxWo69JYQi9ft*Mq`J>^f7`Zxim_x;8tx!T*Tf!NQx{}^;zr;U({%e1KBs7ye zr%eOFl=U<_0L5)YDg&DvsxH=7fB!}ZCM^p$ve+p@GIG#{t)_-@)PEAeKgA+4Y zVnGEMU^XokiTM!>h1Whl)@_{qxsL04zow>OJp?s3Lm^#2|1bn|kA{}^uGKG* z1y~fnI%H1CtfcRJ{#3g}lkIGn`*_Oy{O}Ktb2MlHwF!s+!4L>1M2?u>xXgxfL8yb};jK%~zdPX#?cEppVP~|zv^_lH zy4e;$C4>abN=;gyMi>|;kR~zi z!-fG^kPPr{%&IS2b8&eU{4w3JN++~i6{+R?E~n-=28iT6i!uIUfNK_G@bHFt+pZc9 z4~q!^N!s^dtsvd^jVvmlj^vs2vmii8Y7FEa`wllO8_A-HK+ClQg+|1H#XkcjfX+#_ zSMX2PDEL=_3KQVU;P7z8?9H=8M5(aOpqnJuVtzotS_jZOcyOR;l&iv2x!!mc-OhnZ zgsas=QuqrHWZbGhaC_e!INU@eC4AN=C`;T8v<~jZ+6nt-ht4;ARfP=WPCn_q{qkbX zHbIU5#EjxVs``CO52Ucl&I07y1z@?Ufrp2e2nEeEl_Iyzpw*@iIciQ%OWRN(Nigwy zzI&{HetsS?wp<2a*}5!OEo*moSEpd`EFRwTo-faw8nd812hUQHki5|)-@~l>3L3vb z2QnTt1TIWv&dGX^#~N(!PC%gO!T}iX?Afz7Ags|LbTTr`LQDI`B&UkhGu9m95sTRs z??C~&DqDwX(wk&}YS{48Uf8j@7xjmxR~(qYR6thKfweVEWOF zyLQ>$rC!Lh-j~S5-;YVVI<8`++#mQt@P`kz3%wc90xtH*gi|FctQwt`fyqfgCx}4* zjxZkY*Y*%F8!B995xFgHYs-O0%5;N+Fzml#agBG}9#p(=nbgDGraV1PtPcYhlnuMywe-r8!Iw45%B zI4GOhp0qC87!lgE*n&!dw%CdI*AUCYC5B+gqU$XN7VhQ6AEN(M*)m&vm=nN^WE2P% zm0SdXRV*U@T3|PhV7-)Ww(|ikvOwjXudS_p=;4dTNWkReQ)R*(D}UuzNMGNbzK;kr*hhBGW z?$zc_5Ni;0FMs{9S3u=YQqPU>*Uojgo^tD|L%WeBPhFE=gAjK8!cM=)D2v8CeceoL z?hqU1!@Ep^Wb2^}5CsjE5(Z2ulgi$)z+cY>V5$WtzAkcj91?Y^g)f75oFV_PiKCB_ zOO?3>StZT%aBIW1m^Zz~Gv9-69UhFI%tFEr-_ z0a|X+JMk4=^!I-o0n9#A3)p>c)#IcU@NNvs;`pEPKK*M0pgzn>BGhVFVj;o7b?hDd z^{^Dr3jaM1AbK?hxZ_9&-v z<2>}dn@?gmbV1a`zs7qxwyhD$a;5)W2x3O_JKf7tFEM~W?afx&Eh?d-F3!K_9zdqE zDToTa#wxdmOhiOQCoS(gu2$_h{=-PYW1l{x143Z^^#p?^anh zpL3%`Hb98o*Z#(LgUJ`=-k&U%U$__xm$@1k%3Zt=EF}VBBl@ys69hS4c6vffft=C+ z6jPinhlyGY=+2M8ynP!GFkQZwy@|w7K?i6Xv_i~_)WAU(LFOO@TriP--_Yhb7*vE{ z)X>A)sf69OjeeH6Em^iO@9?z$M^EXGUt2k{psv_u;EmkM&;-fbnu){-g$$(g0Z!QP3C$0ec3I z?K}?>XoPm_xK?*24HRLJ129V`65{{Cxnb|o*)3qDXipfx*qK_$M7#xdPwL-rz}Jk& zT3HJw++24mk;AAR*=o&+pf3?sBgd05C)72;gQWsjx8Y@bFu8vKN`Pz{T1x>0t5-6t zTJ6e%fK^wwY>ygzw*`?3%uWclV4_S52Fam{)g13Lwnnnj^Yh1nEqfU%734;xAaVxp z6X{SAR#Q{66O{y#6`IiK=-j{~V?ldQK>l2USQ!H9CxIJA0K9Q=2%p*5+DZoW{jITa zc38mfZuEO5X))53rEdI}bE=AD4nJNQ#V}C~e~{UFq*BBlDqE7={n`FPMk99}$7toA zJi|fga_N((t>@=Axsr*O4D0%vbR3&3`)FUR?+4vc$mdmc*Jh`#Ka4K96WHc!P2N*Z z!8%G#SR4L~>v|=ZUwqRt|55K98U0eH{l=FIZ;tE;C$r+es=_6uTCm8hu81B~A%=pQ%1JVQlVYln5e6HX3&(U^?ef)L%OuL!yG z`{?SF3_Ag4s$@h!;I9sv3OclEQME-H&*#uy@WuiBIN&=8ll8uv5T$z_LsxTh%y+We zB(&k0g5%bXIDs|(axkA3y>QUqDMlLr)SOYLdg;t_D9MLF+0e8I0rFln8t0+0z-WcT z^CGo9xb0|mLqdos>4LisCaJUk@f%-X_UDZO51U?&Rq{whFk$dFQ3t|qfliA6pd4#K zrnEvjJaX&Pc>pY=tAvTL;x1jg)&@1zA65)VPJkV{L0heco#@&zv}_M`+`o0^7uZ~S zF!%sBe^stxO+c_0n3^XDNvJ#52SLq4rzI9pOr*YT#%yIdsLY0xBCmOCQT-7*ro&|p z#iP+eKm6Hvs-U~`^0EUl1KeI`4tl5=ut}Sc2ExxhjFq=%-t;1;zTk52EM0K1dvfVS zb(zO}0oi^NdvA|TXO_xzWR>UE+Ty|0^%DDD$6fz!jo$CXg@R=-$gUFdI-Z~q<}Wn^ zDO1mpBbbKbT3*ZY^EC@rv3tF@!@7%qyP?gFOa$Yj_!SozO1#QyXipa8xJY3mn4z(S zin0b~>zU&=g>2xlQ22fL``ZtR%8g=vBnVN}vw_4#OG}&lec0(Lw|Rh33<$-k;>&df zm^p0F7}__FK%*(^uq^XV`Bz@m#Gjy%hawx!U`chIO(9L zp;-fAs~aNi*%d3iv+eP%a18@RCS+HxT-j6V#=&+h_C_A@jYqeSJPC`5k$n8v$6-bj z6m+C}yFJ{>>Y&$fi3RAeaOB{Kx+VdXNpu$kWf{CkYC1YxVCP`?`i+RG=BnYZl$F2V zIiO5!=FC~9=V@(YW)?8~J=#;uAfR`wL2zZ_U8OT8p>BK5{2t$7ce>DVxr4r&tPs0- z8mfv^zMl9p?jU}|5wd;vx~{9chtzi5_gVjOS+?hPm{BEn%a8V- zYC?r4aq#^apeO?~0M`Bv0vgvd6p;6p&5Z@id}Cx+boAn zd3w`N1e|~002P4n8n0z5a|tv=D#z8my}f5?a)G&+k9TTZhDWTLt|4$p5oHQsR9++_6NAkAJ7CGZ zq72Ephh0}C}Ol2;Qa2+`Gt+d^jweT3U{a&Cm zov^w*;Zt&{bTSKjzml@`H4dLdyEXAb?4y=<^#S`jRDlWO^#XWAIt3H~ z7^K0jfCqgykPm|!nwr>kzrNl;`kXfR#G0dJi!qxW1jw-}(2!v_ptm8K?Fk79p%K4D z?E7nc8xT3kbw6@O4*{?{5S(=(xPw?4DGNp85O6dKUjF>-S`p4=KJr$V9Nlm9Vdi>sOgj+GRF8kPHwur0{<(W(NvO>A zMY!>czDCcOsmsuv|$vlUHXpcc9BVc7lgE+%R)(m#5vjT)$s&i#FT5MgKiM(M?^vU zL1(i81alboyag_Sx>CPvZ*#C*f=(i_n+ma+Op*I%`4TRbzj*@#h1F7JynH%55YYFMrOJhJT=t*BY?9x)F=^u3Ox#j%=F)oZ7oWpHziHNX}$3s2qh7ZSY z)BO(o$}zcFiZ3`C(H_3VZ-^5^$~d7aF~{ZFGSOYi_81g$)_8(u>c}XmBa0XRYy}Yp zzmbO|=gyr=9&-Th3{DLVBV$JG0l+9UB?8ITbqA90B0x*43%1%XQ&31k&JCm~A;Va@ zCov%1Db1D5k~~4voRU%kvDRVMA-z)J*ayABRD?-!&lR;UDiZuQJrN9#KEZzwOVpFT z)LNbNIg5#jpb1&^S){`R=kF0Yg_kJxW~G5&LEWjc2_+|xC*oKCfR_&n&*t_m+DIer z=E6v(LvJtd8V!3gGR{Lr0tU=K@-a2_|7&LlTQouW1XMpGKyXJC_*A32DSgVVjLKAN zRh#5%j8;^Aa#6mgQt?~yca%czaUgu6v8sxSij%CEu$RASJHmT93 zSEkwxS|umkFj_IAU1|CPWlHt@=EbxRAopvJ$^SJe?p%aT{YRz0m{!~3if0KX#5F#9 ze$>(Q^b2%S5^rUk4IlVhhtv3^rB006^uG@NNi53&J3=gg`~k4h4kr%~CNtHF7O30B zPv>1kWV*|0Fad-7`gIwYJdC&R-l5GM=*RtFZd~#Na2FC6r-76YYmEY>|Bravsu`Vw z0M!qjcx`Z=g?92npCn7UE76ttKOW;GDnyOtBepmeGL!*7e_Mzt{Jya0}EI#l=$&QbV);|=o<8Szh$ z%tcF?+FI(P!P%p0?12|_oFho$1s7i+0!tTg_ z|Nb4JGg4{=;f0HolxVpNu1yzI2}B&PogWnR2yhr7vke+0(4Y;prU>8Npyr|j3+Ah* z4G;$E*gSS|R>XcB^!%@RD0qoGw0u3`HC_n!vb3kC-!7M5!M zi*vv=KEXusuYV){z0fO#@waxp)v$#(Hqh6D>x$&$J+X{MTTeoV|1OzL0hFsXgc-n9-yFDT(o!Ctvc zO*qXpL01)^`=)EIaC{xUJR9!;ut|vf!1;+C$CEB}J}DnSsm*!BRR$Uw5ddq8`9W0Y ziHMY8V^L*|3-%Zq?nVv4(zHs`A6v=~F!V|8K5oiDT z|8|GjzU!xdL3qwS`tw@^IXT9S)8FdoV0)haXglcw3cBm=xcP9KcZ5hd61$Mt;o?wzERl)Ri=i1HrDXoa9^>g(&r z%U6*4iyGLB>OGEZrS+};I zie3WQ>kfAkl9Zm#Kmh(gczC#4rK6Si0i5dT@*`oKUR=z8@&?HQ38+U(wzh?^1^R45 z|BOWYt+wlk#>PhDZ*MP#B-I?wuu|N6@fPS;CZJH41&DLNc_w*wgCCu+$-?^d~_w;!v38SUyo`4Vz z*9fBXGb5w4*^Y!9_~ZatDmb#;#auE%4ecO2B4Q!P<1i7PhT6j+)0l8_UmCdU1`^g# zrBeZF5B#++kQZwnAJ+z=)D4!Az;glug5G$Cu{7}CT3+0n2lvr=xu`!ZA%RuG8Ah=X zP6yd74=F-q3fxNHY5NLJIFbceTqZHJYcR(OG`s`z!98h(1NRwhK7b20MyF?8}RGX`*;V!&c7+)7ZkLE?W&Za2&dH` z0~!Ik{ugLDQXvp9$N@9a7#gfvv1xRsQU=IGv%O=0YS3qwmIv}4LHZ*`(5<|G6Vy-@ z`wC6)0K(f0y5Z~(|Ktd$Ng4hu<>GJNyiu!iE|R7T&8|6i-dY-z58;4>Ao^ZFOX&eM zm4uQq6K=Z-Kg^ZJ)-ag9LKpVr+)jvnU;lKiNZv5ly?CeF(TgGiscOOCeb*s9Y zeB5m(o+b^zMgH*e{#;^ESa^8y*RKyHy1-OTgVUH2axhslw!B+#;65WI*1!Uh1XmLmqICoOeuGgK>a#9s!_(GDPE6#D(>;)7Xhauig+;J!!^6T}0vivZ$>>doERthelX=M^INYH$FmiVo7+OrEL0#Fv zj%ixFOiF6Jw=olvgpOnt>tOwJvlFSG2C-_vnt}u7%vzNyAe+mh%f>v6S=gv~KL8w7 z4-b!P_bqGXQN9`29g5=OZ)wt!l0*o79|0Caml0{{064&P`O>9dWp^Fn1t|FJGXaby zR#x&upz|dl8?9wGAauwMc)~(gvVZ@~EeI2Bxe8iNc&2A$^nQADMwN+l&=eG@!sgA& z@^Uo@9zFvBfK~$Jg-$qu%K@3fy@Lan7Fk<<%CIB|VMv7-4i_kpt;Lfg3}9)(;&FzU zXQ9KYmK)H_p)wmoEcXYe^BK3QHht*>+#_t%JN*13@_i8Jq6M*2=@>mo%*;<9PyjW> zIK;ieZjmmHMFWyUoq%YVLYtGkyf8_~$QT(IBxO?NL(pXaexnKez|Y^m8*nC=e76NQ zzTZM_8=II2BxthqOC0s~^fD3TG67SBG`{nkUhOsFqnx>Swfnz zie?^SF6%u+P(mO&v(+WVDv{2Ylk2cLrllUykp#AwT8Vi)&7B)JgyG{mhN@gj7#JC6 zEbl{5d_qwO#sS96c(^zVa-&7|%W7^AfDB23=p%YFq%N5Nk_uVy>VdhJkkinJ>yMa* z&_tGM!DDdO^9N1Q^#~MgAxvTPtsp!TJ{S-oN-W05CfJYKX%YBvRiH`g7Yz1fsdIPi zxuRo)w9Pgv<3O18xnjd(V$y4Cg~KBwr9!}c&w>>*2TEt?sJZfs7fCdCgoL!w94_N7 z*kxki3?*-DY}i5wL_CE4!U)`o^Y&8OIbyn(5UeN%(I4KY5HuOsMB?e{c~N0uNdUUK zeLO;J*Crk)Dk&`(3LQkl?JGWe_6gXM6H=Xt^k~JQMqX7l8frOfXfq8|@DA70j zxrCwP>|FjhfPAv(XvY@7=0aIj$xWcFiBMy;JTV_4s%$X8 z(?DxY&&*V?vdS~WTY*$)7T-!~y^RmDd%ovagMU@=0J5}d`&&m7x^PBn+Cygvg;oO< zY^Ch&3kY$PLo(RzrzqJS9v)R#s6bqPg2_PJt4RU;>oYXr?=#j$5W69 zlr08ucPc@Vg#^@=sgW5WSL_oAP%|(vr0=+0P*LjsT=B<+ua-rnA@t`wjstZsq{1-mA0gGUBFDIm4T_n*~)=)BE*2_b3sN!cv}A;Vca3Z-?z?L$x(@;?8VOj<@(A(G7GGpx&9z@9_2YgQr((MJm@lFT- zki6*o`C8aNMi7tH(uY=WUoo0t3Wv8SxXnj+cDiA!3xMzH{OcXPjB`X>TqfvKHsP3!F%em7DPG9FEE&6q!dlFo^ClVbUjqW|h#_4dBg;oNvpQNm8Kd6r+SFgh7Km4#+ zLFKoygwo)gIn!!TkXBw^F45>Q0!U6lNht+##Q74#=+E(juNWzRY)`l-ICS0zgftvL zD-Is%O8^cbNl+md!G4w(5qS;l%Cg-pN}7(AhUO(Sci3K$kKa?Kb$~@1wiOy03P3Ie zmNC>O6R_PtoC&9yhjOj}GH-ZjXd<8?20lJ@;7@>j<%NYkwOrRlt4@v&AV8D>k)iBw z-$eFycfS-CD!{3DWqbQ=o{rNVjd&@^Y=7=Md_YQXsw@?Hq>yW}A#hGQ+c3dR3BrOu zp#!v+9f3>OYRa_;Mq}#v^XEB0QIYR^A}-zuddiD?(Z9hMOo!GApB_;J=MZj5z+>d# zGN3*bf~1tCU88jZVmo?ALbU^8e21Q1Y^o_p8T`>Aqi#At4blMg07vnmcuq$S@g%E( z1w-P=litsw{;-dox(ZraB+(CqlZ8(oKW^kH5^~+Ogb`VUqTcf3M-Q~}%OoVpa4X5IoF) zvj7>;s(=wk(ga>%e{4~6v@Nj(8A9mLiEw12U*4cdtrz^r4u{Cr8It2(!~ZFyL2>+f zua7*11EdpEaC{*R&fU_P*+5z>WI<^f4%R)X*==B@ks#A@)UDcTn=Lnr3=elY_Ve?r zET&5cgd{%nc3H>(p@|y$bnPm^x6|tvHZjU0@oX~!QxXboBfr4K z??b|rm@bgdqMJ9cxO51gEw z0^|Q++|HNG6ln4T!;mwURZVYRWA+vdIUw~5kh9(4U0sFGiBW{zg^r1bV%7pqHags0 zj}dSwR?1ZQ1m?~hsChjgHgY(ujL2^*YG`DFIEijQ0PT7~r0-36aur&$3-al+5JS9s zecj<>BGU62SiFIi8P=f=N7q z1Oc2~Qtj2ufAOxXyF1oN^vXLm%DYo}BNFRxD>Z^`ZpV=lUx@bhd{!2i0P5cRsOsxtF_-E+a_7S1LZHaKh7`GBcQF z%ha$pp{YbZ@~pOEZ+Q_z#={a;ej1P=Vs2~xyd|Ds%G%3}^>F5SM0IP<&s_(?+ciJZ z^t*Y#XuHHp)7{zmiOqamu0UnM*n1{)XmNpilmF%fUcbnE3-ZDFylBOzD?L&fK?_*{ zmn6Ctu2?Z-+28qY+=pY9WnG@spdIO~^sMpq?#p%7=Ok3KjFIX?@=p^N#|1y$nrX*9 z@j0D7Hl%?N7F)@{r(la|jIP11=~J&EgjU}eUn zmb({KJdk0l*dbhH`6P_y4u7qf?yYlWB{#$w985CvOrrQ|CF^^eM!O*A#K?y1uMbrin1e%--WC0~-P)C_j z5p4uSNlMNN0+LZw1OyalP_halAVJCbTo29co>O&xY}I~ywrUSmUwtz})BX1QKH$oA~rQyrY}Sa@57($z1MYfVMW-WmL;57yzLX*(ZZq*r%Pb7VTA zu)1<;=3U*Q89nzy9i@Ak#10+ZaCFSPq|WHUdx4|-x34ePq95#gW_4NrT&|H}>@cVO z_f+X`@{CYDdaSiagWO2u_3oAy`Uyt-R;%Ui+{gJdpBWD9pK^5xj$XE$8BCYEu{_<> z^HP%j32C0V-o_$BotrH^bITED99qf^GlJ?RA(K>E_b@#qqc=rhaW(m0wmY4DBp~nb z)E0jGt~|x!+|rD1%%Q;i7!_VejqfIU^VQUQY6lDIEI&_a)n(HicIRheL|@f^cb8he zg<}`(fvcrX<-pR%Zd|m(88dofzdkSSSeKs}cQkXwiVuIiqPS})+tlxG;M=uOTXEb; z=UPl+VttakTzc2)&)wWfDq-6~3#o|MzA( zq}`uxC@4$Ft;cUGXQs`zH2X@P38yMLjd)pcvd8QEcD)Oi7PV{KqGVW5(Yn3Cm$hp3 ze?^zuS|KYES{acOmfw3@mWg#RwWRnx*Gmo6>(|ZeKC|2VW^`pGJhq#eS!debYa?kd z7n%HHQ>5jhF8;RfYkLz~ZY`^89Nb}9k)$GT;;E?TbYjfNe!F38m==b{)}%y*_LI9h zAD{Bjo@rtFXbi_Te91BHoB4L;K%71oou4k=$iAhok6S1xl7E$YkF>U{y6sKu0pgo| z&6>woFVs}j7U$JJ=dysdgTmU&WtN7peM}3X4_I5pC>N-v+)(IkiwW&X)XvPT;uV(A z`S3z&y#0=HO6t2Q|9U*0rMojV(yNo6Nq2M>g=N-7Uf%v7OzW|pw*^@aQ&j3>Bdg*t zuR^nTsNB6Ql|2)-P#cd%$lKeD8FIihEXDq{+_ z+`6Ug?4zSIoijE1u!t$II9Mkec>H^w;%@83)4wL<^*j!Hg%*g(&rByD5%SJF9nOqg z_|P{*ZNxiKs_OcupFDhy=A|!XvHJWWopysai)|xoxY%n`DQ*+rHcoxMxueOE_S~vq zkD8}e-_}2yJWj`A<9LvnuQ_0S`$OwY=!?2Po<3SHDYUC9;Q}75(Yl&F$v$$9o{SW8 zZ=FncC*=muYOTJO)e&q0ZKiFTv$QWA59XNG`jZ;>hPzxhIHk%wP(DHL!SILedBO*@ zJ#)8ft2D*u=`>4!?~JI`%C!0UdM0#@rb>I&a%;~13rnY~>(5TP8O9o~u#Vv9Npx|H zaC|Z{uyE0kr|MaeOEQ1$TE6VGkE)CK!2RY%<&n+I0#PlSoTm6o@+&kocj`k}3>G$?aA26@=Fyqrl1AB%tlcMlI_*|8>r@-?w0QtE^G=a!XO^+WV>f6oA+Y-@{^ ztj@pnxG&`oleX_3A-Y?=(}(xvYF%yH=uptO_u0Ztvv1MrCP(?J+6LG5bEnqWh-`1T zgLM5|g*B;p@waWK$~FbMy%F;cJ)!JhwAYVn!0GpcYlV+%S#smqVzU;7TZ7D3Y};Mj zW{qm_RL*ox37?Gd#ChbT5x~Qms zQMt*pK;u;4;D}BGue(xI^kmPSCA_*fJioXmwP-|f%gQn(>*J?AKgK)~XpeP$rkJ^W zx#YPSD^81un8mZ7WvG@&IqK)+c=i^R`@Ok(dQsG*N({9#;PQ6ur#ZS7!|Ju}o-&>3tpBJ#AhR;jf)#Dm@vm=XnJhdimSQxXH+=@$7`m z&P$a%rn23RA;FT#(me+Z{o;Ce8PI+W?e9c~lPQq6v|Z|>O8m_=^GFF#|9Y{k?s#@z z*g{5Rc@~`~&W;CVx8A{)7-qd*#Dl@Q2frDkXO>od zQ`P1&(whVigFHiOv~|8aWK4=xR)ECB?7JdimyeH)jiuE~_**1r9YYHbE4<~ej3o60 zK+3wwFbL=&C9eN$53pORik9qzVAXUK+r? zoCnYPRGreO_UESs?F@9Y+{&f}|cxH+rhM_K!cp!F!lOgvcO_6+}Er8+0#T21@{F|LnPQ z_T5RDfac{zL_}aE3?$qIEgOPzW~Q|PL>sZ7&u}5?U?~X{2e)l=b=|E^LTlHoi9m9} z2^i7nmX=A-eDl%>BdM+Z0DgG7swznV=mbYNl1oxpAU8Jv4FG_O3DfU02z06|dg2q3 z!7=5v(GMV~lGe;-2+j&-mc-UpL+DdLJLZ9iu{pFQG|Tc+s@w)WySwj<(||8U9&C1! z1m(K^rK?mO>{l1+hpjwhwFUar>RTPD1t_jMMpxUZw}U^3$lGARd0J(9^KVtPWz>Ocf;DXZK7BEt}NvzAgdZi zACP4gJXIv>-vMuw4zCcw7(wTimXw^fvPwocNThgQt}49VAGu|p<5}7FHfjNi0?x;v zB1q~4BpCPsILn{{)g<}>%qc>zL%%@yK+x;m&`l(mSm9mkQ;lvSkC@C)qWVDqqtjJS zYb;xWoJ~93r>w5Fu(mpxGK-&-ePB9a0v*0EMM%4JnAi3i=U31qcJ=Xs$Wyv1mIuNsqwbC(z00}oI z9Oj2kAcz{^n!wjV&l>MH&ME2g3?Lm*x6d+n9zzKRAYyeH!pPBW@95}$y}{rf)g78k z7f{|J7d}2wP4?2waY!N)iQK=N>zPe<;$T|oYHHsxtC7)GTzs7P{~>Kr)70EUbAeuB z9VcfWv-#zl6+#BA*|Smg<{~fLf?7BcyFN`n2nvb=H73kM zc?K50+}a}oVib|O0ePUL`4Ns znLKT&nMqst1za;$%qZhYVVFsN4x{EF4VclDv8Um}fpp6Tbwp`|*SUi77i|wNEi1## zh=E?l0xlsOM4_yvc8_4I0JvScpdNuDhj7#T_wOf!0cdv&W)0WkB54{SXrVSI6zMz} z);GHcc?oMX6E@GBnqj*MHE1u74N}=8bE|^{QdXca$`R#@Ji=tjIMiremgli z!&Eae0sg;!_3G_~0|~Yr6+<9D&mVZ$Zj;sJ4ji0|8S=^T>Epd(LlrZ6YxT+wnXK~9}A+}orBy$Kcv|2FsD zmYB`Hmhg(4<@WUmKQLc+QgpI_d z-CskZ5BAcq3~L$z(FxUoxMKJ_RB{~qq|A(3AW*@$9fC8e8>Zbrs^q{sq21{qg}yJ| z0!oNC&a6m-b;~CYiMUekgY<#!;sgVWY`Xh|gCxWtAff`PQPI)nczrh1j&_6JPlHU3 z$J{b;7w?C7flv(yHI4&EFg`ue=YQu;II>wvKVRH~hXv(I_K(yuJNR-e0AmXVog^SP zmU5!FRn5?Y00~MHjJ1TvkB|>SPxvL5E#rTi3N-{9?ptcW{5#;4nfY+;z z%mu7sJb>pB`SKn@5~WQ%9LV?-({uP_#E4Xq8f%N}D6X8^ENT;p^%qIw>o#t5QhDwK z-G&7uu<f>_W!3pw^J=*vrZFd>&reMAtDaUFf_KO7=ut_Cd9^` zfdA#!l7*EAD0VqbE+`vBAXQX)$WWuxqaY$xRB7_b2K|y@l|N>z7%HK~0EZMuqOa-? z`Ge-ugWDAwW6G(nk>`+H?GY2x2CwuUx>@krJBS&ARuwiqxSMRX@-*6MdHEYu_~$H5 zmd#Mjpvh*(cL4<-5BqoMpaisBFg1Z^&m-Fbc^=Q7f3&bjtL`K^7sZ23Z9x+t={@S5 zSp|CG#*;8+Uv zV(ZGiyu20{Crox?k;4FvkywLcJmev2G5ghDZk)!wZ{Pd0^zrB1s?mha$wnXr(X(M+ z0U5Wer{OIkue4oRx=D&p)ep99+I4@kZDYSZ*UQZcTK;$z3Z@No;j?saRweAE{&I;- ztFR{9|M!Z^|3Xr{b_bgw${&!<50l()zTT0RH65p!RBPOwxj#|eBF|It5t-Dl1w0<1 zD&A!_*U5JXC@9zox(u53Kp6?KzFEL<2TLK92ScfTJ5(Vx5WWr8TcmKqBce4fwE>zW zA{Xj%AFkE0Cd1mtTpG(13YBW8-iU%Cc22H$(Zk{{rT+r-QAFvP?)~8`*}hQ&y84S~ zoFE5R5ur^qry}KhUtbEea^^!_%+j}SO#`H0FHFWlgaN4x)rh!bZw(HV(V(fAn#T4b z^q1^eyZmUV!m1&EkDi=#qp2XfKp3?iDB)wMCJD`b%!fS+M4u9roOh{;_xBwJ#Tp1D zA7qs2hA*yE|K>{K$c=SXLr&c!1%u?({ z5S^kZ9LJg`Y~7seG6AFigZ<~Oi`jkOh9w;ZUKd1BOxPc|Xb5W{GBP3rgvg61o}o30 z38{p!IviGucoetTwyI@UN=D-T*v`ypR%Oym{S{=eZi_he8&-~d{T$Y0Wt{t)=Y-S$w1v|%%YuefAj5*unQqzDo{ zz8m)+!3}VMdV`B*;4v0OWU^SoPr~_@;CNC)_tLfG=U1V~ zNL7G3mWZ-SOG~TZbGAd!I?cZ0Cn-jWv>vQ6v;^JG2c@L+A&y@&O{>D;Qj%=pug{{& zQpIc?LV~i(Py@o|RBv~plBmPBKdXE07(nz<0=l(WqWJ<9j&|VdkQHw1?n!Z}X|zge z(B0_|L8``0)7SAqkkd~1sZok5X`McO7cXiU3m%=*IJFkX$;~gsp&O>C6dcD*PfSp#gMoHokZ}RgaL@t703=ueU2s;mHnjg*$*pK0y08uA~ z3Pk>auT@3{)HF28E(|yCb$6RcRLj&>W>SHX+4zLuosTrl)mL5l`H3PLod#-^~))q8wWr23?K9MRB7tU zhY?6CNj)Vz!MY_MxG&nIyRXllhAxGu(GadsSVZ@-b07TRAQp|r_$i> zc>oLXb{d|N3O05!^(u$!U~n(3R+5vuhJqP8=^%s(PNfkM5p;chk5jg2^Qs^NvO~s1 zx^;{Gnq4Q~qh*k+ls$6fJi_r4e)D56+HA7aAZS2jp;8_q@Qx8xEZ+ZKU?4>27YEdM zM<1M<1By(yN@9nqhorc=?AaVXyExCiAJvXNBW z+;UN5k&&jNvV%q-18n?6V7YjP$}K6W2h{<@P1UGt`3wwN{L~i!afpL5GyC)P%|xt& z;?Dxw5bbQcIQ3**t-j}2xf3D(arL)s%BG`n$R4N=r|ak>Kzec*mOl;ja73^E9Z#M? z#roNVbA!eaodxA%B)?uZDX(`AomN&3|MklT));vvlQ}CLy}gw;v%$T7sYZp--1i;* zY4((I5kfA=PbCtviv^+&>5vqHwHr6$oS0)~Utawk`U~B4CD(cgkE{M~rV}-L`*ajk z5opecq8js`Xkf6(NLrQ$2^~lIt_IB!TD?g0Zsu4+LpwajtHbONjkX7}R_OT|k?0RX z4)Aq1=jC7v>!qu!s60lJ059q-gr+>ggP$I+E9k-rJ+;rwss|y^mX8-t6M&|bG#HWD z;eAB5Xx=@V(M&W{mf^p;Y#>2GKX3gT1S zrd@aTUy8{V8M%O7f)@rEZ0SG6>Uxi|>@dUGc3(#iLFXuWa6adT4I5(M;O&OW{XOmm zm6qA;lE9zae?)R>up084k$6rhqVT1IQ)k}HilMOjn1nhXL(_)kLB-yFXj4m?b`mOZ z{f_YvpKqa+zFMbFow8Uthku^dKEKdVR%1})4Mu=Hj&-Q674;bCTM0pw-%Dv4`b@GO zi8%i{Pik}EGf;6k-C1S_wHi8P*@hL z1fh5htYh0Y`(G*l?}Z}&1AIotWJbCOD7@AX_BR$+&g#5 zGLYa9k407uJ2vqN5w#&ydD(}1jvqg6fk?Y02%oq|w2r_Uc=qf$lyCr+Oah3`Soc*F zMey`Z`+6GFc5SBKS+MNWE9&o;pI93$H(JG(zHQ+kx5}rQhiGf9GD2)z=q1xH3hl zPY%n5v~>fFi)%5*AiZ3-cCD_859@w-9n?hRCr1HeJ{*-@p{~6+km@dUj}c@&CkZNT zc4F{nK(x6FDt|PuTG;#KA!S5`ArMoo)x95O6&G9;XpN5o(xwBv19TdLZQKIAM})%sD(gGE)b>}%({IVX*0YA0cHK$>yRGf3=b&3#CqsKNPSvqDEJx#P#X z5fG4vCB`VTAswa%vX>KM7NRDEX)0LGnP_qevTBkpiMXR|WU(-T3Xo61(#a&f2I}WH z6k7zcfnSQ$_we7+RIpXNxxF>v$&-D+W|K6Z9zlxt)oHBo<`@d_^Y{>J55Qa0>E@_G zT{=P>yE@vP&D(p(Pcyv%_pvh00PuF^gBc*h=}TEc)zHam~PbG z_dZ=vN6|qwL+%tK5?a(f*oM(U)uEp48qA+-u!Zz~Zt?=iPr4rL*i?G?@4ESJStbFE zC_9<>qC}n#z>X-Bjg7x?`TQg}(n`UbPnG?a6wmp))~iA8QX zjbTShXkZGANE9z_41^{sqpu}Y$wma z_Lu_cuhQsl8lpJ{7I*=d;@P{G4r>w8As`uQD@G&| z{s;hsgi=N%uz#oFMOaDHfFZ*yR-q8Oa1RaeTrK7v7rngyrjHMbgL@{QtYDYu(1*7L zyp9%MfY?;NP*D*sqp}0;g`jc~4NdPq|Ew960zpHX4?IpHW@aMXbPB~#4a!R8mFCyU}lxN^KiKNWfzyE11n<2ibh*=et*tF{N z-E(5x@ojJT`1mu;>Bzpp_!tDXhl!-D!t8v7cAkfu`{x3C_3lq8Uv(|haUNYV#I2<9 z8{A?_vZI*a5ANA>0`(!zdAzw6QwUv&8Ibk`UaV`3J&0@6g&U6G?4SW~8K=>c)j^3q zL{gu6i4q(5r9I3m5b~O%Bu(%2#7)FZV3+pD#d-)$_;#XS$Gbv$OoE9X>GH6hgQ~2=3eGN+3&^@3QC*KMIXZnEThWQo`qbuL(EAbd*Q5W&VU?>o; zp3{oo!I?lftZ+3MF2~9`1sUdrM%54oeZQr9!ql<94x5#Z~)?RHBY?oxnr&Y?&u%>xJx8#=0|GsFc) zAX5ysbd=g6*3G(T`&GlF+(|u;?7}?M)_^94MmNaltzEm;DQ8ajA+{e5>YU9k?~6HH zPhwdIa7*@+ufBCkzioo&65uEnuUBhIr*wy;+)R2GX(DR3A&FwTIq*b;FgdTBIftN>j20CB|zUf>G!In zfHlsZpUoAV-yitWJe^o$$%sbx45S5n<+q;Hi;M5i0gP^2*|uF|n;V^lbwL6itR0U+ zF_8QJ$>04iM;rC**$iQ-%v4}K56ZHlZZ<<`@d<5;=a7Io4J_=L zwO-I)OerfZ1#FZA!^?hnT)=9WGeM z?HepJx%v1`!Yl%+RVu+3%WDE|1);l)jidS2mpK>b{D*6(Do~UJGgI1^_U{i6kV5D5$`4vQI976SVYW)@5-A`#;Q%5`2EDZ3CH z^%%swK8#PZPFIjk1cL?ei1PbAv2a77K}_AKrm*@D9*9aqt4DfU#HzsoWCve4froH6 z{Her7M4U&k*#kHw7#NBk;??a)bcLUgkZqu};bqy0)q{)_&zXr9IALR8^`ymXYd4|3 zB$cH|bA(#@qBgu1$t2qY%c5|{$%hb82-B5iS(Q;-p1t4@9*GL`-BWD!MkXc}0G>jJ z5#F;^!l^%Xycfe3h{!Y&0k{POln^sKsJnFW;t$|@n79ODPLiG;jet2{_v;v(WZb|3 zz~^a$_yPz-K5O9i27C?72O2t)JAjZt<>NGt12~As0Bd3u{G(hnv`56_PxcM~b0B~; z3&zT=*KXPrhpQrc2V)TX&v#_O_y0IYYIah%fa4T=SdKlEv^+J4(F06G=$bg5_uViv zdrba3ZrPlxg?9acs4a%dO+Yf--bEzT#<_U};)oPzOimFn1W}snps2vnH1DemP$htW zyN3lCPaYKK_W&KMyOFlFmUvJ=I^KfgB&`S|c%PAU{=44z)R5s>F_og}z=js5ZB6<#hIq?vZz%WmO4an3+%Z4)do$5`s zb&2#5jji>1@35&2AuC29{()j0s!f6i0UsiY5{xjS#Q=%Qec*sPF}R{iqS62}6I6^8 z7KEOlpJ@Va%|inVU5m!B21^ZYX}Weg4wAvcbPWv?GP#Z0M9?K1Wnu=-8d%Srjv%3_ zE{y_4L4l`FK{Z@z#508kW$jWF!zkGVt{7 zEPYMQSadnA#xcw{=o2Kugaid8gnsu#2r-GaAPo>2P{Qk=3)jYT+3>@f81p!C>T$~? z!*G5$;7xwycF@Ewefg7GQdy}4eF!7|<(n=qoEd+Dftvn@ma&_$CmD&PXNGPnI5;>B z5~~nmokZcd4rP*;7X`<+Xr78mQ%^_aWAKn8;SPwv1dWtSz^<^qe;-||DZ}4C$l~09 zD%@rQ0Ag)0LuehK!5W+tE7223fN^lo+i1isujkm*Zq|pgj1c?)eF0FhR|Y%FoEXyg z#K|~sBu~W*Fy<8sg{34W4!Tv8lzeEJ9>!rN)rw@Fb4z_D1aM8!N$J_W*sJXQHg7Ma z4yvL}4ei4oiPkS(^}EJiOe!RDXhU@a&%DHp8%`Yn9#7&{a3Y5QZTu_eOf0re91C?A zZMA`qNBqdE%}9Dci!Y44*rlQK+_(uyPpsvnY`k@gq!Um(vG6h?5qg4qPb4%Dx*Rg$ z#2$sM78;Jz1gann8Q|Ld9}h5H=zwyOl1~E|V&0UUKHcFteVhb#AehXYSzOtj94dMU z|+8!)NM-oJmpwBk>3+qkaR0ZshqA@DnL^9VU-fVBm5(LM7La2%jLx`WCo#xwi^9HS}FDHEp0msgAP(4P?j2YNvAen_7n*t7k3 z2z=!|pIhVIJQmPh}hv;C}~ z>3AOBi{zU^D-W{(mVP;OxcB0Z6yo?(Udd(3eRGO-uM~?rT!nvnvaZ+5QTQW=7wexX z>>O;{SpWFnk0}?@-`Oapp3iW}Sw^9>7R_F~SHj&AJ`20u*P6sM6npRQwl#g0$&0Q{ z>c*^?<2ielo}kuLyMy{$f%p*imS49fb%uu>=oCufA}s=7jyS9;WJ1td*uVuA-(X*6 z-qDI&yD>RxX??B_-=hyU^tExn+Ro6dtOKD?bzAUHOIDZ=+-?)N;jN{Bzi8~=7xuc+ zZVS@SC;IbjZBAZ6p^W}MPo{Mqxk9fx(X#e;pLY5gcujuEF6n!aA^7QvQRT;NS-g3A zTPc)&wjZZM4Lc55GSDMY@xXQh4pB0qHrtR$dC+ z5TANT$tK5W@lAj3eeW8$@XZpoux-O{TNQNuZPsxFHniUxdT_p^eb7M;|B>hTY>zs+ z`X=4~nwCnGtc^x#V{Fju!_g3(CxbsM3{(?4pCJ;^pvCX#{79E;tT`C~mTo)iiVV(X zs88|6#!=JW&E6sYE3B`vzxG?5f>mJf*dn^to%S9ZybqnF-0A01e|WN%QbOnU`(zO9 zS@}DVgF~FGkMbTBv4|?X9l_K(wAFrag{pEQ!zOlka^mgA} zp_$#*fhh6ZC_=L^3+LwzEwZ)!3ra5d3z>xJ#;kB9f7&{K?#3A|S>~7iX=up_j`-3m zeDohP^1U~9SO-EF>PBJPhWBn=%IC4fR9u&#_H=|-^!8+H`xV^M6vLG=_+{au=VeRV z4`t~1w=d)wo2Iiq`7hu+%{@Ikyb_q7i+&{FVv<+yN^5f{Y2$oHV1!o2lLf@B(!bD3 zgIVzV4Bm(9A2Zg!&Xe*Va=G})2~LQ7ycqD;(S;*<8jSNR%%bmX_kFu%OS9qE`Iu4b z=aH{D`9*}|XTgp88L2Pc3|QQKe5XcQUa&+UKj(^TBR7Wo@&n*MM~$AkRGcnph|{HoP}p z!v5%^2!nuxM44}1Z&K68(;H9a$mhGtMRhk1ORV|Ty=jT5w92>EXr7jVYmHGcMrNxM zst00(8x^pkN?qkDBp0>t{^V8W;K)GxhH4s@nLxZZ|c2d}t)WTw1z z7L>hK#^FCOsxQL+>#xbPIVTv2b+bx7q;_^kJISu&&PiV_cltsc7kzbVlwlJYYW%Jqdv7~lPRgkc5%l}Y!&p* zF#WiJ4BX#l2d>xB{(@v*KA(ttGjA@6+KwnNbh&od;O6lxGv~oN7c(uYKfLoHHBhx( zT$-Nd?f6zY-+RmPgS@c~eQi7fRdJq;{CJs>jud08!nd8Xx-<7&w)`*q@dz5DA?n7U zu-x>S^b1M9#k+OHEa{Ru+&+=7{<(mILG|yOR9iLT*|MzchaiM~BKt@nH7kC*rHo0MOg z$=mW#=$K4|_B1=@mcr556-?J_r)$nTHlOn=ZudVMn{pjX#bPCuz+L z^@4zOEsJYY!%X(6fSyUUfH$Yj-Kty8`^cYGPKjG$Dm0kd%{Teu3`QN#FQv^)yQ;Gy zA*pJ~RjQ%g81*;qPbW?K{Z`W@PND3RTERxD0xCvZT#030jVW)#@ZU?MT{U;lT*`TQ zEH5^Cjnq9Vc8t!NNpLn*Lw#?hpBB7)lgm%zX_*=;m@k@1EeXw6k>d@cpC~X}^5c*; zK8L4i)N@IfM{(BDOF0$Q`pmGe-;LV~_8-Y;+ibMrw(`##CTl-B2lL(in?Y4oUZcf+ zyre4DIVm5b_Nx%Vck}cXTuc{p8+|g1&S|Xj^ZcvP-yyEbV>sRG4I?4-%^6PV99c|A z8~?Vtxa;8@j-^{x$9-8>dBUcwZA0YSMF->DDs9$zj2ki)jS~j@+~->iVVB*=&YBY1 zHVro`J(F_#&nnf4PWnZbKHfs+<2)6Q2rS-X=_l^$`tvmP_j+25J3n`P+K1Ww9(b(o z>{d|7e2b#sLfy)MtkbrbPzh&eG_diFkX^c!=k+ofvKSN}vK=lBN~>!y!oP98;4Z}f z;pe|0ltTSs`L`Yn#Y`Qi>#9XJ=~Sg}x6Bb-ao#ygg>^;Y9zm$p+lL)iX_R`ck`#6*-6!IEJC->m zs{z*I@Yj!(_a26{7>a!DVohc&jv=4t6*}lKga?A+mY8j! z(zFNKcjXPeo7dhEn%`>sx%{QD(HqU7&Gm{5HC@g4<9!}?jb0R7T;Mf()rEDNcqkX@ zxM;S`&kay6(lyGc=UGw9DueDgCy^)G67MJ*t5p|2ae-s&BMTil1CK|nzwp{H z>P8vue&`|}FE+YUx^Iw6I_&+fQ=Y-La2|U0dA28Zk2%LkF1j*!vPaWfp7nLTu6GQu z8J4NhOVEpR&2HnIC$w;J!A9n;f6dHt?t#a(2-F5 zGR1m2T^$d7Ff)_0#=fqY=b*SjWu;4|`Z=``J;}Map;lhpki<~`gI1;eOPfc&%{)wL z{NZ*@I9W`%?b`7c)k|l3=H)d+-@ZfbX?AcIY&4?Si34#OB-lucTdMisM%|tuyV-9oY(t52FM=TK#T4!T9@NFN3M*&Q!+i) zG`vb^d2hvtbPO|4v!43r;$CB1$5$RSt@}2g5gE8%ibu!GGi2h~!qM)iYrgUf2TQ5& zY=(ae|ub)%$>Tx3iTropDXn4eyW%oaKVLM9FFh>e?PJOp10E2~YhLw;Ktw4pb8v zu>KZOd9lA(K-WX+Gi!SFTSkL=$;#6^>TXfHL${h^BBb8l3=3L`*rPG)z12@6oJD$l zZurz-L6a1kj*OR_`8GW?-+21)q7_^E9p+}U{n@vaC-r3cwCcJjVzEj;VZt_TV5oQC z=Ar)i91FZ=uN#Y&7$wocGQo7{WKS$6(z?byC-&;RKEd!1yA#KFtb#$IjHmmwaf1n~ zdZJMBE69?5{;cWnB$)^PR>DHM}`7Po)hZjz?1rskBxVl*fejlY=2Y0m%t zufHpJ&CQYj3iCY{1z!F=N2l|Szum$SRl0Lgn`Tbp8zb9H3!@t={7wbL+NfSv`_`{A zx6a8-3As@|nttm}eU<*pEyc82&ZzHQ09DJnkKbY>Ak-qDcdwD>aKdjXa|GRUm1TJg zKBm~tu*0+VY5dk5?j7>x?7AR@skSHA1gSpWoO+aXV_R8^MhQ+TprC;0^w&c?gzUY4FW!@cjWc*>}A-t7-!v%uFJ2Eev$gjV*5ymN|u8W zQ`VpLPBKNmrYQUN9NjKt5Gc|+`MD)XUfNB6IHkj2P|8;R+2rn_pKgvup^Pbix=PU3 zRE4Q5NRA1qiJUUJ`g*pVtheb3t6b!T`&%Q1sw=#K^Ul;nrGQIVOHY%9+reVtyHTzR z^kk`vB_h+hM~++}3Y}}$ue;Pk-y22vsGU0_Dy9r*#9;)dsEA3$7VALPJ@L}+ACr}N zx9W7@HIq2vSWL>ASf)po3og?enCgb-mi>=j0_ou`~w3*TDcPKx$PDt_n&m zDI)iTdTOMx0NMhAy^n*PA-^EnHM}n2bQ#zZiMoT<&51FgE~U1Xkn9tBquFghv8Opt zhe+)POLm9FB48F6BqVeiK64o!7wvzIQQrTY5~RC1{^ZJ2p^s_^Iv!&N3VLt3nOXZg z+g61P`A-Ww+-kFa?#?>EbazfJ`mB8T@MW0Oh-qXGa+?{?U=buarGTmd1qZ;SKViGzPGLVv8oM7pGhQW#n(eY$8QW zunfZfl!r>{z>7p>qd) zZtua#dR)&_-8@#x(0E);GD@Z0yC0Wb<{hz&``MJvExYca;CcC5_r$yHeCA8>=<9cm z{gBe)3E_*&bm@Ekbp_GP5jiH#_)P-!Kv-nh=~QU6o?_^Nd{`zGP;2B2VvBxvAdKeNUji^4!b2tuB1qACk zpFTtq){#JN&Xl<+t#N<*JQ{q;(V_|D_`)Zt!_MAe@1j7>kfsx#Qw+) z2DRFg|M@8=DGtXR`$P_lrcCQFVqt+?p&R}sk|YS8F&YFyJcRz~y(aLIhF0PXY8)M) zOft4DHy^lgr=cf+3I+woSI83C2^EZyJzNcge|ja)g>MuN*6I;2qz|JRa+0MMr`xrH~zFM zCRDREu`U}Hj3g)}VZbp1ok(JhA={FuQ`}W8Dy=awcHuAxZ7(lM~$fhV%~j= zr?I%NP$$Mi$u<)$d%VPPO1b>QfcX#D+Q0l zjm|mfKU~-Hra@`@ogHVkVv|eV>Ajp84M*iLe`iiy&UC zQ1@Xi!fRuhV78U`5uK^)h}F8aYFm#ALO%k7GUS-r;23ShEGlHSz#IxWRy6pk?>Kfd z4Re85nJR~ng--O1kG7f{6c%G@>1&Qy852!2SF+mCEn9>-XQ2IvT+V75ffm?sr$VRiPMkZB0WXC z1rR94Kmzj}#G6QHQ-No}bl=Rhl9I&FKZ(VGj1&I4EE53|5-u)2!5E%|&;l~#PUi{X z8}K3iyPoam*d{M7Q3xBZx&AATkMSy z=*}9vz%7}R8k&%m3O+mm2^ZZs)u1EK1Sdv9O>0pY&-#;#BEQDC3OCq1;wlVK=W=Q1 zco>ruTa&bVy;$VTwc`r(#sch06V(jHH}<{VR)4ZE}zkX1&7W@-oT!7n9ltwYIlv zd|Okxzrp^;y}{SJOnfXfx}F)ZUR0>F%>DPjs0(x6v46RtY#UhMAspCgVd3G^U6lR6 zzvgA)*O*4_j5w9o?fN`xHMm&t7O74qrkuY%g#wL zPKu4~cbJp^QUCR}`@-9qIjuEW_lvOy%)WG?l zPu{qUMJC}R=BMEVEXm%U9Udi!1y}>-TM}n7p~50{U8cgzP4Fh<{+sgjKGZZ#&HVG| z-d++AMARc?pMU;Lw)MZV8~fL{mJ>4@6oZ6|Jfiu@x1q_MI+}dM@XG%JvuYN` literal 0 HcmV?d00001 diff --git a/frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-render-data-in-antd-table-1-Signoz-darwin.png b/frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-render-data-in-antd-table-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..01e97f5f706264f8c4538670dcfdffa9bfd079da GIT binary patch literal 117914 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%0DTp5J>dWixZ2p1S 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 literal 0 HcmV?d00001 diff --git a/frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-render-the-page-with-404-status-1-Signoz-darwin.png b/frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-render-the-page-with-404-status-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..a482ae42a65861467c3780222480a501d550b7a7 GIT binary patch literal 61476 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

tyx7>CJbf5Oi~!pQJpf zG&jA{G||i>7@MRpqO~9>ATeM;L$rk7C8Wn7YTzS%jsda2Im`0#yZ3+p$&2q+K*y0R7Wyp9xe$+RP|`E_pYImm7D5o{BC`yBJB= z!;}tBY2VP$Ila*+E$}2Gni^6O8g!S)NLzlbirA|yk#DO*|!Dz zqEE*5S3LxsdoZI@VmBU$6HU{vc4}@1pFE^^osmyB8DN1?5rM3v?XNDaiwYx)^mBV4sr0LrI7PdhXwUhJ)uZdh{-@6-c6yFrMp!a`jFw$4p%h z?0a_AR&#AjTsepWaLKW3QbIx%h?jUAj%J+TYATy6y?uN%qYvUMk7aL!0V$eNH}fSN zJR@|?=#(Emhn2R7cIW}uWNPK*}86;$tD{a@eNM0{kt}KV1RLYu6ptqmb8`=T>Y*9#=V_5c;>?`>#o>b*L4l|M-rvnuOIPtR`UIS{2c%h}N$w>zCvaYeHa62&@T#H6i%_CImy4f$EjWpSGDtmn6oyPq(2^ z=lqv%_@3VT?MiR2&GH}5Q7e}3``T7*1)WhjYmXp>qeCWAe7R%!y6=AswE4?Gce=&t Sj}u7O literal 0 HcmV?d00001 diff --git a/frontend/tests/login/index.spec.ts b/frontend/tests/login/index.spec.ts index ec735460ab..24a205e197 100644 --- a/frontend/tests/login/index.spec.ts +++ b/frontend/tests/login/index.spec.ts @@ -45,5 +45,6 @@ test.describe('Login Page', () => { element.isVisible(); const text = await element.innerText(); expect(text).toBe(`SigNoz ${version}`); + expect(await page.screenshot()).toMatchSnapshot(); }); }); diff --git a/frontend/tests/login/index.spec.ts-snapshots/Login-Page-Version-of-the-application-when-api-returns-200-1-Signoz-darwin.png b/frontend/tests/login/index.spec.ts-snapshots/Login-Page-Version-of-the-application-when-api-returns-200-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ce5b590aa22f65967d905453a80ad6dd0bddc0 GIT binary patch literal 47462 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 literal 0 HcmV?d00001 diff --git a/frontend/tests/service/index.spec.ts b/frontend/tests/service/index.spec.ts index ae708322ed..5e90209fbe 100644 --- a/frontend/tests/service/index.spec.ts +++ b/frontend/tests/service/index.spec.ts @@ -16,7 +16,17 @@ test.describe('Service Page', () => { page = newPage; }); + test('Serice Page is rendered', async ({ baseURL }) => { await expect(page).toHaveURL(`${baseURL}${ROUTES.APPLICATION}`); + expect(await page.screenshot()).toMatchSnapshot(); + }); + + test('Logged In must be true', async () => { + const { app } = await page.evaluate(() => window.store.getState()); + + const { isLoggedIn } = app; + + expect(isLoggedIn).toBe(true); }); }); diff --git a/frontend/tests/service/index.spec.ts-snapshots/Service-Page-Serice-Page-is-rendered-1-Signoz-darwin.png b/frontend/tests/service/index.spec.ts-snapshots/Service-Page-Serice-Page-is-rendered-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..2be4376847889dfb342f641897da04064fcc213b GIT binary patch literal 41410 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Ⓢ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 T7avF=PosKF{pW { await buttonSignupButton.click(); expect(page).toHaveURL(`${baseURL}${ROUTES.SIGN_UP}`); + expect(await page.screenshot()).toMatchSnapshot(); }); test('Invite link validation', async ({ baseURL, page }) => { @@ -87,6 +88,7 @@ test.describe('Sign Up Page', () => { const messageText = await page.locator(`text=${message}`).innerText(); expect(messageText).toBe(message); + expect(await page.screenshot()).toMatchSnapshot(); }); test('User Sign up with valid details', async ({ baseURL, page, context }) => { @@ -125,6 +127,7 @@ test.describe('Sign Up Page', () => { await context.storageState({ path: 'tests/auth.json', }); + expect(await page.screenshot()).toMatchSnapshot(); }); test('Empty name with valid details', async ({ baseURL, page }) => { @@ -142,6 +145,7 @@ test.describe('Sign Up Page', () => { const gettingStartedButton = page.locator(getStartedButtonSelector); expect(await gettingStartedButton.isDisabled()).toBe(true); + expect(await page.screenshot()).toMatchSnapshot(); }); test('Empty Company name with valid details', async ({ baseURL, page }) => { @@ -159,6 +163,7 @@ test.describe('Sign Up Page', () => { const gettingStartedButton = page.locator(getStartedButtonSelector); expect(await gettingStartedButton.isDisabled()).toBe(true); + expect(await page.screenshot()).toMatchSnapshot(); }); test('Empty Email with valid details', async ({ baseURL, page }) => { @@ -176,6 +181,7 @@ test.describe('Sign Up Page', () => { const gettingStartedButton = page.locator(getStartedButtonSelector); expect(await gettingStartedButton.isDisabled()).toBe(true); + expect(await page.screenshot()).toMatchSnapshot(); }); test('Empty Password and confirm password with valid details', async ({ @@ -200,6 +206,7 @@ test.describe('Sign Up Page', () => { // password validation message is not present const locator = await page.locator(confirmPasswordSelector).isVisible(); expect(locator).toBe(false); + expect(await page.screenshot()).toMatchSnapshot(); }); test('Miss Match Password and confirm password with valid details', async ({ @@ -220,5 +227,6 @@ test.describe('Sign Up Page', () => { // password validation message is not present const locator = await page.locator(confirmPasswordSelector).isVisible(); expect(locator).toBe(true); + expect(await page.screenshot()).toMatchSnapshot(); }); }); diff --git a/frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Empty-Company-name-with-valid-details-1-Signoz-darwin.png b/frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Empty-Company-name-with-valid-details-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..82de95c0d1b5b752e24a928ea14b2bf7d01fddea GIT binary patch literal 71480 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 literal 0 HcmV?d00001 diff --git a/frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Empty-Email-with-valid-details-1-Signoz-darwin.png b/frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Empty-Email-with-valid-details-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..f2fe6360c91889590eb199687d799430e469da1f GIT binary patch literal 71623 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 DtGE+3 literal 0 HcmV?d00001 diff --git a/frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Empty-Password-and-confirm-password-with-valid-details-1-Signoz-darwin.png b/frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Empty-Password-and-confirm-password-with-valid-details-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c268cb8349d8242c3e97b25d08c328f0146827 GIT binary patch literal 70414 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

EATCC{L>0hcQNj)bCtwYu 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 kR8;J8qTosvuI-ygR1M%T_LjV8( literal 0 HcmV?d00001 diff --git a/frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Invite-link-validation-1-Signoz-darwin.png b/frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Invite-link-validation-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..a514f42f067b34f53faaebf239b2376492c9a4e1 GIT binary patch literal 67365 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

n23co1p09V-$kZz=lz{Ai!*3paaBHL!iyo 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 E2N!c>HUIzs literal 0 HcmV?d00001 diff --git a/frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Miss-Match-Password-and-confirm-password-with-valid-details-1-Signoz-darwin.png b/frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Miss-Match-Password-and-confirm-password-with-valid-details-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..b661ff574419f18d1d185539c0c2e429f0f59ad5 GIT binary patch literal 73701 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ƣ(d@L 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 literal 0 HcmV?d00001 From a771c3b9a66efefa6c269cff930a623345e3e559 Mon Sep 17 00:00:00 2001 From: jshiwam <41477104+jshiwam@users.noreply.github.com> Date: Tue, 26 Jul 2022 09:59:31 +0530 Subject: [PATCH 22/42] docs: added documentation for query-service local setup (#1426) * docs: added documentation for query-service local setup * fix: updated clickhouse setup link * Use Env Var for the alertmanager endpoint --- CONTRIBUTING.md | 2 +- pkg/query-service/README.md | 55 +++++++++++++++++++++++++++++++++++-- 2 files changed, 53 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 80e07b7522..686bcdba58 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -215,7 +215,7 @@ Please ping us in the [`#contributing`](https://signoz-community.slack.com/archi # 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) +[**https://github.com/SigNoz/signoz/tree/develop/pkg/query-service**](https://github.com/SigNoz/signoz/tree/develop/pkg/query-service) ## 4.1 To run ClickHouse setup (recommended for local development) diff --git a/pkg/query-service/README.md b/pkg/query-service/README.md index bac8851855..10a7f78fbc 100644 --- a/pkg/query-service/README.md +++ b/pkg/query-service/README.md @@ -6,8 +6,37 @@ Query service is the interface between frontend and databases. It is written in - parse response from databases and handle error if any - clickhouse response in the format accepted by Frontend +# Complete the clickhouse setup locally. +https://github.com/SigNoz/signoz/blob/main/CONTRIBUTING.md#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` +- Change the alertmanager section in `signoz/deploy/docker/clickhouse-setup/docker-compose.yaml` as follows: +```console +alertmanager: + image: signoz/alertmanager:0.23.0-0.1 + volumes: + - ./data/alertmanager:/data + expose: + - "9093" + ports: + - "8080:9093" + # depends_on: + # query-service: + # condition: service_healthy + restart: on-failure + command: + - --queryService.url=http://172.17.0.1:8085 + - --storage.path=/data +``` +- Run the following: +```console +cd signoz/ +If you are using x86_64 processors (All Intel/AMD processors) run sudo make run-x86 +If you are on arm64 processors (Apple M1 Macs) run sudo make run-arm +``` + +#### Backend Configuration -#### Configuration - Open ./constants/constants.go - Replace ```const RELATIONAL_DATASOURCE_PATH = "/var/lib/signoz/signoz.db"``` \ with ```const RELATIONAL_DATASOURCE_PATH = "./signoz.db".``` @@ -15,8 +44,9 @@ Query service is the interface between frontend and databases. It is written in - Query Service needs below `env` variables to run: ``` - ClickHouseUrl=tcp://localhost:9001 - STORAGE=clickhouse + export ClickHouseUrl=tcp://localhost:9001 + export STORAGE=clickhouse + export ALERTMANAGER_API_PREFIX=http://localhost:9093/api/ ``` @@ -28,5 +58,24 @@ go build -o build/query-service main.go ClickHouseUrl=tcp://localhost:9001 STORAGE=clickhouse build/query-service ``` +# Frontend Configuration for local query-service. + +- Set the following environment variables +```console +export FRONTEND_API_ENDPOINT=http://localhost:8080 +``` + +- Run the following +```console +cd signoz\frontend\ +yarn install +yarn dev +``` + +## Note: +If you use go version 1.18 for development and contributions, then please checkout the following issue. +https://github.com/SigNoz/signoz/issues/1371 + + #### Docker Images The docker images of query-service is available at https://hub.docker.com/r/signoz/query-service From f8f903848e914d529617c6e10c69b3644f8d4c30 Mon Sep 17 00:00:00 2001 From: Prashant Shahi Date: Wed, 27 Jul 2022 11:53:10 +0530 Subject: [PATCH 23/42] =?UTF-8?q?fix:=20=F0=9F=9A=80=20disables=20TTL=20mo?= =?UTF-8?q?ves=20on=20insert=20and=20only=20run=20in=20background=20(#1448?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Prashant Shahi --- deploy/docker-swarm/clickhouse-setup/clickhouse-storage.xml | 1 + deploy/docker/clickhouse-setup/clickhouse-storage.xml | 1 + pkg/query-service/tests/test-deploy/clickhouse-storage.xml | 1 + 3 files changed, 3 insertions(+) diff --git a/deploy/docker-swarm/clickhouse-setup/clickhouse-storage.xml b/deploy/docker-swarm/clickhouse-setup/clickhouse-storage.xml index aab0c15da7..2b2f4010ac 100644 --- a/deploy/docker-swarm/clickhouse-setup/clickhouse-storage.xml +++ b/deploy/docker-swarm/clickhouse-setup/clickhouse-storage.xml @@ -20,6 +20,7 @@ s3 + 0 diff --git a/deploy/docker/clickhouse-setup/clickhouse-storage.xml b/deploy/docker/clickhouse-setup/clickhouse-storage.xml index aab0c15da7..2b2f4010ac 100644 --- a/deploy/docker/clickhouse-setup/clickhouse-storage.xml +++ b/deploy/docker/clickhouse-setup/clickhouse-storage.xml @@ -20,6 +20,7 @@ s3 + 0 diff --git a/pkg/query-service/tests/test-deploy/clickhouse-storage.xml b/pkg/query-service/tests/test-deploy/clickhouse-storage.xml index eaf1e7e99d..f444bf43b4 100644 --- a/pkg/query-service/tests/test-deploy/clickhouse-storage.xml +++ b/pkg/query-service/tests/test-deploy/clickhouse-storage.xml @@ -20,6 +20,7 @@ s3 + 0 From 0378dfd12fb961109dfe802588a1d4ef8de907c9 Mon Sep 17 00:00:00 2001 From: Srikanth Chekuri Date: Wed, 27 Jul 2022 14:40:45 +0530 Subject: [PATCH 24/42] chore: bump json-iterator version to v1.1.12 --- pkg/query-service/go.mod | 4 ++-- pkg/query-service/go.sum | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/query-service/go.mod b/pkg/query-service/go.mod index 1d5dfa8e8d..34ddceace9 100644 --- a/pkg/query-service/go.mod +++ b/pkg/query-service/go.mod @@ -11,7 +11,7 @@ require ( github.com/gorilla/mux v1.8.0 github.com/gosimple/slug v1.10.0 github.com/jmoiron/sqlx v1.3.4 - github.com/json-iterator/go v1.1.10 + github.com/json-iterator/go v1.1.12 github.com/mattn/go-sqlite3 v1.14.8 github.com/minio/minio-go/v6 v6.0.57 github.com/oklog/oklog v0.3.2 @@ -92,7 +92,7 @@ require ( github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223 // indirect github.com/oklog/run v1.1.0 // indirect github.com/oklog/ulid v0.3.1-0.20170117200651-66bb6560562f // indirect diff --git a/pkg/query-service/go.sum b/pkg/query-service/go.sum index d69fb82481..4fbb2b1c25 100644 --- a/pkg/query-service/go.sum +++ b/pkg/query-service/go.sum @@ -295,6 +295,8 @@ github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBv github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= @@ -343,6 +345,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223 h1:F9x/1yl3T2AeKLr2AMdilSD8+f9bvMnNN8VS5iDtovc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/oklog v0.2.3-0.20170918173356-f857583a70c3/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= From e39d2f799d14b495596dade12cf40b15e453b08f Mon Sep 17 00:00:00 2001 From: jshiwam <41477104+jshiwam@users.noreply.github.com> Date: Thu, 28 Jul 2022 10:14:27 +0530 Subject: [PATCH 25/42] Used Prepared Statements for GetChannel in clickhousereader (#1414) * feat: used db.Preparex --- pkg/query-service/app/clickhouseReader/reader.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pkg/query-service/app/clickhouseReader/reader.go b/pkg/query-service/app/clickhouseReader/reader.go index 6716373c8b..a1f86c7413 100644 --- a/pkg/query-service/app/clickhouseReader/reader.go +++ b/pkg/query-service/app/clickhouseReader/reader.go @@ -374,14 +374,21 @@ func (r *ClickHouseReader) GetChannel(id string) (*model.ChannelItem, *model.Api idInt, _ := strconv.Atoi(id) channel := model.ChannelItem{} - query := fmt.Sprintf("SELECT id, created_at, updated_at, name, type, data data FROM notification_channels WHERE id=%d", idInt) + query := "SELECT id, created_at, updated_at, name, type, data data FROM notification_channels WHERE id=? " - err := r.localDB.Get(&channel, query) + stmt, err := r.localDB.Preparex(query) - zap.S().Info(query) + zap.S().Info(query, idInt) if err != nil { - zap.S().Debug("Error in processing sql query: ", err) + zap.S().Debug("Error in preparing sql query for GetChannel : ", err) + return nil, &model.ApiError{Typ: model.ErrorInternal, Err: err} + } + + err = stmt.Get(&channel, idInt) + + if err != nil { + zap.S().Debug(fmt.Sprintf("Error in getting channel with id=%d : ", idInt), err) return nil, &model.ApiError{Typ: model.ErrorInternal, Err: err} } From 22b857249547366c12272cecaa7914d567971195 Mon Sep 17 00:00:00 2001 From: Prashant Shahi Date: Thu, 28 Jul 2022 14:05:35 +0530 Subject: [PATCH 26/42] =?UTF-8?q?feat(swarm):=20=F0=9F=9A=80=20scraping=20?= =?UTF-8?q?multiple=20otel-collector=20(#1438)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Prashant Shahi --- .../otel-collector-metrics-config.yaml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/deploy/docker-swarm/clickhouse-setup/otel-collector-metrics-config.yaml b/deploy/docker-swarm/clickhouse-setup/otel-collector-metrics-config.yaml index a01f356437..ecaee5977a 100644 --- a/deploy/docker-swarm/clickhouse-setup/otel-collector-metrics-config.yaml +++ b/deploy/docker-swarm/clickhouse-setup/otel-collector-metrics-config.yaml @@ -5,9 +5,11 @@ receivers: # otel-collector internal metrics - job_name: "otel-collector" scrape_interval: 60s - static_configs: - - targets: - - otel-collector:8888 + dns_sd_configs: + - names: + - 'tasks.otel-collector' + type: 'A' + port: 8888 # otel-collector-metrics internal metrics - job_name: "otel-collector-metrics" scrape_interval: 60s @@ -17,9 +19,11 @@ receivers: # SigNoz span metrics - job_name: "signozspanmetrics-collector" scrape_interval: 60s - static_configs: - - targets: - - otel-collector:8889 + dns_sd_configs: + - names: + - 'tasks.otel-collector' + type: 'A' + port: 8889 processors: batch: From 56a204756047b9b9caa40a7e43ffd0686b0dcd9b Mon Sep 17 00:00:00 2001 From: Amol Umbark Date: Sun, 31 Jul 2022 09:54:58 +0530 Subject: [PATCH 27/42] fix: remove 'default channel' note from channels page (#1446) --- frontend/public/locales/en-GB/channels.json | 10 ++++++++++ frontend/public/locales/en/channels.json | 10 ++++++++++ .../container/AllAlertChannels/AlertChannels.tsx | 10 ++++++---- .../src/container/AllAlertChannels/Delete.tsx | 14 +++++++++----- .../src/container/AllAlertChannels/index.tsx | 16 +++++++++------- .../src/container/AllAlertChannels/styles.ts | 7 +++++++ 6 files changed, 51 insertions(+), 16 deletions(-) diff --git a/frontend/public/locales/en-GB/channels.json b/frontend/public/locales/en-GB/channels.json index 5e670cc536..027501f69d 100644 --- a/frontend/public/locales/en-GB/channels.json +++ b/frontend/public/locales/en-GB/channels.json @@ -1,4 +1,14 @@ { + "channel_delete_unexp_error": "Something went wrong", + "channel_delete_success": "Channel Deleted Successfully", + "column_channel_name": "Name", + "column_channel_type": "Type", + "column_channel_action": "Action", + "column_channel_edit": "Edit", + "button_new_channel": "New Alert Channel", + "tooltip_notification_channels": "More details on how to setting notification channels", + "sending_channels_note": "The alerts will be sent to all the configured channels.", + "loading_channels_message": "Loading Channels..", "page_title_create": "New Notification Channels", "page_title_edit": "Edit Notification Channels", "button_save_channel": "Save", diff --git a/frontend/public/locales/en/channels.json b/frontend/public/locales/en/channels.json index 5e670cc536..027501f69d 100644 --- a/frontend/public/locales/en/channels.json +++ b/frontend/public/locales/en/channels.json @@ -1,4 +1,14 @@ { + "channel_delete_unexp_error": "Something went wrong", + "channel_delete_success": "Channel Deleted Successfully", + "column_channel_name": "Name", + "column_channel_type": "Type", + "column_channel_action": "Action", + "column_channel_edit": "Edit", + "button_new_channel": "New Alert Channel", + "tooltip_notification_channels": "More details on how to setting notification channels", + "sending_channels_note": "The alerts will be sent to all the configured channels.", + "loading_channels_message": "Loading Channels..", "page_title_create": "New Notification Channels", "page_title_edit": "Edit Notification Channels", "button_save_channel": "Save", diff --git a/frontend/src/container/AllAlertChannels/AlertChannels.tsx b/frontend/src/container/AllAlertChannels/AlertChannels.tsx index 974530c6e5..762304a871 100644 --- a/frontend/src/container/AllAlertChannels/AlertChannels.tsx +++ b/frontend/src/container/AllAlertChannels/AlertChannels.tsx @@ -5,6 +5,7 @@ import ROUTES from 'constants/routes'; import useComponentPermission from 'hooks/useComponentPermission'; import history from 'lib/history'; import React, { useCallback, useState } from 'react'; +import { useTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import { generatePath } from 'react-router-dom'; import { AppState } from 'store/reducers'; @@ -14,6 +15,7 @@ import AppReducer from 'types/reducer/app'; import Delete from './Delete'; function AlertChannels({ allChannels }: AlertChannelsProps): JSX.Element { + const { t } = useTranslation(['channels']); const [notifications, Element] = notification.useNotification(); const [channels, setChannels] = useState(allChannels); const { role } = useSelector((state) => state.app); @@ -29,12 +31,12 @@ function AlertChannels({ allChannels }: AlertChannelsProps): JSX.Element { const columns: ColumnsType = [ { - title: 'Name', + title: t('column_channel_name'), dataIndex: 'name', key: 'name', }, { - title: 'Type', + title: t('column_channel_type'), dataIndex: 'type', key: 'type', }, @@ -42,14 +44,14 @@ function AlertChannels({ allChannels }: AlertChannelsProps): JSX.Element { if (action) { columns.push({ - title: 'Action', + title: t('column_channel_action'), dataIndex: 'id', key: 'action', align: 'center', render: (id: string): JSX.Element => ( <> diff --git a/frontend/src/container/AllAlertChannels/Delete.tsx b/frontend/src/container/AllAlertChannels/Delete.tsx index 85116fd922..75555e199c 100644 --- a/frontend/src/container/AllAlertChannels/Delete.tsx +++ b/frontend/src/container/AllAlertChannels/Delete.tsx @@ -1,29 +1,31 @@ import { Button } from 'antd'; import { NotificationInstance } from 'antd/lib/notification'; -import deleteAlert from 'api/channels/delete'; +import deleteChannel from 'api/channels/delete'; import React, { useState } from 'react'; +import { useTranslation } from 'react-i18next'; import { Channels } from 'types/api/channels/getAll'; function Delete({ notifications, setChannels, id }: DeleteProps): JSX.Element { + const { t } = useTranslation(['channels']); const [loading, setLoading] = useState(false); const onClickHandler = async (): Promise => { try { setLoading(true); - const response = await deleteAlert({ + const response = await deleteChannel({ id, }); if (response.statusCode === 200) { notifications.success({ message: 'Success', - description: 'Channel Deleted Successfully', + description: t('channel_delete_success'), }); setChannels((preChannels) => preChannels.filter((e) => e.id !== id)); } else { notifications.error({ message: 'Error', - description: response.error || 'Something went wrong', + description: response.error || t('channel_delete_unexp_error'), }); } setLoading(false); @@ -31,7 +33,9 @@ function Delete({ notifications, setChannels, id }: DeleteProps): JSX.Element { notifications.error({ message: 'Error', description: - error instanceof Error ? error.toString() : 'Something went wrong', + error instanceof Error + ? error.toString() + : t('channel_delete_unexp_error'), }); setLoading(false); } diff --git a/frontend/src/container/AllAlertChannels/index.tsx b/frontend/src/container/AllAlertChannels/index.tsx index 44ab948f0b..99636806ea 100644 --- a/frontend/src/container/AllAlertChannels/index.tsx +++ b/frontend/src/container/AllAlertChannels/index.tsx @@ -8,16 +8,18 @@ import useComponentPermission from 'hooks/useComponentPermission'; import useFetch from 'hooks/useFetch'; import history from 'lib/history'; import React, { useCallback } from 'react'; +import { useTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import { AppState } from 'store/reducers'; import AppReducer from 'types/reducer/app'; import AlertChannelsComponent from './AlertChannels'; -import { Button, ButtonContainer } from './styles'; +import { Button, ButtonContainer, RightActionContainer } from './styles'; const { Paragraph } = Typography; function AlertChannels(): JSX.Element { + const { t } = useTranslation(['channels']); const { role } = useSelector((state) => state.app); const [addNewChannelPermission] = useComponentPermission( ['add_new_channel'], @@ -34,28 +36,28 @@ function AlertChannels(): JSX.Element { } if (loading || payload === undefined) { - return ; + return ; } return ( <> - The latest added channel is used as the default channel for sending alerts + {t('sending_channels_note')} -

+ diff --git a/frontend/src/container/AllAlertChannels/styles.ts b/frontend/src/container/AllAlertChannels/styles.ts index b2d03a4cea..209860b867 100644 --- a/frontend/src/container/AllAlertChannels/styles.ts +++ b/frontend/src/container/AllAlertChannels/styles.ts @@ -1,6 +1,13 @@ import { Button as ButtonComponent } from 'antd'; import styled from 'styled-components'; +export const RightActionContainer = styled.div` + &&& { + display: flex; + align-items: center; + } +`; + export const ButtonContainer = styled.div` &&& { display: flex; From 7881aee3501c5081f020e61badd7c1607fc9946f Mon Sep 17 00:00:00 2001 From: Amol Umbark Date: Tue, 2 Aug 2022 09:54:24 +0530 Subject: [PATCH 28/42] feat: added user preferred channel filters in alerts (#1458) * feat: added user preferred channel filters in alerts * fix: resolved minor translation issue --- frontend/public/locales/en-GB/alerts.json | 3 + frontend/public/locales/en/alerts.json | 3 + .../container/FormAlertRules/BasicInfo.tsx | 19 ++++- .../FormAlertRules/ChannelSelect/index.tsx | 70 +++++++++++++++++++ .../FormAlertRules/ChannelSelect/styles.ts | 6 ++ .../container/FormAlertRules/labels/styles.ts | 3 +- .../src/container/FormAlertRules/styles.ts | 23 +++++- frontend/src/types/api/alerts/def.ts | 1 + 8 files changed, 122 insertions(+), 6 deletions(-) create mode 100644 frontend/src/container/FormAlertRules/ChannelSelect/index.tsx create mode 100644 frontend/src/container/FormAlertRules/ChannelSelect/styles.ts diff --git a/frontend/public/locales/en-GB/alerts.json b/frontend/public/locales/en-GB/alerts.json index e67bd35273..f421c78bc1 100644 --- a/frontend/public/locales/en-GB/alerts.json +++ b/frontend/public/locales/en-GB/alerts.json @@ -1,4 +1,7 @@ { + "label_channel_select": "Notification Channels", + "placeholder_channel_select": "select one or more channels", + "channel_select_tooltip": "Leave empty to send this alert on all the configured channels", "preview_chart_unexpected_error": "An unexpeced error occurred updating the chart, please check your query.", "preview_chart_threshold_label": "Threshold", "placeholder_label_key_pair": "Click here to enter a label (key value pairs)", diff --git a/frontend/public/locales/en/alerts.json b/frontend/public/locales/en/alerts.json index e67bd35273..f421c78bc1 100644 --- a/frontend/public/locales/en/alerts.json +++ b/frontend/public/locales/en/alerts.json @@ -1,4 +1,7 @@ { + "label_channel_select": "Notification Channels", + "placeholder_channel_select": "select one or more channels", + "channel_select_tooltip": "Leave empty to send this alert on all the configured channels", "preview_chart_unexpected_error": "An unexpeced error occurred updating the chart, please check your query.", "preview_chart_threshold_label": "Threshold", "placeholder_label_key_pair": "Click here to enter a label (key value pairs)", diff --git a/frontend/src/container/FormAlertRules/BasicInfo.tsx b/frontend/src/container/FormAlertRules/BasicInfo.tsx index c977c82a4e..6bfbfffd03 100644 --- a/frontend/src/container/FormAlertRules/BasicInfo.tsx +++ b/frontend/src/container/FormAlertRules/BasicInfo.tsx @@ -4,9 +4,12 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; import { AlertDef, Labels } from 'types/api/alerts/def'; +import ChannelSelect from './ChannelSelect'; import LabelSelect from './labels'; import { + ChannelSelectTip, FormContainer, + FormItemMedium, InputSmall, SeveritySelect, StepHeading, @@ -80,7 +83,7 @@ function BasicInfo({ alertDef, setAlertDef }: BasicInfoProps): JSX.Element { }} /> - + { setAlertDef({ @@ -92,7 +95,19 @@ function BasicInfo({ alertDef, setAlertDef }: BasicInfoProps): JSX.Element { }} initialValues={alertDef.labels} /> - + + + { + setAlertDef({ + ...alertDef, + preferredChannels: s, + }); + }} + /> + {t('channel_select_tooltip')} + ); diff --git a/frontend/src/container/FormAlertRules/ChannelSelect/index.tsx b/frontend/src/container/FormAlertRules/ChannelSelect/index.tsx new file mode 100644 index 0000000000..99c3038a42 --- /dev/null +++ b/frontend/src/container/FormAlertRules/ChannelSelect/index.tsx @@ -0,0 +1,70 @@ +import { notification, Select } from 'antd'; +import getChannels from 'api/channels/getAll'; +import useFetch from 'hooks/useFetch'; +import React from 'react'; +import { useTranslation } from 'react-i18next'; + +import { StyledSelect } from './styles'; + +export interface ChannelSelectProps { + currentValue?: string[]; + onSelectChannels: (s: string[]) => void; +} + +function ChannelSelect({ + currentValue, + onSelectChannels, +}: ChannelSelectProps): JSX.Element | null { + // init namespace for translations + const { t } = useTranslation('alerts'); + + const { loading, payload, error, errorMessage } = useFetch(getChannels); + + const handleChange = (value: string[]): void => { + onSelectChannels(value); + }; + + if (error && errorMessage !== '') { + notification.error({ + message: 'Error', + description: errorMessage, + }); + } + const renderOptions = (): React.ReactNode[] => { + const children: React.ReactNode[] = []; + + if (loading || payload === undefined || payload.length === 0) { + return children; + } + + payload.forEach((o) => { + children.push( + + {o.name} + , + ); + }); + + return children; + }; + return ( + { + handleChange(value as string[]); + }} + optionLabelProp="label" + > + {renderOptions()} + + ); +} + +ChannelSelect.defaultProps = { + currentValue: [], +}; +export default ChannelSelect; diff --git a/frontend/src/container/FormAlertRules/ChannelSelect/styles.ts b/frontend/src/container/FormAlertRules/ChannelSelect/styles.ts new file mode 100644 index 0000000000..7a59e38767 --- /dev/null +++ b/frontend/src/container/FormAlertRules/ChannelSelect/styles.ts @@ -0,0 +1,6 @@ +import { Select } from 'antd'; +import styled from 'styled-components'; + +export const StyledSelect = styled(Select)` + border-radius: 4px; +`; diff --git a/frontend/src/container/FormAlertRules/labels/styles.ts b/frontend/src/container/FormAlertRules/labels/styles.ts index 04d6871315..01210e3edc 100644 --- a/frontend/src/container/FormAlertRules/labels/styles.ts +++ b/frontend/src/container/FormAlertRules/labels/styles.ts @@ -8,8 +8,7 @@ interface SearchContainerProps { } export const SearchContainer = styled.div` - width: 70%; - border-radisu: 4px; + border-radius: 4px; background: ${({ isDarkMode }): string => (isDarkMode ? '#000' : '#fff')}; flex: 1; display: flex; diff --git a/frontend/src/container/FormAlertRules/styles.ts b/frontend/src/container/FormAlertRules/styles.ts index 4ec8dcafbd..c1a7ad2aa8 100644 --- a/frontend/src/container/FormAlertRules/styles.ts +++ b/frontend/src/container/FormAlertRules/styles.ts @@ -1,4 +1,15 @@ -import { Button, Card, Col, Form, Input, InputNumber, Row, Select } from 'antd'; +import { + Button, + Card, + Col, + Form, + Input, + InputNumber, + Row, + Select, + Typography, +} from 'antd'; +import FormItem from 'antd/lib/form/FormItem'; import TextArea from 'antd/lib/input/TextArea'; import styled from 'styled-components'; @@ -67,7 +78,7 @@ export const InlineSelect = styled(Select)` `; export const SeveritySelect = styled(Select)` - width: 15% !important; + width: 25% !important; `; export const InputSmall = styled(Input)` @@ -99,3 +110,11 @@ export const ThresholdInput = styled(InputNumber)` export const TextareaMedium = styled(TextArea)` width: 70%; `; + +export const FormItemMedium = styled(FormItem)` + width: 70%; +`; + +export const ChannelSelectTip = styled(Typography.Text)` + color: hsla(0, 0%, 100%, 0.3); +`; diff --git a/frontend/src/types/api/alerts/def.ts b/frontend/src/types/api/alerts/def.ts index 060bdc4d73..4154e9c7e3 100644 --- a/frontend/src/types/api/alerts/def.ts +++ b/frontend/src/types/api/alerts/def.ts @@ -18,6 +18,7 @@ export interface AlertDef { annotations?: Labels; evalWindow?: string; source?: string; + preferredChannels?: string[]; } export interface RuleCondition { From 68194d7e070aeedb28aa0d2c90b3a2c49b9f0242 Mon Sep 17 00:00:00 2001 From: Prashant Shahi Date: Tue, 2 Aug 2022 10:05:16 +0530 Subject: [PATCH 29/42] =?UTF-8?q?fix(query-service):=20=F0=9F=9A=80=20embe?= =?UTF-8?q?d=20copy=20of=20timezone=20data=20(#1462)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Prashant Shahi --- pkg/query-service/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/query-service/Dockerfile b/pkg/query-service/Dockerfile index 3689b2bf23..eec478aaef 100644 --- a/pkg/query-service/Dockerfile +++ b/pkg/query-service/Dockerfile @@ -20,7 +20,7 @@ RUN go mod download -x # Add the sources and proceed with build ADD . . -RUN go build -a -ldflags "-linkmode external -extldflags '-static' -s -w $LD_FLAGS" -o ./bin/query-service ./main.go +RUN go build -tags timetzdata -a -ldflags "-linkmode external -extldflags '-static' -s -w $LD_FLAGS" -o ./bin/query-service ./main.go RUN chmod +x ./bin/query-service From 7ff49ba47c2e795643310a7d7e04d82f0819a57c Mon Sep 17 00:00:00 2001 From: Amol Umbark Date: Wed, 3 Aug 2022 15:08:14 +0530 Subject: [PATCH 30/42] feat: added rule url to the title link in slack message (#1421) * feat: added rule url to the title link in slack message * fix: corrected duplication of code for generator url in rules engine * fix: removed unnecessary import in rules engine --- pkg/query-service/rules/alerting.go | 33 ++++++++++++++++++++++++ pkg/query-service/rules/promRule.go | 2 +- pkg/query-service/rules/templates.go | 3 +++ pkg/query-service/rules/thresholdRule.go | 14 +++++----- 4 files changed, 45 insertions(+), 7 deletions(-) diff --git a/pkg/query-service/rules/alerting.go b/pkg/query-service/rules/alerting.go index a4768b4036..66435baf36 100644 --- a/pkg/query-service/rules/alerting.go +++ b/pkg/query-service/rules/alerting.go @@ -2,12 +2,18 @@ package rules import ( "encoding/json" + "fmt" "github.com/pkg/errors" "go.signoz.io/query-service/model" "go.signoz.io/query-service/utils/labels" + "net/url" + "strings" "time" ) +// this file contains common structs and methods used by +// rule engine + // how long before re-sending the alert const resolvedRetention = 15 * time.Minute @@ -198,3 +204,30 @@ func (d *Duration) UnmarshalJSON(b []byte) error { return errors.New("invalid duration") } } + +// prepareRuleGeneratorURL creates an appropriate url +// for the rule. the URL is sent in slack messages as well as +// to other systems and allows backtracking to the rule definition +// from the third party systems. +func prepareRuleGeneratorURL(ruleId string, source string) string { + if source == "" { + return source + } + + // check if source is a valid url + _, err := url.Parse(source) + if err != nil { + return "" + } + // since we capture window.location when a new rule is created + // we end up with rulesource host:port/alerts/new. in this case + // we want to replace new with rule id parameter + + hasNew := strings.LastIndex(source, "new") + if hasNew > -1 { + ruleURL := fmt.Sprintf("%sedit?ruleId=%s", source[0:hasNew], ruleId) + return ruleURL + } + + return source +} diff --git a/pkg/query-service/rules/promRule.go b/pkg/query-service/rules/promRule.go index 669d6e3845..f2ceff1a1a 100644 --- a/pkg/query-service/rules/promRule.go +++ b/pkg/query-service/rules/promRule.go @@ -96,7 +96,7 @@ func (r *PromRule) Type() RuleType { } func (r *PromRule) GeneratorURL() string { - return r.source + return prepareRuleGeneratorURL(r.ID(), r.source) } func (r *PromRule) SetLastError(err error) { diff --git a/pkg/query-service/rules/templates.go b/pkg/query-service/rules/templates.go index 4789780ffc..3d9aa518d8 100644 --- a/pkg/query-service/rules/templates.go +++ b/pkg/query-service/rules/templates.go @@ -17,6 +17,9 @@ import ( "go.signoz.io/query-service/utils/times" ) +// this file contains all the methods and structs +// related to go templating in rule labels and annotations + type tmplQueryRecord struct { Labels map[string]string Value float64 diff --git a/pkg/query-service/rules/thresholdRule.go b/pkg/query-service/rules/thresholdRule.go index 8f734c113d..3358842051 100644 --- a/pkg/query-service/rules/thresholdRule.go +++ b/pkg/query-service/rules/thresholdRule.go @@ -63,9 +63,7 @@ func NewThresholdRule( return nil, fmt.Errorf("invalid rule condition") } - zap.S().Info("msg:", "creating new alerting rule", "\t name:", name, "\t condition:", ruleCondition.String()) - - return &ThresholdRule{ + thresholdRule := &ThresholdRule{ id: id, name: name, source: source, @@ -76,7 +74,11 @@ func NewThresholdRule( health: HealthUnknown, active: map[uint64]*Alert{}, - }, nil + } + + zap.S().Info("msg:", "creating new alerting rule", "\t name:", name, "\t condition:", ruleCondition.String(), "\t generatorURL:", thresholdRule.GeneratorURL()) + + return thresholdRule, nil } func (r *ThresholdRule) Name() string { @@ -92,7 +94,7 @@ func (r *ThresholdRule) Condition() *RuleCondition { } func (r *ThresholdRule) GeneratorURL() string { - return r.source + return prepareRuleGeneratorURL(r.ID(), r.source) } func (r *ThresholdRule) target() *float64 { @@ -231,9 +233,9 @@ func (r *ThresholdRule) GetEvaluationTimestamp() time.Time { // State returns the maximum state of alert instances for this rule. // StateFiring > StatePending > StateInactive func (r *ThresholdRule) State() AlertState { + r.mtx.Lock() defer r.mtx.Unlock() - maxState := StateInactive for _, a := range r.active { if a.State > maxState { From cca4db602cef8264248c8a6666b6b586fd73b910 Mon Sep 17 00:00:00 2001 From: Vishal Sharma Date: Wed, 3 Aug 2022 16:55:51 +0530 Subject: [PATCH 31/42] Remove query-service code owners (#1461) * Remove query-service code owners --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2781d2a0c6..6ea316135a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -4,4 +4,4 @@ * @ankitnayan /frontend/ @palashgdev @pranshuchittora /deploy/ @prashant-shahi -/pkg/query-service/ @srikanthccv @makeavish @nityanandagohain +/pkg/query-service/ @srikanthccv From a6ed6c03c11862543c7dc681b4b94fa8c960a950 Mon Sep 17 00:00:00 2001 From: Amol Umbark Date: Wed, 3 Aug 2022 19:40:20 +0530 Subject: [PATCH 32/42] Alerts/607 test notifications UI (#1469) * feat: added test alert feature * fix: solved the lint issues Co-authored-by: Palash Gupta --- frontend/public/locales/en-GB/alerts.json | 4 + frontend/public/locales/en/alerts.json | 4 + frontend/src/api/alerts/testAlert.ts | 26 +++ .../FormAlertRules/ChartPreview/index.tsx | 6 +- .../container/FormAlertRules/RuleOptions.tsx | 2 +- .../src/container/FormAlertRules/index.tsx | 195 ++++++++++++------ frontend/src/types/api/alerts/testAlert.ts | 10 + 7 files changed, 182 insertions(+), 65 deletions(-) create mode 100644 frontend/src/api/alerts/testAlert.ts create mode 100644 frontend/src/types/api/alerts/testAlert.ts diff --git a/frontend/public/locales/en-GB/alerts.json b/frontend/public/locales/en-GB/alerts.json index f421c78bc1..cae309fd45 100644 --- a/frontend/public/locales/en-GB/alerts.json +++ b/frontend/public/locales/en-GB/alerts.json @@ -1,4 +1,8 @@ { + "target_missing": "Please enter a threshold to proceed", + "rule_test_fired": "Test notification sent successfully", + "no_alerts_found": "No alerts found during the evaluation. This happens when rule condition is unsatisfied. You may adjust the rule threshold and retry.", + "button_testrule": "Test Notification", "label_channel_select": "Notification Channels", "placeholder_channel_select": "select one or more channels", "channel_select_tooltip": "Leave empty to send this alert on all the configured channels", diff --git a/frontend/public/locales/en/alerts.json b/frontend/public/locales/en/alerts.json index f421c78bc1..cae309fd45 100644 --- a/frontend/public/locales/en/alerts.json +++ b/frontend/public/locales/en/alerts.json @@ -1,4 +1,8 @@ { + "target_missing": "Please enter a threshold to proceed", + "rule_test_fired": "Test notification sent successfully", + "no_alerts_found": "No alerts found during the evaluation. This happens when rule condition is unsatisfied. You may adjust the rule threshold and retry.", + "button_testrule": "Test Notification", "label_channel_select": "Notification Channels", "placeholder_channel_select": "select one or more channels", "channel_select_tooltip": "Leave empty to send this alert on all the configured channels", diff --git a/frontend/src/api/alerts/testAlert.ts b/frontend/src/api/alerts/testAlert.ts new file mode 100644 index 0000000000..a30e977a10 --- /dev/null +++ b/frontend/src/api/alerts/testAlert.ts @@ -0,0 +1,26 @@ +import axios from 'api'; +import { ErrorResponseHandler } from 'api/ErrorResponseHandler'; +import { AxiosError } from 'axios'; +import { ErrorResponse, SuccessResponse } from 'types/api'; +import { PayloadProps, Props } from 'types/api/alerts/testAlert'; + +const testAlert = async ( + props: Props, +): Promise | ErrorResponse> => { + try { + const response = await axios.post('/testRule', { + ...props.data, + }); + + return { + statusCode: 200, + error: null, + message: response.data.status, + payload: response.data.data, + }; + } catch (error) { + return ErrorResponseHandler(error as AxiosError); + } +}; + +export default testAlert; diff --git a/frontend/src/container/FormAlertRules/ChartPreview/index.tsx b/frontend/src/container/FormAlertRules/ChartPreview/index.tsx index 88364fad1b..6243c1d4d4 100644 --- a/frontend/src/container/FormAlertRules/ChartPreview/index.tsx +++ b/frontend/src/container/FormAlertRules/ChartPreview/index.tsx @@ -21,7 +21,7 @@ export interface ChartPreviewProps { selectedTime?: timePreferenceType; selectedInterval?: Time; headline?: JSX.Element; - threshold?: number; + threshold?: number | undefined; } function ChartPreview({ @@ -35,7 +35,7 @@ function ChartPreview({ }: ChartPreviewProps): JSX.Element | null { const { t } = useTranslation('alerts'); const staticLine: StaticLineProps | undefined = - threshold && threshold > 0 + threshold !== undefined ? { yMin: threshold, yMax: threshold, @@ -117,7 +117,7 @@ ChartPreview.defaultProps = { selectedTime: 'GLOBAL_TIME', selectedInterval: '5min', headline: undefined, - threshold: 0, + threshold: undefined, }; export default ChartPreview; diff --git a/frontend/src/container/FormAlertRules/RuleOptions.tsx b/frontend/src/container/FormAlertRules/RuleOptions.tsx index d9aff8bfb1..8794f87b2c 100644 --- a/frontend/src/container/FormAlertRules/RuleOptions.tsx +++ b/frontend/src/container/FormAlertRules/RuleOptions.tsx @@ -156,7 +156,7 @@ function RuleOptions({ ...alertDef, condition: { ...alertDef.condition, - target: (value as number) || undefined, + target: value as number, }, }); }} diff --git a/frontend/src/container/FormAlertRules/index.tsx b/frontend/src/container/FormAlertRules/index.tsx index 8643eb4060..022e913f8e 100644 --- a/frontend/src/container/FormAlertRules/index.tsx +++ b/frontend/src/container/FormAlertRules/index.tsx @@ -1,6 +1,7 @@ import { ExclamationCircleOutlined, SaveOutlined } from '@ant-design/icons'; import { FormInstance, Modal, notification, Typography } from 'antd'; import saveAlertApi from 'api/alerts/save'; +import testAlertApi from 'api/alerts/testAlert'; import ROUTES from 'constants/routes'; import QueryTypeTag from 'container/NewWidget/LeftContainer/QueryTypeTag'; import PlotTag from 'container/NewWidget/LeftContainer/WidgetGraph/PlotTag'; @@ -143,10 +144,74 @@ function FormAlertRules({ }); } }; + const validatePromParams = useCallback((): boolean => { + let retval = true; + if (queryCategory !== EQueryType.PROM) return retval; + + if (!promQueries || Object.keys(promQueries).length === 0) { + notification.error({ + message: 'Error', + description: t('promql_required'), + }); + return false; + } + + Object.keys(promQueries).forEach((key) => { + if (promQueries[key].query === '') { + notification.error({ + message: 'Error', + description: t('promql_required'), + }); + retval = false; + } + }); + + return retval; + }, [t, promQueries, queryCategory]); + + const validateQBParams = useCallback((): boolean => { + let retval = true; + if (queryCategory !== EQueryType.QUERY_BUILDER) return true; + + if (!metricQueries || Object.keys(metricQueries).length === 0) { + notification.error({ + message: 'Error', + description: t('condition_required'), + }); + return false; + } + + if (!alertDef.condition?.target) { + notification.error({ + message: 'Error', + description: t('target_missing'), + }); + return false; + } + + Object.keys(metricQueries).forEach((key) => { + if (metricQueries[key].metricName === '') { + notification.error({ + message: 'Error', + description: t('metricname_missing', { where: metricQueries[key].name }), + }); + retval = false; + } + }); + + Object.keys(formulaQueries).forEach((key) => { + if (formulaQueries[key].expression === '') { + notification.error({ + message: 'Error', + description: t('expression_missing', formulaQueries[key].name), + }); + retval = false; + } + }); + return retval; + }, [t, alertDef, queryCategory, metricQueries, formulaQueries]); const isFormValid = useCallback((): boolean => { - let retval = true; - if (!alertDef.alert || alertDef.alert === '') { notification.error({ message: 'Error', @@ -155,57 +220,14 @@ function FormAlertRules({ return false; } - if ( - queryCategory === EQueryType.PROM && - (!promQueries || Object.keys(promQueries).length === 0) - ) { - notification.error({ - message: 'Error', - description: t('promql_required'), - }); + if (!validatePromParams()) { return false; } - if ( - (queryCategory === EQueryType.QUERY_BUILDER && !metricQueries) || - Object.keys(metricQueries).length === 0 - ) { - notification.error({ - message: 'Error', - description: t('condition_required'), - }); - return false; - } - - if (queryCategory === EQueryType.QUERY_BUILDER) { - Object.keys(metricQueries).forEach((key) => { - if (metricQueries[key].metricName === '') { - retval = false; - notification.error({ - message: 'Error', - description: t('metricname_missing', { where: metricQueries[key].name }), - }); - } - }); - Object.keys(formulaQueries).forEach((key) => { - if (formulaQueries[key].expression === '') { - retval = false; - notification.error({ - message: 'Error', - description: t('expression_missing', formulaQueries[key].name), - }); - } - }); - } - - return retval; - }, [t, alertDef, queryCategory, metricQueries, formulaQueries, promQueries]); - - const saveRule = useCallback(async () => { - if (!isFormValid()) { - return; - } + return validateQBParams(); + }, [t, validateQBParams, alertDef, validatePromParams]); + const preparePostData = (): AlertDef => { const postableAlert: AlertDef = { ...alertDef, source: window?.location.toString(), @@ -220,6 +242,22 @@ function FormAlertRules({ }, }, }; + return postableAlert; + }; + + const memoizedPreparePostData = useCallback(preparePostData, [ + queryCategory, + alertDef, + metricQueries, + formulaQueries, + promQueries, + ]); + + const saveRule = useCallback(async () => { + if (!isFormValid()) { + return; + } + const postableAlert = memoizedPreparePostData(); setLoading(true); try { @@ -250,24 +288,13 @@ function FormAlertRules({ }); } } catch (e) { - console.log('save alert api failed:', e); notification.error({ message: 'Error', description: t('unexpected_error'), }); } setLoading(false); - }, [ - t, - isFormValid, - queryCategory, - ruleId, - alertDef, - metricQueries, - formulaQueries, - promQueries, - ruleCache, - ]); + }, [t, isFormValid, ruleId, ruleCache, memoizedPreparePostData]); const onSaveHandler = useCallback(async () => { const content = ( @@ -288,6 +315,44 @@ function FormAlertRules({ }); }, [t, saveRule, queryCategory]); + const onTestRuleHandler = useCallback(async () => { + if (!isFormValid()) { + return; + } + const postableAlert = memoizedPreparePostData(); + + setLoading(true); + try { + const response = await testAlertApi({ data: postableAlert }); + + if (response.statusCode === 200) { + const { payload } = response; + if (payload?.alertCount === 0) { + notification.error({ + message: 'Error', + description: t('no_alerts_found'), + }); + } else { + notification.success({ + message: 'Success', + description: t('rule_test_fired'), + }); + } + } else { + notification.error({ + message: 'Error', + description: response.error || t('unexpected_error'), + }); + } + } catch (e) { + notification.error({ + message: 'Error', + description: t('unexpected_error'), + }); + } + setLoading(false); + }, [t, isFormValid, memoizedPreparePostData]); + const renderBasicInfo = (): JSX.Element => ( ); @@ -354,6 +419,14 @@ function FormAlertRules({ > {ruleId > 0 ? t('button_savechanges') : t('button_createrule')} + + {' '} + {t('button_testrule')} + Date: Thu, 4 Aug 2022 11:55:09 +0530 Subject: [PATCH 33/42] feat: disable alerts feature (UI) (#1445) * feat: added enable disable feature for rules * fix: resolved type issue in getTriggered Co-authored-by: Palash Gupta --- frontend/src/api/alerts/patch.ts | 26 +++++ .../container/ListAlertRules/DeleteAlert.tsx | 13 ++- .../container/ListAlertRules/ListAlert.tsx | 49 +++++--- .../ListAlertRules/TableComponents/Status.tsx | 10 +- .../ListAlertRules/ToggleAlertState.tsx | 108 ++++++++++++++++++ .../src/container/ListAlertRules/styles.ts | 18 ++- .../src/container/TriggeredAlerts/Filter.tsx | 2 +- .../FilteredTable/ExapandableRow.tsx | 2 +- .../FilteredTable/TableRow.tsx | 2 +- .../TriggeredAlerts/FilteredTable/index.tsx | 2 +- .../TriggeredAlerts/NoFilterTable.tsx | 2 +- .../TriggeredAlerts/TriggeredAlert.tsx | 2 +- .../src/container/TriggeredAlerts/utils.ts | 2 +- frontend/src/types/api/alerts/def.ts | 1 + frontend/src/types/api/alerts/delete.ts | 4 +- frontend/src/types/api/alerts/get.ts | 9 +- frontend/src/types/api/alerts/getAll.ts | 33 +----- frontend/src/types/api/alerts/getGroups.ts | 6 +- frontend/src/types/api/alerts/getTriggered.ts | 31 ++++- frontend/src/types/api/alerts/patch.ts | 12 ++ 20 files changed, 261 insertions(+), 73 deletions(-) create mode 100644 frontend/src/api/alerts/patch.ts create mode 100644 frontend/src/container/ListAlertRules/ToggleAlertState.tsx create mode 100644 frontend/src/types/api/alerts/patch.ts diff --git a/frontend/src/api/alerts/patch.ts b/frontend/src/api/alerts/patch.ts new file mode 100644 index 0000000000..920b53ae9f --- /dev/null +++ b/frontend/src/api/alerts/patch.ts @@ -0,0 +1,26 @@ +import axios from 'api'; +import { ErrorResponseHandler } from 'api/ErrorResponseHandler'; +import { AxiosError } from 'axios'; +import { ErrorResponse, SuccessResponse } from 'types/api'; +import { PayloadProps, Props } from 'types/api/alerts/patch'; + +const patch = async ( + props: Props, +): Promise | ErrorResponse> => { + try { + const response = await axios.patch(`/rules/${props.id}`, { + ...props.data, + }); + + return { + statusCode: 200, + error: null, + message: response.data.status, + payload: response.data.data, + }; + } catch (error) { + return ErrorResponseHandler(error as AxiosError); + } +}; + +export default patch; diff --git a/frontend/src/container/ListAlertRules/DeleteAlert.tsx b/frontend/src/container/ListAlertRules/DeleteAlert.tsx index f479de38ab..ac91bfe2f2 100644 --- a/frontend/src/container/ListAlertRules/DeleteAlert.tsx +++ b/frontend/src/container/ListAlertRules/DeleteAlert.tsx @@ -1,10 +1,11 @@ -import { Button } from 'antd'; import { NotificationInstance } from 'antd/lib/notification/index'; import deleteAlerts from 'api/alerts/delete'; import { State } from 'hooks/useFetch'; import React, { useState } from 'react'; import { PayloadProps as DeleteAlertPayloadProps } from 'types/api/alerts/delete'; -import { Alerts } from 'types/api/alerts/getAll'; +import { GettableAlert } from 'types/api/alerts/get'; + +import { ColumnButton } from './styles'; function DeleteAlert({ id, @@ -72,20 +73,20 @@ function DeleteAlert({ }; return ( - + ); } interface DeleteAlertProps { - id: Alerts['id']; - setData: React.Dispatch>; + id: GettableAlert['id']; + setData: React.Dispatch>; notifications: NotificationInstance; } diff --git a/frontend/src/container/ListAlertRules/ListAlert.tsx b/frontend/src/container/ListAlertRules/ListAlert.tsx index 4df6290725..1981e8bfd8 100644 --- a/frontend/src/container/ListAlertRules/ListAlert.tsx +++ b/frontend/src/container/ListAlertRules/ListAlert.tsx @@ -1,6 +1,6 @@ /* eslint-disable react/display-name */ import { PlusOutlined } from '@ant-design/icons'; -import { notification, Tag, Typography } from 'antd'; +import { notification, Typography } from 'antd'; import Table, { ColumnsType } from 'antd/lib/table'; import TextToolTip from 'components/TextToolTip'; import ROUTES from 'constants/routes'; @@ -13,15 +13,16 @@ import { UseQueryResult } from 'react-query'; import { useSelector } from 'react-redux'; import { AppState } from 'store/reducers'; import { ErrorResponse, SuccessResponse } from 'types/api'; -import { Alerts } from 'types/api/alerts/getAll'; +import { GettableAlert } from 'types/api/alerts/get'; import AppReducer from 'types/reducer/app'; import DeleteAlert from './DeleteAlert'; -import { Button, ButtonContainer } from './styles'; +import { Button, ButtonContainer, ColumnButton, StyledTag } from './styles'; import Status from './TableComponents/Status'; +import ToggleAlertState from './ToggleAlertState'; function ListAlert({ allAlertRules, refetch }: ListAlertProps): JSX.Element { - const [data, setData] = useState(allAlertRules || []); + const [data, setData] = useState(allAlertRules || []); const { t } = useTranslation('common'); const { role } = useSelector((state) => state.app); const [addNewAlert, action] = useComponentPermission( @@ -53,22 +54,27 @@ function ListAlert({ allAlertRules, refetch }: ListAlertProps): JSX.Element { history.push(`${ROUTES.EDIT_ALERTS}?ruleId=${id}`); }; - const columns: ColumnsType = [ + const columns: ColumnsType = [ { title: 'Status', dataIndex: 'state', key: 'state', sorter: (a, b): number => - b.labels.severity.length - a.labels.severity.length, + (b.state ? b.state.charCodeAt(0) : 1000) - + (a.state ? a.state.charCodeAt(0) : 1000), render: (value): JSX.Element => , }, { title: 'Alert Name', dataIndex: 'alert', key: 'name', - sorter: (a, b): number => a.name.charCodeAt(0) - b.name.charCodeAt(0), + sorter: (a, b): number => + (a.alert ? a.alert.charCodeAt(0) : 1000) - + (b.alert ? b.alert.charCodeAt(0) : 1000), render: (value, record): JSX.Element => ( - onEditHandler(record.id.toString())}> + onEditHandler(record.id ? record.id.toString() : '')} + > {value} ), @@ -78,7 +84,8 @@ function ListAlert({ allAlertRules, refetch }: ListAlertProps): JSX.Element { dataIndex: 'labels', key: 'severity', sorter: (a, b): number => - a.labels.severity.length - b.labels.severity.length, + (a.labels ? a.labels.severity.length : 0) - + (b.labels ? b.labels.severity.length : 0), render: (value): JSX.Element => { const objectKeys = Object.keys(value); const withSeverityKey = objectKeys.find((e) => e === 'severity') || ''; @@ -92,6 +99,7 @@ function ListAlert({ allAlertRules, refetch }: ListAlertProps): JSX.Element { dataIndex: 'labels', key: 'tags', align: 'center', + width: 350, render: (value): JSX.Element => { const objectKeys = Object.keys(value); const withOutSeverityKeys = objectKeys.filter((e) => e !== 'severity'); @@ -104,9 +112,9 @@ function ListAlert({ allAlertRules, refetch }: ListAlertProps): JSX.Element { <> {withOutSeverityKeys.map((e) => { return ( - + {e}: {value[e]} - + ); })} @@ -120,14 +128,19 @@ function ListAlert({ allAlertRules, refetch }: ListAlertProps): JSX.Element { title: 'Action', dataIndex: 'id', key: 'action', - render: (id: Alerts['id']): JSX.Element => { + render: (id: GettableAlert['id'], record): JSX.Element => { return ( <> - + - + + + ); }, @@ -159,8 +172,10 @@ function ListAlert({ allAlertRules, refetch }: ListAlertProps): JSX.Element { } interface ListAlertProps { - allAlertRules: Alerts[]; - refetch: UseQueryResult>['refetch']; + allAlertRules: GettableAlert[]; + refetch: UseQueryResult< + ErrorResponse | SuccessResponse + >['refetch']; } export default ListAlert; diff --git a/frontend/src/container/ListAlertRules/TableComponents/Status.tsx b/frontend/src/container/ListAlertRules/TableComponents/Status.tsx index 33de5fb1db..d935b8d5ba 100644 --- a/frontend/src/container/ListAlertRules/TableComponents/Status.tsx +++ b/frontend/src/container/ListAlertRules/TableComponents/Status.tsx @@ -1,6 +1,6 @@ import { Tag } from 'antd'; import React from 'react'; -import { Alerts } from 'types/api/alerts/getAll'; +import { GettableAlert } from 'types/api/alerts/get'; function Status({ status }: StatusProps): JSX.Element { switch (status) { @@ -16,14 +16,18 @@ function Status({ status }: StatusProps): JSX.Element { return Firing; } + case 'disabled': { + return Disabled; + } + default: { - return Unknown Status; + return Unknown; } } } interface StatusProps { - status: Alerts['state']; + status: GettableAlert['state']; } export default Status; diff --git a/frontend/src/container/ListAlertRules/ToggleAlertState.tsx b/frontend/src/container/ListAlertRules/ToggleAlertState.tsx new file mode 100644 index 0000000000..9b367ea891 --- /dev/null +++ b/frontend/src/container/ListAlertRules/ToggleAlertState.tsx @@ -0,0 +1,108 @@ +import { notification } from 'antd'; +import patchAlert from 'api/alerts/patch'; +import { State } from 'hooks/useFetch'; +import React, { useState } from 'react'; +import { GettableAlert } from 'types/api/alerts/get'; +import { PayloadProps as PatchPayloadProps } from 'types/api/alerts/patch'; + +import { ColumnButton } from './styles'; + +function ToggleAlertState({ + id, + disabled, + setData, +}: ToggleAlertStateProps): JSX.Element { + const [apiStatus, setAPIStatus] = useState>({ + error: false, + errorMessage: '', + loading: false, + success: false, + payload: undefined, + }); + + const defaultErrorMessage = 'Something went wrong'; + + const onToggleHandler = async ( + id: number, + disabled: boolean, + ): Promise => { + try { + setAPIStatus((state) => ({ + ...state, + loading: true, + })); + + const response = await patchAlert({ + id, + data: { + disabled, + }, + }); + + if (response.statusCode === 200) { + setData((state) => { + return state.map((alert) => { + if (alert.id === id) { + return { + ...alert, + disabled: response.payload.disabled, + state: response.payload.state, + }; + } + return alert; + }); + }); + + setAPIStatus((state) => ({ + ...state, + loading: false, + payload: response.payload, + })); + notification.success({ + message: 'Success', + }); + } else { + setAPIStatus((state) => ({ + ...state, + loading: false, + error: true, + errorMessage: response.error || defaultErrorMessage, + })); + + notification.error({ + message: response.error || defaultErrorMessage, + }); + } + } catch (error) { + setAPIStatus((state) => ({ + ...state, + loading: false, + error: true, + errorMessage: defaultErrorMessage, + })); + + notification.error({ + message: defaultErrorMessage, + }); + } + }; + + return ( + => onToggleHandler(id, !disabled)} + type="link" + > + {disabled ? 'Enable' : 'Disable'} + + ); +} + +interface ToggleAlertStateProps { + id: GettableAlert['id']; + disabled: boolean; + setData: React.Dispatch>; +} + +export default ToggleAlertState; diff --git a/frontend/src/container/ListAlertRules/styles.ts b/frontend/src/container/ListAlertRules/styles.ts index fa993568fb..67748b21c0 100644 --- a/frontend/src/container/ListAlertRules/styles.ts +++ b/frontend/src/container/ListAlertRules/styles.ts @@ -1,4 +1,4 @@ -import { Button as ButtonComponent } from 'antd'; +import { Button as ButtonComponent, Tag } from 'antd'; import styled from 'styled-components'; export const ButtonContainer = styled.div` @@ -12,6 +12,20 @@ export const ButtonContainer = styled.div` export const Button = styled(ButtonComponent)` &&& { - margin-left: 1rem; + margin-left: 1em; + } +`; + +export const ColumnButton = styled(ButtonComponent)` + &&& { + padding-left: 0; + padding-right: 0; + margin-right: 1.5em; + } +`; + +export const StyledTag = styled(Tag)` + &&& { + white-space: normal; } `; diff --git a/frontend/src/container/TriggeredAlerts/Filter.tsx b/frontend/src/container/TriggeredAlerts/Filter.tsx index ae61fbc35a..601651cdff 100644 --- a/frontend/src/container/TriggeredAlerts/Filter.tsx +++ b/frontend/src/container/TriggeredAlerts/Filter.tsx @@ -2,7 +2,7 @@ import type { SelectProps } from 'antd'; import { Tag } from 'antd'; import React, { useCallback, useMemo } from 'react'; -import { Alerts } from 'types/api/alerts/getAll'; +import { Alerts } from 'types/api/alerts/getTriggered'; import { Container, Select } from './styles'; diff --git a/frontend/src/container/TriggeredAlerts/FilteredTable/ExapandableRow.tsx b/frontend/src/container/TriggeredAlerts/FilteredTable/ExapandableRow.tsx index fab66e242d..388e2d7499 100644 --- a/frontend/src/container/TriggeredAlerts/FilteredTable/ExapandableRow.tsx +++ b/frontend/src/container/TriggeredAlerts/FilteredTable/ExapandableRow.tsx @@ -2,7 +2,7 @@ import { Tag, Typography } from 'antd'; import convertDateToAmAndPm from 'lib/convertDateToAmAndPm'; import getFormattedDate from 'lib/getFormatedDate'; import React from 'react'; -import { Alerts } from 'types/api/alerts/getAll'; +import { Alerts } from 'types/api/alerts/getTriggered'; import Status from '../TableComponents/AlertStatus'; import { TableCell, TableRow } from './styles'; diff --git a/frontend/src/container/TriggeredAlerts/FilteredTable/TableRow.tsx b/frontend/src/container/TriggeredAlerts/FilteredTable/TableRow.tsx index 2f446adcf5..97619b5f12 100644 --- a/frontend/src/container/TriggeredAlerts/FilteredTable/TableRow.tsx +++ b/frontend/src/container/TriggeredAlerts/FilteredTable/TableRow.tsx @@ -1,7 +1,7 @@ import { MinusSquareOutlined, PlusSquareOutlined } from '@ant-design/icons'; import { Tag } from 'antd'; import React, { useState } from 'react'; -import { Alerts } from 'types/api/alerts/getAll'; +import { Alerts } from 'types/api/alerts/getTriggered'; import ExapandableRow from './ExapandableRow'; import { IconContainer, StatusContainer, TableCell, TableRow } from './styles'; diff --git a/frontend/src/container/TriggeredAlerts/FilteredTable/index.tsx b/frontend/src/container/TriggeredAlerts/FilteredTable/index.tsx index 8c8f47fdfd..a9e56d903d 100644 --- a/frontend/src/container/TriggeredAlerts/FilteredTable/index.tsx +++ b/frontend/src/container/TriggeredAlerts/FilteredTable/index.tsx @@ -1,6 +1,6 @@ import groupBy from 'lodash-es/groupBy'; import React, { useMemo } from 'react'; -import { Alerts } from 'types/api/alerts/getAll'; +import { Alerts } from 'types/api/alerts/getTriggered'; import { Value } from '../Filter'; import { FilterAlerts } from '../utils'; diff --git a/frontend/src/container/TriggeredAlerts/NoFilterTable.tsx b/frontend/src/container/TriggeredAlerts/NoFilterTable.tsx index a9c8064616..ac4e45131a 100644 --- a/frontend/src/container/TriggeredAlerts/NoFilterTable.tsx +++ b/frontend/src/container/TriggeredAlerts/NoFilterTable.tsx @@ -5,7 +5,7 @@ import AlertStatus from 'container/TriggeredAlerts/TableComponents/AlertStatus'; import convertDateToAmAndPm from 'lib/convertDateToAmAndPm'; import getFormattedDate from 'lib/getFormatedDate'; import React from 'react'; -import { Alerts } from 'types/api/alerts/getAll'; +import { Alerts } from 'types/api/alerts/getTriggered'; import { Value } from './Filter'; import { FilterAlerts } from './utils'; diff --git a/frontend/src/container/TriggeredAlerts/TriggeredAlert.tsx b/frontend/src/container/TriggeredAlerts/TriggeredAlert.tsx index 425334e7ba..b12a09d5e4 100644 --- a/frontend/src/container/TriggeredAlerts/TriggeredAlert.tsx +++ b/frontend/src/container/TriggeredAlerts/TriggeredAlert.tsx @@ -1,7 +1,7 @@ import getTriggeredApi from 'api/alerts/getTriggered'; import useInterval from 'hooks/useInterval'; import React, { useState } from 'react'; -import { Alerts } from 'types/api/alerts/getAll'; +import { Alerts } from 'types/api/alerts/getTriggered'; import Filter, { Value } from './Filter'; import FilteredTable from './FilteredTable'; diff --git a/frontend/src/container/TriggeredAlerts/utils.ts b/frontend/src/container/TriggeredAlerts/utils.ts index aab179e1cf..67d3024d6a 100644 --- a/frontend/src/container/TriggeredAlerts/utils.ts +++ b/frontend/src/container/TriggeredAlerts/utils.ts @@ -1,4 +1,4 @@ -import { Alerts } from 'types/api/alerts/getAll'; +import { Alerts } from 'types/api/alerts/getTriggered'; import { Value } from './Filter'; diff --git a/frontend/src/types/api/alerts/def.ts b/frontend/src/types/api/alerts/def.ts index 4154e9c7e3..f417678ee1 100644 --- a/frontend/src/types/api/alerts/def.ts +++ b/frontend/src/types/api/alerts/def.ts @@ -18,6 +18,7 @@ export interface AlertDef { annotations?: Labels; evalWindow?: string; source?: string; + disabled?: boolean; preferredChannels?: string[]; } diff --git a/frontend/src/types/api/alerts/delete.ts b/frontend/src/types/api/alerts/delete.ts index 24dbdc1d8a..5c842ea34c 100644 --- a/frontend/src/types/api/alerts/delete.ts +++ b/frontend/src/types/api/alerts/delete.ts @@ -1,7 +1,7 @@ -import { Alerts } from './getAll'; +import { AlertDef } from './def'; export interface Props { - id: Alerts['id']; + id: AlertDef['id']; } export interface PayloadProps { diff --git a/frontend/src/types/api/alerts/get.ts b/frontend/src/types/api/alerts/get.ts index 69eef474e1..78b637c140 100644 --- a/frontend/src/types/api/alerts/get.ts +++ b/frontend/src/types/api/alerts/get.ts @@ -4,6 +4,13 @@ export interface Props { id: AlertDef['id']; } +export interface GettableAlert extends AlertDef { + id: number; + alert: string; + state: string; + disabled: boolean; +} + export type PayloadProps = { - data: AlertDef; + data: GettableAlert; }; diff --git a/frontend/src/types/api/alerts/getAll.ts b/frontend/src/types/api/alerts/getAll.ts index 501c34a4cb..58351ed703 100644 --- a/frontend/src/types/api/alerts/getAll.ts +++ b/frontend/src/types/api/alerts/getAll.ts @@ -1,32 +1,3 @@ -export interface Alerts { - labels: AlertsLabel; - annotations: { - description: string; - summary: string; - [key: string]: string; - }; - state: string; - name: string; - id: number; - endsAt: string; - fingerprint: string; - generatorURL: string; - receivers: Receivers[]; - startsAt: string; - status: { - inhibitedBy: []; - silencedBy: []; - state: string; - }; - updatedAt: string; -} +import { GettableAlert } from './get'; -interface Receivers { - name: string; -} - -interface AlertsLabel { - [key: string]: string; -} - -export type PayloadProps = Alerts[]; +export type PayloadProps = GettableAlert[]; diff --git a/frontend/src/types/api/alerts/getGroups.ts b/frontend/src/types/api/alerts/getGroups.ts index f7dac48a14..71979d116d 100644 --- a/frontend/src/types/api/alerts/getGroups.ts +++ b/frontend/src/types/api/alerts/getGroups.ts @@ -1,4 +1,4 @@ -import { Alerts } from './getAll'; +import { AlertDef } from './def'; export interface Props { silenced: boolean; @@ -7,8 +7,8 @@ export interface Props { [key: string]: string | boolean; } export interface Group { - alerts: Alerts[]; - label: Alerts['labels']; + alerts: AlertDef[]; + label: AlertDef['labels']; receiver: { [key: string]: string; }; diff --git a/frontend/src/types/api/alerts/getTriggered.ts b/frontend/src/types/api/alerts/getTriggered.ts index 8b0e50a279..97d116b431 100644 --- a/frontend/src/types/api/alerts/getTriggered.ts +++ b/frontend/src/types/api/alerts/getTriggered.ts @@ -1,4 +1,33 @@ -import { Alerts } from './getAll'; +export interface Alerts { + labels: AlertsLabel; + annotations: { + description: string; + summary: string; + [key: string]: string; + }; + state: string; + name: string; + id: number; + endsAt: string; + fingerprint: string; + generatorURL: string; + receivers: Receivers[]; + startsAt: string; + status: { + inhibitedBy: []; + silencedBy: []; + state: string; + }; + updatedAt: string; +} + +interface Receivers { + name: string; +} + +interface AlertsLabel { + [key: string]: string; +} export interface Props { silenced: boolean; diff --git a/frontend/src/types/api/alerts/patch.ts b/frontend/src/types/api/alerts/patch.ts new file mode 100644 index 0000000000..fab1e67cfe --- /dev/null +++ b/frontend/src/types/api/alerts/patch.ts @@ -0,0 +1,12 @@ +import { GettableAlert } from './get'; + +export type PayloadProps = GettableAlert; + +export interface PatchProps { + disabled?: boolean; +} + +export interface Props { + id?: number; + data: PatchProps; +} From 8146da52afb15ac400705650ae291ae593b9249e Mon Sep 17 00:00:00 2001 From: Amol Umbark Date: Thu, 4 Aug 2022 11:55:54 +0530 Subject: [PATCH 34/42] feat: Disable Alerts Feature (Backend) (#1443) * feat: added patch rule api * feat: added backend api for patching rule status * fix: improved patchRule and also editRule Co-authored-by: Srikanth Chekuri --- pkg/query-service/app/http_handler.go | 23 ++++ pkg/query-service/app/server.go | 4 +- pkg/query-service/rules/alerting.go | 3 + pkg/query-service/rules/apiParams.go | 35 +++--- pkg/query-service/rules/manager.go | 154 +++++++++++++++++++++----- 5 files changed, 172 insertions(+), 47 deletions(-) diff --git a/pkg/query-service/app/http_handler.go b/pkg/query-service/app/http_handler.go index 5d7b8cce5c..c01d504e4a 100644 --- a/pkg/query-service/app/http_handler.go +++ b/pkg/query-service/app/http_handler.go @@ -309,6 +309,7 @@ func (aH *APIHandler) RegisterRoutes(router *mux.Router) { router.HandleFunc("/api/v1/rules", EditAccess(aH.createRule)).Methods(http.MethodPost) router.HandleFunc("/api/v1/rules/{id}", EditAccess(aH.editRule)).Methods(http.MethodPut) router.HandleFunc("/api/v1/rules/{id}", EditAccess(aH.deleteRule)).Methods(http.MethodDelete) + router.HandleFunc("/api/v1/rules/{id}", EditAccess(aH.patchRule)).Methods(http.MethodPatch) router.HandleFunc("/api/v1/dashboards", ViewAccess(aH.getDashboards)).Methods(http.MethodGet) router.HandleFunc("/api/v1/dashboards", EditAccess(aH.createDashboards)).Methods(http.MethodPost) @@ -784,6 +785,28 @@ func (aH *APIHandler) deleteRule(w http.ResponseWriter, r *http.Request) { } +// patchRule updates only requested changes in the rule +func (aH *APIHandler) patchRule(w http.ResponseWriter, r *http.Request) { + id := mux.Vars(r)["id"] + + defer r.Body.Close() + body, err := ioutil.ReadAll(r.Body) + if err != nil { + zap.S().Errorf("msg: error in getting req body of patch rule API\n", "\t error:", err) + respondError(w, &model.ApiError{Typ: model.ErrorBadData, Err: err}, nil) + return + } + + gettableRule, err := aH.ruleManager.PatchRule(string(body), id) + + if err != nil { + respondError(w, &model.ApiError{Typ: model.ErrorInternal, Err: err}, nil) + return + } + + aH.respond(w, gettableRule) +} + func (aH *APIHandler) editRule(w http.ResponseWriter, r *http.Request) { id := mux.Vars(r)["id"] diff --git a/pkg/query-service/app/server.go b/pkg/query-service/app/server.go index 1815e5c7f0..845b75e9c4 100644 --- a/pkg/query-service/app/server.go +++ b/pkg/query-service/app/server.go @@ -140,7 +140,7 @@ func (s *Server) createPrivateServer(api *APIHandler) (*http.Server, error) { //todo(amol): find out a way to add exact domain or // ip here for alert manager AllowedOrigins: []string{"*"}, - AllowedMethods: []string{"GET", "DELETE", "POST", "PUT"}, + AllowedMethods: []string{"GET", "DELETE", "POST", "PUT", "PATCH"}, AllowedHeaders: []string{"Accept", "Authorization", "Content-Type"}, }) @@ -165,7 +165,7 @@ func (s *Server) createPublicServer(api *APIHandler) (*http.Server, error) { c := cors.New(cors.Options{ AllowedOrigins: []string{"*"}, - AllowedMethods: []string{"GET", "DELETE", "POST", "PUT"}, + AllowedMethods: []string{"GET", "DELETE", "POST", "PUT", "PATCH"}, AllowedHeaders: []string{"Accept", "Authorization", "Content-Type"}, }) diff --git a/pkg/query-service/rules/alerting.go b/pkg/query-service/rules/alerting.go index 66435baf36..65ee1f60a9 100644 --- a/pkg/query-service/rules/alerting.go +++ b/pkg/query-service/rules/alerting.go @@ -47,6 +47,7 @@ const ( StateInactive AlertState = iota StatePending StateFiring + StateDisabled ) func (s AlertState) String() string { @@ -57,6 +58,8 @@ func (s AlertState) String() string { return "pending" case StateFiring: return "firing" + case StateDisabled: + return "disabled" } panic(errors.Errorf("unknown alert state: %d", s)) } diff --git a/pkg/query-service/rules/apiParams.go b/pkg/query-service/rules/apiParams.go index 6f3b466d11..346b515824 100644 --- a/pkg/query-service/rules/apiParams.go +++ b/pkg/query-service/rules/apiParams.go @@ -30,6 +30,8 @@ type PostableRule struct { Labels map[string]string `yaml:"labels,omitempty" json:"labels,omitempty"` Annotations map[string]string `yaml:"annotations,omitempty" json:"annotations,omitempty"` + Disabled bool `json:"disabled"` + // Source captures the source url where rule has been created Source string `json:"source,omitempty"` @@ -43,16 +45,23 @@ func ParsePostableRule(content []byte) (*PostableRule, []error) { } func parsePostableRule(content []byte, kind string) (*PostableRule, []error) { - rule := PostableRule{} + return parseIntoRule(PostableRule{}, content, kind) +} + +// parseIntoRule loads the content (data) into PostableRule and also +// validates the end result +func parseIntoRule(initRule PostableRule, content []byte, kind string) (*PostableRule, []error) { + + rule := &initRule var err error if kind == "json" { - if err = json.Unmarshal(content, &rule); err != nil { + if err = json.Unmarshal(content, rule); err != nil { zap.S().Debugf("postable rule content", string(content), "\t kind:", kind) return nil, []error{fmt.Errorf("failed to load json")} } } else if kind == "yaml" { - if err = yaml.Unmarshal(content, &rule); err != nil { + if err = yaml.Unmarshal(content, rule); err != nil { zap.S().Debugf("postable rule content", string(content), "\t kind:", kind) return nil, []error{fmt.Errorf("failed to load yaml")} } @@ -105,7 +114,8 @@ func parsePostableRule(content []byte, kind string) (*PostableRule, []error) { if errs := rule.Validate(); len(errs) > 0 { return nil, errs } - return &rule, []error{} + + return rule, []error{} } func isValidLabelName(ln string) bool { @@ -213,18 +223,7 @@ type GettableRules struct { // GettableRule has info for an alerting rules. type GettableRule struct { - Labels map[string]string `json:"labels"` - Annotations map[string]string `json:"annotations"` - State string `json:"state"` - Alert string `json:"alert"` - // Description string `yaml:"description,omitempty" json:"description,omitempty"` - - Id string `json:"id"` - RuleType RuleType `yaml:"ruleType,omitempty" json:"ruleType,omitempty"` - EvalWindow Duration `yaml:"evalWindow,omitempty" json:"evalWindow,omitempty"` - Frequency Duration `yaml:"frequency,omitempty" json:"frequency,omitempty"` - RuleCondition RuleCondition `yaml:"condition,omitempty" json:"condition,omitempty"` - - // ActiveAt *time.Time `json:"activeAt,omitempty"` - // Value float64 `json:"value"` + Id string `json:"id"` + State string `json:"state"` + PostableRule } diff --git a/pkg/query-service/rules/manager.go b/pkg/query-service/rules/manager.go index 9a040fdf74..a20ec05941 100644 --- a/pkg/query-service/rules/manager.go +++ b/pkg/query-service/rules/manager.go @@ -29,8 +29,16 @@ func ruleIdFromTaskName(n string) string { return strings.Split(n, "-groupname")[0] } -func prepareTaskName(ruleId int64) string { - return fmt.Sprintf("%d-groupname", ruleId) +func prepareTaskName(ruleId interface{}) string { + switch ruleId.(type) { + case int, int64: + return fmt.Sprintf("%d-groupname", ruleId) + case string: + return fmt.Sprintf("%s-groupname", ruleId) + default: + return fmt.Sprintf("%v-groupname", ruleId) + } + } // ManagerOptions bundles options for the Manager. @@ -170,10 +178,11 @@ func (m *Manager) initiate() error { continue } } - - err := m.addTask(parsedRule, taskName) - if err != nil { - zap.S().Errorf("failed to load the rule definition (%s): %v", taskName, err) + if !parsedRule.Disabled { + err := m.addTask(parsedRule, taskName) + if err != nil { + zap.S().Errorf("failed to load the rule definition (%s): %v", taskName, err) + } } } @@ -206,7 +215,7 @@ func (m *Manager) Stop() { // EditRuleDefinition writes the rule definition to the // datastore and also updates the rule executor func (m *Manager) EditRule(ruleStr string, id string) error { - // todo(amol): fetch recent rule from db first + parsedRule, errs := ParsePostableRule([]byte(ruleStr)) if len(errs) > 0 { @@ -221,16 +230,9 @@ func (m *Manager) EditRule(ruleStr string, id string) error { } if !m.opts.DisableRules { - err = m.editTask(parsedRule, taskName) - if err != nil { - // todo(amol): using tx with sqllite3 is gets - // database locked. need to research and resolve this - //tx.Rollback() - return err - } + return m.syncRuleStateWithTask(taskName, parsedRule) } - // return tx.Commit() return nil } @@ -249,8 +251,7 @@ func (m *Manager) editTask(rule *PostableRule, taskName string) error { // it to finish the current iteration. Then copy it into the new group. oldTask, ok := m.tasks[taskName] if !ok { - zap.S().Errorf("msg:", "rule task not found, edit task failed", "\t task name:", taskName) - return errors.New("rule task not found, edit task failed") + zap.S().Warnf("msg:", "rule task not found, a new task will be created ", "\t task name:", taskName) } delete(m.tasks, taskName) @@ -281,10 +282,7 @@ func (m *Manager) DeleteRule(id string) error { taskName := prepareTaskName(int64(idInt)) if !m.opts.DisableRules { - if err := m.deleteTask(taskName); err != nil { - zap.S().Errorf("msg: ", "failed to unload the rule task from memory, please retry", "\t ruleid: ", id) - return err - } + m.deleteTask(taskName) } if _, _, err := m.ruleDB.DeleteRuleTx(id); err != nil { @@ -295,7 +293,7 @@ func (m *Manager) DeleteRule(id string) error { return nil } -func (m *Manager) deleteTask(taskName string) error { +func (m *Manager) deleteTask(taskName string) { m.mtx.Lock() defer m.mtx.Unlock() @@ -305,11 +303,8 @@ func (m *Manager) deleteTask(taskName string) error { delete(m.tasks, taskName) delete(m.rules, ruleIdFromTaskName(taskName)) } else { - zap.S().Errorf("msg:", "rule not found for deletion", "\t name:", taskName) - return fmt.Errorf("rule not found") + zap.S().Info("msg: ", "rule not found for deletion", "\t name:", taskName) } - - return nil } // CreateRule stores rule def into db and also @@ -555,6 +550,9 @@ func (m *Manager) ListRuleStates() (*GettableRules, error) { // fetch rules from DB storedRules, err := m.ruleDB.GetStoredRules() + if err != nil { + return nil, err + } // initiate response object resp := make([]*GettableRule, 0) @@ -571,7 +569,8 @@ func (m *Manager) ListRuleStates() (*GettableRules, error) { // fetch state of rule from memory if rm, ok := m.rules[ruleResponse.Id]; !ok { - zap.S().Warnf("msg:", "invalid rule id found while fetching list of rules", "\t err:", err, "\t rule_id:", ruleResponse.Id) + ruleResponse.State = StateDisabled.String() + ruleResponse.Disabled = true } else { ruleResponse.State = rm.State().String() } @@ -593,3 +592,104 @@ func (m *Manager) GetRule(id string) (*GettableRule, error) { r.Id = fmt.Sprintf("%d", s.Id) return r, nil } + +// syncRuleStateWithTask ensures that the state of a stored rule matches +// the task state. For example - if a stored rule is disabled, then +// there is no task running against it. +func (m *Manager) syncRuleStateWithTask(taskName string, rule *PostableRule) error { + + if rule.Disabled { + // check if rule has any task running + if _, ok := m.tasks[taskName]; ok { + // delete task from memory + m.deleteTask(taskName) + } + } else { + // check if rule has a task running + if _, ok := m.tasks[taskName]; !ok { + // rule has not task, start one + if err := m.addTask(rule, taskName); err != nil { + return err + } + } + } + return nil +} + +// PatchRule supports attribute level changes to the rule definition unlike +// EditRule, which updates entire rule definition in the DB. +// the process: +// - get the latest rule from db +// - over write the patch attributes received in input (ruleStr) +// - re-deploy or undeploy task as necessary +// - update the patched rule in the DB +func (m *Manager) PatchRule(ruleStr string, ruleId string) (*GettableRule, error) { + + if ruleId == "" { + return nil, fmt.Errorf("id is mandatory for patching rule") + } + + taskName := prepareTaskName(ruleId) + + // retrieve rule from DB + storedJSON, err := m.ruleDB.GetStoredRule(ruleId) + if err != nil { + zap.S().Errorf("msg:", "failed to get stored rule with given id", "\t error:", err) + return nil, err + } + + // storedRule holds the current stored rule from DB + storedRule := PostableRule{} + if err := json.Unmarshal([]byte(storedJSON.Data), &storedRule); err != nil { + zap.S().Errorf("msg:", "failed to get unmarshal stored rule with given id", "\t error:", err) + return nil, err + } + + // patchedRule is combo of stored rule and patch received in the request + patchedRule, errs := parseIntoRule(storedRule, []byte(ruleStr), "json") + if len(errs) > 0 { + zap.S().Errorf("failed to parse rules:", errs) + // just one rule is being parsed so expect just one error + return nil, errs[0] + } + + // deploy or un-deploy task according to patched (new) rule state + if err := m.syncRuleStateWithTask(taskName, patchedRule); err != nil { + zap.S().Errorf("failed to sync stored rule state with the task") + return nil, err + } + + // prepare rule json to write to update db + patchedRuleBytes, err := json.Marshal(patchedRule) + if err != nil { + return nil, err + } + + // write updated rule to db + if _, _, err = m.ruleDB.EditRuleTx(string(patchedRuleBytes), ruleId); err != nil { + // write failed, rollback task state + + // restore task state from the stored rule + if err := m.syncRuleStateWithTask(taskName, &storedRule); err != nil { + zap.S().Errorf("msg: ", "failed to restore rule after patch failure", "\t error:", err) + } + + return nil, err + } + + // prepare http response + response := GettableRule{ + Id: ruleId, + PostableRule: *patchedRule, + } + + // fetch state of rule from memory + if rm, ok := m.rules[ruleId]; !ok { + response.State = StateDisabled.String() + response.Disabled = true + } else { + response.State = rm.State().String() + } + + return &response, nil +} From 5bfc2af51b09913896f2c62894f9f47874ba18d3 Mon Sep 17 00:00:00 2001 From: Srikanth Chekuri Date: Thu, 4 Aug 2022 11:57:05 +0530 Subject: [PATCH 35/42] feat: show messaging/cron/browser services in listing page (#1455) * feat: show messaging/cron/browser services in listing page * chore: issue maximum of ten queries to clickhouse Co-authored-by: Palash Gupta --- .../src/api/metrics/getTopLevelOperations.ts | 24 ++ ...getTopEndPoints.ts => getTopOperations.ts} | 8 +- .../MetricsApplication/Tabs/Overview.tsx | 32 +- ...pointsTable.tsx => TopOperationsTable.tsx} | 16 +- frontend/src/container/MetricsTable/index.tsx | 4 +- .../store/actions/metrics/getInitialData.ts | 20 +- frontend/src/store/reducers/metric.ts | 9 +- frontend/src/types/actions/metrics.ts | 5 +- .../api/metrics/getTopLevelOperations.ts | 7 + ...getTopEndPoints.ts => getTopOperations.ts} | 4 +- frontend/src/types/reducer/metrics.ts | 5 +- .../app/clickhouseReader/options.go | 75 ++--- .../app/clickhouseReader/reader.go | 303 +++++++++++------- pkg/query-service/app/http_handler.go | 20 +- pkg/query-service/app/parser.go | 8 +- pkg/query-service/config/prometheus.yml | 2 +- pkg/query-service/interfaces/interface.go | 3 +- pkg/query-service/model/queryParams.go | 2 +- pkg/query-service/model/response.go | 30 +- 19 files changed, 372 insertions(+), 205 deletions(-) create mode 100644 frontend/src/api/metrics/getTopLevelOperations.ts rename frontend/src/api/metrics/{getTopEndPoints.ts => getTopOperations.ts} (73%) rename frontend/src/container/MetricsApplication/{TopEndpointsTable.tsx => TopOperationsTable.tsx} (89%) create mode 100644 frontend/src/types/api/metrics/getTopLevelOperations.ts rename frontend/src/types/api/metrics/{getTopEndPoints.ts => getTopOperations.ts} (74%) diff --git a/frontend/src/api/metrics/getTopLevelOperations.ts b/frontend/src/api/metrics/getTopLevelOperations.ts new file mode 100644 index 0000000000..5ecfd2a67a --- /dev/null +++ b/frontend/src/api/metrics/getTopLevelOperations.ts @@ -0,0 +1,24 @@ +import axios from 'api'; +import { ErrorResponseHandler } from 'api/ErrorResponseHandler'; +import { AxiosError } from 'axios'; +import { ErrorResponse, SuccessResponse } from 'types/api'; +import { PayloadProps, Props } from 'types/api/metrics/getTopLevelOperations'; + +const getTopLevelOperations = async ( + props: Props, +): Promise | ErrorResponse> => { + try { + const response = await axios.post(`/service/top_level_operations`); + + return { + statusCode: 200, + error: null, + message: response.data.status, + payload: response.data[props.service], + }; + } catch (error) { + return ErrorResponseHandler(error as AxiosError); + } +}; + +export default getTopLevelOperations; diff --git a/frontend/src/api/metrics/getTopEndPoints.ts b/frontend/src/api/metrics/getTopOperations.ts similarity index 73% rename from frontend/src/api/metrics/getTopEndPoints.ts rename to frontend/src/api/metrics/getTopOperations.ts index db78aae9e3..cf07f0ee5d 100644 --- a/frontend/src/api/metrics/getTopEndPoints.ts +++ b/frontend/src/api/metrics/getTopOperations.ts @@ -2,13 +2,13 @@ import axios from 'api'; import { ErrorResponseHandler } from 'api/ErrorResponseHandler'; import { AxiosError } from 'axios'; import { ErrorResponse, SuccessResponse } from 'types/api'; -import { PayloadProps, Props } from 'types/api/metrics/getTopEndPoints'; +import { PayloadProps, Props } from 'types/api/metrics/getTopOperations'; -const getTopEndPoints = async ( +const getTopOperations = async ( props: Props, ): Promise | ErrorResponse> => { try { - const response = await axios.post(`/service/top_endpoints`, { + const response = await axios.post(`/service/top_operations`, { start: `${props.start}`, end: `${props.end}`, service: props.service, @@ -26,4 +26,4 @@ const getTopEndPoints = async ( } }; -export default getTopEndPoints; +export default getTopOperations; diff --git a/frontend/src/container/MetricsApplication/Tabs/Overview.tsx b/frontend/src/container/MetricsApplication/Tabs/Overview.tsx index 803ed91bcc..2dbf2d33fd 100644 --- a/frontend/src/container/MetricsApplication/Tabs/Overview.tsx +++ b/frontend/src/container/MetricsApplication/Tabs/Overview.tsx @@ -15,7 +15,7 @@ import { PromQLWidgets } from 'types/api/dashboard/getAll'; import MetricReducer from 'types/reducer/metrics'; import { Card, Col, GraphContainer, GraphTitle, Row } from '../styles'; -import TopEndpointsTable from '../TopEndpointsTable'; +import TopOperationsTable from '../TopOperationsTable'; import { Button } from './styles'; function Application({ getWidget }: DashboardProps): JSX.Element { @@ -23,11 +23,13 @@ function Application({ getWidget }: DashboardProps): JSX.Element { const selectedTimeStamp = useRef(0); const { - topEndPoints, + topOperations, serviceOverview, resourceAttributePromQLQuery, resourceAttributeQueries, + topLevelOperations, } = useSelector((state) => state.metrics); + const operationsRegex = topLevelOperations.join('|'); const selectedTraceTags: string = JSON.stringify( convertRawQueriesToTraceSelectedTags(resourceAttributeQueries, 'array') || [], @@ -107,7 +109,7 @@ function Application({ getWidget }: DashboardProps): JSX.Element { - Application latency + Latency { - onClickHandler(ChartEvent, activeElements, chart, data, 'Application'); + onClickHandler(ChartEvent, activeElements, chart, data, 'Service'); }} - name="application_latency" + name="service_latency" type="line" data={{ datasets: [ @@ -175,7 +177,7 @@ function Application({ getWidget }: DashboardProps): JSX.Element { - Requests + Rate (ops/s) { - onClickHandler(event, element, chart, data, 'Request'); + onClickHandler(event, element, chart, data, 'Rate'); }} widget={getWidget([ { - query: `sum(rate(signoz_latency_count{service_name="${servicename}", span_kind="SPAN_KIND_SERVER"${resourceAttributePromQLQuery}}[5m]))`, - legend: 'Requests', + query: `sum(rate(signoz_latency_count{service_name="${servicename}", operation=~"${operationsRegex}"${resourceAttributePromQLQuery}}[5m]))`, + legend: 'Operations', }, ])} - yAxisUnit="reqps" + yAxisUnit="ops" /> @@ -227,7 +229,7 @@ function Application({ getWidget }: DashboardProps): JSX.Element { }} widget={getWidget([ { - query: `max(sum(rate(signoz_calls_total{service_name="${servicename}", span_kind="SPAN_KIND_SERVER", status_code="STATUS_CODE_ERROR"${resourceAttributePromQLQuery}}[5m]) OR rate(signoz_calls_total{service_name="${servicename}", span_kind="SPAN_KIND_SERVER", http_status_code=~"5.."${resourceAttributePromQLQuery}}[5m]))*100/sum(rate(signoz_calls_total{service_name="${servicename}", span_kind="SPAN_KIND_SERVER"${resourceAttributePromQLQuery}}[5m]))) < 1000 OR vector(0)`, + query: `max(sum(rate(signoz_calls_total{service_name="${servicename}", operation=~"${operationsRegex}", status_code="STATUS_CODE_ERROR"${resourceAttributePromQLQuery}}[5m]) OR rate(signoz_calls_total{service_name="${servicename}", operation=~"${operationsRegex}", http_status_code=~"5.."${resourceAttributePromQLQuery}}[5m]))*100/sum(rate(signoz_calls_total{service_name="${servicename}", operation=~"${operationsRegex}"${resourceAttributePromQLQuery}}[5m]))) < 1000 OR vector(0)`, legend: 'Error Percentage', }, ])} @@ -239,7 +241,7 @@ function Application({ getWidget }: DashboardProps): JSX.Element { - + diff --git a/frontend/src/container/MetricsApplication/TopEndpointsTable.tsx b/frontend/src/container/MetricsApplication/TopOperationsTable.tsx similarity index 89% rename from frontend/src/container/MetricsApplication/TopEndpointsTable.tsx rename to frontend/src/container/MetricsApplication/TopOperationsTable.tsx index 5ede2d9c6a..4f91a97781 100644 --- a/frontend/src/container/MetricsApplication/TopEndpointsTable.tsx +++ b/frontend/src/container/MetricsApplication/TopOperationsTable.tsx @@ -11,7 +11,7 @@ import { AppState } from 'store/reducers'; import { GlobalReducer } from 'types/reducer/globalTime'; import MetricReducer from 'types/reducer/metrics'; -function TopEndpointsTable(props: TopEndpointsTableProps): JSX.Element { +function TopOperationsTable(props: TopOperationsTableProps): JSX.Element { const { minTime, maxTime } = useSelector( (state) => state.globalTime, ); @@ -85,7 +85,7 @@ function TopEndpointsTable(props: TopEndpointsTableProps): JSX.Element { title: 'Number of Calls', dataIndex: 'numCalls', key: 'numCalls', - sorter: (a: TopEndpointListItem, b: TopEndpointListItem): number => + sorter: (a: TopOperationListItem, b: TopOperationListItem): number => a.numCalls - b.numCalls, }, ]; @@ -94,7 +94,7 @@ function TopEndpointsTable(props: TopEndpointsTableProps): JSX.Element { { - return 'Top Endpoints'; + return 'Key Operations'; }} tableLayout="fixed" dataSource={data} @@ -104,7 +104,7 @@ function TopEndpointsTable(props: TopEndpointsTableProps): JSX.Element { ); } -interface TopEndpointListItem { +interface TopOperationListItem { p50: number; p95: number; p99: number; @@ -112,10 +112,10 @@ interface TopEndpointListItem { name: string; } -type DataProps = TopEndpointListItem; +type DataProps = TopOperationListItem; -interface TopEndpointsTableProps { - data: TopEndpointListItem[]; +interface TopOperationsTableProps { + data: TopOperationListItem[]; } -export default TopEndpointsTable; +export default TopOperationsTable; diff --git a/frontend/src/container/MetricsTable/index.tsx b/frontend/src/container/MetricsTable/index.tsx index cc0778c80e..e81a7badfc 100644 --- a/frontend/src/container/MetricsTable/index.tsx +++ b/frontend/src/container/MetricsTable/index.tsx @@ -56,14 +56,14 @@ function Metrics(): JSX.Element { render: (value: number): string => (value / 1000000).toFixed(2), }, { - title: 'Error Rate (% of requests)', + title: 'Error Rate (% of total)', dataIndex: 'errorRate', key: 'errorRate', sorter: (a: DataProps, b: DataProps): number => a.errorRate - b.errorRate, render: (value: number): string => value.toFixed(2), }, { - title: 'Requests Per Second', + title: 'Operations Per Second', dataIndex: 'callRate', key: 'callRate', sorter: (a: DataProps, b: DataProps): number => a.callRate - b.callRate, diff --git a/frontend/src/store/actions/metrics/getInitialData.ts b/frontend/src/store/actions/metrics/getInitialData.ts index f994a35c94..0f607f6ea5 100644 --- a/frontend/src/store/actions/metrics/getInitialData.ts +++ b/frontend/src/store/actions/metrics/getInitialData.ts @@ -3,7 +3,8 @@ // import getExternalError from 'api/metrics/getExternalError'; // import getExternalService from 'api/metrics/getExternalService'; import getServiceOverview from 'api/metrics/getServiceOverview'; -import getTopEndPoints from 'api/metrics/getTopEndPoints'; +import getTopLevelOperations from 'api/metrics/getTopLevelOperations'; +import getTopOperations from 'api/metrics/getTopOperations'; import { AxiosError } from 'axios'; import GetMinMax from 'lib/getMinMax'; import getStep from 'lib/getStep'; @@ -46,7 +47,8 @@ export const GetInitialData = ( // getExternalErrorResponse, // getExternalServiceResponse, getServiceOverviewResponse, - getTopEndPointsResponse, + getTopOperationsResponse, + getTopLevelOperationsResponse, ] = await Promise.all([ // getDBOverView({ // ...props, @@ -67,12 +69,15 @@ export const GetInitialData = ( step: getStep({ start: minTime, end: maxTime, inputFormat: 'ns' }), selectedTags: props.selectedTags, }), - getTopEndPoints({ + getTopOperations({ end: maxTime, service: props.serviceName, start: minTime, selectedTags: props.selectedTags, }), + getTopLevelOperations({ + service: props.serviceName, + }), ]); if ( @@ -81,7 +86,8 @@ export const GetInitialData = ( // getExternalErrorResponse.statusCode === 200 && // getExternalServiceResponse.statusCode === 200 && getServiceOverviewResponse.statusCode === 200 && - getTopEndPointsResponse.statusCode === 200 + getTopOperationsResponse.statusCode === 200 && + getTopLevelOperationsResponse.statusCode === 200 ) { dispatch({ type: 'GET_INTIAL_APPLICATION_DATA', @@ -91,7 +97,8 @@ export const GetInitialData = ( // externalError: getExternalErrorResponse.payload, // externalService: getExternalServiceResponse.payload, serviceOverview: getServiceOverviewResponse.payload, - topEndPoints: getTopEndPointsResponse.payload, + topOperations: getTopOperationsResponse.payload, + topLevelOperations: getTopLevelOperationsResponse.payload, }, }); } else { @@ -99,8 +106,9 @@ export const GetInitialData = ( type: 'GET_INITIAL_APPLICATION_ERROR', payload: { errorMessage: - getTopEndPointsResponse.error || + getTopOperationsResponse.error || getServiceOverviewResponse.error || + getTopLevelOperationsResponse.error || // getExternalServiceResponse.error || // getExternalErrorResponse.error || // getExternalAverageDurationResponse.error || diff --git a/frontend/src/store/reducers/metric.ts b/frontend/src/store/reducers/metric.ts index 72b24a6b5b..2cb316d2c1 100644 --- a/frontend/src/store/reducers/metric.ts +++ b/frontend/src/store/reducers/metric.ts @@ -21,7 +21,7 @@ const InitialValue: InitialValueTypes = { services: [], dbOverView: [], externalService: [], - topEndPoints: [], + topOperations: [], externalAverageDuration: [], externalError: [], serviceOverview: [], @@ -29,6 +29,7 @@ const InitialValue: InitialValueTypes = { resourceAttributePromQLQuery: resourceAttributesQueryToPromQL( GetResourceAttributeQueriesFromURL() || [], ), + topLevelOperations: [], }; const metrics = ( @@ -88,22 +89,24 @@ const metrics = ( case GET_INTIAL_APPLICATION_DATA: { const { // dbOverView, - topEndPoints, + topOperations, serviceOverview, // externalService, // externalAverageDuration, // externalError, + topLevelOperations, } = action.payload; return { ...state, // dbOverView, - topEndPoints, + topOperations, serviceOverview, // externalService, // externalAverageDuration, // externalError, metricsApplicationLoading: false, + topLevelOperations, }; } diff --git a/frontend/src/types/actions/metrics.ts b/frontend/src/types/actions/metrics.ts index 382e56b560..bc48f0929f 100644 --- a/frontend/src/types/actions/metrics.ts +++ b/frontend/src/types/actions/metrics.ts @@ -5,7 +5,7 @@ import { IResourceAttributeQuery } from 'container/MetricsApplication/ResourceAttributesFilter/types'; import { ServicesList } from 'types/api/metrics/getService'; import { ServiceOverview } from 'types/api/metrics/getServiceOverview'; -import { TopEndPoints } from 'types/api/metrics/getTopEndPoints'; +import { TopOperations } from 'types/api/metrics/getTopOperations'; export const GET_SERVICE_LIST_SUCCESS = 'GET_SERVICE_LIST_SUCCESS'; export const GET_SERVICE_LIST_LOADING_START = 'GET_SERVICE_LIST_LOADING_START'; @@ -38,12 +38,13 @@ export interface GetServiceListError { export interface GetInitialApplicationData { type: typeof GET_INTIAL_APPLICATION_DATA; payload: { - topEndPoints: TopEndPoints[]; + topOperations: TopOperations[]; // dbOverView: DBOverView[]; // externalService: ExternalService[]; // externalAverageDuration: ExternalAverageDuration[]; // externalError: ExternalError[]; serviceOverview: ServiceOverview[]; + topLevelOperations: string[]; }; } diff --git a/frontend/src/types/api/metrics/getTopLevelOperations.ts b/frontend/src/types/api/metrics/getTopLevelOperations.ts new file mode 100644 index 0000000000..c4e88aed08 --- /dev/null +++ b/frontend/src/types/api/metrics/getTopLevelOperations.ts @@ -0,0 +1,7 @@ +export type TopLevelOperations = string[]; + +export interface Props { + service: string; +} + +export type PayloadProps = TopLevelOperations; diff --git a/frontend/src/types/api/metrics/getTopEndPoints.ts b/frontend/src/types/api/metrics/getTopOperations.ts similarity index 74% rename from frontend/src/types/api/metrics/getTopEndPoints.ts rename to frontend/src/types/api/metrics/getTopOperations.ts index c86d5fd115..f30c01251f 100644 --- a/frontend/src/types/api/metrics/getTopEndPoints.ts +++ b/frontend/src/types/api/metrics/getTopOperations.ts @@ -1,6 +1,6 @@ import { Tags } from 'types/reducer/trace'; -export interface TopEndPoints { +export interface TopOperations { name: string; numCalls: number; p50: number; @@ -15,4 +15,4 @@ export interface Props { selectedTags: Tags[]; } -export type PayloadProps = TopEndPoints[]; +export type PayloadProps = TopOperations[]; diff --git a/frontend/src/types/reducer/metrics.ts b/frontend/src/types/reducer/metrics.ts index d5b500f109..7903b2c21a 100644 --- a/frontend/src/types/reducer/metrics.ts +++ b/frontend/src/types/reducer/metrics.ts @@ -5,7 +5,7 @@ import { ExternalError } from 'types/api/metrics/getExternalError'; import { ExternalService } from 'types/api/metrics/getExternalService'; import { ServicesList } from 'types/api/metrics/getService'; import { ServiceOverview } from 'types/api/metrics/getServiceOverview'; -import { TopEndPoints } from 'types/api/metrics/getTopEndPoints'; +import { TopOperations } from 'types/api/metrics/getTopOperations'; interface MetricReducer { services: ServicesList[]; @@ -15,12 +15,13 @@ interface MetricReducer { errorMessage: string; dbOverView: DBOverView[]; externalService: ExternalService[]; - topEndPoints: TopEndPoints[]; + topOperations: TopOperations[]; externalAverageDuration: ExternalAverageDuration[]; externalError: ExternalError[]; serviceOverview: ServiceOverview[]; resourceAttributeQueries: IResourceAttributeQuery[]; resourceAttributePromQLQuery: string; + topLevelOperations: string[]; } export default MetricReducer; diff --git a/pkg/query-service/app/clickhouseReader/options.go b/pkg/query-service/app/clickhouseReader/options.go index 99fe5080ae..2e4471fec3 100644 --- a/pkg/query-service/app/clickhouseReader/options.go +++ b/pkg/query-service/app/clickhouseReader/options.go @@ -18,16 +18,17 @@ const ( ) const ( - defaultDatasource string = "tcp://localhost:9000" - defaultTraceDB string = "signoz_traces" - defaultOperationsTable string = "signoz_operations" - defaultIndexTable string = "signoz_index_v2" - defaultErrorTable string = "signoz_error_index_v2" - defaulDurationTable string = "durationSortMV" - defaultSpansTable string = "signoz_spans" - defaultWriteBatchDelay time.Duration = 5 * time.Second - defaultWriteBatchSize int = 10000 - defaultEncoding Encoding = EncodingJSON + defaultDatasource string = "tcp://localhost:9000" + defaultTraceDB string = "signoz_traces" + defaultOperationsTable string = "signoz_operations" + defaultIndexTable string = "signoz_index_v2" + defaultErrorTable string = "signoz_error_index_v2" + defaultDurationTable string = "durationSortMV" + defaultSpansTable string = "signoz_spans" + defaultTopLevelOperationsTable string = "top_level_operations" + defaultWriteBatchDelay time.Duration = 5 * time.Second + defaultWriteBatchSize int = 10000 + defaultEncoding Encoding = EncodingJSON ) const ( @@ -43,19 +44,20 @@ const ( // NamespaceConfig is Clickhouse's internal configuration data type namespaceConfig struct { - namespace string - Enabled bool - Datasource string - TraceDB string - OperationsTable string - IndexTable string - DurationTable string - SpansTable string - ErrorTable string - WriteBatchDelay time.Duration - WriteBatchSize int - Encoding Encoding - Connector Connector + namespace string + Enabled bool + Datasource string + TraceDB string + OperationsTable string + IndexTable string + DurationTable string + SpansTable string + ErrorTable string + TopLevelOperationsTable string + WriteBatchDelay time.Duration + WriteBatchSize int + Encoding Encoding + Connector Connector } // Connecto defines how to connect to the database @@ -102,19 +104,20 @@ func NewOptions(datasource string, primaryNamespace string, otherNamespaces ...s options := &Options{ primary: &namespaceConfig{ - namespace: primaryNamespace, - Enabled: true, - Datasource: datasource, - TraceDB: defaultTraceDB, - OperationsTable: defaultOperationsTable, - IndexTable: defaultIndexTable, - ErrorTable: defaultErrorTable, - DurationTable: defaulDurationTable, - SpansTable: defaultSpansTable, - WriteBatchDelay: defaultWriteBatchDelay, - WriteBatchSize: defaultWriteBatchSize, - Encoding: defaultEncoding, - Connector: defaultConnector, + namespace: primaryNamespace, + Enabled: true, + Datasource: datasource, + TraceDB: defaultTraceDB, + OperationsTable: defaultOperationsTable, + IndexTable: defaultIndexTable, + ErrorTable: defaultErrorTable, + DurationTable: defaultDurationTable, + SpansTable: defaultSpansTable, + TopLevelOperationsTable: defaultTopLevelOperationsTable, + WriteBatchDelay: defaultWriteBatchDelay, + WriteBatchSize: defaultWriteBatchSize, + Encoding: defaultEncoding, + Connector: defaultConnector, }, others: make(map[string]*namespaceConfig, len(otherNamespaces)), } diff --git a/pkg/query-service/app/clickhouseReader/reader.go b/pkg/query-service/app/clickhouseReader/reader.go index a1f86c7413..da0d0fdb27 100644 --- a/pkg/query-service/app/clickhouseReader/reader.go +++ b/pkg/query-service/app/clickhouseReader/reader.go @@ -75,16 +75,17 @@ var ( // SpanWriter for reading spans from ClickHouse type ClickHouseReader struct { - db clickhouse.Conn - localDB *sqlx.DB - traceDB string - operationsTable string - durationTable string - indexTable string - errorTable string - spansTable string - queryEngine *promql.Engine - remoteStorage *remote.Storage + db clickhouse.Conn + localDB *sqlx.DB + traceDB string + operationsTable string + durationTable string + indexTable string + errorTable string + spansTable string + topLevelOperationsTable string + queryEngine *promql.Engine + remoteStorage *remote.Storage promConfigFile string promConfig *config.Config @@ -111,16 +112,17 @@ func NewReader(localDB *sqlx.DB, configFile string) *ClickHouseReader { } return &ClickHouseReader{ - db: db, - localDB: localDB, - traceDB: options.primary.TraceDB, - alertManager: alertManager, - operationsTable: options.primary.OperationsTable, - indexTable: options.primary.IndexTable, - errorTable: options.primary.ErrorTable, - durationTable: options.primary.DurationTable, - spansTable: options.primary.SpansTable, - promConfigFile: configFile, + db: db, + localDB: localDB, + traceDB: options.primary.TraceDB, + alertManager: alertManager, + operationsTable: options.primary.OperationsTable, + indexTable: options.primary.IndexTable, + errorTable: options.primary.ErrorTable, + durationTable: options.primary.DurationTable, + spansTable: options.primary.SpansTable, + topLevelOperationsTable: options.primary.TopLevelOperationsTable, + promConfigFile: configFile, } } @@ -657,103 +659,153 @@ func (r *ClickHouseReader) GetServicesList(ctx context.Context) (*[]string, erro return &services, nil } +func (r *ClickHouseReader) GetTopLevelOperations(ctx context.Context) (*map[string][]string, *model.ApiError) { + + operations := map[string][]string{} + query := fmt.Sprintf(`SELECT DISTINCT name, serviceName FROM %s.%s`, r.traceDB, r.topLevelOperationsTable) + + rows, err := r.db.Query(ctx, query) + + if err != nil { + zap.S().Error("Error in processing sql query: ", err) + return nil, &model.ApiError{Typ: model.ErrorExec, Err: fmt.Errorf("Error in processing sql query")} + } + + defer rows.Close() + for rows.Next() { + var name, serviceName string + if err := rows.Scan(&name, &serviceName); err != nil { + return nil, &model.ApiError{Typ: model.ErrorInternal, Err: fmt.Errorf("Error in reading data")} + } + if _, ok := operations[serviceName]; !ok { + operations[serviceName] = []string{} + } + operations[serviceName] = append(operations[serviceName], name) + } + return &operations, nil +} + func (r *ClickHouseReader) GetServices(ctx context.Context, queryParams *model.GetServicesParams) (*[]model.ServiceItem, *model.ApiError) { if r.indexTable == "" { return nil, &model.ApiError{Typ: model.ErrorExec, Err: ErrNoIndexTable} } + topLevelOps, apiErr := r.GetTopLevelOperations(ctx) + if apiErr != nil { + return nil, apiErr + } + serviceItems := []model.ServiceItem{} + var wg sync.WaitGroup + // limit the number of concurrent queries to not overload the clickhouse server + sem := make(chan struct{}, 10) + var mtx sync.RWMutex - query := fmt.Sprintf("SELECT serviceName, quantile(0.99)(durationNano) as p99, avg(durationNano) as avgDuration, count(*) as numCalls FROM %s.%s WHERE timestamp>='%s' AND timestamp<='%s' AND kind='2'", r.traceDB, r.indexTable, strconv.FormatInt(queryParams.Start.UnixNano(), 10), strconv.FormatInt(queryParams.End.UnixNano(), 10)) - args := []interface{}{} - args, errStatus := buildQueryWithTagParams(ctx, queryParams.Tags, &query, args) - if errStatus != nil { - return nil, errStatus + for svc, ops := range *topLevelOps { + sem <- struct{}{} + wg.Add(1) + go func(svc string, ops []string) { + defer wg.Done() + defer func() { <-sem }() + var serviceItem model.ServiceItem + var numErrors uint64 + query := fmt.Sprintf( + `SELECT + quantile(0.99)(durationNano) as p99, + avg(durationNano) as avgDuration, + count(*) as numCalls + FROM %s.%s + WHERE serviceName = @serviceName AND name In [@names] AND timestamp>= @start AND timestamp<= @end`, + r.traceDB, r.indexTable, + ) + errorQuery := fmt.Sprintf( + `SELECT + count(*) as numErrors + FROM %s.%s + WHERE serviceName = @serviceName AND name In [@names] AND timestamp>= @start AND timestamp<= @end AND statusCode=2`, + r.traceDB, r.indexTable, + ) + + args := []interface{}{} + args = append(args, + clickhouse.Named("start", strconv.FormatInt(queryParams.Start.UnixNano(), 10)), + clickhouse.Named("end", strconv.FormatInt(queryParams.End.UnixNano(), 10)), + clickhouse.Named("serviceName", svc), + clickhouse.Named("names", ops), + ) + args, errStatus := buildQueryWithTagParams(ctx, queryParams.Tags, &query, args) + if errStatus != nil { + zap.S().Error("Error in processing sql query: ", errStatus) + return + } + err := r.db.QueryRow( + ctx, + query, + args..., + ).ScanStruct(&serviceItem) + + if err != nil { + zap.S().Error("Error in processing sql query: ", err) + return + } + + err = r.db.QueryRow(ctx, errorQuery, args...).Scan(&numErrors) + if err != nil { + zap.S().Error("Error in processing sql query: ", err) + return + } + + serviceItem.ServiceName = svc + serviceItem.NumErrors = numErrors + mtx.Lock() + serviceItems = append(serviceItems, serviceItem) + mtx.Unlock() + }(svc, ops) } - query += " GROUP BY serviceName ORDER BY p99 DESC" - err := r.db.Select(ctx, &serviceItems, query, args...) + wg.Wait() - zap.S().Info(query) - - if err != nil { - zap.S().Debug("Error in processing sql query: ", err) - return nil, &model.ApiError{Typ: model.ErrorExec, Err: fmt.Errorf("Error in processing sql query")} + for idx := range serviceItems { + serviceItems[idx].CallRate = float64(serviceItems[idx].NumCalls) / float64(queryParams.Period) + serviceItems[idx].ErrorRate = float64(serviceItems[idx].NumErrors) * 100 / float64(serviceItems[idx].NumCalls) } - - ////////////////// Below block gets 5xx of services - serviceErrorItems := []model.ServiceItem{} - - query = fmt.Sprintf("SELECT serviceName, count(*) as numErrors FROM %s.%s WHERE timestamp>='%s' AND timestamp<='%s' AND kind='2' AND (statusCode>=500 OR statusCode=2)", r.traceDB, r.indexTable, strconv.FormatInt(queryParams.Start.UnixNano(), 10), strconv.FormatInt(queryParams.End.UnixNano(), 10)) - args = []interface{}{} - args, errStatus = buildQueryWithTagParams(ctx, queryParams.Tags, &query, args) - if errStatus != nil { - return nil, errStatus - } - query += " GROUP BY serviceName" - err = r.db.Select(ctx, &serviceErrorItems, query, args...) - - zap.S().Info(query) - - if err != nil { - zap.S().Debug("Error in processing sql query: ", err) - return nil, &model.ApiError{Typ: model.ErrorExec, Err: fmt.Errorf("Error in processing sql query")} - } - - m5xx := make(map[string]uint64) - - for j := range serviceErrorItems { - m5xx[serviceErrorItems[j].ServiceName] = serviceErrorItems[j].NumErrors - } - /////////////////////////////////////////// - - ////////////////// Below block gets 4xx of services - - service4xxItems := []model.ServiceItem{} - - query = fmt.Sprintf("SELECT serviceName, count(*) as num4xx FROM %s.%s WHERE timestamp>='%s' AND timestamp<='%s' AND kind='2' AND statusCode>=400 AND statusCode<500", r.traceDB, r.indexTable, strconv.FormatInt(queryParams.Start.UnixNano(), 10), strconv.FormatInt(queryParams.End.UnixNano(), 10)) - args = []interface{}{} - args, errStatus = buildQueryWithTagParams(ctx, queryParams.Tags, &query, args) - if errStatus != nil { - return nil, errStatus - } - query += " GROUP BY serviceName" - err = r.db.Select(ctx, &service4xxItems, query, args...) - - zap.S().Info(query) - - if err != nil { - zap.S().Debug("Error in processing sql query: ", err) - return nil, &model.ApiError{Typ: model.ErrorExec, Err: fmt.Errorf("Error in processing sql query")} - } - - m4xx := make(map[string]uint64) - - for j := range service4xxItems { - m4xx[service4xxItems[j].ServiceName] = service4xxItems[j].Num4XX - } - - for i := range serviceItems { - if val, ok := m5xx[serviceItems[i].ServiceName]; ok { - serviceItems[i].NumErrors = val - } - if val, ok := m4xx[serviceItems[i].ServiceName]; ok { - serviceItems[i].Num4XX = val - } - serviceItems[i].CallRate = float64(serviceItems[i].NumCalls) / float64(queryParams.Period) - serviceItems[i].FourXXRate = float64(serviceItems[i].Num4XX) * 100 / float64(serviceItems[i].NumCalls) - serviceItems[i].ErrorRate = float64(serviceItems[i].NumErrors) * 100 / float64(serviceItems[i].NumCalls) - } - return &serviceItems, nil } func (r *ClickHouseReader) GetServiceOverview(ctx context.Context, queryParams *model.GetServiceOverviewParams) (*[]model.ServiceOverviewItem, *model.ApiError) { + topLevelOps, apiErr := r.GetTopLevelOperations(ctx) + if apiErr != nil { + return nil, apiErr + } + ops, ok := (*topLevelOps)[queryParams.ServiceName] + if !ok { + return nil, &model.ApiError{Typ: model.ErrorNotFound, Err: fmt.Errorf("Service not found")} + } + + namedArgs := []interface{}{ + clickhouse.Named("interval", strconv.Itoa(int(queryParams.StepSeconds/60))), + clickhouse.Named("start", strconv.FormatInt(queryParams.Start.UnixNano(), 10)), + clickhouse.Named("end", strconv.FormatInt(queryParams.End.UnixNano(), 10)), + clickhouse.Named("serviceName", queryParams.ServiceName), + clickhouse.Named("names", ops), + } + serviceOverviewItems := []model.ServiceOverviewItem{} - query := fmt.Sprintf("SELECT toStartOfInterval(timestamp, INTERVAL %s minute) as time, quantile(0.99)(durationNano) as p99, quantile(0.95)(durationNano) as p95,quantile(0.50)(durationNano) as p50, count(*) as numCalls FROM %s.%s WHERE timestamp>='%s' AND timestamp<='%s' AND kind='2' AND serviceName='%s'", strconv.Itoa(int(queryParams.StepSeconds/60)), r.traceDB, r.indexTable, strconv.FormatInt(queryParams.Start.UnixNano(), 10), strconv.FormatInt(queryParams.End.UnixNano(), 10), queryParams.ServiceName) + query := fmt.Sprintf(` + SELECT + toStartOfInterval(timestamp, INTERVAL @interval minute) as time, + quantile(0.99)(durationNano) as p99, + quantile(0.95)(durationNano) as p95, + quantile(0.50)(durationNano) as p50, + count(*) as numCalls + FROM %s.%s + WHERE serviceName = @serviceName AND name In [@names] AND timestamp>= @start AND timestamp<= @end`, + r.traceDB, r.indexTable, + ) args := []interface{}{} + args = append(args, namedArgs...) args, errStatus := buildQueryWithTagParams(ctx, queryParams.Tags, &query, args) if errStatus != nil { return nil, errStatus @@ -761,17 +813,25 @@ func (r *ClickHouseReader) GetServiceOverview(ctx context.Context, queryParams * query += " GROUP BY time ORDER BY time DESC" err := r.db.Select(ctx, &serviceOverviewItems, query, args...) - zap.S().Info(query) + zap.S().Debug(query) if err != nil { - zap.S().Debug("Error in processing sql query: ", err) + zap.S().Error("Error in processing sql query: ", err) return nil, &model.ApiError{Typ: model.ErrorExec, Err: fmt.Errorf("Error in processing sql query")} } serviceErrorItems := []model.ServiceErrorItem{} - query = fmt.Sprintf("SELECT toStartOfInterval(timestamp, INTERVAL %s minute) as time, count(*) as numErrors FROM %s.%s WHERE timestamp>='%s' AND timestamp<='%s' AND kind='2' AND serviceName='%s' AND hasError=true", strconv.Itoa(int(queryParams.StepSeconds/60)), r.traceDB, r.indexTable, strconv.FormatInt(queryParams.Start.UnixNano(), 10), strconv.FormatInt(queryParams.End.UnixNano(), 10), queryParams.ServiceName) + query = fmt.Sprintf(` + SELECT + toStartOfInterval(timestamp, INTERVAL @interval minute) as time, + count(*) as numErrors + FROM %s.%s + WHERE serviceName = @serviceName AND name In [@names] AND timestamp>= @start AND timestamp<= @end AND statusCode=2`, + r.traceDB, r.indexTable, + ) args = []interface{}{} + args = append(args, namedArgs...) args, errStatus = buildQueryWithTagParams(ctx, queryParams.Tags, &query, args) if errStatus != nil { return nil, errStatus @@ -779,10 +839,10 @@ func (r *ClickHouseReader) GetServiceOverview(ctx context.Context, queryParams * query += " GROUP BY time ORDER BY time DESC" err = r.db.Select(ctx, &serviceErrorItems, query, args...) - zap.S().Info(query) + zap.S().Debug(query) if err != nil { - zap.S().Debug("Error in processing sql query: ", err) + zap.S().Error("Error in processing sql query: ", err) return nil, &model.ApiError{Typ: model.ErrorExec, Err: fmt.Errorf("Error in processing sql query")} } @@ -1523,31 +1583,48 @@ func (r *ClickHouseReader) GetTagValues(ctx context.Context, queryParams *model. return &cleanedTagValues, nil } -func (r *ClickHouseReader) GetTopEndpoints(ctx context.Context, queryParams *model.GetTopEndpointsParams) (*[]model.TopEndpointsItem, *model.ApiError) { +func (r *ClickHouseReader) GetTopOperations(ctx context.Context, queryParams *model.GetTopOperationsParams) (*[]model.TopOperationsItem, *model.ApiError) { - var topEndpointsItems []model.TopEndpointsItem + namedArgs := []interface{}{ + clickhouse.Named("start", strconv.FormatInt(queryParams.Start.UnixNano(), 10)), + clickhouse.Named("end", strconv.FormatInt(queryParams.End.UnixNano(), 10)), + clickhouse.Named("serviceName", queryParams.ServiceName), + } - query := fmt.Sprintf("SELECT quantile(0.5)(durationNano) as p50, quantile(0.95)(durationNano) as p95, quantile(0.99)(durationNano) as p99, COUNT(1) as numCalls, name FROM %s.%s WHERE timestamp >= '%s' AND timestamp <= '%s' AND kind='2' and serviceName='%s'", r.traceDB, r.indexTable, strconv.FormatInt(queryParams.Start.UnixNano(), 10), strconv.FormatInt(queryParams.End.UnixNano(), 10), queryParams.ServiceName) + var topOperationsItems []model.TopOperationsItem + + query := fmt.Sprintf(` + SELECT + quantile(0.5)(durationNano) as p50, + quantile(0.95)(durationNano) as p95, + quantile(0.99)(durationNano) as p99, + COUNT(*) as numCalls, + name + FROM %s.%s + WHERE serviceName = @serviceName AND timestamp>= @start AND timestamp<= @end`, + r.traceDB, r.indexTable, + ) args := []interface{}{} + args = append(args, namedArgs...) args, errStatus := buildQueryWithTagParams(ctx, queryParams.Tags, &query, args) if errStatus != nil { return nil, errStatus } - query += " GROUP BY name" - err := r.db.Select(ctx, &topEndpointsItems, query, args...) + query += " GROUP BY name ORDER BY p99 DESC LIMIT 10" + err := r.db.Select(ctx, &topOperationsItems, query, args...) - zap.S().Info(query) + zap.S().Debug(query) if err != nil { - zap.S().Debug("Error in processing sql query: ", err) + zap.S().Error("Error in processing sql query: ", err) return nil, &model.ApiError{Typ: model.ErrorExec, Err: fmt.Errorf("Error in processing sql query")} } - if topEndpointsItems == nil { - topEndpointsItems = []model.TopEndpointsItem{} + if topOperationsItems == nil { + topOperationsItems = []model.TopOperationsItem{} } - return &topEndpointsItems, nil + return &topOperationsItems, nil } func (r *ClickHouseReader) GetUsage(ctx context.Context, queryParams *model.GetUsageParams) (*[]model.UsageItem, error) { diff --git a/pkg/query-service/app/http_handler.go b/pkg/query-service/app/http_handler.go index c01d504e4a..efb5316b87 100644 --- a/pkg/query-service/app/http_handler.go +++ b/pkg/query-service/app/http_handler.go @@ -322,7 +322,8 @@ func (aH *APIHandler) RegisterRoutes(router *mux.Router) { router.HandleFunc("/api/v1/services", ViewAccess(aH.getServices)).Methods(http.MethodPost) router.HandleFunc("/api/v1/services/list", aH.getServicesList).Methods(http.MethodGet) router.HandleFunc("/api/v1/service/overview", ViewAccess(aH.getServiceOverview)).Methods(http.MethodPost) - router.HandleFunc("/api/v1/service/top_endpoints", ViewAccess(aH.getTopEndpoints)).Methods(http.MethodPost) + router.HandleFunc("/api/v1/service/top_operations", ViewAccess(aH.getTopOperations)).Methods(http.MethodPost) + router.HandleFunc("/api/v1/service/top_level_operations", ViewAccess(aH.getServicesTopLevelOps)).Methods(http.MethodPost) router.HandleFunc("/api/v1/traces/{traceId}", ViewAccess(aH.searchTraces)).Methods(http.MethodGet) router.HandleFunc("/api/v1/usage", ViewAccess(aH.getUsage)).Methods(http.MethodGet) router.HandleFunc("/api/v1/serviceMapDependencies", ViewAccess(aH.serviceMapDependencies)).Methods(http.MethodPost) @@ -1103,14 +1104,14 @@ func (aH *APIHandler) submitFeedback(w http.ResponseWriter, r *http.Request) { } -func (aH *APIHandler) getTopEndpoints(w http.ResponseWriter, r *http.Request) { +func (aH *APIHandler) getTopOperations(w http.ResponseWriter, r *http.Request) { - query, err := parseGetTopEndpointsRequest(r) + query, err := parseGetTopOperationsRequest(r) if aH.handleError(w, err, http.StatusBadRequest) { return } - result, apiErr := (*aH.reader).GetTopEndpoints(r.Context(), query) + result, apiErr := (*aH.reader).GetTopOperations(r.Context(), query) if apiErr != nil && aH.handleError(w, apiErr.Err, http.StatusInternalServerError) { return @@ -1152,6 +1153,17 @@ func (aH *APIHandler) getServiceOverview(w http.ResponseWriter, r *http.Request) } +func (aH *APIHandler) getServicesTopLevelOps(w http.ResponseWriter, r *http.Request) { + + result, apiErr := (*aH.reader).GetTopLevelOperations(r.Context()) + if apiErr != nil { + respondError(w, apiErr, nil) + return + } + + aH.writeJSON(w, r, result) +} + func (aH *APIHandler) getServices(w http.ResponseWriter, r *http.Request) { query, err := parseGetServicesRequest(r) diff --git a/pkg/query-service/app/parser.go b/pkg/query-service/app/parser.go index e81b986a3d..6991a03156 100644 --- a/pkg/query-service/app/parser.go +++ b/pkg/query-service/app/parser.go @@ -32,8 +32,8 @@ func parseUser(r *http.Request) (*model.User, error) { return &user, nil } -func parseGetTopEndpointsRequest(r *http.Request) (*model.GetTopEndpointsParams, error) { - var postData *model.GetTopEndpointsParams +func parseGetTopOperationsRequest(r *http.Request) (*model.GetTopOperationsParams, error) { + var postData *model.GetTopOperationsParams err := json.NewDecoder(r.Body).Decode(&postData) if err != nil { @@ -467,8 +467,8 @@ func parseCountErrorsRequest(r *http.Request) (*model.CountErrorsParams, error) } params := &model.CountErrorsParams{ - Start: startTime, - End: endTime, + Start: startTime, + End: endTime, } return params, nil diff --git a/pkg/query-service/config/prometheus.yml b/pkg/query-service/config/prometheus.yml index c515a46662..d7c0ce6911 100644 --- a/pkg/query-service/config/prometheus.yml +++ b/pkg/query-service/config/prometheus.yml @@ -23,4 +23,4 @@ scrape_configs: remote_read: - - url: tcp://localhost:9001/?database=signoz_metrics + - url: tcp://localhost:9000/?database=signoz_metrics diff --git a/pkg/query-service/interfaces/interface.go b/pkg/query-service/interfaces/interface.go index 5e9d01be8b..76830c67d8 100644 --- a/pkg/query-service/interfaces/interface.go +++ b/pkg/query-service/interfaces/interface.go @@ -20,8 +20,9 @@ type Reader interface { GetInstantQueryMetricsResult(ctx context.Context, query *model.InstantQueryMetricsParams) (*promql.Result, *stats.QueryStats, *model.ApiError) GetQueryRangeResult(ctx context.Context, query *model.QueryRangeParams) (*promql.Result, *stats.QueryStats, *model.ApiError) GetServiceOverview(ctx context.Context, query *model.GetServiceOverviewParams) (*[]model.ServiceOverviewItem, *model.ApiError) + GetTopLevelOperations(ctx context.Context) (*map[string][]string, *model.ApiError) GetServices(ctx context.Context, query *model.GetServicesParams) (*[]model.ServiceItem, *model.ApiError) - GetTopEndpoints(ctx context.Context, query *model.GetTopEndpointsParams) (*[]model.TopEndpointsItem, *model.ApiError) + GetTopOperations(ctx context.Context, query *model.GetTopOperationsParams) (*[]model.TopOperationsItem, *model.ApiError) GetUsage(ctx context.Context, query *model.GetUsageParams) (*[]model.UsageItem, error) GetServicesList(ctx context.Context) (*[]string, error) GetServiceMapDependencies(ctx context.Context, query *model.GetServicesParams) (*[]model.ServiceMapDependencyResponseItem, error) diff --git a/pkg/query-service/model/queryParams.go b/pkg/query-service/model/queryParams.go index 2b964597ab..a215fb8d9b 100644 --- a/pkg/query-service/model/queryParams.go +++ b/pkg/query-service/model/queryParams.go @@ -135,7 +135,7 @@ type MetricAutocompleteTagParams struct { TagKey string } -type GetTopEndpointsParams struct { +type GetTopOperationsParams struct { StartTime string `json:"start"` EndTime string `json:"end"` ServiceName string `json:"service"` diff --git a/pkg/query-service/model/response.go b/pkg/query-service/model/response.go index 0bdaf02dc7..9bb35d1d55 100644 --- a/pkg/query-service/model/response.go +++ b/pkg/query-service/model/response.go @@ -3,6 +3,7 @@ package model import ( "encoding/json" "fmt" + "math" "strconv" "time" @@ -217,7 +218,7 @@ type UsageItem struct { Count uint64 `json:"count" ch:"count"` } -type TopEndpointsItem struct { +type TopOperationsItem struct { Percentile50 float64 `json:"p50" ch:"p50"` Percentile95 float64 `json:"p95" ch:"p95"` Percentile99 float64 `json:"p99" ch:"p99"` @@ -403,3 +404,30 @@ func (p *MetricPoint) MarshalJSON() ([]byte, error) { v := strconv.FormatFloat(p.Value, 'f', -1, 64) return json.Marshal([...]interface{}{float64(p.Timestamp) / 1000, v}) } + +// MarshalJSON implements json.Marshaler. +func (s *ServiceItem) MarshalJSON() ([]byte, error) { + // If a service didn't not send any data in the last interval duration + // it's values such as 99th percentile will return as NaN and + // json encoding doesn't support NaN + // We still want to show it in the UI, so we'll replace NaN with 0 + type Alias ServiceItem + if math.IsInf(s.AvgDuration, 0) || math.IsNaN(s.AvgDuration) { + s.AvgDuration = 0 + } + if math.IsInf(s.CallRate, 0) || math.IsNaN(s.CallRate) { + s.CallRate = 0 + } + if math.IsInf(s.ErrorRate, 0) || math.IsNaN(s.ErrorRate) { + s.ErrorRate = 0 + } + if math.IsInf(s.Percentile99, 0) || math.IsNaN(s.Percentile99) { + s.Percentile99 = 0 + } + + return json.Marshal(&struct { + *Alias + }{ + Alias: (*Alias)(s), + }) +} From 3968f11b3d5c098f2a08673fced91a0040cea7ae Mon Sep 17 00:00:00 2001 From: Srikanth Chekuri Date: Thu, 4 Aug 2022 12:38:53 +0530 Subject: [PATCH 36/42] feat: improve service map (#1467) * feat: improve service map --- .../TopNav/DateTimeSelection/config.ts | 3 +- .../src/modules/Servicemap/ServiceMap.tsx | 13 ++-- frontend/src/modules/Servicemap/utils.ts | 42 +++++++---- frontend/src/store/actions/serviceMap.ts | 33 ++------- frontend/src/store/actions/types.ts | 7 +- frontend/src/store/reducers/serviceMap.ts | 6 -- .../app/clickhouseReader/options.go | 3 + .../app/clickhouseReader/reader.go | 74 ++++++++++--------- pkg/query-service/app/http_handler.go | 6 +- pkg/query-service/interfaces/interface.go | 3 +- pkg/query-service/model/response.go | 20 ++--- 11 files changed, 101 insertions(+), 109 deletions(-) diff --git a/frontend/src/container/TopNav/DateTimeSelection/config.ts b/frontend/src/container/TopNav/DateTimeSelection/config.ts index 69bdde40c7..59715d1f86 100644 --- a/frontend/src/container/TopNav/DateTimeSelection/config.ts +++ b/frontend/src/container/TopNav/DateTimeSelection/config.ts @@ -42,8 +42,9 @@ export interface Option { } export const ServiceMapOptions: Option[] = [ - { value: '1min', label: 'Last 1 min' }, { value: '5min', label: 'Last 5 min' }, + { value: '15min', label: 'Last 15 min' }, + { value: '30min', label: 'Last 30 min' }, ]; export const getDefaultOption = (route: string): Time => { diff --git a/frontend/src/modules/Servicemap/ServiceMap.tsx b/frontend/src/modules/Servicemap/ServiceMap.tsx index 03256dde59..7bc44d0d5f 100644 --- a/frontend/src/modules/Servicemap/ServiceMap.tsx +++ b/frontend/src/modules/Servicemap/ServiceMap.tsx @@ -45,6 +45,9 @@ interface graphLink { source: string; target: string; value: number; + callRate: number; + errorRate: number; + p99: number; } export interface graphDataType { nodes: graphNode[]; @@ -96,16 +99,16 @@ function ServiceMap(props: ServiceMapProps): JSX.Element { const graphData = { nodes, links }; return ( - + /> */} d.target} linkDirectionalParticles="value" linkDirectionalParticleSpeed={(d) => d.value} @@ -124,7 +127,7 @@ function ServiceMap(props: ServiceMapProps): JSX.Element { ctx.fillStyle = isDarkMode ? '#ffffff' : '#000000'; ctx.fillText(label, node.x, node.y); }} - onNodeClick={(node) => { + onLinkHover={(node) => { const tooltip = document.querySelector('.graph-tooltip'); if (tooltip && node) { tooltip.innerHTML = getTooltip(node); diff --git a/frontend/src/modules/Servicemap/utils.ts b/frontend/src/modules/Servicemap/utils.ts index 6bec25f8a6..f1da9e3c3a 100644 --- a/frontend/src/modules/Servicemap/utils.ts +++ b/frontend/src/modules/Servicemap/utils.ts @@ -1,12 +1,13 @@ /*eslint-disable*/ //@ts-nocheck -import { cloneDeep, find, maxBy, uniq, uniqBy } from 'lodash-es'; +import { cloneDeep, find, maxBy, uniq, uniqBy, groupBy, sumBy } from 'lodash-es'; import { graphDataType } from './ServiceMap'; const MIN_WIDTH = 10; const MAX_WIDTH = 20; const DEFAULT_FONT_SIZE = 6; + export const getDimensions = (num, highest) => { const percentage = (num / highest) * 100; const width = (percentage * (MAX_WIDTH - MIN_WIDTH)) / 100 + MIN_WIDTH; @@ -18,19 +19,30 @@ export const getDimensions = (num, highest) => { }; export const getGraphData = (serviceMap, isDarkMode): graphDataType => { - const { items, services } = serviceMap; + const { items } = serviceMap; + const services = Object.values(groupBy(items, 'child')).map((e) => { + return { + serviceName: e[0].child, + errorRate: sumBy(e, 'errorRate'), + callRate: sumBy(e, 'callRate'), + } + }); const highestCallCount = maxBy(items, (e) => e?.callCount)?.callCount; const highestCallRate = maxBy(services, (e) => e?.callRate)?.callRate; + const divNum = Number( String(1).padEnd(highestCallCount.toString().length, '0'), ); const links = cloneDeep(items).map((node) => { - const { parent, child, callCount } = node; + const { parent, child, callCount, callRate, errorRate, p99 } = node; return { source: parent, target: child, value: (100 - callCount / divNum) * 0.03, + callRate, + errorRate, + p99, }; }); const uniqParent = uniqBy(cloneDeep(items), 'parent').map((e) => e.parent); @@ -47,15 +59,10 @@ export const getGraphData = (serviceMap, isDarkMode): graphDataType => { width: MIN_WIDTH, color, nodeVal: MIN_WIDTH, - callRate: 0, - errorRate: 0, - p99: 0, }; } if (service.errorRate > 0) { color = isDarkMode ? '#DB836E' : '#F98989'; - } else if (service.fourXXRate > 0) { - color = isDarkMode ? '#C79931' : '#F9DA7B'; } const { fontSize, width } = getDimensions(service.callRate, highestCallRate); return { @@ -65,9 +72,6 @@ export const getGraphData = (serviceMap, isDarkMode): graphDataType => { width, color, nodeVal: width, - callRate: service.callRate.toFixed(2), - errorRate: service.errorRate, - p99: service.p99, }; }); return { @@ -90,25 +94,31 @@ export const getZoomPx = (): number => { return 190; }; -export const getTooltip = (node: { +const getRound2DigitsAfterDecimal = (num: number) => { + if (num === 0) { + return 0; + } + return num.toFixed(20).match(/^-?\d*\.?0*\d{0,2}/)[0]; +} + +export const getTooltip = (link: { p99: number; errorRate: number; callRate: number; id: string; }) => { return `
-
${node.id}
P99 latency:
-
${node.p99 / 1000000}ms
+
${getRound2DigitsAfterDecimal(link.p99/ 1000000)}ms
Request:
-
${node.callRate}/sec
+
${getRound2DigitsAfterDecimal(link.callRate)}/sec
Error Rate:
-
${node.errorRate}%
+
${getRound2DigitsAfterDecimal(link.errorRate)}%
`; }; diff --git a/frontend/src/store/actions/serviceMap.ts b/frontend/src/store/actions/serviceMap.ts index 36d8e5ba97..e3f527fc57 100644 --- a/frontend/src/store/actions/serviceMap.ts +++ b/frontend/src/store/actions/serviceMap.ts @@ -6,26 +6,16 @@ import { ActionTypes } from './types'; export interface ServiceMapStore { items: ServicesMapItem[]; - services: ServicesItem[]; loading: boolean; } -export interface ServicesItem { - serviceName: string; - p99: number; - avgDuration: number; - numCalls: number; - callRate: number; - numErrors: number; - errorRate: number; - num4XX: number; - fourXXRate: number; -} - export interface ServicesMapItem { parent: string; child: string; callCount: number; + callRate: number; + errorRate: number; + p99: number; } export interface ServiceMapItemAction { @@ -33,11 +23,6 @@ export interface ServiceMapItemAction { payload: ServicesMapItem[]; } -export interface ServicesAction { - type: ActionTypes.getServices; - payload: ServicesItem[]; -} - export interface ServiceMapLoading { type: ActionTypes.serviceMapLoading; payload: { @@ -55,19 +40,13 @@ export const getDetailedServiceMapItems = (globalTime: GlobalTime) => { end, tags: [], }; - const [serviceMapDependenciesResponse, response] = await Promise.all([ - api.post(`/serviceMapDependencies`, serviceMapPayload), - api.post(`/services`, serviceMapPayload), + const [dependencyGraphResponse] = await Promise.all([ + api.post(`/dependency_graph`, serviceMapPayload), ]); - dispatch({ - type: ActionTypes.getServices, - payload: response.data, - }); - dispatch({ type: ActionTypes.getServiceMapItems, - payload: serviceMapDependenciesResponse.data, + payload: dependencyGraphResponse.data, }); dispatch({ diff --git a/frontend/src/store/actions/types.ts b/frontend/src/store/actions/types.ts index 702997d49b..96d3f63538 100644 --- a/frontend/src/store/actions/types.ts +++ b/frontend/src/store/actions/types.ts @@ -1,8 +1,4 @@ -import { - ServiceMapItemAction, - ServiceMapLoading, - ServicesAction, -} from './serviceMap'; +import { ServiceMapItemAction, ServiceMapLoading } from './serviceMap'; import { GetUsageDataAction } from './usage'; export enum ActionTypes { @@ -17,6 +13,5 @@ export enum ActionTypes { export type Action = | GetUsageDataAction - | ServicesAction | ServiceMapItemAction | ServiceMapLoading; diff --git a/frontend/src/store/reducers/serviceMap.ts b/frontend/src/store/reducers/serviceMap.ts index 18ec21a9ec..04b724615b 100644 --- a/frontend/src/store/reducers/serviceMap.ts +++ b/frontend/src/store/reducers/serviceMap.ts @@ -2,7 +2,6 @@ import { Action, ActionTypes, ServiceMapStore } from 'store/actions'; const initialState: ServiceMapStore = { items: [], - services: [], loading: true, }; @@ -16,11 +15,6 @@ export const ServiceMapReducer = ( ...state, items: action.payload, }; - case ActionTypes.getServices: - return { - ...state, - services: action.payload, - }; case ActionTypes.serviceMapLoading: { return { ...state, diff --git a/pkg/query-service/app/clickhouseReader/options.go b/pkg/query-service/app/clickhouseReader/options.go index 2e4471fec3..eeca6f89c7 100644 --- a/pkg/query-service/app/clickhouseReader/options.go +++ b/pkg/query-service/app/clickhouseReader/options.go @@ -25,6 +25,7 @@ const ( defaultErrorTable string = "signoz_error_index_v2" defaultDurationTable string = "durationSortMV" defaultSpansTable string = "signoz_spans" + defaultDependencyGraphTable string = "dependency_graph_minutes" defaultTopLevelOperationsTable string = "top_level_operations" defaultWriteBatchDelay time.Duration = 5 * time.Second defaultWriteBatchSize int = 10000 @@ -53,6 +54,7 @@ type namespaceConfig struct { DurationTable string SpansTable string ErrorTable string + DependencyGraphTable string TopLevelOperationsTable string WriteBatchDelay time.Duration WriteBatchSize int @@ -113,6 +115,7 @@ func NewOptions(datasource string, primaryNamespace string, otherNamespaces ...s ErrorTable: defaultErrorTable, DurationTable: defaultDurationTable, SpansTable: defaultSpansTable, + DependencyGraphTable: defaultDependencyGraphTable, TopLevelOperationsTable: defaultTopLevelOperationsTable, WriteBatchDelay: defaultWriteBatchDelay, WriteBatchSize: defaultWriteBatchSize, diff --git a/pkg/query-service/app/clickhouseReader/reader.go b/pkg/query-service/app/clickhouseReader/reader.go index da0d0fdb27..d5666b45ef 100644 --- a/pkg/query-service/app/clickhouseReader/reader.go +++ b/pkg/query-service/app/clickhouseReader/reader.go @@ -83,6 +83,7 @@ type ClickHouseReader struct { indexTable string errorTable string spansTable string + dependencyGraphTable string topLevelOperationsTable string queryEngine *promql.Engine remoteStorage *remote.Storage @@ -121,6 +122,7 @@ func NewReader(localDB *sqlx.DB, configFile string) *ClickHouseReader { errorTable: options.primary.ErrorTable, durationTable: options.primary.DurationTable, spansTable: options.primary.SpansTable, + dependencyGraphTable: options.primary.DependencyGraphTable, topLevelOperationsTable: options.primary.TopLevelOperationsTable, promConfigFile: configFile, } @@ -1698,48 +1700,50 @@ func interfaceArrayToStringArray(array []interface{}) []string { return strArray } -func (r *ClickHouseReader) GetServiceMapDependencies(ctx context.Context, queryParams *model.GetServicesParams) (*[]model.ServiceMapDependencyResponseItem, error) { - serviceMapDependencyItems := []model.ServiceMapDependencyItem{} +func (r *ClickHouseReader) GetDependencyGraph(ctx context.Context, queryParams *model.GetServicesParams) (*[]model.ServiceMapDependencyResponseItem, error) { - query := fmt.Sprintf(`SELECT spanID, parentSpanID, serviceName FROM %s.%s WHERE timestamp>='%s' AND timestamp<='%s'`, r.traceDB, r.indexTable, strconv.FormatInt(queryParams.Start.UnixNano(), 10), strconv.FormatInt(queryParams.End.UnixNano(), 10)) + response := []model.ServiceMapDependencyResponseItem{} - err := r.db.Select(ctx, &serviceMapDependencyItems, query) + args := []interface{}{} + args = append(args, + clickhouse.Named("start", uint64(queryParams.Start.Unix())), + clickhouse.Named("end", uint64(queryParams.End.Unix())), + clickhouse.Named("duration", uint64(queryParams.End.Unix()-queryParams.Start.Unix())), + ) - zap.S().Info(query) + query := fmt.Sprintf(` + WITH + quantilesMergeState(0.5, 0.75, 0.9, 0.95, 0.99)(duration_quantiles_state) AS duration_quantiles_state, + finalizeAggregation(duration_quantiles_state) AS result + SELECT + src as parent, + dest as child, + result[1] AS p50, + result[2] AS p75, + result[3] AS p90, + result[4] AS p95, + result[5] AS p99, + sum(total_count) as callCount, + sum(total_count)/ @duration AS callRate, + sum(error_count)/sum(total_count) as errorRate + FROM %s.%s + WHERE toUInt64(toDateTime(timestamp)) >= @start AND toUInt64(toDateTime(timestamp)) <= @end + GROUP BY + src, + dest`, + r.traceDB, r.dependencyGraphTable, + ) + + zap.S().Debug(query, args) + + err := r.db.Select(ctx, &response, query, args...) if err != nil { - zap.S().Debug("Error in processing sql query: ", err) + zap.S().Error("Error in processing sql query: ", err) return nil, fmt.Errorf("Error in processing sql query") } - serviceMap := make(map[string]*model.ServiceMapDependencyResponseItem) - - spanId2ServiceNameMap := make(map[string]string) - for i := range serviceMapDependencyItems { - spanId2ServiceNameMap[serviceMapDependencyItems[i].SpanId] = serviceMapDependencyItems[i].ServiceName - } - for i := range serviceMapDependencyItems { - parent2childServiceName := spanId2ServiceNameMap[serviceMapDependencyItems[i].ParentSpanId] + "-" + spanId2ServiceNameMap[serviceMapDependencyItems[i].SpanId] - if _, ok := serviceMap[parent2childServiceName]; !ok { - serviceMap[parent2childServiceName] = &model.ServiceMapDependencyResponseItem{ - Parent: spanId2ServiceNameMap[serviceMapDependencyItems[i].ParentSpanId], - Child: spanId2ServiceNameMap[serviceMapDependencyItems[i].SpanId], - CallCount: 1, - } - } else { - serviceMap[parent2childServiceName].CallCount++ - } - } - - retMe := make([]model.ServiceMapDependencyResponseItem, 0, len(serviceMap)) - for _, dependency := range serviceMap { - if dependency.Parent == "" { - continue - } - retMe = append(retMe, *dependency) - } - - return &retMe, nil + return &response, nil } func (r *ClickHouseReader) GetFilteredSpansAggregates(ctx context.Context, queryParams *model.GetFilteredSpanAggregatesParams) (*model.GetFilteredSpansAggregatesResponse, *model.ApiError) { @@ -1979,7 +1983,7 @@ func (r *ClickHouseReader) SetTTL(ctx context.Context, switch params.Type { case constants.TraceTTL: - tableNameArray := []string{signozTraceDBName + "." + signozTraceTableName, signozTraceDBName + "." + signozDurationMVTable, signozTraceDBName + "." + signozSpansTable, signozTraceDBName + "." + signozErrorIndexTable} + tableNameArray := []string{signozTraceDBName + "." + signozTraceTableName, signozTraceDBName + "." + signozDurationMVTable, signozTraceDBName + "." + signozSpansTable, signozTraceDBName + "." + signozErrorIndexTable, signozTraceDBName + "." + defaultDependencyGraphTable} for _, tableName = range tableNameArray { statusItem, err := r.checkTTLStatusItem(ctx, tableName) if err != nil { diff --git a/pkg/query-service/app/http_handler.go b/pkg/query-service/app/http_handler.go index efb5316b87..343b5beec7 100644 --- a/pkg/query-service/app/http_handler.go +++ b/pkg/query-service/app/http_handler.go @@ -326,7 +326,7 @@ func (aH *APIHandler) RegisterRoutes(router *mux.Router) { router.HandleFunc("/api/v1/service/top_level_operations", ViewAccess(aH.getServicesTopLevelOps)).Methods(http.MethodPost) router.HandleFunc("/api/v1/traces/{traceId}", ViewAccess(aH.searchTraces)).Methods(http.MethodGet) router.HandleFunc("/api/v1/usage", ViewAccess(aH.getUsage)).Methods(http.MethodGet) - router.HandleFunc("/api/v1/serviceMapDependencies", ViewAccess(aH.serviceMapDependencies)).Methods(http.MethodPost) + router.HandleFunc("/api/v1/dependency_graph", ViewAccess(aH.dependencyGraph)).Methods(http.MethodPost) router.HandleFunc("/api/v1/settings/ttl", AdminAccess(aH.setTTL)).Methods(http.MethodPost) router.HandleFunc("/api/v1/settings/ttl", ViewAccess(aH.getTTL)).Methods(http.MethodGet) @@ -1185,14 +1185,14 @@ func (aH *APIHandler) getServices(w http.ResponseWriter, r *http.Request) { aH.writeJSON(w, r, result) } -func (aH *APIHandler) serviceMapDependencies(w http.ResponseWriter, r *http.Request) { +func (aH *APIHandler) dependencyGraph(w http.ResponseWriter, r *http.Request) { query, err := parseGetServicesRequest(r) if aH.handleError(w, err, http.StatusBadRequest) { return } - result, err := (*aH.reader).GetServiceMapDependencies(r.Context(), query) + result, err := (*aH.reader).GetDependencyGraph(r.Context(), query) if aH.handleError(w, err, http.StatusBadRequest) { return } diff --git a/pkg/query-service/interfaces/interface.go b/pkg/query-service/interfaces/interface.go index 76830c67d8..14bc4b5d63 100644 --- a/pkg/query-service/interfaces/interface.go +++ b/pkg/query-service/interfaces/interface.go @@ -25,7 +25,8 @@ type Reader interface { GetTopOperations(ctx context.Context, query *model.GetTopOperationsParams) (*[]model.TopOperationsItem, *model.ApiError) GetUsage(ctx context.Context, query *model.GetUsageParams) (*[]model.UsageItem, error) GetServicesList(ctx context.Context) (*[]string, error) - GetServiceMapDependencies(ctx context.Context, query *model.GetServicesParams) (*[]model.ServiceMapDependencyResponseItem, error) + GetDependencyGraph(ctx context.Context, query *model.GetServicesParams) (*[]model.ServiceMapDependencyResponseItem, error) + GetTTL(ctx context.Context, ttlParams *model.GetTTLParams) (*model.GetTTLResponseItem, *model.ApiError) // GetDisks returns a list of disks configured in the underlying DB. It is supported by diff --git a/pkg/query-service/model/response.go b/pkg/query-service/model/response.go index 9bb35d1d55..06ee6e6e2f 100644 --- a/pkg/query-service/model/response.go +++ b/pkg/query-service/model/response.go @@ -206,12 +206,6 @@ func (item *SearchSpanReponseItem) GetValues() []interface{} { return returnArray } -type ServiceMapDependencyItem struct { - SpanId string `json:"spanId,omitempty" ch:"spanID"` - ParentSpanId string `json:"parentSpanId,omitempty" ch:"parentSpanID"` - ServiceName string `json:"serviceName,omitempty" ch:"serviceName"` -} - type UsageItem struct { Time time.Time `json:"time,omitempty" ch:"time"` Timestamp uint64 `json:"timestamp" ch:"timestamp"` @@ -233,10 +227,18 @@ type TagFilters struct { type TagValues struct { TagValues string `json:"tagValues" ch:"tagValues"` } + type ServiceMapDependencyResponseItem struct { - Parent string `json:"parent,omitempty" ch:"parent"` - Child string `json:"child,omitempty" ch:"child"` - CallCount int `json:"callCount,omitempty" ch:"callCount"` + Parent string `json:"parent" ch:"parent"` + Child string `json:"child" ch:"child"` + CallCount uint64 `json:"callCount" ch:"callCount"` + CallRate float64 `json:"callRate" ch:"callRate"` + ErrorRate float64 `json:"errorRate" ch:"errorRate"` + P99 float64 `json:"p99" ch:"p99"` + P95 float64 `json:"p95" ch:"p95"` + P90 float64 `json:"p90" ch:"p90"` + P75 float64 `json:"p75" ch:"p75"` + P50 float64 `json:"p50" ch:"p50"` } type GetFilteredSpansAggregatesResponse struct { From a742c9aee109de3ad73826b6869a5ca6e51a3b7f Mon Sep 17 00:00:00 2001 From: Vishal Sharma Date: Thu, 4 Aug 2022 12:55:21 +0530 Subject: [PATCH 37/42] feat: use materialized view for usage explorer API (#1466) * feat: use materialized view for usage explorer API Co-authored-by: Srikanth Chekuri --- .../app/clickhouseReader/options.go | 3 ++ .../app/clickhouseReader/reader.go | 40 +++++++++++-------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/pkg/query-service/app/clickhouseReader/options.go b/pkg/query-service/app/clickhouseReader/options.go index eeca6f89c7..29816c2a08 100644 --- a/pkg/query-service/app/clickhouseReader/options.go +++ b/pkg/query-service/app/clickhouseReader/options.go @@ -24,6 +24,7 @@ const ( defaultIndexTable string = "signoz_index_v2" defaultErrorTable string = "signoz_error_index_v2" defaultDurationTable string = "durationSortMV" + defaultUsageExplorerTable string = "usage_explorer" defaultSpansTable string = "signoz_spans" defaultDependencyGraphTable string = "dependency_graph_minutes" defaultTopLevelOperationsTable string = "top_level_operations" @@ -52,6 +53,7 @@ type namespaceConfig struct { OperationsTable string IndexTable string DurationTable string + UsageExplorerTable string SpansTable string ErrorTable string DependencyGraphTable string @@ -114,6 +116,7 @@ func NewOptions(datasource string, primaryNamespace string, otherNamespaces ...s IndexTable: defaultIndexTable, ErrorTable: defaultErrorTable, DurationTable: defaultDurationTable, + UsageExplorerTable: defaultUsageExplorerTable, SpansTable: defaultSpansTable, DependencyGraphTable: defaultDependencyGraphTable, TopLevelOperationsTable: defaultTopLevelOperationsTable, diff --git a/pkg/query-service/app/clickhouseReader/reader.go b/pkg/query-service/app/clickhouseReader/reader.go index d5666b45ef..27b49210ae 100644 --- a/pkg/query-service/app/clickhouseReader/reader.go +++ b/pkg/query-service/app/clickhouseReader/reader.go @@ -47,16 +47,17 @@ import ( ) const ( - primaryNamespace = "clickhouse" - archiveNamespace = "clickhouse-archive" - signozTraceDBName = "signoz_traces" - signozDurationMVTable = "durationSort" - signozSpansTable = "signoz_spans" - signozErrorIndexTable = "signoz_error_index_v2" - signozTraceTableName = "signoz_index_v2" - signozMetricDBName = "signoz_metrics" - signozSampleTableName = "samples_v2" - signozTSTableName = "time_series_v2" + primaryNamespace = "clickhouse" + archiveNamespace = "clickhouse-archive" + signozTraceDBName = "signoz_traces" + signozDurationMVTable = "durationSort" + signozUsageExplorerTable = "usage_explorer" + signozSpansTable = "signoz_spans" + signozErrorIndexTable = "signoz_error_index_v2" + signozTraceTableName = "signoz_index_v2" + signozMetricDBName = "signoz_metrics" + signozSampleTableName = "samples_v2" + signozTSTableName = "time_series_v2" minTimespanForProgressiveSearch = time.Hour minTimespanForProgressiveSearchMargin = time.Minute @@ -80,6 +81,7 @@ type ClickHouseReader struct { traceDB string operationsTable string durationTable string + usageExplorerTable string indexTable string errorTable string spansTable string @@ -120,6 +122,7 @@ func NewReader(localDB *sqlx.DB, configFile string) *ClickHouseReader { operationsTable: options.primary.OperationsTable, indexTable: options.primary.IndexTable, errorTable: options.primary.ErrorTable, + usageExplorerTable: options.primary.UsageExplorerTable, durationTable: options.primary.DurationTable, spansTable: options.primary.SpansTable, dependencyGraphTable: options.primary.DependencyGraphTable, @@ -1632,15 +1635,20 @@ func (r *ClickHouseReader) GetTopOperations(ctx context.Context, queryParams *mo func (r *ClickHouseReader) GetUsage(ctx context.Context, queryParams *model.GetUsageParams) (*[]model.UsageItem, error) { var usageItems []model.UsageItem - + namedArgs := []interface{}{ + clickhouse.Named("interval", queryParams.StepHour), + clickhouse.Named("start", strconv.FormatInt(queryParams.Start.UnixNano(), 10)), + clickhouse.Named("end", strconv.FormatInt(queryParams.End.UnixNano(), 10)), + } var query string if len(queryParams.ServiceName) != 0 { - query = fmt.Sprintf("SELECT toStartOfInterval(timestamp, INTERVAL %d HOUR) as time, count(1) as count FROM %s.%s WHERE serviceName='%s' AND timestamp>='%s' AND timestamp<='%s' GROUP BY time ORDER BY time ASC", queryParams.StepHour, r.traceDB, r.indexTable, queryParams.ServiceName, strconv.FormatInt(queryParams.Start.UnixNano(), 10), strconv.FormatInt(queryParams.End.UnixNano(), 10)) + namedArgs = append(namedArgs, clickhouse.Named("serviceName", queryParams.ServiceName)) + query = fmt.Sprintf("SELECT toStartOfInterval(timestamp, INTERVAL @interval HOUR) as time, sum(count) as count FROM %s.%s WHERE service_name=@serviceName AND timestamp>=@start AND timestamp<=@end GROUP BY time ORDER BY time ASC", r.traceDB, r.usageExplorerTable) } else { - query = fmt.Sprintf("SELECT toStartOfInterval(timestamp, INTERVAL %d HOUR) as time, count(1) as count FROM %s.%s WHERE timestamp>='%s' AND timestamp<='%s' GROUP BY time ORDER BY time ASC", queryParams.StepHour, r.traceDB, r.indexTable, strconv.FormatInt(queryParams.Start.UnixNano(), 10), strconv.FormatInt(queryParams.End.UnixNano(), 10)) + query = fmt.Sprintf("SELECT toStartOfInterval(timestamp, INTERVAL @interval HOUR) as time, sum(count) as count FROM %s.%s WHERE timestamp>=@start AND timestamp<=@end GROUP BY time ORDER BY time ASC", r.traceDB, r.usageExplorerTable) } - err := r.db.Select(ctx, &usageItems, query) + err := r.db.Select(ctx, &usageItems, query, namedArgs...) zap.S().Info(query) @@ -1983,7 +1991,7 @@ func (r *ClickHouseReader) SetTTL(ctx context.Context, switch params.Type { case constants.TraceTTL: - tableNameArray := []string{signozTraceDBName + "." + signozTraceTableName, signozTraceDBName + "." + signozDurationMVTable, signozTraceDBName + "." + signozSpansTable, signozTraceDBName + "." + signozErrorIndexTable, signozTraceDBName + "." + defaultDependencyGraphTable} + tableNameArray := []string{signozTraceDBName + "." + signozTraceTableName, signozTraceDBName + "." + signozDurationMVTable, signozTraceDBName + "." + signozSpansTable, signozTraceDBName + "." + signozErrorIndexTable, signozTraceDBName + "." + signozUsageExplorerTable, signozTraceDBName + "." + defaultDependencyGraphTable} for _, tableName = range tableNameArray { statusItem, err := r.checkTTLStatusItem(ctx, tableName) if err != nil { @@ -2258,7 +2266,7 @@ func (r *ClickHouseReader) GetTTL(ctx context.Context, ttlParams *model.GetTTLPa switch ttlParams.Type { case constants.TraceTTL: - tableNameArray := []string{signozTraceDBName + "." + signozTraceTableName, signozTraceDBName + "." + signozDurationMVTable, signozTraceDBName + "." + signozSpansTable, signozTraceDBName + "." + signozErrorIndexTable} + tableNameArray := []string{signozTraceDBName + "." + signozTraceTableName, signozTraceDBName + "." + signozDurationMVTable, signozTraceDBName + "." + signozSpansTable, signozTraceDBName + "." + signozErrorIndexTable, signozTraceDBName + "." + signozUsageExplorerTable} status, err := r.setTTLQueryStatus(ctx, tableNameArray) if err != nil { return nil, err From 425b73237006ebb64fea32ef3b5f2bd185af2a47 Mon Sep 17 00:00:00 2001 From: Vishal Sharma Date: Thu, 4 Aug 2022 13:41:25 +0530 Subject: [PATCH 38/42] fix: add defaultDependencyGraphTable to getTTL status check (#1474) --- pkg/query-service/app/clickhouseReader/reader.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/query-service/app/clickhouseReader/reader.go b/pkg/query-service/app/clickhouseReader/reader.go index 27b49210ae..65758f00e2 100644 --- a/pkg/query-service/app/clickhouseReader/reader.go +++ b/pkg/query-service/app/clickhouseReader/reader.go @@ -2266,7 +2266,7 @@ func (r *ClickHouseReader) GetTTL(ctx context.Context, ttlParams *model.GetTTLPa switch ttlParams.Type { case constants.TraceTTL: - tableNameArray := []string{signozTraceDBName + "." + signozTraceTableName, signozTraceDBName + "." + signozDurationMVTable, signozTraceDBName + "." + signozSpansTable, signozTraceDBName + "." + signozErrorIndexTable, signozTraceDBName + "." + signozUsageExplorerTable} + tableNameArray := []string{signozTraceDBName + "." + signozTraceTableName, signozTraceDBName + "." + signozDurationMVTable, signozTraceDBName + "." + signozSpansTable, signozTraceDBName + "." + signozErrorIndexTable, signozTraceDBName + "." + signozUsageExplorerTable, signozTraceDBName + "." + defaultDependencyGraphTable} status, err := r.setTTLQueryStatus(ctx, tableNameArray) if err != nil { return nil, err From 80c96af5a4a9ebbea6039f340a6ea1c2b792a4e1 Mon Sep 17 00:00:00 2001 From: Amol Umbark Date: Thu, 4 Aug 2022 15:31:21 +0530 Subject: [PATCH 39/42] feat: added user selected filtering of channels in alerts (#1459) --- .../integrations/alertManager/model.go | 4 +- pkg/query-service/rules/alerting.go | 4 +- pkg/query-service/rules/apiParams.go | 2 + pkg/query-service/rules/manager.go | 16 +---- pkg/query-service/rules/promRule.go | 66 +++++++++++-------- pkg/query-service/rules/rule.go | 2 + pkg/query-service/rules/thresholdRule.go | 65 +++++++++--------- 7 files changed, 85 insertions(+), 74 deletions(-) diff --git a/pkg/query-service/integrations/alertManager/model.go b/pkg/query-service/integrations/alertManager/model.go index bb709e430f..19371a9bfd 100644 --- a/pkg/query-service/integrations/alertManager/model.go +++ b/pkg/query-service/integrations/alertManager/model.go @@ -40,6 +40,8 @@ type Alert struct { StartsAt time.Time `json:"startsAt,omitempty"` EndsAt time.Time `json:"endsAt,omitempty"` GeneratorURL string `json:"generatorURL,omitempty"` + + Receivers []string `json:"receivers,omitempty"` } // Name returns the name of the alert. It is equivalent to the "alertname" label. @@ -53,7 +55,7 @@ func (a *Alert) Hash() uint64 { } func (a *Alert) String() string { - s := fmt.Sprintf("%s[%s]", a.Name(), fmt.Sprintf("%016x", a.Hash())[:7]) + s := fmt.Sprintf("%s[%s][%s]", a.Name(), fmt.Sprintf("%016x", a.Hash())[:7], a.Receivers) if a.Resolved() { return s + "[resolved]" } diff --git a/pkg/query-service/rules/alerting.go b/pkg/query-service/rules/alerting.go index 65ee1f60a9..ecd7205557 100644 --- a/pkg/query-service/rules/alerting.go +++ b/pkg/query-service/rules/alerting.go @@ -72,6 +72,9 @@ type Alert struct { GeneratorURL string + // list of preferred receivers, e.g. slack + Receivers []string + Value float64 ActiveAt time.Time FiredAt time.Time @@ -80,7 +83,6 @@ type Alert struct { ValidUntil time.Time } -// todo(amol): need to review this with ankit func (a *Alert) needsSending(ts time.Time, resendDelay time.Duration) bool { if a.State == StatePending { return false diff --git a/pkg/query-service/rules/apiParams.go b/pkg/query-service/rules/apiParams.go index 346b515824..b88fa98fb6 100644 --- a/pkg/query-service/rules/apiParams.go +++ b/pkg/query-service/rules/apiParams.go @@ -35,6 +35,8 @@ type PostableRule struct { // Source captures the source url where rule has been created Source string `json:"source,omitempty"` + PreferredChannels []string `json:"preferredChannels,omitempty"` + // legacy Expr string `yaml:"expr,omitempty" json:"expr,omitempty"` OldYaml string `json:"yaml,omitempty"` diff --git a/pkg/query-service/rules/manager.go b/pkg/query-service/rules/manager.go index a20ec05941..6494320043 100644 --- a/pkg/query-service/rules/manager.go +++ b/pkg/query-service/rules/manager.go @@ -381,12 +381,7 @@ func (m *Manager) prepareTask(acquireLock bool, r *PostableRule, taskName string // create a threshold rule tr, err := NewThresholdRule( ruleId, - r.Alert, - r.RuleCondition, - time.Duration(r.EvalWindow), - r.Labels, - r.Annotations, - r.Source, + r, ) if err != nil { @@ -406,14 +401,8 @@ func (m *Manager) prepareTask(acquireLock bool, r *PostableRule, taskName string // create promql rule pr, err := NewPromRule( ruleId, - r.Alert, - r.RuleCondition, - time.Duration(r.EvalWindow), - r.Labels, - r.Annotations, - // required as promql engine works with logger and not zap + r, log.With(m.logger, "alert", r.Alert), - r.Source, ) if err != nil { @@ -521,6 +510,7 @@ func (m *Manager) prepareNotifyFunc() NotifyFunc { Labels: alert.Labels, Annotations: alert.Annotations, GeneratorURL: generatorURL, + Receivers: alert.Receivers, } if !alert.ResolvedAt.IsZero() { a.EndsAt = alert.ResolvedAt diff --git a/pkg/query-service/rules/promRule.go b/pkg/query-service/rules/promRule.go index f2ceff1a1a..bb995de73a 100644 --- a/pkg/query-service/rules/promRule.go +++ b/pkg/query-service/rules/promRule.go @@ -29,6 +29,8 @@ type PromRule struct { labels plabels.Labels annotations plabels.Labels + preferredChannels []string + mtx sync.Mutex evaluationDuration time.Duration evaluationTimestamp time.Time @@ -45,38 +47,37 @@ type PromRule struct { func NewPromRule( id string, - name string, - ruleCondition *RuleCondition, - evalWindow time.Duration, - labels, annotations map[string]string, + postableRule *PostableRule, logger log.Logger, - source string, ) (*PromRule, error) { - if int64(evalWindow) == 0 { - evalWindow = 5 * time.Minute - } - - if ruleCondition == nil { + if postableRule.RuleCondition == nil { return nil, fmt.Errorf("no rule condition") - } else if !ruleCondition.IsValid() { + } else if !postableRule.RuleCondition.IsValid() { return nil, fmt.Errorf("invalid rule condition") } - zap.S().Info("msg:", "creating new alerting rule", "\t name:", name, "\t condition:", ruleCondition.String()) + p := PromRule{ + id: id, + name: postableRule.Alert, + source: postableRule.Source, + ruleCondition: postableRule.RuleCondition, + evalWindow: time.Duration(postableRule.EvalWindow), + labels: plabels.FromMap(postableRule.Labels), + annotations: plabels.FromMap(postableRule.Annotations), + preferredChannels: postableRule.PreferredChannels, + health: HealthUnknown, + active: map[uint64]*Alert{}, + logger: logger, + } - return &PromRule{ - id: id, - name: name, - source: source, - ruleCondition: ruleCondition, - evalWindow: evalWindow, - labels: plabels.FromMap(labels), - annotations: plabels.FromMap(annotations), - health: HealthUnknown, - active: map[uint64]*Alert{}, - logger: logger, - }, nil + if int64(p.evalWindow) == 0 { + p.evalWindow = 5 * time.Minute + } + + zap.S().Info("msg:", "creating new alerting rule", "\t name:", p.name, "\t condition:", p.ruleCondition.String()) + + return &p, nil } func (r *PromRule) Name() string { @@ -99,6 +100,10 @@ func (r *PromRule) GeneratorURL() string { return prepareRuleGeneratorURL(r.ID(), r.source) } +func (r *PromRule) PreferredChannels() []string { + return r.preferredChannels +} + func (r *PromRule) SetLastError(err error) { r.mtx.Lock() defer r.mtx.Unlock() @@ -382,6 +387,7 @@ func (r *PromRule) Eval(ctx context.Context, ts time.Time, queriers *Queriers) ( State: StatePending, Value: smpl.V, GeneratorURL: r.GeneratorURL(), + Receivers: r.preferredChannels, } } @@ -392,6 +398,7 @@ func (r *PromRule) Eval(ctx context.Context, ts time.Time, queriers *Queriers) ( if alert, ok := r.active[h]; ok && alert.State != StateInactive { alert.Value = a.Value alert.Annotations = a.Annotations + alert.Receivers = r.preferredChannels continue } @@ -429,11 +436,12 @@ func (r *PromRule) Eval(ctx context.Context, ts time.Time, queriers *Queriers) ( func (r *PromRule) String() string { ar := PostableRule{ - Alert: r.name, - RuleCondition: r.ruleCondition, - EvalWindow: Duration(r.evalWindow), - Labels: r.labels.Map(), - Annotations: r.annotations.Map(), + Alert: r.name, + RuleCondition: r.ruleCondition, + EvalWindow: Duration(r.evalWindow), + Labels: r.labels.Map(), + Annotations: r.annotations.Map(), + PreferredChannels: r.preferredChannels, } byt, err := yaml.Marshal(ar) diff --git a/pkg/query-service/rules/rule.go b/pkg/query-service/rules/rule.go index ba5c934172..9a2ac1bad0 100644 --- a/pkg/query-service/rules/rule.go +++ b/pkg/query-service/rules/rule.go @@ -19,6 +19,8 @@ type Rule interface { State() AlertState ActiveAlerts() []*Alert + PreferredChannels() []string + Eval(context.Context, time.Time, *Queriers) (interface{}, error) String() string // Query() string diff --git a/pkg/query-service/rules/thresholdRule.go b/pkg/query-service/rules/thresholdRule.go index 3358842051..dc0c29be97 100644 --- a/pkg/query-service/rules/thresholdRule.go +++ b/pkg/query-service/rules/thresholdRule.go @@ -32,6 +32,7 @@ type ThresholdRule struct { labels labels.Labels annotations labels.Labels + preferredChannels []string mtx sync.Mutex evaluationDuration time.Duration evaluationTimestamp time.Time @@ -46,39 +47,35 @@ type ThresholdRule struct { func NewThresholdRule( id string, - name string, - ruleCondition *RuleCondition, - evalWindow time.Duration, - l, a map[string]string, - source string, + p *PostableRule, ) (*ThresholdRule, error) { - if int64(evalWindow) == 0 { - evalWindow = 5 * time.Minute - } - - if ruleCondition == nil { + if p.RuleCondition == nil { return nil, fmt.Errorf("no rule condition") - } else if !ruleCondition.IsValid() { + } else if !p.RuleCondition.IsValid() { return nil, fmt.Errorf("invalid rule condition") } - thresholdRule := &ThresholdRule{ - id: id, - name: name, - source: source, - ruleCondition: ruleCondition, - evalWindow: evalWindow, - labels: labels.FromMap(l), - annotations: labels.FromMap(a), - - health: HealthUnknown, - active: map[uint64]*Alert{}, + t := ThresholdRule{ + id: id, + name: p.Alert, + source: p.Source, + ruleCondition: p.RuleCondition, + evalWindow: time.Duration(p.EvalWindow), + labels: labels.FromMap(p.Labels), + annotations: labels.FromMap(p.Annotations), + preferredChannels: p.PreferredChannels, + health: HealthUnknown, + active: map[uint64]*Alert{}, } - zap.S().Info("msg:", "creating new alerting rule", "\t name:", name, "\t condition:", ruleCondition.String(), "\t generatorURL:", thresholdRule.GeneratorURL()) + if int64(t.evalWindow) == 0 { + t.evalWindow = 5 * time.Minute + } - return thresholdRule, nil + zap.S().Info("msg:", "creating new alerting rule", "\t name:", t.name, "\t condition:", t.ruleCondition.String(), "\t generatorURL:", t.GeneratorURL()) + + return &t, nil } func (r *ThresholdRule) Name() string { @@ -97,6 +94,10 @@ func (r *ThresholdRule) GeneratorURL() string { return prepareRuleGeneratorURL(r.ID(), r.source) } +func (r *ThresholdRule) PreferredChannels() []string { + return r.preferredChannels +} + func (r *ThresholdRule) target() *float64 { if r.ruleCondition == nil { return nil @@ -479,6 +480,7 @@ func (r *ThresholdRule) runChQuery(ctx context.Context, db clickhouse.Conn, quer } } } + zap.S().Debugf("ruleid:", r.ID(), "\t resultmap(potential alerts):", len(resultMap)) for _, sample := range resultMap { // check alert rule condition before dumping results @@ -486,7 +488,7 @@ func (r *ThresholdRule) runChQuery(ctx context.Context, db clickhouse.Conn, quer result = append(result, sample) } } - + zap.S().Debugf("ruleid:", r.ID(), "\t result (found alerts):", len(result)) return result, nil } @@ -615,6 +617,7 @@ func (r *ThresholdRule) Eval(ctx context.Context, ts time.Time, queriers *Querie State: StatePending, Value: smpl.V, GeneratorURL: r.GeneratorURL(), + Receivers: r.preferredChannels, } } @@ -628,6 +631,7 @@ func (r *ThresholdRule) Eval(ctx context.Context, ts time.Time, queriers *Querie alert.Value = a.Value alert.Annotations = a.Annotations + alert.Receivers = r.preferredChannels continue } @@ -665,11 +669,12 @@ func (r *ThresholdRule) Eval(ctx context.Context, ts time.Time, queriers *Querie func (r *ThresholdRule) String() string { ar := PostableRule{ - Alert: r.name, - RuleCondition: r.ruleCondition, - EvalWindow: Duration(r.evalWindow), - Labels: r.labels.Map(), - Annotations: r.annotations.Map(), + Alert: r.name, + RuleCondition: r.ruleCondition, + EvalWindow: Duration(r.evalWindow), + Labels: r.labels.Map(), + Annotations: r.annotations.Map(), + PreferredChannels: r.preferredChannels, } byt, err := yaml.Marshal(ar) From 1ebf64589ff6c9ca9117d7001ed0fa6d4dfcc8e9 Mon Sep 17 00:00:00 2001 From: Amol Umbark Date: Thu, 4 Aug 2022 17:24:15 +0530 Subject: [PATCH 40/42] Alerts: Test Notifications in Rules --- pkg/query-service/app/http_handler.go | 29 ++++++++ pkg/query-service/rules/alerting.go | 2 + pkg/query-service/rules/apiParams.go | 10 +++ pkg/query-service/rules/manager.go | 87 +++++++++++++++++++++++- pkg/query-service/rules/promRule.go | 43 ++++++------ pkg/query-service/rules/promRuleTask.go | 17 +---- pkg/query-service/rules/ruleTask.go | 86 ++++++----------------- pkg/query-service/rules/thresholdRule.go | 54 ++++++++------- pkg/query-service/utils/labels/labels.go | 4 ++ 9 files changed, 202 insertions(+), 130 deletions(-) diff --git a/pkg/query-service/app/http_handler.go b/pkg/query-service/app/http_handler.go index 343b5beec7..a7a0a40c70 100644 --- a/pkg/query-service/app/http_handler.go +++ b/pkg/query-service/app/http_handler.go @@ -304,12 +304,14 @@ func (aH *APIHandler) RegisterRoutes(router *mux.Router) { router.HandleFunc("/api/v1/channels/{id}", AdminAccess(aH.deleteChannel)).Methods(http.MethodDelete) router.HandleFunc("/api/v1/channels", EditAccess(aH.createChannel)).Methods(http.MethodPost) router.HandleFunc("/api/v1/testChannel", EditAccess(aH.testChannel)).Methods(http.MethodPost) + router.HandleFunc("/api/v1/rules", ViewAccess(aH.listRules)).Methods(http.MethodGet) router.HandleFunc("/api/v1/rules/{id}", ViewAccess(aH.getRule)).Methods(http.MethodGet) router.HandleFunc("/api/v1/rules", EditAccess(aH.createRule)).Methods(http.MethodPost) router.HandleFunc("/api/v1/rules/{id}", EditAccess(aH.editRule)).Methods(http.MethodPut) router.HandleFunc("/api/v1/rules/{id}", EditAccess(aH.deleteRule)).Methods(http.MethodDelete) router.HandleFunc("/api/v1/rules/{id}", EditAccess(aH.patchRule)).Methods(http.MethodPatch) + router.HandleFunc("/api/v1/testRule", EditAccess(aH.testRule)).Methods(http.MethodPost) router.HandleFunc("/api/v1/dashboards", ViewAccess(aH.getDashboards)).Methods(http.MethodGet) router.HandleFunc("/api/v1/dashboards", EditAccess(aH.createDashboards)).Methods(http.MethodPost) @@ -771,6 +773,32 @@ func (aH *APIHandler) createDashboards(w http.ResponseWriter, r *http.Request) { } +func (aH *APIHandler) testRule(w http.ResponseWriter, r *http.Request) { + + defer r.Body.Close() + body, err := ioutil.ReadAll(r.Body) + if err != nil { + zap.S().Errorf("Error in getting req body in test rule API\n", err) + respondError(w, &model.ApiError{Typ: model.ErrorBadData, Err: err}, nil) + return + } + + ctx, cancel := context.WithTimeout(context.Background(), 1*time.Minute) + defer cancel() + + alertCount, apiRrr := aH.ruleManager.TestNotification(ctx, string(body)) + if apiRrr != nil { + respondError(w, apiRrr, nil) + return + } + + response := map[string]interface{}{ + "alertCount": alertCount, + "message": "notification sent", + } + aH.respond(w, response) +} + func (aH *APIHandler) deleteRule(w http.ResponseWriter, r *http.Request) { id := mux.Vars(r)["id"] @@ -963,6 +991,7 @@ func (aH *APIHandler) createRule(w http.ResponseWriter, r *http.Request) { aH.respond(w, "rule successfully added") } + func (aH *APIHandler) queryRangeMetricsFromClickhouse(w http.ResponseWriter, r *http.Request) { } diff --git a/pkg/query-service/rules/alerting.go b/pkg/query-service/rules/alerting.go index ecd7205557..b7655733d0 100644 --- a/pkg/query-service/rules/alerting.go +++ b/pkg/query-service/rules/alerting.go @@ -23,6 +23,8 @@ const ( // AlertForStateMetricName is the metric name for 'for' state of alert. alertForStateMetricName = "ALERTS_FOR_STATE" + + TestAlertPostFix = "_TEST_ALERT" ) type RuleType string diff --git a/pkg/query-service/rules/apiParams.go b/pkg/query-service/rules/apiParams.go index b88fa98fb6..1d488c026d 100644 --- a/pkg/query-service/rules/apiParams.go +++ b/pkg/query-service/rules/apiParams.go @@ -18,6 +18,16 @@ import ( // this file contains api request and responses to be // served over http +// newApiErrorInternal returns a new api error object of type internal +func newApiErrorInternal(err error) *model.ApiError { + return &model.ApiError{Typ: model.ErrorInternal, Err: err} +} + +// newApiErrorBadData returns a new api error object of bad request type +func newApiErrorBadData(err error) *model.ApiError { + return &model.ApiError{Typ: model.ErrorBadData, Err: err} +} + // PostableRule is used to create alerting rule from HTTP api type PostableRule struct { Alert string `yaml:"alert,omitempty" json:"alert,omitempty"` diff --git a/pkg/query-service/rules/manager.go b/pkg/query-service/rules/manager.go index 6494320043..bf1e70b956 100644 --- a/pkg/query-service/rules/manager.go +++ b/pkg/query-service/rules/manager.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "github.com/google/uuid" "sort" "strconv" "strings" @@ -19,6 +20,8 @@ import ( // opentracing "github.com/opentracing/opentracing-go" am "go.signoz.io/query-service/integrations/alertManager" + "go.signoz.io/query-service/model" + "go.signoz.io/query-service/utils/labels" ) // namespace for prom metrics @@ -38,7 +41,6 @@ func prepareTaskName(ruleId interface{}) string { default: return fmt.Sprintf("%v-groupname", ruleId) } - } // ManagerOptions bundles options for the Manager. @@ -382,6 +384,7 @@ func (m *Manager) prepareTask(acquireLock bool, r *PostableRule, taskName string tr, err := NewThresholdRule( ruleId, r, + ThresholdRuleOpts{}, ) if err != nil { @@ -403,6 +406,7 @@ func (m *Manager) prepareTask(acquireLock bool, r *PostableRule, taskName string ruleId, r, log.With(m.logger, "alert", r.Alert), + PromRuleOpts{}, ) if err != nil { @@ -683,3 +687,84 @@ func (m *Manager) PatchRule(ruleStr string, ruleId string) (*GettableRule, error return &response, nil } + +// TestNotification prepares a dummy rule for given rule parameters and +// sends a test notification. returns alert count and error (if any) +func (m *Manager) TestNotification(ctx context.Context, ruleStr string) (int, *model.ApiError) { + + parsedRule, errs := ParsePostableRule([]byte(ruleStr)) + + if len(errs) > 0 { + zap.S().Errorf("msg: failed to parse rule from request:", "\t error: ", errs) + return 0, newApiErrorBadData(errs[0]) + } + + var alertname = parsedRule.Alert + if alertname == "" { + // alertname is not mandatory for testing, so picking + // a random string here + alertname = uuid.New().String() + } + + // append name to indicate this is test alert + parsedRule.Alert = fmt.Sprintf("%s%s", alertname, TestAlertPostFix) + + var rule Rule + var err error + + if parsedRule.RuleType == RuleTypeThreshold { + + // add special labels for test alerts + parsedRule.Labels[labels.AlertAdditionalInfoLabel] = fmt.Sprintf("The rule threshold is set to %.4f, and the observed metric value is {{$value}}.", *parsedRule.RuleCondition.Target) + parsedRule.Annotations[labels.AlertSummaryLabel] = fmt.Sprintf("The rule threshold is set to %.4f, and the observed metric value is {{$value}}.", *parsedRule.RuleCondition.Target) + parsedRule.Labels[labels.RuleSourceLabel] = "" + parsedRule.Labels[labels.AlertRuleIdLabel] = "" + + // create a threshold rule + rule, err = NewThresholdRule( + alertname, + parsedRule, + ThresholdRuleOpts{ + SendUnmatched: true, + SendAlways: true, + }, + ) + + if err != nil { + zap.S().Errorf("msg: failed to prepare a new threshold rule for test:", "\t error: ", err) + return 0, newApiErrorBadData(err) + } + + } else if parsedRule.RuleType == RuleTypeProm { + + // create promql rule + rule, err = NewPromRule( + alertname, + parsedRule, + log.With(m.logger, "alert", alertname), + PromRuleOpts{ + SendAlways: true, + }, + ) + + if err != nil { + zap.S().Errorf("msg: failed to prepare a new promql rule for test:", "\t error: ", err) + return 0, newApiErrorBadData(err) + } + } else { + return 0, newApiErrorBadData(fmt.Errorf("failed to derive ruletype with given information")) + } + + // set timestamp to current utc time + ts := time.Now().UTC() + + count, err := rule.Eval(ctx, ts, m.opts.Queriers) + if err != nil { + zap.S().Warn("msg:", "Evaluating rule failed", "\t rule:", rule, "\t err: ", err) + return 0, newApiErrorInternal(fmt.Errorf("rule evaluation failed")) + } + alertsFound := count.(int) + rule.SendAlerts(ctx, ts, 0, time.Duration(1*time.Minute), m.prepareNotifyFunc()) + + return alertsFound, nil +} diff --git a/pkg/query-service/rules/promRule.go b/pkg/query-service/rules/promRule.go index bb995de73a..761ca8ddee 100644 --- a/pkg/query-service/rules/promRule.go +++ b/pkg/query-service/rules/promRule.go @@ -18,6 +18,12 @@ import ( yaml "gopkg.in/yaml.v2" ) +type PromRuleOpts struct { + // SendAlways will send alert irresepective of resendDelay + // or other params + SendAlways bool +} + type PromRule struct { id string name string @@ -43,12 +49,14 @@ type PromRule struct { active map[uint64]*Alert logger log.Logger + opts PromRuleOpts } func NewPromRule( id string, postableRule *PostableRule, logger log.Logger, + opts PromRuleOpts, ) (*PromRule, error) { if postableRule.RuleCondition == nil { @@ -69,13 +77,20 @@ func NewPromRule( health: HealthUnknown, active: map[uint64]*Alert{}, logger: logger, + opts: opts, } if int64(p.evalWindow) == 0 { p.evalWindow = 5 * time.Minute } + query, err := p.getPqlQuery() - zap.S().Info("msg:", "creating new alerting rule", "\t name:", p.name, "\t condition:", p.ruleCondition.String()) + if err != nil { + // can not generate a valid prom QL query + return nil, err + } + + zap.S().Info("msg:", "creating new alerting rule", "\t name:", p.name, "\t condition:", p.ruleCondition.String(), "\t query:", query) return &p, nil } @@ -172,24 +187,6 @@ func (r *PromRule) sample(alert *Alert, ts time.Time) pql.Sample { return s } -// forStateSample returns the sample for ALERTS_FOR_STATE. -func (r *PromRule) forStateSample(alert *Alert, ts time.Time, v float64) pql.Sample { - lb := plabels.NewBuilder(r.labels) - alertLabels := alert.Labels.(plabels.Labels) - for _, l := range alertLabels { - lb.Set(l.Name, l.Value) - } - - lb.Set(plabels.MetricName, alertForStateMetricName) - lb.Set(plabels.AlertName, r.name) - - s := pql.Sample{ - Metric: lb.Labels(), - Point: pql.Point{T: timestamp.FromTime(ts), V: v}, - } - return s -} - // GetEvaluationDuration returns the time in seconds it took to evaluate the alerting rule. func (r *PromRule) GetEvaluationDuration() time.Duration { r.mtx.Lock() @@ -265,7 +262,7 @@ func (r *PromRule) ForEachActiveAlert(f func(*Alert)) { func (r *PromRule) SendAlerts(ctx context.Context, ts time.Time, resendDelay time.Duration, interval time.Duration, notifyFunc NotifyFunc) { alerts := []*Alert{} r.ForEachActiveAlert(func(alert *Alert) { - if alert.needsSending(ts, resendDelay) { + if r.opts.SendAlways || alert.needsSending(ts, resendDelay) { alert.LastSentAt = ts // Allow for two Eval or Alertmanager send failures. delta := resendDelay @@ -289,7 +286,6 @@ func (r *PromRule) getPqlQuery() (string, error) { if query == "" { return query, fmt.Errorf("a promquery needs to be set for this rule to function") } - if r.ruleCondition.Target != nil && r.ruleCondition.CompareOp != CompareOpNone { query = fmt.Sprintf("%s %s %f", query, ResolveCompareOp(r.ruleCondition.CompareOp), *r.ruleCondition.Target) return query, nil @@ -321,7 +317,7 @@ func (r *PromRule) Eval(ctx context.Context, ts time.Time, queriers *Queriers) ( defer r.mtx.Unlock() resultFPs := map[uint64]struct{}{} - var vec pql.Vector + var alerts = make(map[uint64]*Alert, len(res)) for _, smpl := range res { @@ -358,6 +354,7 @@ func (r *PromRule) Eval(ctx context.Context, ts time.Time, queriers *Queriers) ( for _, l := range r.labels { lb.Set(l.Name, expand(l.Value)) } + lb.Set(qslabels.AlertNameLabel, r.Name()) lb.Set(qslabels.AlertRuleIdLabel, r.ID()) lb.Set(qslabels.RuleSourceLabel, r.GeneratorURL()) @@ -429,8 +426,8 @@ func (r *PromRule) Eval(ctx context.Context, ts time.Time, queriers *Queriers) ( } r.health = HealthGood r.lastError = err - return vec, nil + return len(r.active), nil } func (r *PromRule) String() string { diff --git a/pkg/query-service/rules/promRuleTask.go b/pkg/query-service/rules/promRuleTask.go index c06d3e1135..fa84d80d57 100644 --- a/pkg/query-service/rules/promRuleTask.go +++ b/pkg/query-service/rules/promRuleTask.go @@ -6,7 +6,6 @@ import ( "github.com/go-kit/log" opentracing "github.com/opentracing/opentracing-go" plabels "github.com/prometheus/prometheus/pkg/labels" - pql "github.com/prometheus/prometheus/promql" "go.uber.org/zap" "sort" "sync" @@ -313,7 +312,6 @@ func (g *PromRuleTask) CopyState(fromTask Task) error { // Eval runs a single evaluation cycle in which all rules are evaluated sequentially. func (g *PromRuleTask) Eval(ctx context.Context, ts time.Time) { zap.S().Info("promql rule task:", g.name, "\t eval started at:", ts) - var samplesTotal float64 for i, rule := range g.rules { if rule == nil { continue @@ -336,7 +334,7 @@ func (g *PromRuleTask) Eval(ctx context.Context, ts time.Time) { rule.SetEvaluationTimestamp(t) }(time.Now()) - data, err := rule.Eval(ctx, ts, g.opts.Queriers) + _, err := rule.Eval(ctx, ts, g.opts.Queriers) if err != nil { rule.SetHealth(HealthBad) rule.SetLastError(err) @@ -350,21 +348,8 @@ func (g *PromRuleTask) Eval(ctx context.Context, ts time.Time) { //} return } - vector := data.(pql.Vector) - samplesTotal += float64(len(vector)) - rule.SendAlerts(ctx, ts, g.opts.ResendDelay, g.frequency, g.notify) - seriesReturned := make(map[string]plabels.Labels, len(g.seriesInPreviousEval[i])) - - defer func() { - g.seriesInPreviousEval[i] = seriesReturned - }() - - for _, s := range vector { - seriesReturned[s.Metric.String()] = s.Metric - } - }(i, rule) } } diff --git a/pkg/query-service/rules/ruleTask.go b/pkg/query-service/rules/ruleTask.go index 59b25f05e0..4075d9888e 100644 --- a/pkg/query-service/rules/ruleTask.go +++ b/pkg/query-service/rules/ruleTask.go @@ -14,17 +14,15 @@ import ( // RuleTask holds a rule (with composite queries) // and evaluates the rule at a given frequency type RuleTask struct { - name string - file string - frequency time.Duration - rules []Rule - seriesInPreviousEval []map[string]labels.Labels // One per Rule. - staleSeries []labels.Labels - opts *ManagerOptions - mtx sync.Mutex - evaluationDuration time.Duration - evaluationTime time.Duration - lastEvaluation time.Time + name string + file string + frequency time.Duration + rules []Rule + opts *ManagerOptions + mtx sync.Mutex + evaluationDuration time.Duration + evaluationTime time.Duration + lastEvaluation time.Time markStale bool done chan struct{} @@ -46,16 +44,15 @@ func newRuleTask(name, file string, frequency time.Duration, rules []Rule, opts zap.S().Info("msg:", "initiating a new rule task", "\t name:", name, "\t frequency:", frequency) return &RuleTask{ - name: name, - file: file, - pause: false, - frequency: frequency, - rules: rules, - opts: opts, - seriesInPreviousEval: make([]map[string]labels.Labels, len(rules)), - done: make(chan struct{}), - terminated: make(chan struct{}), - notify: notify, + name: name, + file: file, + pause: false, + frequency: frequency, + rules: rules, + opts: opts, + done: make(chan struct{}), + terminated: make(chan struct{}), + notify: notify, } } @@ -126,24 +123,6 @@ func (g *RuleTask) Run(ctx context.Context) { tick := time.NewTicker(g.frequency) defer tick.Stop() - // defer cleanup - defer func() { - if !g.markStale { - return - } - go func(now time.Time) { - for _, rule := range g.seriesInPreviousEval { - for _, r := range rule { - g.staleSeries = append(g.staleSeries, r) - } - } - // That can be garbage collected at this point. - g.seriesInPreviousEval = nil - - }(time.Now()) - - }() - iter() // let the group iterate and run @@ -285,17 +264,15 @@ func (g *RuleTask) CopyState(fromTask Task) error { ruleMap[nameAndLabels] = append(l, fi) } - for i, rule := range g.rules { + for _, rule := range g.rules { nameAndLabels := nameAndLabels(rule) indexes := ruleMap[nameAndLabels] if len(indexes) == 0 { continue } fi := indexes[0] - g.seriesInPreviousEval[i] = from.seriesInPreviousEval[fi] ruleMap[nameAndLabels] = indexes[1:] - // todo(amol): support other rules too here ar, ok := rule.(*ThresholdRule) if !ok { continue @@ -310,18 +287,6 @@ func (g *RuleTask) CopyState(fromTask Task) error { } } - // Handle deleted and unmatched duplicate rules. - // todo(amol): possibly not needed any more - g.staleSeries = from.staleSeries - for fi, fromRule := range from.rules { - nameAndLabels := nameAndLabels(fromRule) - l := ruleMap[nameAndLabels] - if len(l) != 0 { - for _, series := range from.seriesInPreviousEval[fi] { - g.staleSeries = append(g.staleSeries, series) - } - } - } return nil } @@ -330,7 +295,6 @@ func (g *RuleTask) Eval(ctx context.Context, ts time.Time) { zap.S().Debugf("msg:", "rule task eval started", "\t name:", g.name, "\t start time:", ts) - var samplesTotal float64 for i, rule := range g.rules { if rule == nil { continue @@ -353,7 +317,7 @@ func (g *RuleTask) Eval(ctx context.Context, ts time.Time) { rule.SetEvaluationTimestamp(t) }(time.Now()) - data, err := rule.Eval(ctx, ts, g.opts.Queriers) + _, err := rule.Eval(ctx, ts, g.opts.Queriers) if err != nil { rule.SetHealth(HealthBad) rule.SetLastError(err) @@ -368,18 +332,8 @@ func (g *RuleTask) Eval(ctx context.Context, ts time.Time) { return } - vector := data.(Vector) - samplesTotal += float64(len(vector)) - rule.SendAlerts(ctx, ts, g.opts.ResendDelay, g.frequency, g.notify) - seriesReturned := make(map[string]labels.Labels, len(g.seriesInPreviousEval[i])) - - for _, s := range vector { - seriesReturned[s.Metric.String()] = s.Metric - } - - g.seriesInPreviousEval[i] = seriesReturned }(i, rule) } } diff --git a/pkg/query-service/rules/thresholdRule.go b/pkg/query-service/rules/thresholdRule.go index dc0c29be97..5234e88a72 100644 --- a/pkg/query-service/rules/thresholdRule.go +++ b/pkg/query-service/rules/thresholdRule.go @@ -43,11 +43,25 @@ type ThresholdRule struct { // map of active alerts active map[uint64]*Alert + + opts ThresholdRuleOpts +} + +type ThresholdRuleOpts struct { + // sendUnmatched sends observed metric values + // even if they dont match the rule condition. this is + // useful in testing the rule + SendUnmatched bool + + // sendAlways will send alert irresepective of resendDelay + // or other params + SendAlways bool } func NewThresholdRule( id string, p *PostableRule, + opts ThresholdRuleOpts, ) (*ThresholdRule, error) { if p.RuleCondition == nil { @@ -67,6 +81,7 @@ func NewThresholdRule( preferredChannels: p.PreferredChannels, health: HealthUnknown, active: map[uint64]*Alert{}, + opts: opts, } if int64(t.evalWindow) == 0 { @@ -105,6 +120,14 @@ func (r *ThresholdRule) target() *float64 { return r.ruleCondition.Target } +func (r *ThresholdRule) targetVal() float64 { + if r.ruleCondition == nil || r.ruleCondition.Target == nil { + return 0 + } + + return *r.ruleCondition.Target +} + func (r *ThresholdRule) matchType() MatchType { if r.ruleCondition == nil { return AtleastOnce @@ -188,25 +211,7 @@ func (r *ThresholdRule) sample(alert *Alert, ts time.Time) Sample { Metric: lb.Labels(), Point: Point{T: timestamp.FromTime(ts), V: 1}, } - return s -} -// forStateSample returns the sample for ALERTS_FOR_STATE. -func (r *ThresholdRule) forStateSample(alert *Alert, ts time.Time, v float64) Sample { - lb := labels.NewBuilder(r.labels) - - alertLabels := alert.Labels.(labels.Labels) - for _, l := range alertLabels { - lb.Set(l.Name, l.Value) - } - - lb.Set(labels.MetricNameLabel, alertForStateMetricName) - lb.Set(labels.AlertNameLabel, r.name) - - s := Sample{ - Metric: lb.Labels(), - Point: Point{T: timestamp.FromTime(ts), V: v}, - } return s } @@ -283,10 +288,10 @@ func (r *ThresholdRule) ForEachActiveAlert(f func(*Alert)) { } func (r *ThresholdRule) SendAlerts(ctx context.Context, ts time.Time, resendDelay time.Duration, interval time.Duration, notifyFunc NotifyFunc) { - zap.S().Info("msg:", "initiating send alerts (if any)", "\t rule:", r.Name()) + zap.S().Info("msg:", "sending alerts", "\t rule:", r.Name()) alerts := []*Alert{} r.ForEachActiveAlert(func(alert *Alert) { - if alert.needsSending(ts, resendDelay) { + if r.opts.SendAlways || alert.needsSending(ts, resendDelay) { alert.LastSentAt = ts // Allow for two Eval or Alertmanager send failures. delta := resendDelay @@ -483,8 +488,9 @@ func (r *ThresholdRule) runChQuery(ctx context.Context, db clickhouse.Conn, quer zap.S().Debugf("ruleid:", r.ID(), "\t resultmap(potential alerts):", len(resultMap)) for _, sample := range resultMap { - // check alert rule condition before dumping results - if r.CheckCondition(sample.Point.V) { + // check alert rule condition before dumping results, if sendUnmatchedResults + // is set then add results irrespective of condition + if r.opts.SendUnmatched || r.CheckCondition(sample.Point.V) { result = append(result, sample) } } @@ -549,7 +555,6 @@ func (r *ThresholdRule) Eval(ctx context.Context, ts time.Time, queriers *Querie defer r.mtx.Unlock() resultFPs := map[uint64]struct{}{} - var vec Vector var alerts = make(map[uint64]*Alert, len(res)) for _, smpl := range res { @@ -563,6 +568,7 @@ func (r *ThresholdRule) Eval(ctx context.Context, ts time.Time, queriers *Querie // who are not used to Go's templating system. defs := "{{$labels := .Labels}}{{$value := .Value}}" + // utility function to apply go template on labels and annots expand := func(text string) string { tmpl := NewTemplateExpander( @@ -662,8 +668,8 @@ func (r *ThresholdRule) Eval(ctx context.Context, ts time.Time, queriers *Querie } r.health = HealthGood r.lastError = err - return vec, nil + return len(r.active), nil } func (r *ThresholdRule) String() string { diff --git a/pkg/query-service/utils/labels/labels.go b/pkg/query-service/utils/labels/labels.go index 52ef1867f5..b7f6fdc09d 100644 --- a/pkg/query-service/utils/labels/labels.go +++ b/pkg/query-service/utils/labels/labels.go @@ -24,6 +24,10 @@ const ( AlertRuleIdLabel = "ruleId" RuleSourceLabel = "ruleSource" + + RuleThresholdLabel = "threshold" + AlertAdditionalInfoLabel = "additionalInfo" + AlertSummaryLabel = "summary" ) // Label is a key/value pair of strings. From 616da8879003b0eaddd667e23dc73e1e83e3710c Mon Sep 17 00:00:00 2001 From: Prashant Shahi Date: Fri, 5 Aug 2022 22:30:55 +0530 Subject: [PATCH 41/42] =?UTF-8?q?chore(release):=20=F0=9F=93=8C=20pin=20ve?= =?UTF-8?q?rsions:=20SigNoz=200.10.1,=20OtelCollector=200.45.1-1.3,=20Aler?= =?UTF-8?q?tmanager=200.23.0-0.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Prashant Shahi --- .../docker-swarm/clickhouse-setup/docker-compose.yaml | 10 +++++----- deploy/docker/clickhouse-setup/docker-compose.yaml | 10 +++++----- .../tests/test-deploy/docker-compose.yaml | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/deploy/docker-swarm/clickhouse-setup/docker-compose.yaml b/deploy/docker-swarm/clickhouse-setup/docker-compose.yaml index 1003dda437..9fbf9e0632 100644 --- a/deploy/docker-swarm/clickhouse-setup/docker-compose.yaml +++ b/deploy/docker-swarm/clickhouse-setup/docker-compose.yaml @@ -27,7 +27,7 @@ services: retries: 3 alertmanager: - image: signoz/alertmanager:0.23.0-0.1 + image: signoz/alertmanager:0.23.0-0.2 volumes: - ./data/alertmanager:/data command: @@ -40,7 +40,7 @@ services: condition: on-failure query-service: - image: signoz/query-service:0.10.0 + image: signoz/query-service:0.10.1 command: ["-config=/root/config/prometheus.yml"] # ports: # - "6060:6060" # pprof port @@ -68,7 +68,7 @@ services: - clickhouse frontend: - image: signoz/frontend:0.10.0 + image: signoz/frontend:0.10.1 deploy: restart_policy: condition: on-failure @@ -81,7 +81,7 @@ services: - ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf otel-collector: - image: signoz/otelcontribcol:0.45.1-1.1 + image: signoz/otelcontribcol:0.45.1-1.3 command: ["--config=/etc/otel-collector-config.yaml"] volumes: - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml @@ -111,7 +111,7 @@ services: - clickhouse otel-collector-metrics: - image: signoz/otelcontribcol:0.45.1-1.1 + image: signoz/otelcontribcol:0.45.1-1.3 command: ["--config=/etc/otel-collector-metrics-config.yaml"] volumes: - ./otel-collector-metrics-config.yaml:/etc/otel-collector-metrics-config.yaml diff --git a/deploy/docker/clickhouse-setup/docker-compose.yaml b/deploy/docker/clickhouse-setup/docker-compose.yaml index 3b3403a480..2892cb89a2 100644 --- a/deploy/docker/clickhouse-setup/docker-compose.yaml +++ b/deploy/docker/clickhouse-setup/docker-compose.yaml @@ -25,7 +25,7 @@ services: retries: 3 alertmanager: - image: signoz/alertmanager:0.23.0-0.1 + image: signoz/alertmanager:0.23.0-0.2 volumes: - ./data/alertmanager:/data depends_on: @@ -39,7 +39,7 @@ services: # 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:0.10.0 + image: signoz/query-service:0.10.1 container_name: query-service command: ["-config=/root/config/prometheus.yml"] # ports: @@ -66,7 +66,7 @@ services: condition: service_healthy frontend: - image: signoz/frontend:0.10.0 + image: signoz/frontend:0.10.1 container_name: frontend restart: on-failure depends_on: @@ -78,7 +78,7 @@ services: - ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf otel-collector: - image: signoz/otelcontribcol:0.45.1-1.1 + image: signoz/otelcontribcol:0.45.1-1.3 command: ["--config=/etc/otel-collector-config.yaml"] volumes: - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml @@ -103,7 +103,7 @@ services: condition: service_healthy otel-collector-metrics: - image: signoz/otelcontribcol:0.45.1-1.1 + image: signoz/otelcontribcol:0.45.1-1.3 command: ["--config=/etc/otel-collector-metrics-config.yaml"] volumes: - ./otel-collector-metrics-config.yaml:/etc/otel-collector-metrics-config.yaml diff --git a/pkg/query-service/tests/test-deploy/docker-compose.yaml b/pkg/query-service/tests/test-deploy/docker-compose.yaml index 794d398826..d6d9b9c1eb 100644 --- a/pkg/query-service/tests/test-deploy/docker-compose.yaml +++ b/pkg/query-service/tests/test-deploy/docker-compose.yaml @@ -24,7 +24,7 @@ services: - "8123:8123" alertmanager: - image: signoz/alertmanager:0.23.0-0.1 + image: signoz/alertmanager:0.23.0-0.2 depends_on: - query-service restart: on-failure @@ -59,7 +59,7 @@ services: condition: service_healthy otel-collector: - image: signoz/otelcontribcol:0.45.1-1.1 + image: signoz/otelcontribcol:0.45.1-1.3 command: ["--config=/etc/otel-collector-config.yaml"] volumes: - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml @@ -74,7 +74,7 @@ services: condition: service_healthy otel-collector-metrics: - image: signoz/otelcontribcol:0.45.1-1.1 + image: signoz/otelcontribcol:0.45.1-1.3 command: ["--config=/etc/otel-collector-metrics-config.yaml"] volumes: - ./otel-collector-metrics-config.yaml:/etc/otel-collector-metrics-config.yaml From 8bdc41bef08d4a7c4b740769aadb0fc447e356e1 Mon Sep 17 00:00:00 2001 From: Amol Umbark Date: Sat, 6 Aug 2022 13:40:41 +0530 Subject: [PATCH 42/42] fix: resolves issue for migrated promql (#1481) --- frontend/src/container/FormAlertRules/RuleOptions.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frontend/src/container/FormAlertRules/RuleOptions.tsx b/frontend/src/container/FormAlertRules/RuleOptions.tsx index 8794f87b2c..968ce695e3 100644 --- a/frontend/src/container/FormAlertRules/RuleOptions.tsx +++ b/frontend/src/container/FormAlertRules/RuleOptions.tsx @@ -156,6 +156,8 @@ function RuleOptions({ ...alertDef, condition: { ...alertDef.condition, + op: alertDef.condition?.op || defaultCompareOp, + matchType: alertDef.condition?.matchType || defaultMatchType, target: value as number, }, });

g7?SC;VTJh!io<+wFr~&*8`s)` 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 literal 0 HcmV?d00001 diff --git a/frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Empty-name-with-valid-details-1-Signoz-darwin.png b/frontend/tests/signup/index.spec.ts-snapshots/Sign-Up-Page-Empty-name-with-valid-details-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..5875c39dca72e449e40d830d74654b191fd18ccb GIT binary patch literal 71414 zcmeFZcR1Gn|2KTn-cwmoMrB09NJ3jDLb56=LdeM8^r=)zqEI0fvI*I>H*+4yi zMu9?EfnRCAuU?5C`i?gsKmN)lBPt=LpjbCg2Szp5Tbq_9M zZg1^Pp?ml4eXXpltPZ76Oei8EBE>~T-y<%Csj07Z<-TrZMT5Ufb^iSM^K&1cP)(Ql z>ZL#2eDdVU;<7TOD_34cNz=%mZB$do-%(;&<>cf7C0v@Tb@6Gtr>Cb!M@P-A7$}jO zX?Bx8pis25m%Eam6pHJ^Efm_nzwSLpS^f977xXl{|Ni#>)jw2L*+~Y#!l)|T%WXZw zJNt>=uO%hYvwsFI$;dp`*3nUtmv8MI#h=J{Qa0mf46?Rb0y6@RJ!kzhi>VMLu=Qp`7u4#JyDah zP+i?gp_nPD(yqtMaF6sSmiw+=9330;&@nYNJ)oYh7$|C!-5e?sUw5A4cq&(ye-{qx_Cp_lIj_ z+4oG1w0rZFW;^_;(=X{S(T;y^-)wkbQG185a7xLaOIzp|#`GAYcDtH6%`HWxQkBHNrCarF-@28J>i+QI4~ud!m3L)bW&TPr zR|KgQ?4HNpu}eO=QQ~{RJ7j)#vTwL8k6ehOlT(sj8Dm+XsEW9__{><)VzlUB>S;lv zpU<02YQ8?(mvk*}WsGY4=Li=G35l|oM@_O5xGJid72MtHw<#xcv^ z@`eMQcGmg0(+R(vxwB>d!YXC21UacaJv}oEvqKZbJaI=Su6iY3yLQdK>!tqoEnD`u zxVY2}SaWi68dSc&Fw=Tx(_`yI{qmoIHqBhr-kP|eZ?DCS)EtJgCbzS&#D4yKYJOod z$B!edC4MM-RyObcCY2K>TrmXB^Ajo;ULHQXX3ZK#p_?zn@k}Ub%@S z`uX$c3PHQfj*L!Ds>sSdkqtc7*{eWN+_Dg{4(r(`_UIHhH+RKYxrC;nzuj0@gj|rg zcL-*=x5$hAT&?-+KuVNSl=8W&QPteS!oo3XX%(w?JSrEy@%==5fyXmXPtP6v8oWKH zTqp8(Y8L4wG8iA&@n~*tt}4w!Kjuo3)UuW9L?YJhGgR;?fkW3bHjPZ zEV>>aKYsjiw<6{$>`!&1(vg`1*<|8^=f`_0J!Z2S`!hzxMSDJ%W_pUxoKG^UvF>Hx zz59fi!ym=5t};Q}VJ$j3I;C*q^XDHlyDU0|F-9v#VdTPp1WQJp^I)85XjxGHwZLbh z=@>I*w>_hA=taKv#ew>yB-;^ftG=IQ5iQa=4hBIKO5^Xp`&UXSOm-LhgRezJX0Hxd z$8TT~y7A?~7RE!`ci#mE2gcUj6v7vB@$t!$WrQ922BXYyQq9~vL9g`1+msgP2HUt+ zY?bP4CkJW;#>Ip23A4yMvc^jM_=T-^#cJkcpE`Y7(6sq@*8HD_g4CBUU%nExiH)y2 zeYPO8DnGGmFniV{%m}N_&vMUh^%Rr9l^dCF+;zc@nL%y&sP&0f$M+>h-}k^(<=&%o zZ9P2^RaJ_{^&hF4jw5FyjEiUcISfAiv*O$vzn3o~LZ$r-Cwi+3WYXL=FfmRlc_owU zFg$AA{{nkGj6Zwo)W*Vl`O>I(ik>WDu|1d3*>v^wjj-hF(=5V991N4L2x3z>VH=VQ z9Z9r4%1nOg`W6_~(a~YV$b_2W!QhGo7_PYUzWP47*O|S}uN_CJoE#kVL7GkzN>l|b zR&pE56;O?joXQ+*$}qxjs5=)84I|gCTbJZGZO-1fX8n4_IE^e0s(OZX_3ThiT#)k& zm8?w5JukR5G-t4r^`Inx2~4zi*%91%Dwyy{7{$IhxiP zOH}9ko`3l8q5bIBeI5r#f3<8td*8eK z?_hO*3q10~$ruVkD2d`MSZDKnyo$Tl&*X_co}^@1T5+=}y}DK`StU;6N}`^}%;b=%8vn-U?tW``mM`%5`uT;S z`SdnB4EbpmQWF!!GJ9b)QSQRCJ)N@nwrU1Gb<^r=S~w0;wnYQ z#AL**Ig_0-TKw&s^-SaY3ru0<`A5e1l;#FM%}n$ewSB%<&>eO0$06xN%N_-GO6KCi zENLd}{Rs^NGrdu99P|8U>Eqd)T!#+*SWRJPXOH8e@RnCp<4VzF@{VR#6wuHaIG~I% z72e;(YMrjEsv4e|c^oZ7W9(+puh7DLzKzRhClZyW`PW6roG!&bb|$9UgL7%-Ete zKbf;wjpgd&?fniD5s3odneOTS7%ML3jU3s4?HIk(C@d zbEA(clO72l^on&Z=*-8K{4>y?&#alw@HLdX;t#4ZfgK@>WsfseM`S)%e6EnzAG{nh z*RqR3;rM&)w?jfW1PvK$4vM_Lb!2own+&^5W3d)fE|tZg_L@&f#Ubk8HeRieBi}rQQlA z-DT6JO&0=>RUch!yU)s4`1R{oLtrPA?f38U(=#)SZ`I7qK8R1XE=x;G>nUV)sj7;&RMKSK zS?oi4xW_D4^MHzXx@C`czlLLf?IG&7ldbcUEphkO?UYL2?DjMKV*9Jth55WY9-)f& zTRVhKtfAyieCEr=REAsfXN`NuUpuFz^@i-~3oj0yoNTo4EO@djN={T-O#|SbI8!J76A16rNo-}oo}H`Sm}XDEXR&Ri z5j3t>G|iguJ;XGG&z8DyK}k>Vef*J_GQG-wR;;tEQMWO`zU^(!nxzZUxy(J&@2+oM ze^bb5_|qyfuB6VB>Oez7gLW>gr{J41aC_OR0BdHHm1OXSstg;`3qj&d^rCzBp7Rc9 zrkftl+tl}P-)ni4PSQiu($r@co4A~RdJE_lZx=MI`u%ElIi=M;@w|CzI-vz>tQRj{ z4CO0~SsQaT6?WRA%sS#Vikt&R}C&dS7e?2dV3q)YQ~o zCMkE+tysCTx7|}ByT78nzyIdM?;oe}*>r{tvFf5|ghL5Aq8Tb#IG*P zOU2*TcuFk%{`jS)&FnXJ!z%#;?@E~z6kOlboakuYtg&yRoP%+;=UVc+ixs@|ZT|FM z-oSA9iz=Vf$i(UU8+$&jVinN)t`suxWS8jpuSfjcf`Zi%3&4X$=nUtk_Nl)(dCa(8 zAnc{R_js9b%k#8&$;;)xejN(C;Q#*4s!hiNGp6V%uKqMfD1iRXr(?U<=RN{&jX)Vg zL#+N5D9WSzNAb*=yO~*8NiK^ETifIgMO8=cz3}RH$Jb|}E4}=H-7h8?RudA7v5R6% z6eyQi%mj1c={dFePwui!&+D>*LnAMRJ^3@(bX8Bj69oa-q__0tkpj^XZt1f@fgFM+ zjjDr#gU8HTPlP5}Sy)_pwBvx~Xa_Y=#NvHv^4qs>Bh@pKH!>fU?=2s?Vry%=A0Q7a z0DwNODw{?{XXS1!=jEfoPYlL=Q(P+Y0kVdu$+w*l|pG1 zez3#~!`a#kJ#DPk;4}IOt0S)$3^cpR&;Or?|Cgx`xr+AVzu(qqI9w3&zpzx&2t?0U z!pcp3Qe92Npj=07ZSCtxz6&a4b&2{$Aje8Ve}J-;67?=PjpXknfO4ogtNP8!Wlr-G zHA+Hz@g9%IOS9_pt*q>Vot>TglPA{4OygBQ+6*;w@0y+N4ypl9i+J(k1^2F1SOj_} zm*5Qdt-(eSV9J=r0gxczyGjvICPFuUi-Mm?oj)J08jnl*SAp@Hnj0%8{I#RwdXrU+ zy19)_4eI!KqeXd7OiHuDv%MEMsOZ*}D08s^0nAhdRn-?=r7wd4V9_qQ#KhFWXexoM zIH_^jGm+q-Z?Nan`)RLjN*=|ATVsKtgQ2Wnv33HVPPxR)4##~DA7yoX)w)ELK)|z zVxp8B9W#?})@k45IDE7Apa+ZC6*2qq@2LE-EgNv{jU21Vm&tQ7ZY};D|9AndX>%L)iWGJJc;d$?W z?%atQcP68vyxbK(!na05MDzlAzchyGA{~$+z>#VDY!fC6twYYH*)EKChjiz5$ckF# zOK(UuIKD8|ZrG3<LHhAMn&U8O0w_E+@0=ebEvj;}ry`VGnn}*QH5o+EzANB> zsJBKRGsbuQ<0pzWI(+q-S4XNg4?ge3DMdxpF>f{X0>Q+(n}mjA+3d||8tgTvw7&0J zYI)3o$E=DWKZdiFQkLWTFYJ?$(8S>1g1|_j2(J+StDNEYH@%zx_mUQ0{JZhhfC;f~ zJMn_z(fZyO+%`H|1_(SoeLF>1g!TlkUNQ2+2Q$unL5cuk(9>M~n`2VkxcK?yAl=0B zt;oIbm@^lD7OtqFp>fxRB2P_7OvDEc^d6=(b}X$={3~S}I~gSMlKERX@Y}&dv?uTb zuiP*H$se||0Z9c}LGeky-apb_2u<=LAH%GaNk=_}a-uFemXCZ^s@HgLwRCfHbA7s% zQCiNn&70qlUPkC>PEHQgC@fIAojb!)n(d`gBszP;(4vXL^DF;RT=E>Z1$zy&@#4Q4 zu-ctfEVd^uy_dNtCFKrO5{hC#*a=xp$EpQ zD3tw7(yrK^t>yy_DK+me_-|)oiu(QgM%KbiUxF&HcL<}Hk}m*6{92UuNGl&T^Rii8c-H7=_}~6JN-3B=(-0n<1*vmE@Z*NwGouzK8`}fniLt8Pf2; z=Q#Z7{{aS9VijkaIpU__Fd!H_08Bext)j^#B%}->mup{O+1-v zTm`(c$6mcQ%QK6LF~}+lf?g!WU4ZW7IR0u^Kq*B}Tq%o53KFfg+^| zfIA%pQ0ZNAQPKIV;m_+ZDdd{J1xdu+YA=B6AnP5XALOJAHOU@}PCzS{LZoLvz@P4P zJOY4-R)dX~ExJm*P{E;)sdi;a?eyIWsH^T>6?0XX4C;y%D~N~yOc(|c7W^?Uyj(9a zLei53&FCo#8i$RIO&G-#6^dLlL8P62nvnp1S3chG0&{%(;srg?6sMj&f6f7FiI$U7 z6;zp@1mRBBWu`KyV{kAQzxRH5xQz&cd*xm`PUL{7yea;$oE{^}rxd3lb~#4b2@D_7 zgb!K8sGR$`xJWa@)&D@rM73k1)_=Hm=g^~=T5nG2abV>0-egrmay4vBz2zN3-dkJ6 zj+KD6>&@W=`R7WeZ9I$f)HQ;X1+4p3AuZp?b)_l(`t?W4;)0FSSeY>6G0X7m*+Egk zo3-*IBO}n+!$oo9#7Y2QHym#LHxH}@X}HlY6T?t>O_4x=<40>E$9R_JO3_4 zBEiCclE-?getUXVetv!r7UPjq@c;#6ZlP5Z0Zd;0DSBk!Of8hXTWa$1T6gbxkApQc zO5c1$MycQyx;Xx#8sEM(32Rq|g@xrx!u5x@zBM#lZEI`8pt#Rs);Xv|trgnH^?Hpe zFPe#v|A70Xef-m>n*)#D`n-BEWZfs-9OwCf`gy>jf)UIPkF17J7j#^vRw{U6B@6Fvq{#3GIi&vY}iLsZ>;QV<89c-*nJHC zu4;oC{FrQhsPbVJKvSIc>T|r9pIiOy?U!O5=4V?L`2dx~raPW>Hh1J1CLQzO{94Wig8*0vl~~e7p({hxA8L$Ego+lcFGWGj*d@>MXwl^(K8Fxq*W^J2|8>IoL!n zG0?-;HZ!6g_5KLH4@>bQO5)+6iHg}7Q2k&+p}^GZ6ZJg-985ADJ{(UrZQ-MW)dxc$ z<)E(JxX~AK2Fd{^)${o1gLm)Vjn^B+afyheH97?yw^M*9K_3sedw!NtmX?y z%X8qsg*>+nmGJtiQ4Xz)loP}3)|H5jUY<7^_br;_4In-g2;-t`MwVi4=?Te@#6;o@N?*6*r9?h3yxt7uK6vR zK!^C>A($hh=1e>9kYGvA-a7ptAC7sLb5*W1%LMSJL@y(xma!ZBgKsiR%KXYd4!u=e z8+IL2#G+HMwN1^Q>E!{)Fo0m^y!-Oy%!Sv- zFGDCrMIl4@qY%rKn50|+0*dHeYa!ulYrnf>Op4+B%tUpHsU~p&H{L%D)?`1^6IS9l z2oxpA>s>tg4#Pre9LK7XYBGCw`0TlJT;dC1Q8Om+;$(xw)qm}Bfk=nDtwe{5jYuZT z0`@HN#+;`+cVce+X18RBW>P4BvjBFD<|PM?L8Kmu&Cp(0Sg>#R5GEEQG+>@Xhc1T6 z1^qmb()f;)UWh}Xe{9km4*bkEmUxD78-cmu!2_4XNT2UnVHXheU;x1)!j_q z$`q@{ee|d*K7ns?b{UPLOyDtegUYbDfgBgzktH|oo8Y4Gj$Dtwn>_WJ8sFoRZ{K3a z19bWxWwknk6b5EEf(8R4E-(GknK!A=mdHfQW72RyAE80UjAysEw|jU< zapyryBsgFLtGF5*pi8LiWQy~@d{L}Nvu#bey#$7H_6W~x)uOl_@ue&aU;jV!j{nIx z0k;zLQCNj)>MJQP{z0uaw)2_jN7M4;|)+tD&C5ig$pkY04{m`KZoLY^M8if|F`%KS zL}L*)IG;mVQF=FEKe*Q|mO^!N z?TZD1gHH1kk|`&Z;68LJLG3TA&q_-6!58!ch{am_c(d*>mh*n#Jbz(RWndpp>bf1g z-%*nP%FE~hsN9ZqhhW_)Dk_G+`q{sKe|YH(kY_Zg0C^{>sy*;lXHO3o6?Vp9L(MGv zBCDdMgq}A4ZeDFqS$5jlGZNIvfLGSpE?Lj zTsN^!5v`Z10IMQ1GjsgQHo4!8X%_VvHgUx0#5EIJ2gMMiFA84EI6559;lm1|HiK2j zPjFIUpem}V1wfJJ6V-!pN<4XJvT&N!lbbHdiG@1P&qRFqAdfdFB2oc}@|IXA-eAZ# zh5YUR^hdb5Qh)%_`3b0~2G8OF8lRtP_rypmz;zTvS)eMQ?vEERnUY)y1f?KwO~5`2 zB4Yp)`Apovgh*+vAxdiG8QhCr`Rf78L6U<>xc*f)C((M~3Q2)f+|y0ivuBT#tSk(i zU=Awc9*h#snMAGuwD@Y0V)Xg$nwjxRxss%4o4N#D0z?3W$t573@%{``MpG=S^VCVy zUnSfuhXE2N=-+0Be$So-P&Pk_n(G>Xf5KR4$%(O-ATIzt`4#!R8a!rP3&bZH>H zAK+F1P7{C$y<~lGWX+A1q{CjUMs<(T$eMAVfUcvqf%XLMMsW=Q7}(3PKqIh)mo%-S zLzz0vqRbm11#oe2oFVH?VsTn-pf>(Ayrj(c>3d}Z!U0?ifazzt{7t3QTtHAbskm+2 zrjOyzXf8Rq@~!@NIXF1Nak<{(XtJ=h%<2cMsTHuNIH>4h&n(;K?|2hD3QBW+$$-YC zY9dd;MuFa-2pZWN7j!(p7CFO45LjT;hS4JMdz~|}H zHvl{awI8l|hd@MB_f}L@-A`3%tWFWYh$Bg)0)ybO1!?}{+fBqKjZM@MvS*R}kW>R_@2>V(-7N9Uh^XmJD5gcPDw z0XC}s%9hH=Nf<$bbQ`}p_Mn+%Gc?jckG{UMA<2dAvC`W5e9so`u(h|K_x#;66-p8dM-x{RjgaH<|1@h;EziNPCM4EUytVChw{La zWl9O(@8aSD$(FcTkkn4lU0bRUCbs(JudAWS^E-%v4#KAJy?A5z&E>B6VHSZ>!-a{&zL#xl z07u(%KkqHlI6djr+VQGY;PZV#EV$qat-s@!3w4oXo(SC&weFWs)GH&w0MMBz6hts( z!@7h}Eb9)lqhyyL-$ObW`b;_$ILp>t8psBxyh-0ApU{wEs)C(DqLSEfC@WuqBCaOi zyom7Z!(;Gbkj<+`BnI2w_evDN01{^G;N4K+QNs;zcSxW>JWAS5M;D451=ySla0X!p zB#i~G3Q$eAV@GdTkaGnHnkH2NU%Q=wflE_Ull*^_85qHF>Gx52*t1DZ@yPC z%iaozhVUIs@3C9I?vlVnvhh`tLlP0Wtp6?GB6jISM$5cx#l6c80949-iwnjLhDi_% z>4ydrRe6b9YHn_hI9~`vZH2z`a&qK`0akdi7Zn;lnlxQO@k30Lh`H$MT$UR=)RuVM5FkECS$&iW@C(&FvfEMIa zNcI4U`K3B{6m20*6TG?N-Ub=y5SQMSLHK5+D&S8&F8@<;kKu0qKwov#K72Uor??>R z5VV{=->W7U0Wi}BQ6E~RmiC8P-ud(A-iG5Gwd24Q!k!^Ow6Q7wLdB}a}fVg<`YML13D1go4tdF>lR;k+M#K92$ z2)UA~fTVy`$$^w`z(#zQADSyB6q^WW6d!Yd%ydel`6IAu+p_i@baV#guf=4$-SwBP zT(N=+1p=f^W!D0AF(ZYbtxummK^0OClMSqb7#qdUjPKj}@3=irwiH4VPhx)j8Gvy0 zyR+*^Mh4A5mdU=qAw>>*kVsTj_y^QijpQ8n^A|2uqeB@w^6~OkL1iWIh*)PoubL{I zJ6E7I83YtKHD!ynO_VB9MR4WuG~h)ibU&O=PtKu3pIvh5u+c-fcd-LWL%db0NV$KX z+@XgJMWeW|P_nx`D5tA6?l_-@w;BUBEXTvp97@3UAx7t!@g8obyp|SCMEE&{#Avlx zGMABbxUdJ$Jsls0B6X^+=hI~NdwhAxB`U-OFsQSV9f9T zFO1oQq@LA5yeX6g3D9_Qh5s`>@c-;H1mWf+p&fkA0~V+*p;p8aLRF2l3_xDzcT$bU zvogJ?idz^GzNI^L<^BPlL$cw-`GL4CKJ%NMxL8QWsvyA@Rbp}2amuU-iFo_|_(JZO za#FC6yLwt}DEQ5TRYC)NL>aq^$2g$k_~P6c$)hjK)a3Zu&ucEu_+`U1n=UH%0#A<$EcgG+iN|M#Uw&+l?QPMsfWv|7qA~AXeZ6h;G}qO9t)F3$)|Ud&5Q(PeQwZ?8#Z5nvtPmfS%P_@HfOD zC9G4ho``zb(!|=TOoCt=h0gfuxLtyVU8j#i&QMp^dsN5v#C&aJ^izMOb{eQ$@h4Ww z$gg~r{zbz=USGiVyLayz^@g#vQ!An`ClbdftlKVT-tT8uMNnP!IEr}WN}AocRc>`i ziC{YurANx2rwU#Byqt(vhBdK)w+11usXzfk7(NPnd_Uk72_z(MK(>qop9BK_=rn5$X^rYV4h5n&t^0K)oJ&IY zZvg9uHj`L}fb*O!wE_z51OiM&(1)=PkJ%2tDez>CL!Ol2ag;?r4&&MnCs7uV;mgoK zj+ta=5fc=cVTJ;Uux%U^VD!Hp$kAj#!Pq&7T5-`|$oS)pA8a1XA_^o=3M@@59@H(9E zJv-a?QvbCV0^m3>F@cocY0T&08F+Nz#NPr~;=;fJLGdS|;mc3ku3DNFV*LO|ASLM& z7^wbh2F8KU>({Z+7uy5iHG`2`bqCrI8)*g-55YJjn@Ef+urJbP!N7XRITd^e$|oV) zI19l8x{M(1&xQF}62^vk&BSCsH9d`fXaH_a$SPzHj-J?z!NdQg{t^PFfu@g;s^70) zzaC2f4J6dvga_xvAvRHUiJX)m5{X5(EJCXh;I>y%&E9etAnsU@H3Y~4Wcie%I{I>@ z!Lp}>%^`$MPC`K0Bx?#l;0Cg$1sRCRF6%@i0lK@w#l=MkAFleGCyP^l*%_i+A$e!j zQ*jn)azEoqY#?qljhuydzyG{<6-;6eh9l#|p82>%aHxM% zEm5$q8T{YQA(?Jt=!Zf>=Cz~93;t&!1TE)bh9i>~vpJscVSUrTn^-Jv+x{HqMjs>ATgR@3lI+{EYhMjQyI?QK?2(EwAM#ESS~M zy03j#u{?yjg|6r9F)!Dr6t}xuX{mdS55JtA_bTJv^HSiS+h#ejJT+%uTYR$+*Vo(H z*~Rtg>^IRx!Nv?5{u5q36$m$2OI$TGJGkS~J**xmC(?-7^;Adg#7uU^s-HP?CerOE z1xKN_cyTKoZAwDEl%*VtP@K;%s>qGrIwPw{1k2=T;5Y37?4LmiCXaIvVP&wjn?zge z&7rKZwKNP^d$Rvpn*~yR_ujpcKMkhOo<40g8LEod236=wd3jt_pETM9)0^F2j<-N7 zy_Kd0(L3k->~wkH^XJRuyN>L%pQu(rJzfUuNoQehI{%3T4jMJ$G{&Go;XOV_C)DUh z7e3~Pb_=rKHr~&h?`AU1+_Hc5vVAfy(_Je@;)9PA6J+au^-wlQ8wUu^v*p-MyI}zC=HhyY4djj1 zzKxl=bQPR_7vY{7W5958d5=p;+(b;dzABpLnbN989w^WJ%nY z+tXPgPx3}>L`ytfWpi4*HO&~P#s(x@q<;kcC%AiMc_=WD;4zhe4 z3;ygAG|_8GSEw>F9f%@dhm8qDE{`xZTQ{1+vixP)r||#s+RVOVHM9BKZ8yn`hidf5 z`N8nXkI%iE*@@LRTDkh~q?tn{JGyQsUkJXU)L+;W>7urQfeYZJAWu7R{xNg3 zm?!klA)7%pIQ?e<4KBmZ%n-v4&AKxTjF37~z{DWod>oF#8x*PW!KT@FhQjpgWnLa$ z5&WYFDd_&@&CAxFiopT^<&#!a+>Yr!3}W;PE4NTPemlcJDvnN|+ZBdTpH1O^P9rno z-efdA+SzE`VC;z5kG_)R4sXV+@`A9}vuAn0R(!o8QlmI@5(rwkW%K4%lZKB5+scoR zt;dRH7ZckRRb31XKB~i+MNA9s2P(DscMcQ5KJ{Sm$OvSEouf;(mDR@wsUBIUlyX=eP>4S~bx zG9=uE_~Oc31dGlg*?8l}yA_^df9PeyDzp5JueoqeTn+!=HdZd^Up81qMNCGaV-DtX z0*nDbOFDFv*5-SYpsbL^x4)!4jw5e_nPajr&+PySm&QVD4F5bbF%gP7`qbK$B^n4~+>F8i>pY!s-w2W@1 zr$4W(tQ=qFeI}$!erb-(=^~y`J|qAn54@gnzGmKT@R&vH6{-gO|1TSa8&8;+@IBheuROI6^R7U{NJAEYIbE9f zIg0y(BG%LFl(UB79!pi4)U_=UpSI&4{(V(xt)-kL!$V$%2Uoa~#k2GheDSvqlDBv< z%Fw*|?{7K3;XOtE?;FmX30e8?f+O!yxWo1T@@q;Jn^utTIbWuI_~nC#4?i_DWTZ=P z*^>57_xg3M#JZzay^2T*~`FH;)e6#lH;#{{x zRg_BHEADN$s5JAJkr|Ywv4*^N2)7BHsL2?vT|3OYPQXJ{B7ZQ_%3#S&*|50`qj7%Y zOh<9>-?@lvf(m!Yzf9(pz(a5qP?J^UET;H$$2NqBOFkM@)}o-q$H!NzM`C=7=p_G6 zs3K2dos5>&ZbYiOfn-*+;+vq^c;cJT9H6Q0S{z!OmjK$iaPuZFj%?tn7vG+|vy$Qn z`?S%r@&e8x`XD4TmXb5?0f3cgH>QU`|Lw2W*~GG;V?T1_ zS&+-ZOP9HJRtoCiS}31vR$X0P1Z_wR`;Z}sz|$beq71nLn&tKSwJgfF9ZZvHc&2#R z!(KkVCs4^K=oyDz%BaRDQ{Kx3$)bZzBR7fj_Tzmun;zw#0&bx|wpzYo#Vyp?crY^p zU=UnSYkwm8;)wo6j8n(Gof@r>MM6ODcsRG7j3z3i%D&+2$t)(sA!hX)|Pk&vn z-EFe!`Mm$d2iA*|E{laY0`&!l?C1qJl>hrY5d|wR`K<@sI&A3wJ0EuZHO~|X)`m!@iFidn%n>p3;LsGyAe*e z_Oe=u?jq&vERHgpt?0>*on}ro*r~NNRMt83f0z&->Ed^pUMI0I#eOc>>#Av%518am z(G&n^3h(8FFHOmq7G&_f#sXx+MCX{AJ#2-@Ya*yOE+C<%2*Y*vaP?hjdg^Om<28@nucjCp#cw@88PB zRt@c1b`Bg1JTI@Q%RG&&T=@?xTc+1GusZY~vS~O{e*6y5(WICstAy({-E02oed zXs`fdz9`cpXAu=HU9xMtx08E9jaX?oQ4~7JTg3J{y1S3yY#&jmCP&tl=X@}RD+$aSgtN=TKosrfX%9R+I+2B2 z`35L}LYm&$*dchKbjRb#_GT@iY+uY_Us@qvWN@^#e{p6>VqWVYv4qAVax8?UwhN)b zeVm-3Uo6(IT!sw!H3&wIIH*X$(BA=syhElKAuQ$JuW_if4ay0pn;RQjb&T2aaR71t zIx$qKuf@f{@!S0RS=bb^1Zd^YaC3g|KYLnY-G=#?s)^)QQz303#zPFbC#Gw(xF4v3Y+m5oR#>Z5sME$md|x!(-xl+H)}iqbXYljSCw3Dh9ba%+im(HrAhg z$!q<(?7D;D-jQUr6}QnjBGAi^01d$wdYrGlM@YyQn#@yd*rrfG-Un*dq&rHUTXy&I z1+|^OPe*BKUU8dBU3Nm^+0KGUrr#=ipZz$oOoC^^k=HU}pgj4AkT0`DA;13Nc#-0q z-x&`cR563G#Z*0zz~FmDd7xNuUHp*$NcP%-<(jeXncb|~w3#Eq>h%|$JFgvP3~$$Y zuX+98MQ7#g2Xbv;&w8$NEhl^mFD@_g-p}RNLoPqvq;9n8dz9?%3$$5LW@mFEb%Ypi zZ2R>n_}YGbi(NOR;teF1<{IC)bw6708?AKH5YKy8KQH^u#BgRzi~CAZQQ8ap=d)Ty8|!3UFd+cCm!wAT&cOO^uU(eYVAf5gXYC$4JAcoZ8XfK zMSGilgD;#U1rRU3Hx&5}?rx*Q6?<#_GMIk8yJ|~u_WN|qg-)r&@SWXL{vE+y0gf>% zmY^uARW{F%=?t5K?wrgylgM4UzxTF{hg;~nx!miWy*&IUomquv`^+y|A7|}SAaowURpY8P~l9++Awm#*9933cJ`KJ{YbjO^y_}l+D(g;e@Zo8tXEmE zz*jEcc>fN09)b-68Ie&A#}oHK!X9WJu#W?#i;|_VQO*kr@FczCUhsAVaZt z?_M`Jl2G7i0BW{_nS3cMgn!C7I>wXStc4gDq@jhAwzfyDGXjx98A0!R=I3X_#d7-Z z94tpsF|QszOn-y5S2Cw)_vfs#YV~irBwYba?G3V}E#NDDqQ1v+D=TX``U$ij{^I@& z=xdI6jtu>Rs9c?P{C6Z}a3iVES0Y0eif{akW&rcq|MPWVU>WF~3;^uCSpoktRLa8n z=x*`^nrR}PDMkIgNyR7NmTH`a4*tI{?|Z8JDf>p3=|yOWt&nZBQ5Mu(<|i=G@&~0p zfK6p0G8%m~(!y@a3%r&b+ zGc%_}Xp?#mqr5}^lS8Knon5_YQ#YdTd{!JJH7CaM=;6bN@htvO(*2>5_455YynNo| z##XR7@mj_V$gwX*(i`aIYE2aI99(`$b(c(1Uz-vSt`S#Lkv7Xh^~9f3zz%66ZvR=f-uMke5BeDN$f zA$d95Q3Pn^Z2dmjfb+=yJi5TY07-$b@4^W*N2Fjv(1fbh|78h^Ks;WI-x^BJ%eeaN z*W5&-E<*3L?1R9~e?o6bXZj}<)~BxE3wt*Aar;5WL$*E%!5==kekytVsoz5+VNY|J z$(NTtw>#^7J6IY$=D&-NJ}GQ3PE<+HE~b}oc8oBZhpqAi0Yx{Eo_OO1AzT0fW{9X= zpBiqPnwolU8(4R2QAIQ;re8f3mKO+SGjDSZhrv>(9M0pKfsMvt~-m zS)ir=pw>WZ(d1@(&+YV@jD{UOB{x4QX7I%}@+KtDpZPQBVO#B<+wEpD^|AMHn#nTW z4RP#7C5HX?b#94_@k~T_Iu#)EBJrN zu$KyTfFKV{&M!eKVCd(zs4pf2^3FR!gif6u%y<-NgTMj`fM!<~Bvw0|=e*IBE(k!g z2U-{&Jb-Y>XE2wSIPvKayfLv35Bkz^zZZaGwvHr$?VP<1&yyI2-ZYFcP{w0G!Y_qw z#IvK`0_j69+qQlC-A`J(#l!*$guz!qvM46!!TO_cZI(FiA=QiU9uL4*ly~;ueZ8<6 z49754OPZ^1Oub0!i(=Hq?7-Ppn@cW_vuUoIYM$#W_BuYK_9@Q~dqapR16;W>-8 z(xZ~HjeKNShl*$dk_9qPv9D%6`0hMKwTPMSj*F+LS$#!ObG&b62z#w(e_@=FOZ0^+ zI>RG*!|k-@e{Oz$sT=h@@l`SXLsc~9&+YN+gopN*q2fIB@Zb~>_*fhN<;xegmQ9QT z55Q_Z*4p7%S?Eevh`+#k;GLe@MmuI^W)zSfAnFz#;!%z&Ukp|9Gy+GEm1G{yJ0Ut( zJK&>fdaE_}HWbcb@0D6eB(?ddXmH)K!;shxKDFQR<NF)2zAdzDgdde)6S0dRJG`Ios+d40f`_K8e|xY`)Bn*~ z^|e0X)m$ZYY9e*n(2iYe`Xy-Ze3kk0B#CY<&4q%|6|Ok$HDTKixZPbTCvjj>>^`)v zK?@#ktQunKF{mM!1lYj*_|O7&#vQxvgcI2n#r782N#1 z39ov+I!VgcPK762x#w6V98FT!`P9P{;HO;T~aDxmf2#SKHB4|)`uO-b^d&@ zO-PwPvygUV>SNZ++>?{-n8C-&ngKofw{-P=?B(L#$d_)pNT21@WNat7$$Mm8Ex{%x zZ#&CFm-0QTvBql(M&~2Bhqkxk6sotcZ`X(|&{J)K?mDpREokjLDnUxd(5_)&EB4k$ zUg;ae>C62>K56n`(~*|r?Z_=hb|jfpg>NBJOw=2;ay7mh&H>^9KzfKYSo`7phHg`C zF$zkPZA$;$#RGQ^syY>^E$+I^OKzfVHSc<6)4!P^D(90{!uG0a zr-R>0E&K1g92mQtRm?!4C6WY0|JwFjQPoo5Wj%F?`v3(&7vqg;_`q5Vv8aklqo?+A zc9K-wU~2mlh4T1@f&P}9Ah=hxL z82O-`I0D8(j;%_GK{6M+S(k7RRya{gpxTRxmq1B^LVgHId+QYVB%X)}_-4Gvqx9<9 z;{jYU8t4B4LA8xQDph998lj%AkF0e2)f9Q8tH_NM@}C9JK^JJ~GfQn()O`NU+F@dW z((mJcXQEzNl~E}F)?u&G4JBV2Q@5(gK3=$;s>VnAxmSC9!~T(G43*558j!F3t7!&C zX5(WnKUO(^6fM!)ra$E$tJM}3Qck|3gS6{ch)&@-B2O_QzIL(s+HZk11xy-Wz(S>Y z>h1j*!Nn=~33XuW)23=0<&KY>i8$Gmpj%=KnEAE5+$IGcrYGXG7vZXN$8^FECqfz? zSr}h?2n_)_^He05_muJPkGI{L>dTC1nK6^iO|c1ezU zZ9O(Z8#lI?m3xn;<@S$;oxv`<=^r1J-PeB9idjvT5|C`kyw9c3Kzh>F^iG__O3lTs zo^_u6`zD9QfkZX-Bt4R$`%|mAg7!pM?O_9S}aH(OSIK@=CzjxdV*%+kJyra#$ zH4W~=N-8pPrqp;YaR3#YdOvz*BZ54 zl5wtA)cg0QE{Fc!DiWGkoLt1QydHoB=9@qs0#^23As^>U* zH1!MYEDtDnwwdIKA#))8@8OAEiK6Vmwk4SwCcVss@E{{M)* z)lyLlV#?4lwqLd~Zk_TfvyQgnuU~vr=qU`tCicq~QkoxzI)5_B>3U!^Y+SQzNN?an zmFZ)-2LE-|BVwlYX7LU|(t8#gd$b2MZtq!}rjbq7pe&#*g zj>kDXxA0oA=rLtdx(2p&N7%**TI z;KE<r^E7K-U*?+E)Fg{rlAXhP-$jpNbCI#H(&Fyz9d@Fh z?d|4;_w&B6F&f|WIm}7!AGhN(Epd{=2GtCA(mH;qrv`NFlH1KceZxyn=fpwrUG{AN zyhq2rqSA^uq_h_EJ1y6e&E6)-a82I;x^y92ptJCQKp&2yEEVV_Dy1R?%t|z(o?|F` zVk`|f{g*cL09oGgdFe3(uHtcqaH}U^_At(|Dy7QF868Yl<8z)*>i5t@Z0Tz;w+M4= zk^KX5l(=wWd6>-0&v5k=2LFX?e8S|8k6zVq?%9{B*1@^!)1NUmbC(7Wn`b|lZ)AQr zk)C|^9BtP^vR~t!j88p#iMP{H% z-~X5u_l`%Qjq`S|_y)MDc&Nw>KODfp>u7zu+j#pS6LbqtoY3TMYCL-;R+fmeC`i@n zZrGD*olBjFD=kzm(8{9g8B@x$@z5h*pES9L{;*o!v_NqVoc%?&b>m9*KY6o79u2pe zueka=3$k_#Xkz**YEQZI_3`v8`Zj;@Kgow?jV=! zbm`gCL_dJ~`&XSZ_kruCkQeGJOj)k>huQp(@gAoU%LE&fT;{r`xisu+m=Dq#jZbuN zva(y`t?gek%cJ?UlKO37;QIXNwr>G9Gp}0nu4XjN-r!eqwyXS6k?Q;gyByZfoxCl- z&+ezEdEvC?9L4^ZhSxRYDxMp-L*at6flzR{aFXSPOWDM`Ens zb?iC8nCT^3(IV0!x3>(+pD}!HVK<$+zcDhH`MRX z&%~LPQ>1Mq4NB6GQAV;eQby)UBqU9uB+9O|q$RXdqVc;ueJ=Q2gV2Ptu~g?EwxQ3FVZuWxiPagM0~Tsj-_44D9F64 zSNHe0e@R{abk@Do78`zcxN+w1?^!Q82lcscx_{4~<#kgnY>f=)>ZiYJJ4#Nzt<)-8 z&DL=!@45mtUTZ|Rl#iUuZ{oAm)MBdn;C8lyONT61O7wFLtjfBwa45HTsZ~F)@)Z}# zR&+7AbXaV=H2B9fyh5V1OO0&q{EhJVPc5y;XS&+!YjJ0Nt~^Qb>rMc;W1DSIx`-jt zGH2rU1)$^;lU~<59mHe@U(d~OTjFDQhwYFW!GS(x%1~2Zx3xlQ!I)O{%x{+T2{u{x4nE#1 zFX*1S2=px0{GI4)wl+7`iGQP-wyFSU4cqcGjkI^+KN zD1SeoAV_Q8yLbI&FR$rUGB=jm)n0e>#E-e_6yB{{ZaQZ9gOX8hS3{E9Di2lm?@0Tm zJ7HsdY~AVO1N$5db5>u|QTI=`41EW)@Q=?zvbL<#G7L)(Jh^O%Y>5+KLDx+5jz(uI zMvWTvEdO>^OTQgd4UY6A|IJ$(*<%sIAA`n@yuI?nVfuWVxI3bpFz+)vh zEPb^0pMP!>vK4Lxj-&Kw*9iiroS`S6$VEd%jWYHc?d?{4>&dl(cDT*>P~Vq$|}?Ms>IA4`92S5u|qwYr(fGJe1IiNlX0LVB%yc%DRt}7 z<1zPLD0PH%N32^s&zoIcyLIaZ4ccE#?GO|$4E=MH<{wLyTnf6tNY3GQl;lKf!3NU| z?2iQ>+oz~?4CU7?bhhB8$xn}tl)8uJP70p+jO$uk(=%yA%t(+dKa7{t(}z807Ba(9 zDAXndUy5=-?)e_=xl^XJBARL>Ar@m;svi&p4^>g|0|q(_wdM#kTgimk^p^@Mcb{2T zZnqQdakfd>f+BQ8Xhcy4KO)vB12rQCzp(%sZ04_N^9hSt`B^6iC6 z>I$92$Sw8<+Ab8++_28H!<**2{5*eJ+vO0cbc?nGCo}XW6O(WFG1PzMmfb{VR-nd? z*HKGdJ+|u8dB3VR3+KCZ3PPh~bgdMK45sMZqv{FxY%Lxg^fA^x|8f=*5D><85{Uk? zZ%eVwER>Koo5T&NtgXGsTcUeQc1sbuBbHgx^XG%P#k}n)ocLjcjtF6g1l6?MB-R1{ zYza9$YQ_B{RHasSn5aZBmJl@|M4m_e5o$#|%UOKOt)O$a*QLouW~bmC$sXvJ+N|h~ zwyL%~cRpUyyzHC0opFFvUOdmEKrghzUpQwkm?cOJWm$)uQl!& znPSy7f5T&&YYn?P-!s+-Q@0PZlM$ddVNKS;6rK3%rQs5}L?UBs64(V} zOs64-JK(PJJOBO6s+!#Ta>Y0@!{)4*3fXY?LP+f97*I&+@WK$s>21u+%sjoW#PY}% z0&$pYF;=W>e%MiE4BiGl#f)&LI!gZVRdhuMC?Z+S&nl(?o%Tf$lVk96wi!%@j#q?eQ_Q?<^UyO(G)L z7=Ai7U|L>zOvkiwzP`TKza|d>cQ?Gy!U!F@Rh@44en#dWdMAw^4U6j-@l{j9VDLwc zqehl)OQv~^_MdlY{UGb5TMr)wn7l>$07~|!o7`REV+qG5M|FAL7Udc=7D7JC)VuS> zoeZ1rKY#jf{%Tk@ryeu$;;UA`2Q;K{=cez~j!Btu{$=#arOSjQ4>9eY+oTlUf3t2* z$L=bNawbj-aoQOvLA#osuZc)|0PB@6aFcK+#F`4aTkp9p>^w~2Y$k4NOo=H$O*KQ2 zTF*pGJbT`}LUzJJtn)=6qj?wv^9aH_4~MRe1WrhiP|^xf5%`uYT-{9xQ9emN!#e-`x`(VCMi-B8t*jf+iLnj={{ zt;vXHCb49r*d;p z)F+#K=dqL`LQcoibz%iOk=Jvpfts2pC>VJgCuT3)?LT^XyM_&qa_Vs>)z=Ht6UKzZ z&Vk$tyNRb!f?a%~H|)qA`@?L{Px?(4&+^BOA=?)xt@%3Zy74L}O?#=#h3d;r97!k% zcshT$u6u(9Cofn~x#U;Sah(!!(O5zjrq?aLd@}~k?$Iv|AcKyW4G(}4SdLrt22P@99M14ZpUX9f~NU8-@3E19FN zzTu^K%m!DjP`-P~s%ph6%|l_z?$y4Zj|8l@c6p`gKKuD2`-2Pr1~E+*)v~#%F@q<1 z=fk0=o+q$9C_www<$A;>9{h7s=(k{*qjy|w|NgtTbM_{A$c>JIu;jQ1p_z)zHsBwm zW&5roSwsv(V!n9u=8a)mUUF)x%F-3$jG+tfijs%`nZ9MqmfeX@x46mm)tCf|y_vIA zW*HdZNdUSns#CmQIUA^+qZAOiXL1W9|^s>sI2?@>6OLI-?~-1 zB6h(at7tPMUvr`}vz;&}E1}LpcqRG{l;Lu;@1sm&0x+|Nzp)mf2N`$P$@7E?c>+Nk z_b2?4Y}>ZG_ffj_?pbZ$)P>oZY*au>@yF`gt7Q%&M(L;oJ>G47qD#=jm(S*QvzRe` z`b#V~g7xKn8M}}yo3)5SyCYR=pmRraY<%da$u+Kh5GuGkMv>XJDz`ivkDeh@1bg*K zvI>8b#yEWX>TW%ro}RwgGx36iBSgv3o@;=FE}d;ktfn z;`D;28#UXpXBkF|Ib^HQl^nH~`uRHSgxjE_*N2b)y7bAXHj%F%-|gPVaeweFJ)Ove zT^QO1-^l+{S=Cr4iF}=u@@ACPqf0l-j`(Jc9CZ8IHJaN<=inMd(2i`U?#+$PBx?J# zK&|Qd^(biQRFTCme_OccNsk#wkEaz(LBC^I-6C(jq7-2;bh)98#)=OccfK6{tY5yR zM!)nDFU2d%^!?_WuAB25NseI2X1-#27skx+pI_|eF?y@2IL7qdGwW?iK*FOAYsu-bn^8}-kyhLJUtF4M4#PdHD8EPT8@1B8{@nvCL8dGe+K4i``|%Hnow z!KI9;vm@z4({1hw!e6-y!;IJKwwD|g2cB_tA1s}j za#MS_@8;#oOHFHw@51`%Hhnh_Fc>PRYYq*`AJR_(Ab}KC$b7{cvxhast({&l2f+g> ztzh{1qSr(E4=~)(Wp%HQbA#@0yWR2Ir8Q?JxL=$bJ9(B<%;8)$hwp<2A3nJmm-lS=3b@>*C`?|Eh zd;Fg66K?}kciv#&``kGP9(TMkBB1xzjgz+oZf|qywBnT$HoE2mYmLWWiICliJwk89nADPw ztF4qX7lvsZ51dMu(^!%bkhE!0_S9du(Wkxm;!o|~m91L1$CrEmFnZqY4wdKm#->ZU zO}0{*a(&2@QA1iipRsk`N~3-4qB^xb|MRPXd`7*&tLiGvQ(yQ1{YR%JoiLV`R(D9Z zA9A>xrpwz#pI>^10pm^zMPB$qP1z-bFNOY?)_Y~U)S9e(MVu`14H><7zX?VCHb zvx|^o-x+l(g}WB~qjNz2daFZ2{0e()TTB+<~V%as9W z0DAv5dVu`AU#}pp^ZyzHz_@^ytC74(pMP2H7wP9GXB8GPr%YZ^@i_*Eh@zA0t_H{c zvsjEu+AeD37scUDVZftNcbr`&Vx$=P;^)3{o=&C*z3m>iUcLz<>TNLJ9zvAxng8?)h{cUVX?F+xh;F%+4)!g8j_?YBQG67{aOHQXvUCa*^0&)}es)$E zdh#bLd$M4*iD4@LaRM(Y@}(P zg#U>vb@@<}N&=b&UUzBe4Y2v{KW!E#FqUATa#g;c0-*Z>C)*qok33hqv&kho!*4)U z9r>Xze||)cE4$q1o;`ae5I>1stfi*x)PK9e)2Bg|xUb#J5-KV;X8jCH)$KS*I8L&P z`6L3<0$`E$_wj4pXZx0qXqGSXA8GP|#6$gGv#?XF=ufnk( z%LX@^Tmzq!?|6-g^%=7My<6{wSjfjn%iqt+Ib8KA?M6Rk|1XDX-15qM@bQx0(uB>V zDZD}edF1H9gAvNKAqVL(BJrD>t3%rapFn-xrf#bn%QecphJ(_Fj(w-73*33XlR@Zu&j@fs_IriNIbcjTb@pgntUsugBq}N2D$tr>k2q z=D8zPO~6XL9`wL;kc+IkT;_gp^pSw7=&$+@8WcRstvsq)mISp?YU}G!3t2FMfONKQ zyKrpy`pg-|#(nWYSaWU496cD7&0dcr)IFZgt8E-)@o_C@Wq~RR&;9-=9CfP*HiIC& z<qD;wNS<~@%>?G$PDegq*@=;xz7*-+1?}LNv_`{AXH151i$D?N>n8&K9ZX%4 zw@w4gm%x1ZV0*VF$cSl0Tu5Ferm=Q8BC+OdqNqJ_7zoMQ{Y*mf;>h66&W(k`K`rpO z(T$XYpN-jMmmW+tS`*}VC}(@e72gB38*5&d1%;#Tt74pV+1eO_*LpyCE)zjTU7a)@ zfxRF|2YBJG^74s{IT0L;CdEHlb5m$YA7(FQ#uirqQGILGh(;peqn+fzwXGzd; z6{D{>!{|PJrQhCqo4vS>EJKYLS2eiS#rUlxd(Z(oyncQn=HS)k4-l008wGhkY{-ZfW`FGi0j5voiv|In$kYCC$z zKY))H1|!4<;_w`lo@21u0|iat7S^{oW`+iB^~$y#I(oFPxFFW4O7MUc#QUWEH2H2L z)F)bRDyynKV&aj=ybB0meMo>G%oudCcyEBq`;UsR`c&&J-+3noV47}TI2`fWakPXq zlgOmW?Gb*c;IFSow?P|=V{^#h+S3OQZp*eUCXJ>oOjbKw$@VZI`GtjTC*ec_ve;zu z8owbJ;R!tt-64l}0|8|y-acAeKdeOO-i!M3+4v?mbNH1e)Cfw{p7>Js^_j4rX`y>$ zNJZn`J$uXu0T)jz`3k~|dgeoz049-;K0qYgHV$ZG_uI9Plao7QWa5;_$k>NL&KowA ztL0{rK;&%HuWMJ~ZxVAklmWq@K1?qTII>!|Ow0fV1g;*}bR0sGMjpz=8jZo98|q?i zPkeec^jc6O74jrPiBt4+*ed5SShI%@#7%q1{VpB*Q!5?=KsB)XX91dr`6)vAlbDzd zSOlwaQ3{_C9Y!ZIW@#9L|6VO~6A(dQI7FBh@9JY~=NA}Rcx<`YzXg&N>S zfJanNDZ$;dea%03r4z+^xY(5?bB~QW3ncfrEW#qGt8jlzo7M)3x}D5B-8H-?rymtl zuG*~P%85@!LUy9gw`$76=&lu~%XyUhPnh73;zwLhmMLoyQ1ne>C;Hb;O40PhkeIF8tBgeEb*awi+T$e_W4Rf#>Xt0n>2n~g1OL$0pCWXWsQ z2lSALgNOVAPO@6%v@0aS7hhMf)iS!7M^w7MvT};fIau;AfdB~&Q$urVPIO|iv0hU@ z597=`>ujFg)YO-K>3#ILT+!AcGfq|){IOSI_vda`+zoRFOnZFkNPR`piFr>l`Yth@ ze$MaE0mpQ+{b8Z&GB-6grCXQ#CGUS{q@4P*wCG(_PI=vz#x4Dn*QZ9yu31B~PXfs! zW|!j=HYm|}eH4vYR%J8B>0?vpM}m@y!2d!{>O9JqI(+O{0z1w!syT6Q*7Rj4T{H4@ zgub5Dn^YS`&HVr_C*34JZ27331V7B9cA+6OWgJatVqvOoSsAEd??qem0udrpp2Jo> z2iJDt>s|$SIG{AKG&|CtoE-L!d%%Ae-CVzY-s$Zv9@~US-7Ph%^RrNYSOI|(*DY1S z;;W*fzd-rn?HYI#Fg>?2OsG*c9SYhXaQC3kd&+rjy;#@EwU|kzxZAJ;MtM9wxqLRGu}sCRlDW zQe(MD=k=!*tTdFHbWoZ`x()9IDbl(me%o^^by!mS^cw_n(R%gHlUr5O^z_qYX^l2( zs70yO8`P+29pa$J_uUe%cudiN{2Pum;*OM5%&0DtI z;+$LaT$WTd+|GG=hY_f90_L{Rhc%B4#AXrtn$&JY#7U@tZ^y>mK7<f7$??<<97uxL|LNL zJRiGnqLzzWQ@C!>z74BT7pCx%_h5%HlbfO*BrW@>iF^G{gkS|F4F{ThE71}A>Y+w? z;*<*v*DJLI#+@-m30%l$;Qde zP}8bL8%$Y+Yh}h#6gL@@ymZ{Bh~tN~-0pI1+Bf%aTxMC5LWep4qI%<}Y}YSZr*oYe zPSmBEg?=b05yv2iR-n&#n=!k_rooO*%2}V3P4y6-MlSlMVK*54xg=K9+!;5FXO+K= zfbIvZ+#eJa6t5~C88A56sZr$#s?P6=ymX6JuCR9B-^Jw*01qtT>$mE08q)U2NG)J4 z2vsYY9~@I4BF9xGb%`iue9@jnn#3%Y>aZo(6v&ME0KwWwoFz0o7?b!-hR+zm2|jI#*2ueee*<2Kfh+O8+rDTKWy33Kyvb3dIKq}0EhTeBqGeY|Z@ zZka*gdZ*NOuY!`Vmv=j0Uf~uQ@c!WPK4CwNdD~q|&pJjfpSok8(z5WTRSVBfY0EiRA<<2?oa5(CG~Wz1L=m)*LFtv?;sNV6 zZKvZ8SS;mb?UoIU8JKpZ`5I$BH6~9?(P-Yd_vC63#gUKlRr^WH)8Qsjhac- z-@a}7K7`SD7kgGw`rOg*^Q;bH$UoS*5zi9LBty08#wwx)c94+~!q8>y7KGQ0N~*99 zie&+_K?(`%?X_?Ba03CNPv)QN;XF0L)o$GlL&A`r`l|$$s#2vv1G@F@z30@aKI|HU zO}19HMI%HBOh21wVo>$N-J-6OZ87*O{4=@aXZTEXc)e+m_{!>~kyKftdHNPj#22E- z$7;J{e{h$7wE$;Wb07jptbL*SmUpdWzjZGNYoxWgyx^>t>ZVD6@amn< zrWzQOKDq9z=~jEgIKu1gT1&nguJY9H>X3VEH?{sQ;is38)?L}rhp-V1o8;r}l2=P- zq}r_;=0PT>w>e~sXH8uFJCl3e3smdZI8N^8s1l+co9Lt6o`xIFw;PP5>QllSNjZR> z-3A~|98QOP^*1aCMoU#5;F#0 z0g=eP5O{OD3z_>el+PVFjZEP6wPotUxK9~k&;3BP?$l@eJ`!t`jqk+~ti9{Gm5|*y zFRFuG5um+iyv%(uW)MyHk=ZJbI&O*pfGX2_>N1W+p7-0~%m7^g@)>=;I#AC;X_iTs z+kc&(!6x;J=0X4G;t=B#oZIcgJfX_5wFG7@BU?Q*`}uQU7Mv=fZ>*k4Y+Qo1bJS_( zn+xJg@P-8H;7k$#y}tgwE)KAF3QLzR9AJ&i-p6J& ztDik3_vKT1=s;4ihN`L_q&Sf9@lf=tWP(&}%!!KX7p}K`x%|h7Y%ZIie(7?osR0RB zZ*wTM<3%?zogN6KJO*)cq~bC&PtnG|-Q2{gUUYfEHrkC3Wo0Q0Jig}FmyARlAl73| zd2SGRiMQRzaBJ70Ih*r4iw2ChM7VlsW67(C+8@v7YB{Vkw+(89383%oCRFB6?yz zGXTN<3^$slG!2?VX^gtnvkw4K=4i`h3w!Bw1jBd?QTGImmv4_XD#rIF@sSm4lT%7F zi}h3PC##?zx(O=pE>>w;@t8Td-?vmN7D)?syW9& zUd*Xr7G^b0q@HyWgX!3@N0^Hc3zWZ59~HhX%Dr)-7$;b>A}EJKg*)KG&Eqn`(hI=H z)O)r9x!D`KXIOAu&9J}DwP8`IN~rYD#%7KC=dNJG2G2eA0?>{*c|Vh&pd9&T_aY)* zvYv!Ff>IOVRN9;3CR_bX%)GQV)o690qx$Z$DynS=JM?k}Tp*WGq$My_SO}_20O@FF zI(p7II)WtT$%M?5e|O1sSGnbC(5sNxufFsQ<9Bs6iP?IBEsP_Gj+SZ?_c3>()7MWg z%*&a!Vd<@9E^mn55bl23zb?Pl+V0DUn#I!|&8KWAWEuOucs0jO1v9QF9!z0gQ^Udgzfg)!yhosiN8*ly1 z#&$Hx1fzhp@)0>)pax!B5!q8-ULFWTUD5exsOFt~b{EaNs^O{bd;sS6^IUoY6yyOR zP&iaZL@zJD+mMRJ#yfjrEJ8Hrs=A z_bqChY;-w~GF*Q(4A3!Q?W1NgJJr@Z+uNVrT3;nQ^{VaSyEe-R1ByT?ACpr4`STn) zLp<3>rhb1V3-40}@ceuc4d1y9_r^A?4vy3I6C-TL%7RdR|{A&2>~mEUS=g6VOWDW9~T zP*~$WDJSs3bp}`ZD`$nC#}6A`m_y?5A~HOoL1Z`WXE_c0Y^9hu<&%7J1qP;wZ_XDbcGt zM-D0}52%W(sH{{iYS3clVS^dhGsdgNWUHd?)^wu|-wiBBsX0xE^#@=X01%LPW%aaz zCXxJ8HkbSs&28JZF%)!DP&jTGXL#JUvn0%6on%+aP07m>n$7L@(??ta4{y0^Bc z=VQ})QHsdLNqGDA&dpN;Jq!^Pu!KKSZe*kcoilCPpj5u8hAL1TSDL7{QC~04k{Yq> z)*yLh<6*zvlXrES@{eS%c)@Fd9^%y&r;3ar{*<+lb-yX7q5l>C^l0~gB|h1kaYujs z!nA1tB0fqLP=S=HX|%&*PASTF@F0=}qfWBpik^E1FI4Qcr~7cPy>s&#tMe%}Y%k^C z?}_2Xbsm@+Gv>mm&6SZkvcKN%Yv=-2u0`Z?mGB5Mh7xhw26E8 zNZdj&&wPdwhT=ycinHm>u=Aa`OTTf_I?!bobMzm*dp`wzzp^rVB4EPs7f!!dZ-GBo z`z#=-B#JyVA>0#c2(j@C{2COk6$-hrh!rjRz7C$<4Jq|=WEqJxDUU%oITvuKD2ugh zs+_lW6uWxC<|dK<0(e(Jr-yxJB9zk_o6IN|bu^!L-w!WNeITGM&zPH$ULkZv& znWOacet_LHt=5nC^biUzO7k--bxuUtcz6A}w^w`6d=2DbzJ2?)er6EAft%w2BZdZO zsqm)}NI=)Gk^G}7^FNo_kf)ZM%x<1+hBR8z=I$|c415CVV7cX^Dd7@G7GY35GHTf& zbjvrH2FRvEaCea{c1AQv!APDjD~fSOt*tBEKlb(^XqPm-bjx2<5mtYgN8eYXHk88{xIg6Pn`z2pO+DoaE9@_^Y5)7o6ozvW>r*Z)}@uK0VGslUL(ZxrD$7{~hKv^4+bpRvsYv2g)< z(PEq`Y$6{bj;>jL<>qbdpn`(DNpm-f{6ixKCqPl zN`*aLNy&hQo+OlH2i30R2(pY7d%mUYYtp??R}s6&#Q{<&?x*VxW|N7?4Yuj7vN8bN z*ZbDKm4~58H(zWlU!wK<*}f$*$6D}wferzoAQC-9aZ|VdI1O!TlKxK+Ba&{rb8y7a z^ES{o%iaOrEf&e2C)6wzw4AQRkKg;)>(Zs6^z3R+!O=BoFSxTC)9Xk%7PfraDN!p6 zBbc^!@q@thml*9Ch(*w#B*ZwP)v6k^XXNxnK$SU#4;BYrbszoro3o?L2Y+C0w|?Jj zd*^qS#~>{>rbl+A@5kx>{Ho4eJr%@T0!o#1+XO&1BqT)Ea#?5R=d8hYEUB41aF+>{ z{tJXnHu#2@>&SoJuDy1-;{xK513j8t1WFIibW3MGG6_l}IH@=CB2%`byEeTfpebsf z?;i#F5V*tLlq_SKIT{eHBa5#Xww-0t`MZzJ!nf!M&sjU_M>D?L~U^`BZ-r-PhU-YaOJ^;mC@PM9nBBkzL(Wv3GE)u{y*LXDUsH>6ohW zFmp6}Go@<8l50;`R=!nC1sugakC-|nSwa*kwkA}Anowq>ms=S3CG;&(*m-&7|===n8`SZ^^aNQ z^TOe7`H;S`*3j5Y{(hp*BEk`dm~q1lP){?^8i z#Y5|kyZpm$_y-AcprrL^b$wU*Kp0ECY8_|xcuyrLTVce%%cyNqn{>zQx%6ff4boKREFO!u{xuTfyt2-dB`?CnjFmxCiXl)M^Dj`%Q8X0aQC6}8=>Y#+QKWm-Y1*y0C- zzpgtzAZ7kkz>obzIMHN3V)VQ6*ZFn`5=3QS59;pp`u9#$FrEi{kO`NYb@`t@#%GrD zZJC>*GG;C2=>YP9;VJtOK@DR4kb-lNz*#Wf-y=eDk}Q3)$%NdvSTpn zy3cQU<{d_gJ2z_FxTA36f8DZ}ZMP^y84WF`JX?Zv`qbc?K7iT z(!$g&kja3wr3=#7^05t_r=_562R?UKtV6Jk$)|`V zWg3NELxCfd@k;bI`#|mZAXbgkfDs9jl|+X2f2?!URfxK=lJk{Rpyi zaoX;#FeIG#ojO+~+G59cMvh{k^hHKPQxakln<6q;_#TegG4Q5)VN&tpMO%M>p5xhmTNmNL1ytM`}Bo{_2{HpO?>1R>x{jiwhBQPxLBE=@Um=_3rG*lS`NsyZUc8OO;rB3iLc zn>Gdab;ghH$-qFR+*UK`4eAvTk3N9^TAuDPinX=g%+jM48E5&%~Hro_5g>;Yv;zoyxP zt==Lnm$(y3s$HswcM%N#6Ja2%C}|`)x@TznMOG!1DPFb zNqa>QpPhN2O@B~Ysv4hHiPHBN9Y`w?S1R-lqC3M}&#`+uL$EosOD+CF{#y4x(1 z#_ z&Q>huJ^@9eVKK+cz+5^mtrVCG+>WQG71Esk==(n+A)?)BHLF}|^_{=jvwU9uW5*4W zO>067XLx({UsSPuRjjq7_RW%~$3|n#gUppex3skSEhs_5V*!Nlr~73A-Bys%J37tn z%bP2$;{XKvK5hP;VnuHR-iaau44Y_n|$l%ZY_7M+Hxr9wQE5PJox2+DGWgc{XRWQ|v1irvTja^Y-?RKR2WoGlIRd zbL#78oZ<%~=l>F;cE8LuMt{8-*6mi-N^+@yNuSW~itSxOC*+u(h=k^FQo)On74G!s z5cSLMW&-r?V?bplx8iFFR*0dAXeQIIVQ8#H*aEk-Br8Il(urGcKP#+~dA?|kt3du` zWpToWu6;X#;2Z7e%&QSkvt}W}vlqgu<=wpn4bB+un|2FoocLMj% z%4(`{6Su(YyiyBVX7~X^u&A$S$oS2}H)4M5p*wwva~^I>gTr-HH*RDtXmikuP}~d6 z6IDh~Q{ZJu^p_p$=g8!sutWJbln$C^0;x#p7z+)U7}_FYp*K)yG+e3%p$%=jil#fl z*1Kkb%6aD;G&)kS{Qdh@sf=AjCA>BWg;kef0`QNAdH{$ zXznwJ6=uTY4u`~*pWq>B(ENp81;?!bX`}KB7t&vM)-E3Sfvg9f(YHqHd#(bbq)ij6 z9SfLTaNQ^YCiv!9J4Nce)>M0X>%EiKsprS?Yop#A^mi<}5Xk*G{VQ%@67(5EfY^w~ zu6rl+c`%vu;2+*DH5s?1kakz_KLkF=9{A$qNl9TcPh~ax-a?Pq0(-J+9chF$6FeUG z{1xqGf49};;%AN?3X3emT(*$U%L}n()*J)ys{l+H?Vf8{+f3WZTI_RT^jo< zo>XRk(vIb!uVk9pK777a^~%zo>or?1X78+~5|iKN0I#PX2=Hfh=H2U4UD%h!-p82!=xB;BMu@te&;da8(CUnTsK@1GUfS*FH(^&}&WMQ&z&ajK&#KZSTwK8#IpKe0?R(&UI64Py1+J{zZq( zIt%a=ZyVm49F4Z#>$w!;VszodD!mmw zH$Q^msY|zRQ~7Bq&;oe01nbMZEw_87qh!w$9qU$KcV@R2-!fvtzkAZ(jkV_nUwN@* zSn+uMhZU&PY16G13$y7$`ai9zrKT!X%Tr~emPo8G>BbC&}jJ=V!6+Zt=#?YQvs z^GJuz2$Yd@c9EBNUiw-7;KN^(O@UO^Qd#JZvZXynEILDrKm)*VIUj(IPsg2No|^iL zr>y^5%7``Jy^UiT`QR;oW(m(qdl{Jl7$Vr{UqdzX7yC;2P=$cX9~gmlrqAi(^5Q@A zO43l4iTMLLPrN%*Y!CX(vih~zuqdl$>-?Nn;C^Oti+87GUu|Ju#8nl4{uk{72ffV0 z4?8ptD6_oU!)Y!IkJs`f?^&~>Iyo&DphcPae>O?E!=rcZ)eE^$lNsl`Q{~W{j|NjcS=KmBY`oH0dsmuT3 zZVRLq-k&%mD0XsXRoj(!vTd7lO}d)pef;a*=HR&0fvf=sz2Cg9bC9dO{+%u6SF`&Z zcCBo6eWFgyT)8Iw@OGY(A>9T&GSj*(B|B}3!<21-%Xw0GYJP3(Wg`xISnJPQ8RhyQ zsM4g*ysOjqn&e19W3{p&e#ORn{;?MJlU37Oj~ z#M<>({JR}0lR4~B9I4Qh5f_;7V#r`0_p@v7=JlKO`l`~j*ab)b^quRe)7k$=s##U} zK1J8NiQ-~wbo<>uR5X14_-c#swk0mE-|K8IsYU&?$dT`Q;zfjZxzmWlO0Dj0QGA;A z+_C-YP$PI)>D1%;Lj=Tp#rRfBVhz(<)@#QYPR8P}lZxNf`SIT4N6$MvVtP|%H@gLae!>I6G?tKyMuM;MLAbk6898U|mqtwHiy~}AVElQJ zdO~!X-lh})B<(+>#PKv4u$9b3LUN9GYP&c{CZQIFR7&!Q=r<)3nj8ZKdpPAB~Q`FW=3E&t_K_gireCcBcB4ri=;)?_SX(iXuZ? zQWrf)R@5*2GU>|a`rb0)C@bcSN638Bd9Rqv0m~dWZ5j-d3HS%U-&DmAIhh#|NuO!O zhX+E33OT)v=~DP@MC^z#(9vl>ag6S{_wk=KG4gz(M4`TWcfAjIPV>S|C5m0U*auh2 zh_zvO##qVL#ec1VoRn+Yw~NybHZ&_mPU|ASC2jPB*qCUqy&gkta+M;^=Y#kQN*EJ| zIW55q7n=XgWf8@wJMw@Kgc=%{w0EWnpwRp94b0TiOy&B=$82MylDY|O$R99$?H`}c zGx7sw>s3HDT4d}(26f>0aUVJ?(dIK}2pbFM>%O>WZ;p)y-MTerPr6KOzK+aKNKV1w zSHb#D+EO0PfTD)}Po!%zfpKcxIc_Y4@xXxtlPoL-L1n0Z?$EjO1(ZVEDtnlLCd_jh z0oFJ!cI?_E;0-Y%f(DB)brD1W?IIBYf~Zu5)X@0GSvqp#Q6foL4_RbHyIdb zIHG9u%of~uF?P17;e-N}wJgqT0e=;SDEKO)>+ePdB{4WbNEI;U55a5%Pb9QlML#+T z?2{!Yjy&Xw0TS+qFBTE+1Z1}n--55TvjhUn5b#8NF`$rMoEn5uc{~Jg+c<=}%x>*EDa2ustJ)+7;h|4AsaQMTz~CaE zTh_8yxjzgIPYLq;)9`srS`Wz{d3N4U7fHN8*Tow%&q_Hr$#Ra5s|Yu1BQ4#hcqOZrl9FCh~@LNHV{2cyWa?;S7CK{tLrKD z9N_5ZuX6H>YQ*dt@v;~GxezqaFIs}6eg>nhNKy7Z&{|LmnC&~`&jcZbooy$?x|Yc` zW5$AiGqQ`|050K9I13)*L@dCw=R)uJ>59Ya(JQ*-01xfVxF|1(ZB^ ztT>*AgNXgXCme~KV0l~DNRmq%!XcR+n1wF5W~6%lS$uqJ@FupnR>5_$t^~f*I10xA zovBckJXcO4YA$5D&DYB|sEteHCf6hF2F|G0uzyi2`jAF)!i}D<+-ubte%sfUPj740!G0 zT$a`16(M_IyXvEfYHF|A&y0?a_U#`6g9pvN6O!*1crK4#B7zj2ZrRiZum~X#7VrT$ zbKw^yWe#@a?Zx3({NaaabS9k%D-*nr8egYA0T~#NG zO^Ji#&f_=Yk0Con?zv(Q7qAB^=fgSJ+60E06J*S)qf`Xu@YHCEfGa(|y$rlPmw z&+r99V!afbI>vcSofN6#o7gBbL~=Xx^_fL)qxw~U&re8W$2uB+7f3|7VNhUjA3u@{ zF_Z@16!K7bfoE*E1~=Wh0&mz&L1Q_UuB|x<^(|Oid}^(k+l8DWxw$d7*)k&##}*@* zbg;J*s%w$7BUB~mg_--l|IBSpVMDIo*rc_o@M(`g_aAFON5MTrI3OYxrbRZaab+`S zY!Jsk_I7+BfFhBphTQ>FUKoUh2Z1Xpa4xQzItPl0SqQjE${}hOzhoF{Hk}RMdeqn| zk$ZIS(=7M_5Fz2{l?WlJ@U7q;Iojt*MFVq!604qiN@G9(JGt$@w=h+*6@{hxK8 zUW!LXydgTBHgT}_3{ohYXZrSj%m7dN*ZjU)o)>;ovTC#8K#t>hw#l0}Z|Z*w(DMi+ zS3}I8?hTbQ`J#YE3B;Q6TvcPplGv4HX<~fb0ahH7b2dtb3;6II)MH=0OjbueZvtE` zKdb!PX4faf22?Hmw;^loG_cL614^Fm(;wKzTSSEQdxIBSOjIXyT*vcBG?$(}p3{f; zv*+!lBzt;}ehTyI1rr5?3DGRh*6{w(Vx&>**AJ}!Ku*{{oQ_PT>GkLP>$ax{jwY5c zuKh;nBZAN$!*JI(IIl&QobXK?F!G~j4KTe#*uylO%L1lGLOrh=^~9bpGh)%@mgBzI zPbw=a#w=N!GRHRU0AgA$lW!GXpoyJgqmMo|djK!Q2|wpY0c1j!7>0gqF7m&fVKd{q z^dIu_)-|7!=O8B-f2#AWau?X$%g9>-10O)AOaXqDx@>qs1`fp%3Qg24O0PK-0EVVx z#flSb`wHfQYay1JHf9b%YD3f@58C4GhQ^FDWcE~sNFYmwBugsTB=rNePhjU4QBthp z^6yHmM5GVImdG<>zY2@?2!Hx%`gdGng1D5J|8+=2+wo9kz0^7)#5J-yqaA(9&=_GPIK^yU zycyMIh)8!6*+U@e+iKo=Z16vRe09`~UTVAItSk}a2$dTy!Cq2>3mTOK=_R%-5RaSu zW#1clOL|3r658vm8$dFzGXMZE? zXTBEK_GlQhYT%Pl#}76igUZ@&{$OLa<+Q(hakWA&`C(kDQ!$|qQi5nud>W9=k6t#g(`H^$HF91r}UzGuU(lM zln3!9L1^Ab)TQLxxz|nqm_%3SdzT|4{zBudKjd(ihi%)mQTT~2=QQ$qO7za>RxqLJ z$$3|MIess6>dZ^G98T9))8Wx-k0lQVW4vhvfqWKmXVRw#qZd_GokZ>*JB^67L@<%Z z10>`zbbN+b?`*u+dQgoiedZb(aR7k`o@D>D-328q>`G#*0!EU;ufKVJX+NDUW0BQt zT@2$g*SP?4fy~SC;h6=im?k8UbScMEQ*FjCjBv1|e8=ERobE|c5So7TrWi3EKoE*K zN@Q}9p=tiC`Pc(Qf21_L2HtNXzk@^3;wW*=HFt`>HT0s+aLL+HCN6>&F|cXwnA=N0 ze;B&wQkFZ&$xT=yx2xvtJ<(V2J%wP3W@_)%#my6PS?ThyRYJ1HC+XEu%K~8_Y}HQg zcpuX_25EK#3NQ@_hX{pWEC^ATDvygoJ;yHulKE!);IbW)OKP?G0&W# zn*fZH_oTncFD>=Wut~XFm-YW88QZsVZMaD1=NM1q5M78josheA>Q0#+4mPgD9|-1f zQDCM{02!HlT9H~HxN=WVPyGk>PQqAnbmUUeys;22VgeiW_iZ13ZXt_lYxGov;&B#g zmBI>4DHI_wedYH^IW*WrMno_OnB0W96U`;Xpkk(3~Z`9!+`$zj9eY|MK87b3|FXKe!9L9*sS94XQN~-_- zfxX1_hL9R=-mF3F%2{R;UQn3aA<*vDXSrGrBtc=2`m`3S#fQCRr0VYMO_h_ZFW|RUM+%+f)Qcwc z)pL)EuNN_(`4MWJIM;&|&k8intxNK1Sh?6RHquIe{ zS>I1w3>=3|EqE3_WzdBkbG|zn9z6GB@sa)KHl7?7_guG@*OfbdAPAz6|GVQ|b3e7Rwi9WRnKpWv zL;!H+yC=%ejJk=O`p$PVdG&3#kMZ1gc54oM3xMW{-bx#ruZvHO9H|~OKB(yZm{qUG zKG2s|?_6y>BKXp)TV_&Cb#{+OjwmmiKOxjCZOyazSksg(DLJ+WHr*>YN>f)%=U2Pn z{j*N-LUq9vciEvPmK$%!{3k|aq31U+NI6<-Jf|^(siT1YzV@a?xUkxx$3+7@MQm!L zQ^$0oHw#l-(x-RtwW)iHedF`uQd3jSeTp83oJFn4u`4WEmzQ50{pEZ1oH1p}!@-Kp z&MV5)?=3ucxWK znO1e9K+$31X|^brQTH8(JN&SbAN}_cYMn`ytMhrGzaBie@T8mUw1W4)92Qk74%b^v z8nE`jjpvsl43D_De=~XYy1!0mb)6nuuno7BC;PS2lv@$Cpy5?xl(w7P3|+lf#ZeMz zkI=fpC6dj9)ucU}+ni`Usot8gT*M3z+<@)1#->6cGES_JyQXA-Y2Az+IPH$2|5XM)u`yxvHYvaO#8PeE zVNf=9a?kj@RrpoKgvPbY-!frd$azXXC%R%eDo+g^F<`=wUsHFze1w&bBvpOwrugDx zwjPlI`%L4CudVc~wfiu3M2~9o1(8*6Mk{{(meoV+(5L3oa+}$++V+z!+STEv`#x)} z8;-~+9dxcppP7|&X?n}ii3L|x)AsjoT-0htw)L1Q=@s^xyG&PoY<>L0VYz{d6{-)$ zq#rsk=hS@n2l{$5qt)78G0wVbUEQ>>;d^3-PC;8&6>Pt~=-Hj1xV!a%mLeOh%Ry}e z3^sxln;x=BZqjlNrdwPVKg?t347=|=dYGoRU0v5k+j~u5ko*g6>5`I36Ynjp8oO1} zTD`vgSEC*EU&ihWEA|dQ@gb!V81+f)X^Lur+wZM-X>P{hQyN{IbNU{UkHa#zhr?X+XI4hO!;nBVBYFw{qDfLoEZ@042l|v#c zjTZ}X#-Q@w)}Q8C%e*Fq+gROOQX!81Y+mw_1IIt=(;5J?%zd( zs70Y;^e-QfXp09d_51bDV(vYt{a^l~SxWz9s2L>pUuL62-v6P0x^zj3{{=Sl%04~? zrvG7o;D7!-w%z|h$;OX%8X?Z=O~-gBtB^0OD7R|(2mQ@yvDogvDJ4^Y!;FuWLennG zvGk75`k3Llu zzVU1NL8j@2!Lts2$v)!YOKOxLWc^YvxV3e~32~1M7>5gGU{nF3Lf_xG#ue1P4X6T9 zN2*GR6t-fXl3`0fNB0FlI}6IyawIi9SJB@YOC3~}-&t!JUTh|mL&ABBs5~UtWx#;6 z9lx&S!MSfxdPpFfcf2l%O1U24ASxrfa{rn8`$pu<>!LyvHt3A#qf~d zGl@;WjjD`eB6bmGQvAb>sH#1QBHE!C5xOiCX5vvqJ>Ip&IFxOfC(Fd>JTUi zeR+Y)pkzrP#9q^1IKpProV= zv0ZDO7D%TP%IA&iz3a1kZdO_(B7eG%2h22ck<2;RY|mtRq6ZiYB3pZx<%iW|M||EH zI>Q!~KO{a#MB>Q%MJNv+xW|I4m%rSe(x^0g*{vO*66*6BPS^db1)vQAX;Hq?DDNs- z{A3tv;VI*SSVDeioKERmUbvG(pjP}m4Sv+*Z@GFSU`?s>7rMPO9?eY>A#4&vyCJBt1c1Uh75`6o63`3m%x&QwSP zA=a~)lWT9r(On3<8Ylb{XooSKwnKC*0Pxux7|V6R`w&r`qE-5X`D;2_JM1)~6BRFp z7;XrMyV6gKCJuS-?{NEW1PbyfwVO0+R(oU?5`|q4S}YTMpC>rc^l1-SS{)_i2VCM# zaNG8YbrNE%$-Dsk)3#l^kF<9{?3|Z5gy!%9@4c1lEih@}+F@8h2Td$-kpOZ@Z_w4l z(*)QZ26j2hQtPwnF9N|(tZ`(gh;HT$ zg*OUonnVyiY*o8B*y2_2Y+9{tPY@c432_;~5`S4HeuGxjL1Bnq7AeIs%eCALzLU zk17)tYS#q!8wjqKTiU6&K4LWL+W?Vi<~`o?s*<3oS&UN!E+9A9V@Z3tCBq? zj?dr}(XR_84%Lj_4vZy2FS>Mjz)KoMI*n#|iul2doaByB5`N%jH;LW3sDEM#{fYLj zxp@3tc8OTh zlo2LRjuEN914Tl!;6PZ;;;H8X8J?TgfhNwppO74)i=I7yzBM9_29Dm%r<4pv)(mnf zG}o>QmF!38$7KDqt9-KaM_j6AI-Co5A}&3GX5qqPGI6~f3WfzNDWc%T$VLxKf7Xj2IEgrd$0q&eHYT?HTsOzsugeJQ zgH=)zJ{kBB30w8+vTg5>Es6kZ0%in_(*o{KnBTk?21Z>oO^rCd(3QTk7fFIVe5MSv!oJR8k`~E~ur)Gqd^iP^&6qGJ zK#$z})VK`oIAF^_1R>1m`T6i-N!qsIutyy$#e^KzR3e2Vmgpi{&cKi9lhp> zv-v;Td+Vqw*RNd|P(Y0U^de-yY_q^x4=5<{Y0vzymaZ7zbmCvaY zkA+1s1qv=?EC)paFxXM23Jy?WSjzlxbWcJlgp`(mE0JbM?t{=`0^iUxcLdEzasN4W z=9F#j-^9wI3N%Ep?eBiO!yXi)6;bH_ancV80EpN>VC^EBF4&2_YC3fAAUk|7D* z7_rq^a3g}@Qt#Zf0W$&vWzVj$^Dti*I?h1e@$Z;HZN2qOh>~FaIBZ0nH`huI5KFGa z{cI?E82m|8hds2Sz%!r<4oKuo2!$HzPJ<+98DhNNx*!3H`)B1~Zh{=EJ+WF2fUT_WLZpH6 zV~*9k?+HG*1;+y2nk#VA9X7}pLF2a!e{|d3zEDA z&|Lwa;QjifVgRPK1+;8hQ|DTF9ONjsnn>XAL98K9|>1FA~zZVeGXa0xJ<>t;I+$ zTnDpsFv1A3OjM4|^8ob#CR2jmHos-U_F2v-ge34KlZ+CZxB%@p&_4nu9pDt(@@PRI65l|j+0wFD0!lm2j?$K&K z#1%mfa&RjAQxrk4Ax7JT+`0<1Px3OQ{BKzQL?H-MA^koUS>JOq|^F)>!Wp-&(oNI?Tk z;o*2eLJvI3ppKcIM$+u=zn3B%6lN1_C@NME44!`N3vGi!__Oop#x?fltJ4TEx+Y-GLTZO+pqp!{8LEVaQ!sdW!r+>lP@$rO z0aaxZ+Pwp%C2f!_p-s`Zf#y;#&bF{O&yopb43%|t=LQ^#^6}8SfbK_of+7=Sr4pze z3;ly?D38Pgn{cifs`p5N!5z%Pul>6)Vy{&^#|d^2vb92M1>*fOAl;cjuRu?d2+hfY zMT2}jkcbzN&p~m&roKIH$lv1_2Lake_KvZsy8T_(GGbiEaFq0KSb7v1?`7y;17)7=Pa_s;|I&y4 z`4#n$!a%B$zEIdP^W~}+iAGu+!}{4To?? zhxrEARCjlG*4OVD{LrKgh?`AEQ(#t;NpW!f@Y|@KxrK$G^76g2A@*^vOMQT+QlOp2 z^*YNF?=q9>3RAg&g;av0p`vQxr!g{x1rwfNjyX3C2o>tkEc|{0bFafceE5*Oyh-<# z$>$#k>#fIIiz7ru{=1WQY|-a?D1VVAVk?cXrf2E*n`JLRM&|dHFcaG}@kf5Mcj(_26l(LV&tv_)DrMPd z#$cy~>D0oiWZ3Kqo2r(=cMnn#!yH6H$jQk;&M@^Z$Qo>GAda-w z(A}~Em03J=8#gw_TYDmbXaOt2U;6?m6UJ};`y@UBMzn*O6%BI;gsN;sVZm(Ed`+2N z!ulu8Yo`Q!HefwWY}MzCHWoHld4>H*inV!Ql7ovz=^n0RMF}7sLjG(h(*Trv@=y@~ zu#TSEN8<3FVuVGUvb99xA0QV`)`ULCUThc{q)ACNs@06gWr`w{zJ}kv4`!H2A<1`= zj4u#5;QAYCTcRL&1A&TFW!++B9bf&_dzxy#l#`3Di+IO<6~Ml2qTWMD33T*d7%)J_ zb_rO=$N>|)<``i99N_5ZAjN>Nx�slydLB1|Wb7ol3A^>|j#y=+sml9NY+gKn^IR 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 ZIH#iXWlR4Y8@dhF4zn+_zBv5de*wuN`~Ls{ literal 0 HcmV?d00001 diff --git a/frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-render-the-page-with-50-26a88--in-antd-notification-with-no-data-antd-table-1-Signoz-darwin.png b/frontend/tests/expections/index.spec.ts-snapshots/Expections-page-Should-render-the-page-with-50-26a88--in-antd-notification-with-no-data-antd-table-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..b02465a93c7df99155154a8a2584cf937e064f78 GIT binary patch literal 59550 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 literal 0 HcmV?d00001 diff --git a/frontend/tests/fixtures/api/allErrors/200.json b/frontend/tests/fixtures/api/allErrors/200.json new file mode 100644 index 0000000000..d91c7ad061 --- /dev/null +++ b/frontend/tests/fixtures/api/allErrors/200.json @@ -0,0 +1,92 @@ +[ + { + "exceptionType": "ConnectionError", + "exceptionMessage": "HTTPSConnectionPool(host='run.mocekdy.io', port=443): Max retries exceeded with url: /v3/1cwb67153-a6ac-4aae-aca6-273ed68b5d9e (Caused by NewConnectionError('\u003curllib3.connection.HTTPSConnection object at 0x108ce9c10\u003e: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))", + "exceptionCount": 2, + "lastSeen": "2022-07-14T10:29:48.955274Z", + "firstSeen": "2022-07-14T10:29:48.950721Z", + "serviceName": "1rfflaskAp", + "groupID": "e24d35bda98c5499a5c8df3ba61b0238" + }, + { + "exceptionType": "NameError", + "exceptionMessage": "name 'listf' is not defined", + "exceptionCount": 8, + "lastSeen": "2022-07-14T10:30:42.411035Z", + "firstSeen": "2022-07-14T10:29:45.426784Z", + "serviceName": "1rfflaskAp", + "groupID": "efc46adcd5e87b65f8f244cba683b265" + }, + { + "exceptionType": "ZeroDivisionError", + "exceptionMessage": "division by zero", + "exceptionCount": 1, + "lastSeen": "2022-07-14T10:29:54.195996Z", + "firstSeen": "2022-07-14T10:29:54.195996Z", + "serviceName": "1rfflaskAp", + "groupID": "a49058b540eef9aefe159d84f1a2b6df" + }, + { + "exceptionType": "MaxRetryError", + "exceptionMessage": "HTTPSConnectionPool(host='rufn.fmoceky.io', port=443): Max retries exceeded with url: /v3/b851a5c6-ab54-495a-be04-69834ae0d2a7 (Caused by NewConnectionError('\u003curllib3.connection.HTTPSConnection object at 0x108ec2640\u003e: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))", + "exceptionCount": 1, + "lastSeen": "2022-07-14T10:29:49.471402Z", + "firstSeen": "2022-07-14T10:29:49.471402Z", + "serviceName": "1rfflaskAp", + "groupID": "e59d39239f4d48842d83e3cc4cf53249" + }, + { + "exceptionType": "MaxRetryError", + "exceptionMessage": "HTTPSConnectionPool(host='run.mocekdy.io', port=443): Max retries exceeded with url: /v3/1cwb67153-a6ac-4aae-aca6-273ed68b5d9e (Caused by NewConnectionError('\u003curllib3.connection.HTTPSConnection object at 0x108ce9c10\u003e: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))", + "exceptionCount": 1, + "lastSeen": "2022-07-14T10:29:48.947579Z", + "firstSeen": "2022-07-14T10:29:48.947579Z", + "serviceName": "1rfflaskAp", + "groupID": "14d18a6fb1cd3f541de1566530e75486" + }, + { + "exceptionType": "ConnectionError", + "exceptionMessage": "HTTPSConnectionPool(host='rufn.fmoceky.io', port=443): Max retries exceeded with url: /v3/b851a5c6-ab54-495a-be04-69834ae0d2a7 (Caused by NewConnectionError('\u003curllib3.connection.HTTPSConnection object at 0x108ec2640\u003e: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))", + "exceptionCount": 2, + "lastSeen": "2022-07-14T10:29:49.476718Z", + "firstSeen": "2022-07-14T10:29:49.472271Z", + "serviceName": "1rfflaskAp", + "groupID": "bf6d88d10397ca3194b96a10f4719031" + }, + { + "exceptionType": "github.com/gin-gonic/gin.Error", + "exceptionMessage": "Sample Error", + "exceptionCount": 6, + "lastSeen": "2022-07-15T18:55:32.3538096Z", + "firstSeen": "2022-07-14T14:47:19.874387Z", + "serviceName": "goApp", + "groupID": "b4fd099280072d45318e1523d82aa9c1" + }, + { + "exceptionType": "MaxRetryError", + "exceptionMessage": "HTTPSConnectionPool(host='rufn.fmoceky.io', port=443): Max retries exceeded with url: /v3/b851a5c6-ab54-495a-be04-69834ae0d2a7 (Caused by NewConnectionError('\u003curllib3.connection.HTTPSConnection object at 0x10801b490\u003e: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))", + "exceptionCount": 1, + "lastSeen": "2022-07-14T11:07:06.560593Z", + "firstSeen": "2022-07-14T11:07:06.560593Z", + "serviceName": "samplFlaskApp", + "groupID": "1945671c945b10641e73b0fe28c4d486" + }, + { + "exceptionType": "ConnectionError", + "exceptionMessage": "HTTPSConnectionPool(host='rufn.fmoceky.io', port=443): Max retries exceeded with url: /v3/b851a5c6-ab54-495a-be04-69834ae0d2a7 (Caused by NewConnectionError('\u003curllib3.connection.HTTPSConnection object at 0x10801b490\u003e: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))", + "exceptionCount": 2, + "lastSeen": "2022-07-14T11:07:06.56493Z", + "firstSeen": "2022-07-14T11:07:06.561074Z", + "serviceName": "samplFlaskApp", + "groupID": "5bea5295cac187404005f9c96e71aa53" + }, + { + "exceptionType": "ConnectionError", + "exceptionMessage": "HTTPSConnectionPool(host='rufn.fmoceky.io', port=443): Max retries exceeded with url: /v3/b851a5c6-ab54-495a-be04-69834ae0d2a7 (Caused by NewConnectionError('\u003curllib3.connection.HTTPSConnection object at 0x108031820\u003e: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))", + "exceptionCount": 2, + "lastSeen": "2022-07-14T11:07:06.363977Z", + "firstSeen": "2022-07-14T11:07:06.361163Z", + "serviceName": "samplFlaskApp", + "groupID": "52a1fbe033453d806c0f24ba39168a78" + } +] diff --git a/frontend/tests/fixtures/api/errorDetails/200.json b/frontend/tests/fixtures/api/errorDetails/200.json new file mode 100644 index 0000000000..09f9bfe6cc --- /dev/null +++ b/frontend/tests/fixtures/api/errorDetails/200.json @@ -0,0 +1,12 @@ +{ + "errorId": "56c8572c51e94bc9a2f501a81390a054", + "exceptionEscaped": false, + "exceptionMessage": "HTTPSConnectionPool(host='run.mocekdy.io', port=443): Max retries exceeded with url: /v3/1cwb67153-a6ac-4aae-aca6-273ed68b5d9e (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))", + "exceptionStacktrace": "Traceback (most recent call last):\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/connection.py\", line 174, in _new_conn\n conn = connection.create_connection(\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/util/connection.py\", line 73, in create_connection\n for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socket.py\", line 954, in getaddrinfo\n for res in _socket.getaddrinfo(host, port, family, type, proto, flags):\nsocket.gaierror: [Errno 8] nodename nor servname provided, or not known\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/connectionpool.py\", line 699, in urlopen\n httplib_response = self._make_request(\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/connectionpool.py\", line 382, in _make_request\n self._validate_conn(conn)\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/connectionpool.py\", line 1010, in _validate_conn\n conn.connect()\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/connection.py\", line 358, in connect\n conn = self._new_conn()\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/connection.py\", line 186, in _new_conn\n raise NewConnectionError(\nurllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests/adapters.py\", line 439, in send\n resp = conn.urlopen(\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/opentelemetry/instrumentation/urllib3/__init__.py\", line 181, in instrumented_urlopen\n response = wrapped(*args, **kwargs)\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/connectionpool.py\", line 755, in urlopen\n retries = retries.increment(\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/util/retry.py\", line 574, in increment\n raise MaxRetryError(_pool, url, error or ResponseError(cause))\nurllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='run.mocekdy.io', port=443): Max retries exceeded with url: /v3/1cwb67153-a6ac-4aae-aca6-273ed68b5d9e (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/opentelemetry/trace/__init__.py\", line 541, in use_span\n yield span\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/flask/app.py\", line 2073, in wsgi_app\n response = self.full_dispatch_request()\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/flask/app.py\", line 1518, in full_dispatch_request\n rv = self.handle_user_exception(e)\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/flask/app.py\", line 1516, in full_dispatch_request\n rv = self.dispatch_request()\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/flask/app.py\", line 1502, in dispatch_request\n return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)\n File \"/Users/makeavish/signoz/sample-flask-app/app.py\", line 45, in lists\n response = requests.get('https://run.mocekdy.io/v3/1cwb67153-a6ac-4aae-aca6-273ed68b5d9e')\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests/api.py\", line 75, in get\n return request('get', url, params=params, **kwargs)\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests/api.py\", line 61, in request\n return session.request(method=method, url=url, **kwargs)\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/opentelemetry/instrumentation/requests/__init__.py\", line 122, in instrumented_request\n return _instrumented_requests_call(\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/opentelemetry/instrumentation/requests/__init__.py\", line 199, in _instrumented_requests_call\n raise exception.with_traceback(exception.__traceback__)\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/opentelemetry/instrumentation/requests/__init__.py\", line 180, in _instrumented_requests_call\n result = call_wrapped() # *** PROCEED\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/opentelemetry/instrumentation/requests/__init__.py\", line 120, in call_wrapped\n return wrapped_request(self, method, url, *args, **kwargs)\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests/sessions.py\", line 542, in request\n resp = self.send(prep, **send_kwargs)\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/opentelemetry/instrumentation/requests/__init__.py\", line 142, in instrumented_send\n return _instrumented_requests_call(\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/opentelemetry/instrumentation/requests/__init__.py\", line 152, in _instrumented_requests_call\n return call_wrapped()\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/opentelemetry/instrumentation/requests/__init__.py\", line 140, in call_wrapped\n return wrapped_send(self, request, **kwargs)\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests/sessions.py\", line 655, in send\n r = adapter.send(request, **kwargs)\n File \"/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests/adapters.py\", line 516, in send\n raise ConnectionError(e, request=request)\nrequests.exceptions.ConnectionError: HTTPSConnectionPool(host='run.mocekdy.io', port=443): Max retries exceeded with url: /v3/1cwb67153-a6ac-4aae-aca6-273ed68b5d9e (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))\n", + "exceptionType": "ConnectionError", + "groupID": "e24d35bda98c5499a5c8df3ba61b0238", + "serviceName": "1rfflaskAp", + "spanID": "d5c8f8e860e77255", + "timestamp": "2022-07-14T10:29:48.955274Z", + "traceID": "2a149caa7415389aa25e7c80f1527c9c" +} diff --git a/frontend/tests/fixtures/api/errorDetails/404.json b/frontend/tests/fixtures/api/errorDetails/404.json new file mode 100644 index 0000000000..dd843ec7e1 --- /dev/null +++ b/frontend/tests/fixtures/api/errorDetails/404.json @@ -0,0 +1,5 @@ +{ + "error": "Error/Exception not found", + "errorType": "not_found", + "status": "error" +} diff --git a/frontend/tests/fixtures/api/getNextPrev/200.json b/frontend/tests/fixtures/api/getNextPrev/200.json new file mode 100644 index 0000000000..b98c94a369 --- /dev/null +++ b/frontend/tests/fixtures/api/getNextPrev/200.json @@ -0,0 +1,7 @@ +{ + "nextErrorID": "", + "nextTimestamp": "0001-01-01T00:00:00Z", + "prevErrorID": "217133e5f7df429abd31b507859ea513", + "prevTimestamp": "2022-07-14T10:29:48.950721Z", + "groupID": "e24d35bda98c5499a5c8df3ba61b0238" +} diff --git a/frontend/tests/fixtures/constant.ts b/frontend/tests/fixtures/constant.ts index ac20029c4a..525ed5a0ec 100644 --- a/frontend/tests/fixtures/constant.ts +++ b/frontend/tests/fixtures/constant.ts @@ -6,3 +6,5 @@ export const validPassword = 'SamplePassword98@@'; export const getStartedButtonSelector = 'button[data-attr="signup"]'; export const confirmPasswordSelector = '#password-confirm-error'; + +export const JsonApplicationType = 'application/json'; diff --git a/frontend/tests/login/fail.spec.ts b/frontend/tests/login/fail.spec.ts index 5366d7240c..760556c95e 100644 --- a/frontend/tests/login/fail.spec.ts +++ b/frontend/tests/login/fail.spec.ts @@ -24,5 +24,6 @@ test.describe('Version API fail while loading login page', async () => { expect(el).toBeVisible(); expect(el).toHaveText(`${text}`); expect(await el.getAttribute('disabled')).toBe(null); + expect(await page.screenshot()).toMatchSnapshot(); }); }); diff --git a/frontend/tests/login/fail.spec.ts-snapshots/Version-API-fail-while-loading-login-page-Something-went-wrong-1-Signoz-darwin.png b/frontend/tests/login/fail.spec.ts-snapshots/Version-API-fail-while-loading-login-page-Something-went-wrong-1-Signoz-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..c969d1f3d44db455851f9e8e952b70f045e2b791 GIT binary patch literal 8076 zcmeHMYgm$L8pdj}CasyvYfH;Rdv%pNTiJA#SsG9?lWvn{W{8J`8n;Zy(F1kDf6gEkx{k}p~b~=xtP;S1* zzd3p)wQyWcuaHvAmMQm5s;wn!-7oUL4*PNco5r6<-^4h5>v&ya=U#gLbvQpi7ngMY z!t3&YggbD^@s39>HY4A%LwBBkXm`o(uxhKSchE5wPTpD710U@)nX<5$nH4RWr3Tt~ zimX_s8aAgf2|6juNcZqPg9`?GK^^(!CQrWtsb%7GQEQOOvsFisV$BW|(tf1synW`a z9Rbjxq|q}}sxhHBCA4MgMtp^iuA@-~V%RQI^X<3XrP_KWA)YbwfcW8#4H))xXLRU_ zq1#^slVo+V`evoMGT$RId;@0gTsi1{W0->GeFO zz@zckpPR08(Ljr7=IT`Ris6CJn-V>?~VxB z=7%wFj4n*{MNd9m$tO!I)fx@w&Q83fA#ntPNNqVzuu@6%Qlv)d4F<{6r$_X&vwe-K z;s}5P=Z7DD7!cBFMa-pnt+D7pY&e%F5~k=Bkv=Ko$>(O4nJ=)DrjJmgh!9qtUQj9tqCC4R~+>4vQ|r zi56fUKpk)n_w)oMsXDnhP6&=jBnGfBf;f@cFd(2&<%wb!%J6k}$?p2W(>RN;5*nMZzCa{-pgWCY#s@MnXz9JpM5V~bY^ z9*;MVM`Jk<EYvVgx9jn7}I$A$A?)Y?Eqh2<|TMM(K6GiR;xD~1Swsj3t+A_MbyW|N_a%2klA@i zwVxZpneU_udl?mMHX9k}o9q1UY{t}!01iw79SX}JWW|bz`bzpZUO0UR*-dbne@vPG z{kO>MWTGkDG{4TH;cqeg@DAYUxeb2IxmLFV;^Oe80GuZ zWWvJ4HYb2JcA+N^dGs&x)`!vf7dr~TdO@YW==fN1Q+}%{VQvry`xhRpMkcQpnYAjd zR)w|9rOxvY3$1gxO>s;6*7J9eU_}gK29FK%{QmKI!f$1)nDX8t&7Lb4PC|IJSplv z1O6tS8xAuVfMb1MaG;BxPNUIeL@$O(rX*nJ+XI0UjlQ|>38>uc>|EjJMxWgtDeLY& zWuD4oUS^s0Fy~JM6ds)Vgl7tseE$nQ)nZawTFA<}*a(-ysZ|1lN;sNoTn|hsGs