From 9d9e20997d512c4ff0ae3b33816ef0a9e577108f Mon Sep 17 00:00:00 2001 From: German Bichkovich Date: Fri, 20 Feb 2026 09:47:55 +0200 Subject: [PATCH 1/3] dump --- .../performance/storage-vs-event-count.png | Bin 0 -> 93854 bytes docs-new/auditbox/docs/SUMMARY.md | 1 + docs-new/auditbox/docs/performance.md | 277 ++++++++++++++++++ 3 files changed, 278 insertions(+) create mode 100644 .gitbook/assets/auditbox/performance/storage-vs-event-count.png create mode 100644 docs-new/auditbox/docs/performance.md diff --git a/.gitbook/assets/auditbox/performance/storage-vs-event-count.png b/.gitbook/assets/auditbox/performance/storage-vs-event-count.png new file mode 100644 index 0000000000000000000000000000000000000000..db9f29268fdca4ae220022b55296043407b6782e GIT binary patch literal 93854 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

@oT@gF>oWz|B!{S{3sV(L4a-+ep)-Js7+@{e!9 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 XaT&=U{>+*rZczVM!#x?htpE5QrM_po literal 0 HcmV?d00001 diff --git a/docs-new/auditbox/docs/SUMMARY.md b/docs-new/auditbox/docs/SUMMARY.md index 4b4feb4af..a8fba52bb 100644 --- a/docs-new/auditbox/docs/SUMMARY.md +++ b/docs-new/auditbox/docs/SUMMARY.md @@ -22,5 +22,6 @@ ## Reference * [Environment variables](configuration/envs.md) +* [Performance](performance.md) * [API](api.md) * [Release notes](release-notes.md) diff --git a/docs-new/auditbox/docs/performance.md b/docs-new/auditbox/docs/performance.md new file mode 100644 index 000000000..d2b4960ca --- /dev/null +++ b/docs-new/auditbox/docs/performance.md @@ -0,0 +1,277 @@ +# Performance + +This page describes in detail particular benchmarks of +Auditbox. + + +## TODO Write throughput + +How many bytes are handled per unit of time (5 seconds, 10 seconds, etc?) +Get average latency. + +### Test method + +Tests are done on development environment auditbox with 1 replica. + + +Tests are done using [k6](https://k6.io/). +Each payload has the biggest possible size that Auditbox supports +(87Mb). + +This test file was used: + +```js +import http from 'k6/http'; +import { check, sleep } from 'k6'; + +const client_id = "..." +const client_secret = "..." +const keycloak_url = "..." +const server_url = "..." + +export const options = { + stages: [ + { duration: '1m', target: 1 }, + { duration: '5m', target: 1 }, + { duration: '1m', target: 3 }, + { duration: '5m', target: 3 }, + { duration: '1m', target: 6 }, + { duration: '5m', target: 6 }, + { duration: '1m', target: 12 }, + { duration: '5m', target: 12 }, + { duration: '5m', target: 0 }, + ], + thresholds: { + http_req_failed: ['rate<0.01'], // <1% errors + }, +}; + +const bundle = { + "resourceType": "Bundle", + "type": "batch", + "entry": Array(4614).fill( + { + "request": { + "method": "POST", + "url": "AuditEvent" + }, + "resource": { + "resourceType": "AuditEvent", + "id": "scenario1_event_46", + "type": { + "system": "http://dicom.nema.org/resources/ontology/DCM", + "code": "110106", + "display": "Export" + }, + "subtype": [ + { + "system": "http://dicom.nema.org/resources/ontology/DCM", + "code": "110105", + "display": "Data Export" + } + ], + "action": "E", + "recorded": "2025-10-22T03:15:00+00:00", + "outcome": "12", + "agent": [ + { + "requestor": true, + "who": { + "reference": "Practitioner/admin_fired", + "display": "Bob Johnson" + }, + "altId": "bob.johnson@hospital.com", + "type": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType", + "code": "AUT", + "display": "author" + } + ] + }, + "role": [ + { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/practitioner-role", + "code": "admin", + "display": "Administrator" + } + ] + } + ], + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/employee-status", + "valueCode": "terminated" + } + ] + } + ], + "entity": [ + { + "what": { + "reference": "Patient/patient_12345", + "display": "John Doe" + }, + "role": { + "system": "http://terminology.hl7.org/CodeSystem/object-role", + "code": "1", + "display": "Patient" + } + }, + { + "query": "_count=30&_page=1&patient=Patient%2Fpatient_12345", + "type": { + "system": "http://terminology.hl7.org/CodeSystem/audit-entity-type", + "code": "2", + "display": "System Object" + }, + "role": { + "system": "http://terminology.hl7.org/CodeSystem/object-role", + "code": "24", + "display": "Query" + } + }, + { + "what": { + "identifier": { + "system": "http://dev.auditbox.aidbox.dev/api/export-events", + "value": "export__2026_02_03_13_55.json" + } + }, + "detail": [ + { + "type": "query", + "valueString": "_count=30&_page=1&_sort=-date" + }, + { + "type": "reference", + "valueString": "Patient/8b5bacbe-b9b0-40ac-baa5-8f996bfc02bb" + } + ] + } + ], + "source": { + "site": "City General Hospital", + "observer": { + "reference": "Organization/hospital_main", + "display": "City General Hospital" + } + }, + "outcomeDesc": "Suspicious data export outside business hours" + } + } + ) +} + +const get_token = () => { + console.log("Generating token") + const response = http.post( + `${keycloak_url}/realms/auditbox/protocol/openid-connect/token`, + { + client_id, + client_secret, + grant_type: "client_credentials" + }, + { + "Content-Type": "application/x-www-form-urlencoded" + } + ) + if (response.status === 200) + return JSON.parse(response.body).access_token + else + throw new Error( + `Couldn't get token from keycloak: ${response.body}` + ) +} + +export function setup() { + return { + token: get_token(), + payload: JSON.stringify(bundle) + } +} + +export default function (data) { + const {token, payload} = data + + const response = http.post( + `${server_url}/`, + payload, + { + timeout: "600s", + headers: { + "Authorization": `Bearer ${token}` + } + } + ); + + console.log("Status of Auditbox request is", response.status) + if (response.status !== 201) { + console.log("Auditbox response body is", response.body) + } + + check( + response, + { + 'status is successful': (r) => r.status === 201 + } + ); +} +``` + +### Data + + +## Storage size per year + +### Test method + +As of now, we use elasticsearch snapshots as our backup +solution, which take approximately 3.5 gigabytes to store +10000000 average events (TODO Citation needed). + +With this, you can simply calculate the event size with +a formula `y = b * 12`, where Y is early cost and b is +a single batch cost per month. + +### Data + +| Event count (M) | Storage size (Gb) | +|-----------------|-------------------| +| 1 | 4.2 | +| 10 | 42 | +| 100 | 420 | + +

+ JumpCloud Application Creation Interface +
+ + + + +## TODO Latency + +Using k6, you can determine that depending on the load, +response times vary heavily. + +## TODO Query latency + +Simple field query vs FTS +Map time against event storage size +Cold vs cached + +****** Methodology +****** Results + From a67917fb823a312b1b3a9e2a79d4d5dfeee7900d Mon Sep 17 00:00:00 2001 From: German Bichkovich Date: Fri, 20 Feb 2026 16:01:54 +0200 Subject: [PATCH 2/3] update sections --- docs-new/auditbox/docs/performance.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs-new/auditbox/docs/performance.md b/docs-new/auditbox/docs/performance.md index d2b4960ca..8c9fbf7e4 100644 --- a/docs-new/auditbox/docs/performance.md +++ b/docs-new/auditbox/docs/performance.md @@ -8,6 +8,7 @@ Auditbox. How many bytes are handled per unit of time (5 seconds, 10 seconds, etc?) Get average latency. + ### Test method @@ -272,6 +273,6 @@ Simple field query vs FTS Map time against event storage size Cold vs cached -****** Methodology -****** Results +### Methodology +### Results From d4c99a0635aab732734e7c9a702cd28e2c5b8081 Mon Sep 17 00:00:00 2001 From: German Bichkovich Date: Mon, 23 Feb 2026 21:01:33 +0200 Subject: [PATCH 3/3] dump --- .../auditbox/performance/k6-report.html | 43 +++++++++++++++++++ docs-new/auditbox/docs/performance.md | 39 ++++++++++++++--- 2 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 .gitbook/assets/auditbox/performance/k6-report.html diff --git a/.gitbook/assets/auditbox/performance/k6-report.html b/.gitbook/assets/auditbox/performance/k6-report.html new file mode 100644 index 000000000..12be14b44 --- /dev/null +++ b/.gitbook/assets/auditbox/performance/k6-report.html @@ -0,0 +1,43 @@ + + + + + + + + + k6 report + + + + + +
+ + + diff --git a/docs-new/auditbox/docs/performance.md b/docs-new/auditbox/docs/performance.md index 8c9fbf7e4..116b1748f 100644 --- a/docs-new/auditbox/docs/performance.md +++ b/docs-new/auditbox/docs/performance.md @@ -4,21 +4,26 @@ This page describes in detail particular benchmarks of Auditbox. -## TODO Write throughput - -How many bytes are handled per unit of time (5 seconds, 10 seconds, etc?) -Get average latency. - +## Write throughput ### Test method Tests are done on development environment auditbox with 1 replica. - +Auditbox is set up with requests for 300m of CPU and 2142Mi of memory. +Elasticsearch has unlimited CPU power (uses e2-standard-2 node with 2 +vCPUs & 8 GB Memory) and 2Gi of memory. Tests are done using [k6](https://k6.io/). Each payload has the biggest possible size that Auditbox supports (87Mb). +Command used: +```sh +K6_WEB_DASHBOARD=true \ +K6_WEB_DASHBOARD_EXPORT=html-report2.html \ + k6 run test.js +``` + This test file was used: ```js @@ -225,6 +230,25 @@ export default function (data) { ### Data +{% file src="../../../.gitbook/assets/auditbox/performance/k6-report.html" %} + Test report +{% endfile %} + + + +Using the test report above, we can determine that at most, 5 virtual +users may be used at the same time without causing any failures. +Using request rate graph, we can see that between 0.2 and 0.4 bundles +are processed in the time period. Each bundle has body that is exactly +8388302 bytes long, thus we can conclude that: +```js +const single_bundle_bytes = 8388302 +const average_rate_per_second = (0.2 + 0.4) / 2 +const average_bytes_per_second = single_bundle_bytes * average_rate_per_second +const average_megabytes_per_second = average_bytes_per_second / 1000000 +``` + +As a result, we get throughput of about 2.52 megabytes per second. ## Storage size per year @@ -261,11 +285,12 @@ xychart-beta line [4.2, 420] --> - + ## TODO Query latency