Skip to content

Adds a time boxed sampling for backend listeners #237

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from

Conversation

max3163
Copy link
Contributor

@max3163 max3163 commented Dec 9, 2016

No description provided.

Copy link
Contributor

@FSchumacher FSchumacher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution.
Overall it looks good. Maybe you could also describe the use case for this feature compared to the fixed-size one.


/**
* Metrics are sent into boxes which can be {@link #FIXED a fixed-size sliding window} or {@link #TIMED time boxed}.
* @author Logan Mzz
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't use the author doc tag.

stat.clear();
}
break;
default: throw new UnsupportedOperationException(windowMode.name());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a formatting error

// http://commons.apache.org/proper/commons-math/userguide/stat.html
break;
case TIMED:
for (DescriptiveStatistics stat : windowedStats) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JMeter now uses java 8, so we could use the newer syntax :)


int slidingWindowSize = JMeterUtils.getPropDefault("backend_metrics_window", 100);
// Limit to sliding window of SLIDING_WINDOW_SIZE values
for (DescriptiveStatistics stat : stats) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Formatting issue

@@ -917,6 +917,8 @@ summariser.name=summary
# BackendListener - configuration
#---------------------------------------------------------------------------
#
# Backend metrics window mode (fixed=fixed-size window, timed=time boxed)
#backend_metrics_window_mode=fixed
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documentation is missing for this new feature. It should be mentioned in the properties section and the users manual.

@pmouawad
Copy link
Contributor

Hello @max3163,
Thank you for your contribution.
Could you (as requested by Felix) give more details on the use case for this PR ?
Thank you
Regards

@max3163
Copy link
Contributor Author

max3163 commented Dec 14, 2016

When you use the fixed metric window mode, all samples metrics are saved in a sliding array with a fix size, you send each second to your backend a trend of this values
When you use the time boxed mode, all samples metrics are reset in order to send actual values for the last elapse time.
I you use it with a Influxdb backend (I'm thinking to send a PR to share it too) with a pooling of 5 seconds.

@pmouawad
Copy link
Contributor

Hello Team,
PR looks fine to me.
Do you agree with enhancement ?
Thank you

@Llammissar
Copy link

This sounds good if it's what I think it is. Definitely would appreciate a clear description of what it precisely does, though.

@pmouawad
Copy link
Contributor

@max3163 , are you using GraphiteBackendListener or something else (I don't fully understand your comment on "I'm thinking to send a PR to share it too".
If not, why aren't you using it ?
Thanks

@max3163
Copy link
Contributor Author

max3163 commented Dec 31, 2016

@pmouawad
We use ur own BackendListener to send metric on InfluxDB with his HTTP API and follow his own shema design ( see : Influxdb data design ) which is more better than use the Graphite plugin.
If you want, we can share this BackendListener.

@pmouawad
Copy link
Contributor

pmouawad commented Jan 2, 2017

Hello,
Thanks for proposal.
What is the quantity of code ? Does it have any dependency on Influx library or it is standalone using socket ?

Thank you

@max3163
Copy link
Contributor Author

max3163 commented Jan 4, 2017

Hi,

I just sent you a new PR ( #246 ) for the Influxdb backend.
It's about 650 lines of code ( test class included ) and with no dependency on Influxdb library.

max3163 pushed a commit to max3163/jmeter that referenced this pull request Jan 4, 2017
These tests only work with the apache#237 PR merged and timed mode box
@asfgit asfgit closed this in 881a5d1 Jan 15, 2017
@max3163 max3163 deleted the POW-319 branch April 27, 2017 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants