API to create/update syncrule & its properties

Created an import source with puppetdb module ( Source Type). and sync rule , but not able to create the properties for the sync rule since icingaweb is non responsive when I click the source column of the properties ( not sure of the reason, may be due to huge number of the puppetdb endpoints ). but existing syncrules are working good and the job is running every 15 minutes once.

The same creation of syncrule properties works in development environment where the puppetdb is very small and less than 100 endpoints are there.

Tried to accomplish the same via API, only GET with ICINGA_URL/director/syncrules works but not the POST/PUT with json file, not sure whether the API is exposed to update particular syncrule and properties.

Questions:

  1. How to improve the performance so as to add multiple syncrules with syncrule properties in the GUI ?
  2. Will there be an API to update ?.
  3. or, can I update directly in the icinga_director database table called sync_property ?

Looking forward to seeing the solution. Thanks.

Import Source Details :-
SourceType : Puppetdb module
Key column name : certname
API Version: v4: PuppetDB 2.3 (experimental), 3.0, 3.1, 3.2, 4.0 ( PE 3.8 (experimental), 2015.2, 2015.3)
PuppetDB Server: puppetdb.example.com
client certificate : icingaweb.example.com
Query type: Nodes
Resource type: Icinga2::Object::Endpoint(11194) // year our puppetdb is huge and around 11k endpoints )
image

  • Icinga Web 2 version
    2.7.3-1
  • Used modules and their versions (System - About)
    puppetdb - 1.0.0
  • Web browser used
    chrome
  • Icinga 2 version used (icinga2 --version)
    2.13.0-1
  • PHP version used (php --version)
    $ /opt/rh/rh-php73/root/bin/php --version
    PHP 7.3.29 (cli) (built: Aug 3 2021 12:26:40) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.3.29, Copyright (c) 1998-2018 Zend Technologies
  • Server operating system and version
    CentOS Release: 7.9.2009
  • Server CPU, Mem:
    8 CPU 8GB memory
  • PHP allocated memory:
    4 GB Mem

Note:
In Our environment, all icinga applications are running in dedicated pair of hosts
Icinga, icingaweb, puppet, puppetdb, and the backend databases.