Splunk Search

Generating custom command not streaming output

jakubzak
Explorer

I have created following custom command:

@Configuration(streaming=True)
class GenerateTextCommand(GeneratingCommand):

  count = Option(require=True, validate=validators.Integer(0))
  text = Option(require=True)

  def generate(self):
    for i in range(1, self.count + 1):
       sleep(5)
       yield {'id': i, '_time': time.time(), '_raw': unicode(i) + '. ' + self.text}

dispatch(GenerateTextCommand, sys.argv, sys.stdin, sys.stdout, __name__)

and I have prepared configuration in commands.conf:

[teststream]
filename = testStream.py
chunked = true

My expectation is that if I execute this command in Search command line in Splunk UI:

| teststream count=4 text="asdf"

It will print out each 5 seconds asdf text 4 times. Instead of it it generates 4 events and prints it after 20 seconds. Timestamps shows that generation time is strictly by "my rules" - new message each 5 seconds.

Is my understanding of "output streaming" from custom command incorrect or am I doing something wrong?

Thanks for help

Jakub

Get Updates on the Splunk Community!

Join Us for Splunk University and Get Your Bootcamp Game On!

If you know, you know! Splunk University is the vibe this summer so register today for bootcamps galore ...

.conf24 | Learning Tracks for Security, Observability, Platform, and Developers!

.conf24 is taking place at The Venetian in Las Vegas from June 11 - 14. Continue reading to learn about the ...

Announcing Scheduled Export GA for Dashboard Studio

We're excited to announce the general availability of Scheduled Export for Dashboard Studio. Starting in ...