Skip to content

Add an external feed

This page describes the considerations and steps for adding an external feed to KX Sensors.

To add an external feed, you have to consider whether to introduce a new RT stream. Adding a new RT stream has performance implications. For instance, the overhead of an additional RT cluster likely increases CPU pressure on the hosts where RT is running.

An alternative approach is to use an existing stream as streamIn in feed.yaml. There is a trade-off with this approach: sequencing and replay performance degrade across all feeds that use the stream if the load on the stream exceeds the sequencer's maximum throughput.

If your ems.yaml configuration has three streams (feed1, emsint, mutreqs) and you wish to add a new external feed (feed2), the new feed could be published on the mutreqs stream. This requires no changes to ems.yaml. The following example shows the resulting feed2 feed config entry (this assumes kxsSDL_A2 and kxsSDL_B2 are already configured in the manifest):

feed:
  values:
    ...
    feed2:
      id: 101
      streamIn: mutreqs
      streamsOut: emsint
      topicIn: feed2
      topicsOut: SD2
      sc: sdl
      nodes: [ A, B ]
      procs: [ kxsSDL_A2, kxsSDL_B2 ]

If a new stream is desired, this is specified as streamIn for feed2 in feed.yaml, and the new stream needs to be added to ems.yaml. The following example shows the resulting feed2 ems.yaml config entry:

ems:
  values:
    ...
    feed2:
      nodes: [ A, B, C ]
      network: kx
      logLevel: DEBUG
      archiving:
        size: 20Gi
        retentionDuration: 18000
        diskUsage: 80
      raft:
        heartbeat: 1000
        chunkSize: 1
        logSize: 5
      external: true

Next steps