Release Notes

Check out the latest features and changes across the Shoreline platform.

2.2.0

Released: 07/31/21

Jobs

Jobs allow you to issue and track CLI commands seamlessly across a large number of resources without worrying about getting stuck due to network failures, node outages, or system responsiveness. Jobs are generated using a feature called statement backgrounding.

When invoking a Linux command to one or more Resources, if the execution time of that command takes longer than the background_timeout time, then Shoreline automatically creates a job for that issued statement.

To illustrate, consider a short-running command that takes about a second to complete. Here, we'll simulate the delay using the Unix sleep command.

op>
hosts | `sleep 1 && echo "Complete"`

The result is a quick round trip, and you get results after just over a second, as expected.

ID | TYPE | NAME                | REGION    | AZ         | STATUS | STDOUT
65 | HOST | i-00f9034231ac2bec0 | us-west-2 | us-west-2a |   0    | Complete
66 | HOST | i-0ba70a62ee3b38683 | us-west-2 | us-west-2c |   0    | Complete
67 | HOST | i-00e36a7da4ff269b1 | us-west-2 | us-west-2b |   0    | Complete

Next, consider a long-running command that takes up to 30 seconds to complete.

op>
hosts | `sleep 30 && echo "Complete"`

Without statement backgrounding, invoking the above command effectively locks the CLI while waiting for a response. However, with statement backgrounding, you get a response after just a few seconds.

ID | TYPE | NAME                | REGION    | AZ
65 | HOST | i-00f9034231ac2bec0 | us-west-2 | us-west-2a
66 | HOST | i-0ba70a62ee3b38683 | us-west-2 | us-west-2c
67 | HOST | i-00e36a7da4ff269b1 | us-west-2 | us-west-2b
Some commands were backgrounded.
Use 'jobs' to view all jobs.
Use 'jobs | id = 300009015' to view detailed info for this job.

The CLI indicates when a statement is backgrounded because it exceeds your background_timeout duration.

Check out the Jobs guide for full details!

auth sudo

The auth sudo Op command gives you Full Administrator access for the next 60 seconds, which temporarily bypasses all Access Control restrictions.

op>
auth sudo
password>*****
Sudo access enabled.

Improvements

Metric query regex tag filtering

Metric tags can be filtered with regex using =~ and !=~ comparators.

op>
list metrics | name =~ "memory_usage"
TYPE   | NAME                         | DESCRIPTION                    | FORMULA
METRIC | container_memory_usage_bytes |                                | metric_query(metric_names="container_memory_usage_bytes")
METRIC | pod_memory_usage_bytes       |                                | metric_query(metric_names="container_memory_working_set_bytes") | "container"!="POD"
METRIC | app_memory_usage             | Application level memory usage | pod_memory_usage_bytes | real_time=true
METRIC | pod_memory_usage             | Pod percent memory used        | (100 * pod_memory_usage_bytes / pod_spec_memory_limit_bytes) | lower_bound(0)
METRIC | container_memory_usage       | Container percent memory used  | (100 * container_memory_usage_bytes / container_spec_memory_limit_bytes) | lower_bound(0)
  • Prohibit consecutive count commands in an Op statement. (PR#5302)
oldop>
hosts | count | count
RESOURCE_COUNT
 56
newop>
hosts | count | count
Error: Error transforming AST: Invalid use of count: two consecutive COUNTs is not allowed
  • Increased maximum number of query metrics from 1,000 to 10,000. (PR#5266)
  • Improved roundtrip performance of some Linux commands. (PR#5261)
  • Removed Shoreline-specific monitoring users from Audit log. (PR#5274)
  • Removed Shoreline-specific monitoring and ss-ops users from get_user_sessions Op command. (PR#5292)
  • Improved Metric service logging. (PR#5297)

Fixes

  • 500 HTTP code sent to frontend in some circumstances, rather than expected timeout. (PR#5260)
  • Listing a Bot without and Alarm and Action fails. (PR#5247)
  • Audit log shows user id when the user is automatically provisioned, instead of a general Shoreline entry. (PR#5293)
  • Partially-completed Job results all showing as COMPLETED. (PR#5250)
  • Actions UI displays zero manual actions, regardless of actual number. (PR#5280)

1.28.6

Released: 07/23/21

Terraform Provider

The Shoreline Terraform Provider and associated Op Packs are remediation-as-code (RaC) tools. Generate auto-remediation and diagnostic objects throughout your fleet using standard Terraform configuration files and patterns.

Learn what the provider can do in our Shoreline Provider docs and check out the Terraform Registry for the latest build.

Audit Logging

The Audit Log stores every single event within your Shoreline cluster, including:

Check out the Audit Log guide for details.

Improvements

Default Permissions

Default Access Control permissions have more lenient Metric view, Action execution, and Linux command execution limits. Additionally, default permissions no longer grant the Administer role.

old
{
  view_limit: 10,
  action_limit: 10,
  execute_limit: 10,
  configure_permission: 1,
  administer_permission: 1
}
new
{
  view_limit: 3000,
  action_limit: 3000,
  execute_limit: 3000,
  configure_permission: 1,
  administer_permission: 0
}

Plural Resource Commands

Plural Resource symbols are now supported and recommended.

oldop>
host
newop>
hosts
The dot prefix for secondary Resource symbols is no longer required.
oldop>
host | .pod | .container
newop>
hosts | pods | containers
oldop>
host | .pod | .container
newop>
containers

Standard Streams for Linux Command Alarms

Linux command Alarms now display the standard output streams produced by the Alarm.

alarm-stdout

Chained Dynamic Filters

Chained Dynamic Filters now accurately report the number of each Resource type.

oldop>
host | filter(cpu_usage > 5) | .pod | .container | filter(container_memory_usage > 20)
Filter excluded 10 resources out of 39 resources
newop>
host | filter(cpu_usage > 5) | .pod | .container | filter(container_memory_usage > 20)
Filters excluded 0/3 hosts, 0/16 pods, 10/16 containers
successop>
host | az=["us-west-2a", "us-west-2b"]
errorop>
host | az=['us-west-2a', 'us-west-2b']
successop>
host | az=["us-west-2a", "us-west-2b"]
successop>
host | az=['us-west-2a', 'us-west-2b']
  • Improved backend Metric computation speed by up to 300-500%.
  • Improved backend Alarm create and update time by performing backend compilations.
  • Added missing customer error to login UI.
  • The res_env_var Action property is automatically captured, even when the command contains an explicit exit command.

Fixes