code stolen from project timeserver-monitoring
This commit is contained in:
parent
f2d0d1ca94
commit
3759f0d209
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,3 +1,3 @@
|
||||
build
|
||||
.DS_Store
|
||||
src/tsm/tsm
|
||||
src/ntppm/ntppm
|
||||
|
@ -4,10 +4,10 @@ steps:
|
||||
commands:
|
||||
- GOPATH=/woodpecker/go
|
||||
- ls -l
|
||||
- cd src/tsm
|
||||
- cd src/ntppm
|
||||
- go mod tidy
|
||||
- go build -a -installsuffix nocgo -o tsm tsm.go
|
||||
- cp tsm ../..
|
||||
- go build -a -installsuffix nocgo -o ntppm ntppm.go
|
||||
- cp ntppm ../..
|
||||
when:
|
||||
- event: [push, tag]
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
FROM scratch
|
||||
|
||||
ENV TSM_MQTT_CONF ""
|
||||
ENV NTPPM_MQTT_CONF ""
|
||||
|
||||
COPY tsm ./
|
||||
ENTRYPOINT ["./tsm"]
|
||||
COPY ntppm ./
|
||||
ENTRYPOINT ["./ntppm"]
|
||||
|
||||
|
||||
|
||||
|
74
snippets/test01.go
Normal file
74
snippets/test01.go
Normal file
@ -0,0 +1,74 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// Struktur für die JSON-Daten
|
||||
type NTPResponse struct {
|
||||
History []struct {
|
||||
Timestamp int `json:"ts"`
|
||||
Step int `json:"step"`
|
||||
Score float64 `json:"score"`
|
||||
MonitorID int `json:"monitor_id"`
|
||||
} `json:"history"`
|
||||
Monitors []struct {
|
||||
ID int `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Type string `json:"type"`
|
||||
Ts string `json:"ts"`
|
||||
Score float64 `json:"score"`
|
||||
Status string `json:"status"`
|
||||
} `json:"monitors"`
|
||||
Server struct {
|
||||
IP string `json:"ip"`
|
||||
} `json:"server"`
|
||||
}
|
||||
|
||||
func main() {
|
||||
// URL für die API-Abfrage
|
||||
url := "https://www.ntppool.org/scores/93.241.86.156/json?limit=1&monitor=24"
|
||||
|
||||
// HTTP-GET-Anfrage senden
|
||||
resp, err := http.Get(url)
|
||||
if err != nil {
|
||||
fmt.Println("Fehler beim Abrufen der URL:", err)
|
||||
return
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
// Antwort lesen
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
fmt.Println("Fehler beim Lesen der Antwort:", err)
|
||||
return
|
||||
}
|
||||
|
||||
// JSON-Daten in Struct einlesen
|
||||
var data NTPResponse
|
||||
err = json.Unmarshal(body, &data)
|
||||
if err != nil {
|
||||
fmt.Println("Fehler beim Parsen des JSON:", err)
|
||||
return
|
||||
}
|
||||
|
||||
// Ausgabe der eingelesenen Daten
|
||||
fmt.Println("NTP Server IP:", data.Server.IP)
|
||||
if len(data.History) > 0 {
|
||||
fmt.Println("Letzte Messung:")
|
||||
fmt.Printf(" Zeitstempel: %d\n", data.History[0].Timestamp)
|
||||
fmt.Printf(" Score: %.2f\n", data.History[0].Score)
|
||||
fmt.Printf(" Monitor ID: %d\n", data.History[0].MonitorID)
|
||||
}
|
||||
if len(data.Monitors) > 0 {
|
||||
fmt.Println("Monitor Info:")
|
||||
fmt.Printf(" Name: %s\n", data.Monitors[0].Name)
|
||||
fmt.Printf(" Score: %.2f\n", data.Monitors[0].Score)
|
||||
fmt.Printf(" Status: %s\n", data.Monitors[0].Status)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,7 @@ type ConfigObject struct {
|
||||
var Config ConfigObject
|
||||
|
||||
func LoadConfiguration() {
|
||||
cfg := os.Getenv("TSM_MQTT_CONF")
|
||||
cfg := os.Getenv("NTPPM_MQTT_CONF")
|
||||
log.Printf("cfg: %s", cfg)
|
||||
err := json.Unmarshal([]byte(cfg), &Config)
|
||||
if err != nil {
|
@ -1,9 +1,8 @@
|
||||
module tsm
|
||||
module ntppm
|
||||
|
||||
go 1.22.5
|
||||
|
||||
require (
|
||||
github.com/beevik/ntp v1.4.3
|
||||
github.com/eclipse/paho.mqtt.golang v1.4.3
|
||||
github.com/google/uuid v1.6.0
|
||||
)
|
@ -5,14 +5,14 @@ import (
|
||||
"os"
|
||||
"os/signal"
|
||||
|
||||
"tsm/config"
|
||||
"tsm/mqtt"
|
||||
"tsm/tsmq"
|
||||
"ntppm/config"
|
||||
"ntppm/mqtt"
|
||||
"ntppm/ntppq"
|
||||
)
|
||||
|
||||
|
||||
func main() {
|
||||
log.SetPrefix("TSM: ")
|
||||
log.SetPrefix("NTPPM: ")
|
||||
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
|
||||
|
||||
log.Println("starting")
|
||||
@ -22,8 +22,8 @@ func main() {
|
||||
mqtt.Start()
|
||||
defer mqtt.Stop()
|
||||
|
||||
tsmq.Start()
|
||||
defer tsmq.Stop()
|
||||
ntppq.Start()
|
||||
defer ntppq.Stop()
|
||||
|
||||
c := make(chan os.Signal, 1)
|
||||
signal.Notify(c, os.Interrupt, os.Kill)
|
@ -1,4 +1,4 @@
|
||||
package tsmq
|
||||
package ntppq
|
||||
|
||||
import (
|
||||
"log"
|
||||
@ -6,10 +6,8 @@ import (
|
||||
"strconv"
|
||||
"encoding/json"
|
||||
|
||||
"tsm/config"
|
||||
"tsm/mqtt"
|
||||
|
||||
"github.com/beevik/ntp"
|
||||
"ntppm/config"
|
||||
"ntppm/mqtt"
|
||||
)
|
||||
|
||||
type variable_t struct {
|
Loading…
x
Reference in New Issue
Block a user