GroveStreams

Error setting interval stream aggregation441

brianthebald private msg quote post Address this user
I'm attempting to create a derivative interval stream which aggregates two standard streams (which are fed via API calls) and uses a time-weighted average. I have put the two standard streams into a stream group. I create a new interval stream on an existing component. On the Derivation tab for the new interval stream I select Stream Aggregation. Then I click the magnifying glass in the Stream Group field and select my Stream Group with my two standard streams in it. When I click "Select" in that dialog box and return to the Derivation tab, the Stream Group field remains blank. Whether I leave that field blank or I type the ID of my Stream Group manually, when I click Save in the interval stream creation dialog box I get an error dialog "Invalid stream group reference. UUID is malformed. UUID: " and "This error occurred on the server while processing a request. Error Code: ENTITY_VALIDATION_FAILURE"

What am I doing wrong here? Or have I tickled a bug within the derived stream UI?

Thanks in advance for any/all help.
Post 1 • IP   flag post
MikeMills private msg quote post Address this user
That was a bug. We've patched the production site. Hit F5 to pickup the latest java script code.

Thanks for reporting this!
Post 2 • IP   flag post
brianthebald private msg quote post Address this user
Thank you for the quick fix! I'm now able to create a derivative interval stream which aggregates two API-fed standard streams. However...

The resulting interval stream only seems to generate a short window of derivative data. One standard stream last received a data point via the API at 2:44:46.418pm today, while the other standard stream received a data point at 2:47:05.054pm today. Both streams have data points running back for over a week, often times every 5 minutes but with some substantial gaps. However, the aggregating derivative interval stream only generated 11 data points for 5 minute intervals between 11:30am and 12:25pm today, only 4 of which have values.

The derivative interval stream is set to a Base Cycle of 5 minutes, a Rollup Calendar of "Years, Months, Days, Hours, 5 Minutes, 1 Minute", a Default Rollup Method of Average, Aggregate last 5 minutes, Time Weighted Average Stream Group Aggregation Function, Percent of Gap Intervals Allowed During Aggregation 100%.

Am I missing something fundamental about how aggregating derivative interval streams should work?

Thanks again!
Post 3 • IP   flag post
MikeMills private msg quote post Address this user
Here's the key setting: Aggregate last 5 minutes

Aggregation is kinda dumb. It doesn't look at when streams started or when they ended to determine what time span to aggregate. It uses the above setting to determine the time span.

This is intentional. It was built to aggregate millions of streams and some of those streams may or may not be uploading or they may have uploaded late. That's why this setting works.

For you, I would do this:
1) Set the setting to Last 1 Month and make it run.
2) Then change it back to once every 15 minutes or hour. Whatever you need to aggregate the latest samples since the last run.
3) You can then, optionally, setup a Runnable to automatically run the aggregation every X Minutes/hours.
Post 4 • IP   flag post
brianthebald private msg quote post Address this user
Got it! Thanks for walking me through it. Everything is working as intended now. Thanks again!
Post 5 • IP   flag post
2511 5 5
Log in or sign up to compose a reply.
destitute