Skip to content

5.1.1 to 5.1.2

This document explains what configuration changes MUST be performed during a PunchPlatform update from version 5.1.1 to 5.1.2

Complex Event Processing (Siddhi rules)

We upgraded the Siddhi Core library from version 3.1.3 to 4.3.17. This modification includes various improvements but lso some breaking changes. Here is what you need to update in your Siddhi rules.

The core functions

If you use any built-in function in your Siddhi rules, ensure that the naming case has not changed. For example, the function "distinctcount()" becomes "distinctCount()" (with a capital 'C').

To see the list of all current available core function, please check the official documentation with these resources:

No more backslash

The backslash (i.e. '\') character is no longer required in query statement. We are now totally compatible with the standard Siddhi Query Language syntax. This modification is backward compatible, your already existing rules will continue to work.

For example, this rule

1
2
3
4
5
6
define stream event (name string, age int);
@info(name = 'query') \
from event#window.time(5 min) \
select name, avg(age) as age_average \
group by name \
insert into people;

can be rewritten as

1
2
3
4
5
6
7
define stream event (name string, age int);

@info(name = 'query')
from event#window.time(5 min)
select name, avg(age) as age_average
group by name
insert into people;

No query name required

The query name annotation @info(name = 'my_query') is not longer required. You can use them if you want to but they are not used in practice. With this update, only stream events are watched, not the query callback anymore.

For example, the rule

1
2
3
4
5
6
7
define stream event (name string, age int);

@info(name = 'query')
from event#window.time(5 min)
select name, avg(age) as age_average
group by name
insert into people;

can be rewritten as

1
2
3
4
5
6
define stream event (name string, age int);

from event#window.time(5 min)
select name, avg(age) as age_average
group by name
insert into people;

On the PunchPlatform, these two rules are stricly equivalent.

Siddhi annotations

If you use Siddhi annotations (i.e. @source, @sink, @map, @payload, ...), make sure you test your rules brgore going profuction. Annotations are not used (we know of no customers that use them). If you do, test carefully.

Test your pipelines with this version before going to production !

Spouts and Bolts

FileSpout

The File Spout configuration has been updated. The parameter from_beginning has been renamed to watcher.process_existing_files.

Here is a new configuration example:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
{
  "type": "file_spout",
  "spout_settings": {
    "codec": "line",
    "watcher": true,
    "watcher.process_existing_files": true,
    "tail": true,
    "read_file_from_start": false,
    "path": "/path/to/directory",
    "path.regex": ".*\\.log"
  },
  "storm_settings": {
    ..
  }
}

Kibana Punch Plugin

The punchplatform-deployment.settings changes. Read documentation to update your section.