[ZBXNEXT-8211] New item value type Binary Created: 2022 Dec 21  Updated: 2024 Apr 10  Resolved: 2024 Apr 03

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Frontend (F), Proxy (P), Server (S)
Affects Version/s: 6.4 (plan)
Fix Version/s: 7.0.0alpha1, 7.0 (plan)

Type: New Feature Request Priority: Major
Reporter: Alex Kalimulin Assignee: Artjoms Rimdjonoks
Resolution: Fixed Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Attachments: PNG File 7F.png     JPEG File CX.jpg     PNG File Screenshot 2023-02-20 at 18.41.54.png     PNG File Screenshot 2023-04-20 at 14.18.08.png     PNG File def1.png     PNG File def2.png     PNG File example1.png     PNG File image-2023-02-09-18-08-24-494.png     PNG File image-2023-03-22-18-07-54-272.png     Text File remove_ITEM_VALUE_TYPE_MAX_patch.txt     PNG File screenshot-1.png     PNG File screenshot-2.png     PNG File screenshot-3.png     Text File zabbix_wcache_values_bin.patch.txt    
Issue Links:
Causes
causes ZBX-23154 Execution of housekeeper on Timescale... Closed
Sub-task
Sub-Tasks:
Key
Summary
Type
Status
Assignee
ZBXNEXT-8212 Frontend changes for binary item type Specification change (Sub-task) Closed Alexander Vladishev  
Epic Link: Zabbix 7.0
Team: Team D
Sprint: Sprint 96 (Jan 2023), Sprint 97 (Feb 2023), Sprint 98 (Mar 2023), Sprint 99 (Apr 2023), Sprint 100 (May 2023), Sprint 101 (Jun 2023)
Story Points: 10

 Description   

We need to introduce a new value type (aka Type of information) Binary. It must be stored as a blob in a new table history_binary. The first (and the only, for now) use for this type is to store screenshots from browser tests.

It's understood that introducing a new value type is a lot of work in all components so we need to reduce the scope of the changes to as narrow as possible. We also need to keep the number of design decisions to the minimum. For instance, rather than figuring out how triggers should work with the Binary type, we can state that triggers do not support this type and thus can be kept off value cache.

Other functionality we can now sacrifice in the name of narrow scope is preprocessing and support for item types other than Dependent (thus, no need to support it in agents, SNMP, sender, etc). In the UI/API we must also figure how to get away with as few changes as possible (e.g. Items form apparently needs to be changed, but no need to invent how to get and display history in Latest data, just string "binary" is enough).

Please research this change request and:

  • Evaluate the impact and list all components/areas that need to be changed
  • Estimate development efforts
  • List limitations that are worth introducing to limit the scope


 Comments   
Comment by Artjoms Rimdjonoks [ 2023 May 10 ]

Available in versions:

Comment by Martins Valkovskis [ 2023 May 19 ]

Updated documentation ('binary' value type added):

API documentation:

Comment by Glebs Ivanovskis [ 2023 Nov 03 ]

I would like to draw attention to loadable module binary compatibility issue introduced with this feature.

The problem is very similar to ZBX-10428. A new field char *bin was introduced in AGENT_RESULT structure. As a result an offset of int type field has changed and it made SET_*_RESULT()/ZBX_ISSET_*() macros in different versions of Zabbix incompatible with each other. At the same time ZBX_MODULE_API_VERSION remained unchanged.

Fortunately, unlike ZBX-10428, the issue was caught before the major release and you still have an opportunity to restore compatibility or bump API version before the release.

Of course, module authors would appreciate restoring compatibility. For AGENT_RESULT it can be easily achieved by moving new char *bin field to the end of struct, hence the offset of int type will not be affected. Also ZBX_HISTORY_WRITE_CBS needs to be restored to its original shape. If needed, new history_bin_cb field can be introduced in a whole new ZBX_HISTORY_WRITE_CBS_v2 returned by whole new zbx_module_history_write_cbs_v2().

Comment by Andris Mednis [ 2023 Nov 06 ]

Thanks, cyclone, for reporting this!

Comment by Alex Kalimulin [ 2023 Nov 07 ]

The module problem will be solved in ZBX-23672.

Generated at Mon Mar 31 04:50:04 EEST 2025 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.