Bug 56623 - [ID Connector] Explain usage and interpretation of queue resource
[ID Connector] Explain usage and interpretation of queue resource
Status: CLOSED FIXED
Product: UCS@school
Classification: Unclassified
Component: Documentation
UCS@school 5.0
Other Linux
: P5 normal (vote)
: ---
Assigned To: Nico Gulden
Tobias Wenzel
https://git.knut.univention.de/univen...
:
Depends on:
Blocks: 56578
  Show dependency treegraph
 
Reported: 2023-09-18 17:42 CEST by Jan-Luca Kiok
Modified: 2024-01-15 13:09 CET (History)
2 users (show)

See Also:
What kind of report is it?: Bug Report
What type of bug is this?: 2: Improvement: Would be a product improvement
Who will be affected by this bug?: 1: Will affect a very few installed domains
How will those affected feel about the bug?: 3: A User would likely not purchase the product
User Pain: 0.034
Enterprise Customer affected?:
School Customer affected?: Yes
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number: 2023091221000601
Bug group (optional): Troubleshooting
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan-Luca Kiok univentionstaff 2023-09-18 17:42:31 CEST

    
Comment 1 Jan-Luca Kiok univentionstaff 2023-09-18 17:51:29 CEST
The ID Connector processes changes of users and groups in UCS and synchronizes them to connected UCS@school domains. These changes are queued for retries, robustness and load.
Firstly there is an in-queue from the appcenter listener converter that contains JSON representations of the changed objects, the connector itself transform them to requests to the receiving systems where each of them has it's dedicated out-queue that buffers data.

If the processing goes not as planned (service unavailable, app crashed, object faulty, ...) the queues might grow or stay at a certain level.

To monitor this the ID Connector provides a /queues/ resource which lists the length of each of those queues. Unfortunately it's usage is not explained in the manual, the only brief talking point is

> 1.4.2. Configure sending system
> [...]
> queues: monitoring of queues

As a new sub-chapter within 1. Administration a small explanation of the mechanic would be good:

1. Why are queues used? (see above)
2. How do they work? (files in directories)
3. What types and how many queues? (see above)
4. How to get their length via the API (can be queried)
5. What problems might occur? (see above)
6. How would you be able to observe this?


Some notes on that:

- The queues can grow to a considerable size quickly (>1.000.000 files reported after some days) if the app does not run
- If an object is faulty it might stay queued forever

Based on that at least three problematic states come to mind:

- Monotonous growth for a certain amount of time (hours?)
- No changes in length for a certain amount of time (hours?)
- Queue does not reach 0 after a certain amount of time (days?)
Comment 3 Nico Gulden univentionstaff 2024-01-15 13:07:44 CET
Changes merged and published for 2.3.3 document version:
044eb9e | doc: Adhere doc configuration to style guide
beb1520 | doc: Add reference to UCS architecture manual
1e2f17e | doc(index): Adhere to style guide
39302c9 | doc(admin): Adhere to style guide
57cfc3c | doc(development): Adhere to style guide
31366ba | doc(source-doc): Add reference to docstrings
3c33bed | doc(file_locations): Adhere to style guide
7056df5 | doc(example_json): Adhere to style guide
d33084f | doc(history): Add some reST formatting
7325d2d | doc(bibliography): Prevent double title in PDF builds
d17932b | doc(admin): Add section about queues
4484dc2 | doc(index): Add definition for reader and required knowledge
e91f07a | ci: Move docs jobs to child pipeline
f88c734 | ci: Build dedicated Docker image for docs
0bca4fc | docs(conf): Set release to released document version 2.3.3
b02b64e | docs(conf): Set version to 2.3.4
Comment 4 Nico Gulden univentionstaff 2024-01-15 13:08:12 CET
QA done by Tobias. See merge request https://git.knut.univention.de/univention/components/ucsschool-id-connector/-/merge_requests/26
Comment 5 Nico Gulden univentionstaff 2024-01-15 13:09:16 CET
The usage and explanation of queue resources is explained at https://docs.software-univention.de/ucsschool-id-connector/admin.html#monitor-processing-status