Tcp input problem

Hi every one,

I try to receive data through TCP port from another pc to logstash, then save it in csv file output, the configure file which i write is:

input {
tcp {
host => "192.168.0.188"
port => "12397"

}
}
filter {
csv {
separator => ","
columns => ["I"]
}
mutate {convert => ["I", "float"]}
}
output {
csv {
path => "/home/ahmed/Downloads/logstash-2.0.0/test2.csv"
fields => ["@timestamp", "I"]
}

stdout {}
}

The problem is , it receive the data without sequence, this is a part from csv output file which contain time stamp and test data start from number 1 to 150 but receive for example number 87 before 43 and so on.

2015-11-21T14:12:59.381Z,107.0
2015-11-21T14:12:59.378Z,87.0
2015-11-21T14:12:59.383Z,43.0
2015-11-21T14:12:59.381Z,13.0
2015-11-21T14:12:59.381Z,15.0
2015-11-21T14:12:59.381Z,88.0
2015-11-21T14:12:59.383Z,58.0
2015-11-21T14:12:59.381Z,30.0
2015-11-21T14:12:59.384Z,131.0
2015-11-21T14:12:59.381Z,124.0
2015-11-21T14:12:59.380Z,96.0
2015-11-21T14:12:59.378Z,44.0
2015-11-21T14:12:59.378Z,80.0

what is the problem ?

Thanks for your help
Regards

Logstash starts a new thread for each connection. With messages arriving so close in time there's no guarantee that they'll be processed in the right order. The exact order depends on how the connection threads are scheduled (and with more than one filter worker it'll also depend on how the filter threads are scheduled).

1 Like