heistp / irtt

Isochronous Round-Trip Tester
GNU General Public License v2.0
185 stars 23 forks source link

use irtt as a library #25

Closed nvitaly closed 3 years ago

nvitaly commented 3 years ago

Hello,

I am working on a project where I need to implement system that will run multiple scheduled IRTT jobs (clients). I started with cron jobs that run bunch of irtt every min, than moved to exec plugin for telegraf, and now I am thinking to (learn golang and) write "simple" scheduler in golang that will use IRTT as library and run jobs in more controlled way (so i can distribute client test sessions to different CPUs)

Is it something that can(should) be done ? Do you have documentation/examples for API ?

Thank you!

heistp commented 3 years ago

Hi, yes it could be done, however the API isn't necessarily stable yet, so I can't promise that it won't change in the future. That said, the API to configure and run a client shouldn't change much, if at all.

So far there are no examples, however if you look at the code in irtt_client.go, I think it should be clear how to use it to run a test. Just call NewClientConfig() to get a config, set any config parameters you want, call NewClient(config) to get a client, then client.Run(context), passing in a context such as context.WithCancel(), or just context.Background() if you don't care about timeouts or cancellation.

Let me know if you run into any problems and I'll try to help.

heistp commented 3 years ago

Closing for now, and feel free to open any issues if there are specific questions.