-
Notifications
You must be signed in to change notification settings - Fork 492
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 buffering and fault tolerance to the InfluxDBOut Node. #145
Comments
Greetings, Would you mind elaborating on how this problem would manifest itself? We're seeing behaviour which might be related, but we're not sure how to tell. We have a simple [stream] tickscript that copies a subset of measurements from one db into another. (Both dbs are on the same Influxdb server.) In general it runs well, but a few times an hour (on no discernible schedule), some measurements don't get copied into the dest db. Could this be a capacity issue? FWIW, the machine has plenty of spare CPU; Kapacitor itself seems to stay below 6 or 7% CPU usage. We're running Kapacitor 0.10.0. Here's an excerpt from our tickscript:
Note in that snippet that we're reading only those measurements that apply to So,
Thanks! |
@RonRothman Do the measurements ever show up later? Meaning does Kapacitor just get behind or is data really missing? I would expect Kapacitor to only get behind but not drop any data. How many points per second are you writing to Kapacitor? Answers:
|
Thanks for the responses. Nope, the data is really missing--it never appears in the dest db. We're writing a few hundred measurements per minute to the source db. Have not observed any error messages in kapacitord.err or kapacitor.log. We've solved this for the moment by using continuous queries (in lieu of Kapacitor) to aggregate/copy the data from one db to the other. Both dbs are on the same server node, so we can get away with this for now. We'll make some time to dig into the logs when we move back to Kapacitor (if not for data copying, then for alerts). Thanks again. |
@RonRothman Thanks for the details report. Glad you have a working solution. I'll work on reproducing the data missing issues and report back. This is obviously a serious bug. I may need more information about your setup etc as I dig in. Thanks again. |
@RonRothman I have been able to write many millions of points with out dropping any. For now I am going to close this issue, but if you are still having issue please open a new one with relevant details. |
@nathanielc Thanks--sorry for going MIA. We ended up using continuous queries instead of Kapacitor, so this issue became less urgent on our end. I'll repoen when we revisit Kapacitor. Thanks again! |
The current implementation just writes points as it receives them to the InfluxDB. In high volume scenarios this will not be sufficient. The node should buffer the data points before sending them on to InfluxDB. This is appropriate since if you wanted any near real-time analytics of the data that is being buffered you already have them in Kapacitor and can do so. The small delay in being written to InfluxDB will be inconsequential.
By fault tolerance the data points writes should be retried etc before erroring out.
The text was updated successfully, but these errors were encountered: