# xiang90-probing **Repository Path**: mirrors_back/xiang90-probing ## Basic Information - **Project Name**: xiang90-probing - **Description**: mirrors of https://github.com/xiang90/probing - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-07-01 - **Last Updated**: 2022-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 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