runtime

Definition

The runtime command allows the user to modify Conductor runtime behavior. Its four subcommands enable you to get, list, set, and unset the log level and delay settings for parameters in the Conductor runtime.

For a complete list of configurable settings, see this list or execute fugue runtime list.

Log levels

Log levels control how verbose Conductor logs are. Conductor components write messages to log files, which are kept in AWS CloudWatch Logs. By default, all log levels are set to WARNING. See Logging & Notifications to learn how the Conductor uses CloudWatch.

Supported log levels, from least to most verbose:

  • ERROR
  • WARNING
  • INFO
  • DEBUG

Log levels can be set globally (with globbing) or by individual service.

Log level parameter format

The get, set, and unset commands take a <KEY> argument to specify the runtime parameter. This is the general format for specifying a component log level parameter:

<specifier>.<component>.log-level

Each of these formats specifies the log level parameters for all components:

*.*.log-level
**log-level

This format specifies the log level parameter for the broker only:

aws.fugue-broker.log-level

Delays

Delays control the amount of time in seconds between reflector descriptor runs. A reflector descriptor is a Conductor component that polls a cloud provider service for resource information. For example, aws.fugue-reflector-descriptor-ec2 sends describe calls to the AWS API for current information about the EC2 resources in an account. By default, the delay between describe calls is set to 60.

Delays can be set globally (with globbing) or by individual service.

Delay parameter format

The get, set, and unset commands take a <KEY> argument to specify the runtime parameter. This is the general format for specifying the delay parameter for a particular service:

<specifier>.fugue-reflector-descriptor-<service>.delay

Each of these formats specifies the delay parameter for all services:

*.*.delay
**delay

This format specifies the delay parameter for the ELB service only:

aws.fugue-reflector-descriptor-elb.delay

Globbing

runtime supports glob pattern matching, using dots as a separator. This means a single wildcard character will match everything up to the first separator encountered.

Term Description Example
* Matches any characters up to the separator.
*.*.delay

One form of matching all components that honor a delay setting.

** Matches any characters including the separator.
**delay

One form of matching all components that honor a delay setting. Equivalent to the previous example.
? Matches a single character.
???.*.delay

Matches all components whose specifier is three letters that honor a display setting.

The same patterns apply to log-level globs.

Note: Some shells may attempt to parse the * in wildcards themselves. If you see an unusual error while running a command on a parameter containing a *, wrap the parameter in double quotes, like this: "*.*.delay". Find more examples in Examples.

Executing other changes after runtime

Note

Issuing additional configuration or install commands after issuing fugue runtime may result in issues. For example, after issuing fugue runtime if a user attempts to run fugue console install the fugue console install command will fail. Users are advised to wait a minute or two for fugue runtime to complete any configuration changes prior to attempting additional system installations or configuration changes.

Executing multiple commands in a row

Note

Fugue runtime includes a built-in lockout to prevent users from issuing multiple commands in a row. After a user issues a set or unset command the system observes a 90 second lockout period. If a user attempts to issue a command before the system is ready, the user will receive a lockout notification warning. This enables runtime to complete the requested changes and to prevent the system from triggering CloudWatch alarms.

Additionally, in some scenarios issuing the set and/or unset command with the use of a wildcard * may set off CloudWatch alarms that terminate the Conductor. For information on this issue, refer to details in our Troubleshooting Guide and reach out to support@fugue.co.

Usage

fugue [global options] runtime [options] command [args]...

Subcommands

get
Get a Conductor tunable parameter by name or glob.
list
List all individual tunable parameters the Conductor supports.
set
Set a Conductor’s parameter(s) to a given value, such as changing log level to DEBUG.
unset
Unset a Conductor parameter, which will return it to the default.

Options

Global options are detailed here.

-h | --help
Show help text. The help flag is available throughout the CLI in both an application-level and command-level context. It enables a user to view help text for any command within the Fugue CLI.

