Variable Syntax

From FojiSoft Docs
Revision as of 19:50, 3 January 2024 by Chris.Hansen (talk | contribs) (Created page with "Panel titles and metric queries can refer to variables using two different syntaxes: * '''$varname''' This syntax is easy to read, but it does not allow you to use a variable in the middle of a word. Example: apps.frontend.$server.requests.count * '''${var_name}''' Use this syntax when you want to interpolate a variable in the middle of an expression. * '''${var_name:<format>}''' This format gives you more control over how FojiSoft interpolates values. Refer to Advance...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Panel titles and metric queries can refer to variables using two different syntaxes:

  • $varname This syntax is easy to read, but it does not allow you to use a variable in the middle of a word. Example: apps.frontend.$server.requests.count
  • ${var_name} Use this syntax when you want to interpolate a variable in the middle of an expression.
  • ${var_name:<format>} This format gives you more control over how FojiSoft interpolates values. Refer to Advanced variable format options for more detail on all the formatting types.

Before queries are sent to your data source the query is interpolated, meaning the variable is replaced with its current value. During interpolation, the variable value might be escaped in order to conform to the syntax of the query language and where it is used. For example, a variable used in a regex expression will be regex escaped. Read the data source specific documentation topic for details on value escaping during interpolation.

For advanced syntax to override data source default formatting, refer to Advanced variable format options.

Advanced variable format options

The formatting of the variable interpolation depends on the data source, but there are some situations where you might want to change the default formatting.

For example, the default for the MySql data source is to join multiple values as comma-separated with quotes: 'server01','server02'. In some cases, you might want to have a comma-separated string without quotes: server01,server02. You can make that happen with advanced variable formatting options listed below.

General syntax

Syntax: ${var_name:option}

If any invalid formatting option is specified, then glob is the default/fallback option.

An alternative syntax (that might be deprecated in the future) is [[var_name:option]].

CSV

Formats variables with multiple values as a comma-separated string.

Distributed - OpenTSDB

Formats variables with multiple values in custom format for OpenTSDB.

Doublequote

Formats single-and multi-valued variables into a comma-separated string, escapes " in each value by \" and quotes each value with ".

JSON

Formats variables with multiple values as a comma-separated string.

Percentencode

Formats single and multi valued variables for use in URL parameters.

Pipe

Formats variables with multiple values into a pipe-separated string.

Raw

Turns off datasource-specific formatting, such as single quotes in an SQL query.

Regex

Formats variables with multiple values into a regex string.

Singlequote

Formats single-and multi-valued variables into a comma-separated string, escapes ' in each value by \' and quotes each value with '.

Sqlstring

Formats single-and multi-valued variables into a comma-separated string, escapes ' in each value by '' and quotes each value with '.

Text

Formats single-and multi-valued variables into their text representation. For a single variable it will just return the text representation. For multi-valued variables it will return the text representation combined with +.

Query parameters

Formats single-and multi-valued variables into their query parameter representation. Example: var-foo=value1&var-foo=value2