mirror of https://github.com/k3s-io/k3s
40 lines
1001 B
Markdown
40 lines
1001 B
Markdown
## Getting Started
|
|
|
|
### Install the handler
|
|
|
|
We first need to serve the probing HTTP handler.
|
|
|
|
```go
|
|
http.HandleFunc("/health", probing.NewHandler())
|
|
err := http.ListenAndServe(":12345", nil)
|
|
if err != nil {
|
|
log.Fatal("ListenAndServe: ", err)
|
|
}
|
|
```
|
|
|
|
### Start to probe
|
|
|
|
Now we can start to probe the endpoint.
|
|
|
|
``` go
|
|
id := "example"
|
|
probingInterval = 5 * time.Second
|
|
url := "http://example.com:12345/health"
|
|
p.AddHTTP(id, probingInterval, url)
|
|
|
|
time.Sleep(13 * time.Second)
|
|
status, err := p.Status(id)
|
|
fmt.Printf("Total Probing: %d, Total Loss: %d, Estimated RTT: %v, Estimated Clock Difference: %v\n",
|
|
status.Total(), status.Loss(), status.SRTT(), status.ClockDiff())
|
|
// Total Probing: 2, Total Loss: 0, Estimated RTT: 320.771µs, Estimated Clock Difference: -35.869µs
|
|
```
|
|
|
|
### TODOs:
|
|
|
|
- TCP probing
|
|
- UDP probing
|
|
- Gossip based probing
|
|
- More accurate RTT estimation
|
|
- More accurate Clock difference estimation
|
|
- Use a clock interface rather than the real clock
|