Hi .. i have a use case where there are 12 units which will ingest 45 time series data points . So do i need to have 12 different web-sockets for this ?. Kindly help how to design this
Answer by Sergey Vyatkin · Aug 11, 2016 at 11:05 AM
Please look at Time Series Velociraptor modeling tool.
https://forum.predix.io/articles/9699/velociraptor-time-series-device-simulator.html
The Velociraptor can easily simulate up a thousand devices. I was able to scale Velociraptors up 27 app servers in my Mac box to simulate 27 thousands devices with 2 sensors that send 600 hundreds data points every 5 minutes.
You can test Velocirptor demo app according to your requirements.
https://github.com/SVyatkin/ts-velociraptor-demo
I used blocking queue design pattern with one web-socket connection. It works fine for my tasks.
If it works for you let me know if you need more details.
I will appreciate for any feedback.
Thank you,
Sergey
Thank you Sergey , this looks to be an apt solution. I wanted to post the data from 45 sensors at once instead of writing threads to read and ingest it. However your documentation says - This version is a limited demo that does not allow you to send over 100 messages to the Time Series.
is it 100 messages at once or over all ?
Rajesh,
the demo has limit 100 messages at all. In your particular case the demo Velociraptor will send to series per each sensor (45 sensor have 45 data points messages in one time after second portion it stops at 100th message.) . I hope it is enough to test connection and network/Predix platform latency.
Thank you for your feedback.
Answer by Tom Turner · Aug 11, 2016 at 11:23 AM
We are refactoring the predix-websocket-client to use a pool of connections. It should be ready next week. The current version has a bug in it under unusual circumstances (sorry about that) which is part of the fix.
We use it in the cloud, receiving data from a machine-data-simulator. That simulator calls our microservice (dataingestion-service) REST endpoint. Inside that microservice we call the timeseries-bootstrap-client which in turn uses the predix-websocket-client utility.
The theory is that our dataingestion-service is in the flow receiving data and coordinating real-time info from Predix Asset and sending data to Predix Time Series. As we receive data, once it's safely stored, we might choose to notify other processes, by putting a message on a queue. You can checkout the RMDAnalyticsRefApp which we just released.
These are all available in github.com/PredixDev and make up the components of the RMD Reference App and RMD Analytics Reference App.
Finally, this seems like it might be a use-case for Predix Machine. The Predix Machine software sends data in a Data River to the cloud over the Web Socket endpoint. Please have a look at the docs and guides.