Runtime Subcommands

get

Definition

Get a Conductor tunable parameter by name or glob.

Usage

fugue runtime get [options] <KEY>

Options

--json
Emit output as JSON.
-h | --help
Show help text.

Arguments

<KEY>
The parameter to retrieve the value of. Name or glob pattern. See Log levels and Delays for acceptable <KEY> formats.

list

Definition

List all individual tunable parameters the Conductor supports.

Usage

fugue runtime list [options]

Options

--json
Present account list in JSON format.
-h | --help
Show help text.

set

Definition

Set a Conductor’s parameter(s) to a given value, such as changing log level to DEBUG.

Usage

fugue runtime set [options] <KEY> <VALUE>

Options

--json
Emit output as JSON.
-h | --help
Show help text.

Arguments

<KEY>
The parameter to be set. Name or glob pattern. See Log levels and Delays for acceptable <KEY> formats.
<VALUE>
The new value for the parameter.

unset

Definition

Unset a Conductor parameter, which will return it to the default.

  • Default value for all log levels: WARNING
  • Default value for all delays, in seconds: 60

Usage

fugue runtime unset [options] <KEY>

Options

--json
Emit output as JSON.
-h | --help
Show help text.

Arguments

<KEY>
The parameter to unset. Name or glob pattern. See Log levels and Delays for acceptable <KEY> formats.

Examples

Getting a configurable runtime parameter

To retrieve the value of a Conductor tunable parameter, use the runtime get command and specify a <KEY>, such as the name of the parameter or a glob pattern. The following command returns the reflector descriptor delay for just the ELB service:

fugue runtime get aws.fugue-reflector-descriptor-elb.delay

You’ll see output like this:

Requesting the Conductor get runtime configuration ...

Setting                                   Value    Default
----------------------------------------  -------  ---------
aws.fugue-reflector-descriptor-elb.delay  60       60

The following command returns the log level for all components:

fugue runtime get "*.*.log-level"

You’ll see output like this:

Requesting the Conductor get runtime configuration ...

Setting                                                  Value    Default
-------------------------------------------------------  -------  ---------
aws.fugue-capture.log-level                              WARNING  WARNING
aws.fugue-planner-emit-instructions-go.log-level         WARNING  WARNING
aws.fugue-reflector-descriptor-autoscaling.log-level     WARNING  WARNING
aws.fugue-reflector-descriptor-cloudformation.log-level  WARNING  WARNING
aws.fugue-reflector-descriptor-cloudfront.log-level      WARNING  WARNING
aws.fugue-reflector-descriptor-cloudtrail.log-level      WARNING  WARNING
aws.fugue-reflector-descriptor-cloudwatch.log-level      WARNING  WARNING
aws.fugue-reflector-descriptor-dynamodb.log-level        WARNING  WARNING
aws.fugue-reflector-descriptor-ec2.log-level             WARNING  WARNING
aws.fugue-reflector-descriptor-ecs.log-level             WARNING  WARNING
aws.fugue-reflector-descriptor-elasticache.log-level     WARNING  WARNING
aws.fugue-reflector-descriptor-elb.log-level             WARNING  WARNING
aws.fugue-reflector-descriptor-elbv2.log-level           WARNING  WARNING
aws.fugue-reflector-descriptor-iam.log-level             WARNING  WARNING
aws.fugue-reflector-descriptor-lambda.log-level          WARNING  WARNING
aws.fugue-reflector-descriptor-logs.log-level            WARNING  WARNING
aws.fugue-reflector-descriptor-rds.log-level             WARNING  WARNING
aws.fugue-reflector-descriptor-route53.log-level         WARNING  WARNING
aws.fugue-reflector-descriptor-s3.log-level              WARNING  WARNING
aws.fugue-reflector-descriptor-sns.log-level             WARNING  WARNING
aws.fugue-reflector-descriptor-sqs.log-level             WARNING  WARNING
aws.fugue-reflector-query.log-level                      WARNING  WARNING
conductor.commKitMan.log-level                           WARNING  WARNING
conductor.fugue-accounts-svc.log-level                   WARNING  WARNING
conductor.fugue-broker.log-level                         WARNING  WARNING
conductor.fugue-conductor-stats.log-level                WARNING  WARNING
conductor.fugue-keymanager.log-level                     WARNING  WARNING
conductor.fugue-ludwig-validator.log-level               WARNING  WARNING
conductor.fugue-manager.log-level                        WARNING  WARNING
conductor.fugue-notification-svc.log-level               WARNING  WARNING
conductor.fugue-policy-svc.log-level                     WARNING  WARNING
conductor.fugue-resmon.log-level                         WARNING  WARNING
conductor.fugue-scheduler-signal-handler.log-level       WARNING  WARNING
conductor.fugue-scheduler-ticker.log-level               WARNING  WARNING
conductor.fugue-telemetry.log-level                      WARNING  WARNING
conductor.fugue-translate-broker.log-level               WARNING  WARNING
conductor.fugue-vars-prefix-archiver.log-level           WARNING  WARNING
conductor.vars-conductor.log-level                       WARNING  WARNING

Listing all configurable runtime parameters

To list all runtime configuration settings and their values, use the runtime list command:

fugue runtime list

You’ll see output like this:

Requesting the Conductor list runtime configuration ...

Setting                                                  Value
-------------------------------------------------------  -------
aws.fugue-capture.log-level                              WARNING
aws.fugue-planner-emit-instructions-go.log-level         WARNING
aws.fugue-reflector-descriptor-autoscaling.delay         60
aws.fugue-reflector-descriptor-autoscaling.log-level     WARNING
aws.fugue-reflector-descriptor-cloudformation.delay      60
aws.fugue-reflector-descriptor-cloudformation.log-level  WARNING
aws.fugue-reflector-descriptor-cloudfront.delay          60
aws.fugue-reflector-descriptor-cloudfront.log-level      WARNING
aws.fugue-reflector-descriptor-cloudtrail.delay          60
aws.fugue-reflector-descriptor-cloudtrail.log-level      WARNING
aws.fugue-reflector-descriptor-cloudwatch.delay          60
aws.fugue-reflector-descriptor-cloudwatch.log-level      WARNING
aws.fugue-reflector-descriptor-dynamodb.delay            60
aws.fugue-reflector-descriptor-dynamodb.log-level        WARNING
aws.fugue-reflector-descriptor-ec2.delay                 60
aws.fugue-reflector-descriptor-ec2.log-level             WARNING
aws.fugue-reflector-descriptor-ecs.delay                 60
aws.fugue-reflector-descriptor-ecs.log-level             WARNING
aws.fugue-reflector-descriptor-elasticache.delay         60
aws.fugue-reflector-descriptor-elasticache.log-level     WARNING
aws.fugue-reflector-descriptor-elb.delay                 60
aws.fugue-reflector-descriptor-elb.log-level             WARNING
aws.fugue-reflector-descriptor-elbv2.delay               60
aws.fugue-reflector-descriptor-elbv2.log-level           WARNING
aws.fugue-reflector-descriptor-iam.delay                 60
aws.fugue-reflector-descriptor-iam.log-level             WARNING
aws.fugue-reflector-descriptor-lambda.delay              60
aws.fugue-reflector-descriptor-lambda.log-level          WARNING
aws.fugue-reflector-descriptor-logs.delay                60
aws.fugue-reflector-descriptor-logs.log-level            WARNING
aws.fugue-reflector-descriptor-rds.delay                 60
aws.fugue-reflector-descriptor-rds.log-level             WARNING
aws.fugue-reflector-descriptor-route53.delay             60
aws.fugue-reflector-descriptor-route53.log-level         WARNING
aws.fugue-reflector-descriptor-s3.delay                  60
aws.fugue-reflector-descriptor-s3.log-level              WARNING
aws.fugue-reflector-descriptor-sns.delay                 60
aws.fugue-reflector-descriptor-sns.log-level             WARNING
aws.fugue-reflector-descriptor-sqs.delay                 60
aws.fugue-reflector-descriptor-sqs.log-level             WARNING
aws.fugue-reflector-query.log-level                      WARNING
conductor.commKitMan.log-level                           WARNING
conductor.fugue-accounts-svc.log-level                   WARNING
conductor.fugue-broker.log-level                         WARNING
conductor.fugue-conductor-stats.log-level                WARNING
conductor.fugue-keymanager.log-level                     WARNING
conductor.fugue-ludwig-validator.log-level               WARNING
conductor.fugue-manager.log-level                        WARNING
conductor.fugue-notification-svc.log-level               WARNING
conductor.fugue-policy-svc.log-level                     WARNING
conductor.fugue-resmon.log-level                         WARNING
conductor.fugue-scheduler-signal-handler.log-level       WARNING
conductor.fugue-scheduler-ticker.log-level               WARNING
conductor.fugue-telemetry.log-level                      WARNING
conductor.fugue-translate-broker.log-level               WARNING
conductor.fugue-vars-prefix-archiver.log-level           WARNING
conductor.vars-conductor.log-level                       WARNING

