does anybody have experience with the App Synthetic Monitor API or can point to a detailed documentation beyond this one?
In particular, I am trying to understand the semantics of the parameters and fields for creating or reading a rule (methods rule_add and rule_get). For type=script, the field "post" should contain an encoded JMeter script, however I am unable to figure out the encoding (it is not base64).
Any help is greatly appreciated.
I asked my colleagues @musma03 Tom_Wyszomierski eigda01 to provide an answer
Unfortunately I don't think this documented anywhere. I believe the data type is specific to the backend database we use for ASM. Though I tried running rule_get on an existing monitor to presumably get a valid value and then tried to create a new monitor using the value returned. This also failed with the error:
error>illegal parameter value</error>
<info>could not determine script type</info>
I'll discuss this with our internal ASM team and see if we can get a better answer as to what encoding is used and why the error occurs.
Heard back from our internal team. For rule_add, the expected (decoded) value of the "post" parameter is the actual JMX script (XML). The data should be sent with Content-Type: application/x-www-form-urlencoded. That means each individual parameter needs to be URL Encoded (see https://en.wikipedia.org/wiki/Percent-encoding) and the raw POST data is then formed as follows:
As for the rule_get, unfortunately this is inconsistent. The output value of the post parameter is gzip-compressed and BASE64 encoded.