Weekly Change Log: December 11, 2017 - December 17, 2017

ATSD

Issue Category Type Subject
4809 admin Bug Enforce UTF-8 file encoding in ATSD start scripts.
4808 rule engine Feature Implement value('metricName') function to access other metrics in the same series command by name.
4798 rule engine Feature Outgoing webhooks: add support for proxy and reverse-proxy network connections to external cloud services.
4796 rule engine Feature Portal: add Freemarker functions to check user role and group membership.
4795 rule engine Feature Implement BETWEEN AND clause.
4794 rule engine Feature Implement random selector functions.
4793 rule engine Feature Implement statistical functions with interval/count: avg('1 minute'), max(10).
4792 rule engine Feature Implement statistical functions with conditions: countIf, sumIf, avgIf.
4785 rule engine Feature Implement AWS SQS notification.
4741 rule engine Feature Implement AWS SNS notification.
4705 admin Bug ATSD does not start after update via docker exec.

Issue 4808

The value functions provide access to other metrics submitted within the same series command or parsed from the same row in the CSV file.

value > 1.5 && value('temperature') > 50
series e:sensor01 m:pressure=3.5 m:temperature=80

Assuming the rule was created for the pressure metric, the below condition evaluates to true for the above series command.

3.5 > 1.5 && 80 > 50

Issue 4796

The functions simplify the design of role-based portals.

// Returns true if the user belongs to the specified user group.
userInGroup(String userGroupname)

// Returns true if the user has read permissions for the specified entity.
userAllowEntity(String entityName)

// Returns true if the user has the specified role: USER, EDITOR, etc.
userHasRole(String roleName)

// Returns true if the user has READ permissions to the specified entity group.
userAllowEntityGroup(String entityGroupName)

Issue 4795

  value BETWEEN 75 AND 90
  dateStr BETWEEN '18:30:00' AND '18:34:59'

Issue 4794

randomKey(replacementTable('oncall-person'))
randomKey(excludeKeys(replacementTable('oncall-person'),['John']))
randomItem(collection('ip_white_list'))

Issue 4793

  avg('1 minute') / avg() > 2
  max(5) == max()

Issue 4792

  countIf('value > 10') < 5

Issue 4785

  • SQS

Issue 4741

  • SNS