Setting a configurable runtime parameter

To set a Conductor tunable parameter to a given value, use the runtime set command and specify a <KEY>, such as the name of a parameter or a glob pattern, and a <VALUE>, such as the delay in seconds or the log level. The following command sets the log level to INFO for all provider-agnostic services:

fugue runtime set "conductor.*.log-level" INFO

You’ll see output like this:

Requesting the Conductor set runtime configuration ...

Setting                                             Value    Default
--------------------------------------------------  -------  ---------
conductor.commKitMan.log-level                      INFO     WARNING
conductor.fugue-accounts-svc.log-level              INFO     WARNING
conductor.fugue-broker.log-level                    INFO     WARNING
conductor.fugue-conductor-stats.log-level           INFO     WARNING
conductor.fugue-keymanager.log-level                INFO     WARNING
conductor.fugue-ludwig-validator.log-level          INFO     WARNING
conductor.fugue-manager.log-level                   INFO     WARNING
conductor.fugue-notification-svc.log-level          INFO     WARNING
conductor.fugue-policy-svc.log-level                INFO     WARNING
conductor.fugue-resmon.log-level                    INFO     WARNING
conductor.fugue-scheduler-signal-handler.log-level  INFO     WARNING
conductor.fugue-scheduler-ticker.log-level          INFO     WARNING
conductor.fugue-telemetry.log-level                 INFO     WARNING
conductor.fugue-translate-broker.log-level          INFO     WARNING
conductor.fugue-vars-prefix-archiver.log-level      INFO     WARNING
conductor.vars-conductor.log-level                  INFO     WARNING

Applying Conductor settings, this may take a couple minutes...

Notice the final line: “Applying Conductor settings, this may take a couple minutes...” The CLI blocks at the command line until the Conductor has finished.

Note: You must wait a couple minutes before executing set or unset again.

The following command sets the reflector descriptor delay to 90 seconds for just the SQS service:

fugue runtime set aws.fugue-reflector-descriptor-sqs.delay 90

You’ll see output like this:

Requesting the Conductor set runtime configuration ...

Setting                                   Value    Default
----------------------------------------  -------  ---------
aws.fugue-reflector-descriptor-sqs.delay  90       60

Applying Conductor settings, this may take a couple minutes...

Unsetting a Conductor parameter

To unset a Conductor tunable parameter and return it to the default value, use the runtime unset command and specify a <KEY>, such as the name of the parameter or a glob pattern. The following command unsets delays for all Conductor reflectors:

fugue runtime unset "**delay"

