mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-18 05:52:51 +00:00
## Todos for release - [x] Configure Env in docs project on vercel - [x] Configure Root Path in the docs project on vercel - [ ] Remove old CSP https://github.com/zitadel/website/pull/1592 ## What we did This pull request migrates the project documentation from the old `docs/` directory to the new `apps/docs/` directory, introduces a new documentation system built with Next.js and Fumadocs, and updates all relevant references, configuration files, and documentation to reflect this change. It also adds new configuration and ignore files for the new documentation app, updates CI and linting to exclude the new docs from certain checks, and revises the contributing guidelines accordingly. **Documentation System Migration and New Docs App** * Migrated all documentation from `docs/` to `apps/docs/`, and updated all references in `README.md`, `CONTRIBUTING.md`, and other files to point to the new location. [[1]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L585-L640) [[2]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L660-R607) [[3]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L740-R687) [[4]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L2-R3) [[5]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L30-R30) * Added a new Next.js/Fumadocs-based documentation app under `apps/docs/`, including core app files, layouts, routing, search API, and a comprehensive `README.md` with development and contribution instructions. [[1]](diffhunk://#diff-5a1b07344a2c1b4d3f37b23ff1388b62cd9f57dea3c1cd23d8a0412b7602b132R1-R74) [[2]](diffhunk://#diff-462b9ad1eabbb7d1c29bb9c36e4931eb180fd7190900e6d2babf8f4d66ad1c28R1-R39) [[3]](diffhunk://#diff-e16ae25660ded787b10ac35dea96d5ecaacf895dae0afc8a9bd4382dc79a8c87R1-R7) [apps/docs/app/[[...slug]]/layout.tsxR1-R81](diffhunk://#diff-59e08acde4e805b7aeccef1dcf98f1d71dfc550777e6b9402085cee0e9fa4e0aR1-R81), [apps/docs/app/[[...slug]]/page.tsxR1-R79](diffhunk://#diff-e5df3f80d0fa01e12d63d81f29c57a9d14e846c78fd3beabb2ef768e38fd9580R1-R79), [[4]](diffhunk://#diff-389b34918e040cacaa87cd7201ffa462cc2b0b716736f537e3d3c660ac69353bR1-R7) [[5]](diffhunk://#diff-d3b03416d1c457b19f1c27b26f2db741412df841b875c26ccadc36e4522247f4R1-R29) [[6]](diffhunk://#diff-c8fb8339570a5305809be7c618e14705fd86390dc278e6ce8ba224a7bc8b0c3cR1-R25) **Configuration and Tooling Updates** * Updated `.github/workflows/codeql.yml`, `.golangci.yaml`, and `.github/dependabot.yml` to properly handle the new docs app: excluded `apps/docs` from certain checks, added npm dependency updates for the docs app, and excluded generated content. [[1]](diffhunk://#diff-12783128521e452af0cfac94b99b8d250413c516ec71fe6d97dbea666ff7ba27L8-R14) [[2]](diffhunk://#diff-9917ddc9f1c3304218f7269265b746d997c5c0615478177b5fceecd33ef47cb5R5-R6) [[3]](diffhunk://#diff-9917ddc9f1c3304218f7269265b746d997c5c0615478177b5fceecd33ef47cb5R126-R129) [[4]](diffhunk://#diff-dd4fbda47e51f1e35defb9275a9cd9c212ecde0b870cba89ddaaae65c5f3cd28R89-R106) * Updated `.devcontainer/devcontainer.json` to use the latest Go 1.25.3 version for consistency. **Licensing and Miscellaneous** * Added `apps/docs/` to the list of licensed directories in `LICENSING.md`. These changes ensure the documentation is now maintained in a modern, scalable system and all project tooling is updated to support the new structure. --------- Co-authored-by: Federico Coppede <[email protected]>
103 lines
5.6 KiB
Plaintext
103 lines
5.6 KiB
Plaintext
---
|
|
title: manipulate user benchmark of zitadel v4
|
|
sidebar_label: manipulate user
|
|
---
|
|
|
|
import OutputSource from "./output.json";
|
|
import { BenchmarkChart } from '@/components/benchmark_chart';
|
|
|
|
Benchmark results of v4 release of Zitadel.
|
|
|
|
## Performance test results
|
|
|
|
| Metric | Value |
|
|
|:--------------------------------------|:------|
|
|
| Baseline | none |
|
|
| Purpose | Test current performance |
|
|
| Test start | 15:07 UTC |
|
|
| Test duration | 30min |
|
|
| Executed test | manipulate\_user |
|
|
| k6 version | v1.0.0-rc1 |
|
|
| VUs | 600 |
|
|
| Client location | US1 |
|
|
| ZITADEL location | US1 |
|
|
| ZITADEL container specification | vCPU: 6<br/> Memory: 6 Gi <br/>Container min scale: 2<br/>Container max scale: 7 |
|
|
| ZITADEL Version | v4.0.0-rc2 |
|
|
| ZITADEL feature flags | webKey: true, improvedPerformance: \[\"IMPROVED\_PERFORMANCE\_ORG\_BY\_ID\", \"IMPROVED\_PERFORMANCE\_PROJECT\", \"IMPROVED\_PERFORMANCE\_USER\_GRANT\", \"IMPROVED\_PERFORMANCE\_ORG\_DOMAIN\_VERIFIED\", \"IMPROVED\_PERFORMANCE\_PROJECT\_GRANT\"\] |
|
|
| Database | type: psql<br />version: v17.4 |
|
|
| Database location | US1 |
|
|
| Database specification | vCPU: 8<br/> memory: 32Gib |
|
|
| ZITADEL metrics during test | |
|
|
| Observed errors | |
|
|
| Top 3 most expensive database queries | 1: query events by instance id, aggregate types, event types, position<br/>2: write events<br/>3: query user by id<br/> |
|
|
| k6 Iterations per second | 16 |
|
|
| k6 output | [output](#k6-output) |
|
|
| flowchart outcome | |
|
|
|
|
## Endpoint latencies
|
|
|
|
Each iteration creates, updates and deletes a user.
|
|
|
|
<BenchmarkChart testResults={OutputSource} />
|
|
|
|
## k6 output
|
|
```bash
|
|
█ TOTAL RESULTS
|
|
|
|
checks_total.......................: 199261 108.759178/s
|
|
checks_succeeded...................: 57.15% 113882 out of 199261
|
|
checks_failed......................: 42.84% 85379 out of 199261
|
|
|
|
✓ user defined
|
|
✓ authorize status ok
|
|
✓ login name status ok
|
|
✓ login shows password page
|
|
✓ password status ok
|
|
✓ password callback
|
|
✓ code set
|
|
✓ token status ok
|
|
✓ access token created
|
|
✓ id token created
|
|
✓ info created
|
|
✓ org created
|
|
✗ create user is status ok
|
|
↳ 99% — ✓ 28528 / ✗ 4
|
|
✗ update user is status ok
|
|
↳ 25% — ✓ 28469 / ✗ 85359
|
|
✗ lock user is status ok
|
|
↳ 99% — ✓ 28460 / ✗ 8
|
|
✗ delete user is status ok
|
|
↳ 99% — ✓ 28412 / ✗ 8
|
|
✓ org removed
|
|
|
|
CUSTOM
|
|
delete_user_duration....................................................: min=109.24ms avg=3.48s max=1m0s p(50)=2s p(95)=7.65s p(99)=9.78s
|
|
lock_user_duration......................................................: min=77.95ms avg=2.7s max=1m0s p(50)=1.1s p(95)=6.36s p(99)=7.86s
|
|
login_ui_enter_login_name_duration......................................: min=175.39ms avg=175.39ms max=175.39ms p(50)=175.39ms p(95)=175.39ms p(99)=175.39ms
|
|
login_ui_enter_password_duration........................................: min=34.12ms avg=34.12ms max=34.12ms p(50)=34.12ms p(95)=34.12ms p(99)=34.12ms
|
|
login_ui_init_login_duration............................................: min=100.5ms avg=100.5ms max=100.5ms p(50)=100.5ms p(95)=100.5ms p(99)=100.5ms
|
|
login_ui_token_duration.................................................: min=154.05ms avg=154.05ms max=154.05ms p(50)=154.05ms p(95)=154.05ms p(99)=154.05ms
|
|
org_create_org_duration.................................................: min=71.03ms avg=71.03ms max=71.03ms p(50)=71.03ms p(95)=71.03ms p(99)=71.03ms
|
|
update_human_duration...................................................: min=70.77ms avg=2.43s max=1m0s p(50)=807.73ms p(95)=5.99s p(99)=7.36s
|
|
user_create_human_duration..............................................: min=503.01ms avg=3.69s max=1m0s p(50)=2.07s p(95)=7.66s p(99)=13.98s
|
|
|
|
HTTP
|
|
http_req_duration.......................................................: min=34.12ms avg=7.64s max=1m0s p(50)=4.07s p(95)=32.29s p(99)=41.1s
|
|
{ expected_response:true }............................................: min=34.12ms avg=7.63s max=54.32s p(50)=4.07s p(95)=32.26s p(99)=41.03s
|
|
http_req_failed.........................................................: 0.02% 31 out of 142384
|
|
http_reqs...............................................................: 142384 77.714991/s
|
|
|
|
EXECUTION
|
|
iteration_duration......................................................: min=17.1s avg=38.22s max=1m30s p(50)=36.76s p(95)=58.22s p(99)=1m7s
|
|
iterations..............................................................: 28434 15.519637/s
|
|
vus.....................................................................: 0 min=0 max=600
|
|
vus_max.................................................................: 600 min=600 max=600
|
|
|
|
NETWORK
|
|
data_received...........................................................: 82 MB 45 kB/s
|
|
data_sent...............................................................: 26 MB 14 kB/s
|
|
|
|
running (30m32.1s), 000/600 VUs, 28434 complete and 98 interrupted iterations
|
|
default ✓ [======================================] 600 VUs 30m0s
|
|
```
|