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

Add Influxdb backend to JMeter #246

Closed
wants to merge 5 commits into
base: trunk
from

Conversation

Projects
None yet
3 participants
@max3163
Contributor

max3163 commented Jan 4, 2017

Add a new backend listener to send data to InfluxDB server. InfluxDB is a time series database built to handle high write and query loads.

This backend write data with the HTTP API based on the influxdb line protocol.
See :
HTTP API
Line protocol reference

Syntax example :
<measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]

At the start and the end of a JMeter test, the backend add automaticaly two annotations in the annotation measurement for a better usage with Grafana ( See grafana documentation

@pmouawad

This comment has been minimized.

Show comment
Hide comment
@pmouawad

pmouawad Jan 15, 2017

Contributor

Hello,
Thanks for contribution.
I have few remarks on implementation:

  • You intentionally don't set timestamp. I am not sure it's a good idea as if any delay occurs sending to InfluxDB, measurement will be wrong, and there is another reason, see next remark
  • I think HttpAsyncClient (https://hc.apache.org/httpcomponents-asyncclient-dev/quickstart.html) might be a good use case here as we don't care about responses and we don't want to block too much, so we could use it here. But in this case we would need to add timestamp.
  • I think you should allow some configuration for technical things like timeouts. InfluxdbMetricsSender#setup should have a more flexible parameter like Map to allow passing more parameters

Also would it be possible to provide:

  • A Simple Test plan using the component
  • If possible some documentation

I have already made some changes to PR, I could commit it as is and mark component as Alpha, we could distribute with next release and improve it either before or later.
@Team what do you think ?

Contributor

pmouawad commented Jan 15, 2017

Hello,
Thanks for contribution.
I have few remarks on implementation:

  • You intentionally don't set timestamp. I am not sure it's a good idea as if any delay occurs sending to InfluxDB, measurement will be wrong, and there is another reason, see next remark
  • I think HttpAsyncClient (https://hc.apache.org/httpcomponents-asyncclient-dev/quickstart.html) might be a good use case here as we don't care about responses and we don't want to block too much, so we could use it here. But in this case we would need to add timestamp.
  • I think you should allow some configuration for technical things like timeouts. InfluxdbMetricsSender#setup should have a more flexible parameter like Map to allow passing more parameters

Also would it be possible to provide:

  • A Simple Test plan using the component
  • If possible some documentation

I have already made some changes to PR, I could commit it as is and mark component as Alpha, we could distribute with next release and improve it either before or later.
@Team what do you think ?

@mtomlins

This comment has been minimized.

Show comment
Hide comment
@mtomlins

mtomlins Jan 15, 2017

mtomlins commented Jan 15, 2017

@pmouawad

This comment has been minimized.

Show comment
Hide comment
@pmouawad

pmouawad Jan 15, 2017

Contributor

Hi Mark,
Good to know.
Are you using Apache HttpAsyncClient or something else ?
Do you agree with my proposals ?
Thanks

Contributor

pmouawad commented Jan 15, 2017

Hi Mark,
Good to know.
Are you using Apache HttpAsyncClient or something else ?
Do you agree with my proposals ?
Thanks

@asfgit asfgit closed this in 1f6e06a Jan 15, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment