I've created a new project, pingbeat that sends sends ICMP pings to a list of targets and stores the round trip time (RTT) in Elasticsearch (or elsewhere). It uses tatsushid/go-fastping for sending/recieving ping packets and libbeat to talk to Elasticsearch and other outputs. Essentially, those two libraries do all the heavy lifting, pingbeat is just glue around them Be warned, this is my first Go project and I haven't programmed in a language like Go for quite some time...
My original inspiration for this was to try to recreate the venerable and awesome functionality of Smokeping with an ELK stack. Although that worked (see my elk-ping project), I felt like a beat was a much better way of doing it than some hacky logstash inputs and filters around some command-line programs.
Right now, it works for sending pings to a list of targets and storing the round-trip time in Elasticsearch. You can "tag" your hosts to make it easy to group them for aggegations or searches in Elasticsearch as well. I haven't tested it with the other outputs or advanced functionality of libbeat yet.
I see this as complementary to packetbeat. Whereas packetbeat is a layer 7 monitoring tool, pingbeat is just a really simple layer 3 tool. I have no grand plans for it, I just want it to do one thing and do it well, track network latency with pings.
Anyway, feel free to check it out and enjoy!