You’ll see output like this:

Requesting the Conductor unset runtime configuration ...

Setting                                              Value    Default
---------------------------------------------------  -------  ---------
aws.fugue-reflector-descriptor-autoscaling.delay     60       60
aws.fugue-reflector-descriptor-cloudformation.delay  60       60
aws.fugue-reflector-descriptor-cloudfront.delay      60       60
aws.fugue-reflector-descriptor-cloudtrail.delay      60       60
aws.fugue-reflector-descriptor-cloudwatch.delay      60       60
aws.fugue-reflector-descriptor-dynamodb.delay        60       60
aws.fugue-reflector-descriptor-ec2.delay             60       60
aws.fugue-reflector-descriptor-ecs.delay             60       60
aws.fugue-reflector-descriptor-elasticache.delay     60       60
aws.fugue-reflector-descriptor-elb.delay             60       60
aws.fugue-reflector-descriptor-elbv2.delay           60       60
aws.fugue-reflector-descriptor-iam.delay             60       60
aws.fugue-reflector-descriptor-lambda.delay          60       60
aws.fugue-reflector-descriptor-logs.delay            60       60
aws.fugue-reflector-descriptor-rds.delay             60       60
aws.fugue-reflector-descriptor-route53.delay         60       60
aws.fugue-reflector-descriptor-s3.delay              60       60
aws.fugue-reflector-descriptor-sns.delay             60       60
aws.fugue-reflector-descriptor-sqs.delay             60       60

Applying Conductor settings, this may take a couple minutes...

Notice the final line: “Applying Conductor settings, this may take a couple minutes...” The CLI blocks at the command line until the Conductor has finished.

Note: You must wait a couple minutes before executing set or unset again.

The following command unsets the log level for all AWS components:

fugue runtime unset "aws.*.log-level"

You’ll see output like this:

Requesting the Conductor unset runtime configuration ...

Setting                                                  Value    Default
-------------------------------------------------------  -------  ---------
aws.fugue-capture.log-level                              WARNING  WARNING
aws.fugue-planner-emit-instructions-go.log-level         WARNING  WARNING
aws.fugue-reflector-descriptor-autoscaling.log-level     WARNING  WARNING
aws.fugue-reflector-descriptor-cloudformation.log-level  WARNING  WARNING
aws.fugue-reflector-descriptor-cloudfront.log-level      WARNING  WARNING
aws.fugue-reflector-descriptor-cloudtrail.log-level      WARNING  WARNING
aws.fugue-reflector-descriptor-cloudwatch.log-level      WARNING  WARNING
aws.fugue-reflector-descriptor-dynamodb.log-level        WARNING  WARNING
aws.fugue-reflector-descriptor-ec2.log-level             WARNING  WARNING
aws.fugue-reflector-descriptor-ecs.log-level             WARNING  WARNING
aws.fugue-reflector-descriptor-elasticache.log-level     WARNING  WARNING
aws.fugue-reflector-descriptor-elb.log-level             WARNING  WARNING
aws.fugue-reflector-descriptor-elbv2.log-level           WARNING  WARNING
aws.fugue-reflector-descriptor-iam.log-level             WARNING  WARNING
aws.fugue-reflector-descriptor-lambda.log-level          WARNING  WARNING
aws.fugue-reflector-descriptor-logs.log-level            WARNING  WARNING
aws.fugue-reflector-descriptor-rds.log-level             WARNING  WARNING
aws.fugue-reflector-descriptor-route53.log-level         WARNING  WARNING
aws.fugue-reflector-descriptor-s3.log-level              WARNING  WARNING
aws.fugue-reflector-descriptor-sns.log-level             WARNING  WARNING
aws.fugue-reflector-descriptor-sqs.log-level             WARNING  WARNING
aws.fugue-reflector-query.log-level                      WARNING  WARNING

Applying Conductor settings, this may take a couple minutes...