linuxserver / docker-smokeping

GNU General Public License v3.0
346 stars 95 forks source link

[FEAT] add IRTT support (and perl-path-tiny) #161

Closed gbrackley closed 11 months ago

gbrackley commented 11 months ago

Is this a new feature request?

Wanted change

As per issue #133 (which is now closed - sorry for the duplicate), enable IRTT support in the docker image. @drizuid indicated this change was pretty easy.

Adding the Alpine packages irtt and perl-path-tiny allowed an IRTT probe to be created, and verified as working.

e.g. The following was done to verify this might work

Add to Probes

+ IRTT
binary = /usr/bin/irtt

++ IRTT4
ipversion = 4

++ IRTT6
ipversion = 6

Add an irtt.conf target

+ IRTT
menu = IRTT
title = IRTT

++ USWest
menu = US West
title = netperf-west.bufferbloat.net
host = /IRTT/USWest4 /IRTT/USWest6

++ USWest4
menu = US West4
title = netperf-west.bufferbloat.net (ipv4)
probe = IRTT4
host = netperf-west.bufferbloat.net

++ USWest6
menu = US West6
title = netperf-west.bufferbloat.net (ipv6)
probe = IRTT6
host = netperf-west.bufferbloat.net

Manually install the packages:

apk add --no-cache perl-path-tiny irtt

Verify the configuration is valid with:

/usr/sbin/smokeping --config=/etc/smokeping/config --check

Restart the services in the container with:

s6-svc -d /run/service/svc-smokeping
s6-svc -u /run/service/svc-smokeping
s6-svc -d /run/service/svc-apache
s6-svc -u /run/service/svc-apache

Reason for change

To allow IRTT probes

Proposed code change

Add irtt and perl-path-tiny to the dockerfile apk add command

github-actions[bot] commented 11 months ago

Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

drizuid commented 11 months ago

can you give it a test please, LSPIPEPR/SMOKEPING:2.8.2-R2-PKG-63A18256-DEV-3687C2F2646F99AE0B7FC4421DF27480A25EC1C7-PR-162

gbrackley commented 11 months ago

Massively fast turnaround thank you.

I've used the lower case version of that tag and the container verifies as working for me. I checked:

(The container is running on a x86_64 Flastcar VM with docker compose)

core@tan ~ $ docker ps
CONTAINER ID   IMAGE                                                                                          COMMAND   CREATED          STATUS          PORTS     NAMES
322b2d8f4010   lspipepr/smokeping:2.8.2-r2-pkg-63a18256-dev-3687c2f2646f99ae0b7fc4421df27480a25ec1c7-pr-162   "/init"   12 seconds ago   Up 11 seconds             smokeping

core@tan ~ $ docker exec -it 322 bash
root@tan.lucidsolutions.co.nz:/# /usr/sbin/smokeping --config=/etc/smokeping/config --check
Configuration file '/etc/smokeping/config' syntax OK.

root@tan.lucidsolutions.co.nz:/# irtt
irtt: measures round-trip time with isochronous UDP packets

Usage:

        irtt command [arguments]
        irtt help command

Commands:

        client   runs the client
        server   runs the server
        bench    runs HMAC and fill benchmarks
        timer    runs timer resolution test
        clock    runs wall vs monotonic clock test
        sleep    runs sleep accuracy test
        version  shows the version
drizuid commented 11 months ago

thanks!