grafana/synthetic-monitoring-app

Multi Http Checks - Variable substitution in request body with quotes

Opened this issue · 1 comments

What happened:
I'm trying to setup a multi http check which uses variables in the request body. The request body is JSON format but I can't work out how to escape the variable identifier so that the variable is parsed. I've successfully used the variable in the request url but haven't been able to get it substituting in the body.

I've tried the following substitution formats:

{ "orderId": "${orderId}" }
{ "orderId": '"${orderId}"' }
{ "orderId": \"${orderId}\" }
{ "orderId": ${orderId:doublequote} }

What you expected to happen:
The variables would substitute in the request body using one of the above formats, or the docs updated to exclude "body" from the supported fields for variables https://grafana.com/docs/grafana-cloud/monitor-public-endpoints/checks/multihttp/#variables

How to reproduce it (as minimally and precisely as possible):

  1. Create a Multi HTTP GET request which sets a variable
  2. Create a Multi HTTP POST request which uses the variable in the request body (with double quotes)
  3. The second request won't contain the variable value.

Anything else we need to know?:

Environment:

  • Grafana version: Grafana Cloud
  • SM plugin version: Multi Http Checks

This is a bug in the agent code: grafana/synthetic-monitoring-agent#637