EMA can be used for both the purposes - either serialize the OMM messages into JSON, and also to directly display/visualize the data. As mentioned earlier, the application has to ensure that they are not slowing down the event callback loop by taking too much time decoding/writing messages to file etc. Doing so will risk getting disconnected from the ADS.
To serialize the message as JSON, application has to walk the field list and create its own JSON message. The part where this message may be written to disk can be quite time consuming, so use some sort of buffered writer.
Thank you for your input.I am clear on the storage part. For the visualization part,are there any open source tools which accepts OMM in the format sent by EMA. ELK accepts only JSON and as you said,serializing it might slow it down and defeat the purpose of live stream.
Are there any open source visualization tools which are used to display the OMM messages on the fly ?
I am not aware of any open source tools for visualizing OMM data. It shouldn't be too difficult to either render the data yourself or convert to JSON. The slowdown really happens when application code starts to not pay attention to the event queue timing and indulge in high latency operations like write to disk, write log files etc. Problem becomes worst with high number of subscriptions and high update rates.
Hello @ashwathguru.s, The key parameter which an EMA application should be aware of is to not slow down the event processing. Its not clear if you intend to display the message on the dashboard or publish the messages on a MQ type bus; which will be displayed on the dashboard.
Dashboard type of applications do not have a high update rate requirements. It might be easier to use the Websocket API along with a conflated feed to do this. You can also use the new RDP library to get websocket data with other programming languages. Here is an example of dashboard written using Dash framework which shows streaming and fundamental data. If you are using TREP, then you only have access to the streaming data.
Hi Gurpreet,
Thank you for your response, My intention is to display live data on Kibana dashboard.
But elastic search requires data to be in JSON format and EMA data is was not in a format that can be indexed in Elastic search.I could not serialize EMA messages to JSON also.
I do not have access to websocket enabled ADS currently so I am trying to make the best of EMA data.
I was told that EMA is not suitable for storage and archiving, it is better suited when it published/visualized directly.
Hence, wanted to know which tool to use to make use if the EMA live stream.