Skip to content

Commit f995bf6

Browse files
authored
Feat/logging (#30)
* add notify * update logging * update logging * update logging * fix ci
1 parent fe2859c commit f995bf6

File tree

513 files changed

+10594
-146777
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

513 files changed

+10594
-146777
lines changed

.github/workflows/build.yaml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,21 @@ permissions:
1515
contents: write
1616

1717
jobs:
18-
# lint:
19-
# runs-on: ubuntu-latest
20-
# strategy:
21-
# matrix:
22-
# go-version: [ '1.24.x' ]
23-
# steps:
24-
# - uses: actions/setup-go@v5
25-
# with:
26-
# go-version: ${{ matrix.go-version }}
27-
# - uses: actions/checkout@v4
28-
# - name: golangci-lint
29-
# uses: golangci/golangci-lint-action@v6
30-
# with:
31-
# version: latest
32-
# args: --timeout=5m
18+
lint:
19+
runs-on: ubuntu-latest
20+
strategy:
21+
matrix:
22+
go-version: [ '1.24.x' ]
23+
steps:
24+
- uses: actions/setup-go@v6
25+
with:
26+
go-version: ${{ matrix.go-version }}
27+
- uses: actions/checkout@v5
28+
- name: golangci-lint
29+
uses: golangci/golangci-lint-action@v9
30+
with:
31+
version: latest
32+
args: --timeout=5m
3333

3434
build:
3535
runs-on: ubuntu-latest

.github/workflows/release.yaml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,21 @@ permissions:
99
contents: write
1010

1111
jobs:
12-
# lint:
13-
# runs-on: ubuntu-latest
14-
# strategy:
15-
# matrix:
16-
# go-version: [ '1.24.x' ]
17-
# steps:
18-
# - uses: actions/setup-go@v5
19-
# with:
20-
# go-version: ${{ matrix.go-version }}
21-
# - uses: actions/checkout@v4
22-
# - name: golangci-lint
23-
# uses: golangci/golangci-lint-action@v6
24-
# with:
25-
# version: latest
26-
# args: --timeout=5m
12+
lint:
13+
runs-on: ubuntu-latest
14+
strategy:
15+
matrix:
16+
go-version: [ '1.24.x' ]
17+
steps:
18+
- uses: actions/setup-go@v6
19+
with:
20+
go-version: ${{ matrix.go-version }}
21+
- uses: actions/checkout@v5
22+
- name: golangci-lint
23+
uses: golangci/golangci-lint-action@v9
24+
with:
25+
version: latest
26+
args: --timeout=5m
2727

2828
build:
2929
runs-on: ubuntu-latest

cmd/lens/grpc.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"google.golang.org/grpc/credentials/insecure"
1616

1717
"github.com/clarkzjw/starlink-grpc-golang/pkg/spacex.com/api/device"
18+
"github.com/phuslu/log"
1819
)
1920

2021
type Exporter struct {
@@ -79,7 +80,7 @@ func (e *Exporter) CollectDishObstructionMap() *StarlinkGetObstructionMapRespons
7980
defer cancel()
8081
resp, err := e.Client.Handle(ctx, req)
8182
if err != nil {
82-
fmt.Printf("gRPC GetObstructionMap failed: %s", err.Error())
83+
log.Error().Err(err).Msg("gRPC GetObstructionMap failed")
8384
return nil
8485
}
8586

@@ -119,7 +120,7 @@ func (e *Exporter) CollectDishObstructionMap() *StarlinkGetObstructionMapRespons
119120
// Encode the image to PNG format in a buffer
120121
var buf bytes.Buffer
121122
if err := png.Encode(&buf, img); err != nil {
122-
fmt.Printf("Failed to encode image: %s", err.Error())
123+
log.Error().Err(err).Msg("Failed to encode image")
123124
return nil
124125
}
125126

@@ -136,6 +137,9 @@ func (e *Exporter) CollectDishObstructionMap() *StarlinkGetObstructionMapRespons
136137

137138
func (e *Exporter) WriteObstructionMapImage(filename string) error {
138139
obstructionMap := e.CollectDishObstructionMap()
140+
if obstructionMap == nil {
141+
return errors.New("failed to collect obstruction map")
142+
}
139143

140144
f, err := os.Create(filename)
141145
if err != nil {

cmd/lens/main.go

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ package main
33
import (
44
"flag"
55
"fmt"
6-
"log"
76

87
"github.com/go-co-op/gocron/v2"
8+
"github.com/phuslu/log"
99
)
1010

1111
var (
@@ -15,7 +15,9 @@ var (
1515
)
1616

1717
func init() {
18-
log.Println("Starlink Lens")
18+
log.DefaultLogger.SetLevel(log.InfoLevel)
19+
20+
log.Info().Msg("Starlink LENS")
1921
getObstructionMap = flag.Bool("map", false, "Get obstruction map")
2022

2123
flag.Parse()
@@ -26,45 +28,45 @@ func init() {
2628
}
2729
grpcClient, err := NewGrpcClient(DishGrpcAddrPort)
2830
if err != nil {
29-
log.Fatal("Error creating gRPC client: ", err)
31+
log.Fatal().Err(err).Msg("Error creating gRPC client")
3032
}
3133
filename := fmt.Sprintf("obstruction-map-%s.png", datetimeString())
3234
if err := grpcClient.WriteObstructionMapImage(filename); err != nil {
33-
log.Fatal("Error writing obstruction map image: ", err)
35+
log.Fatal().Err(err).Msg("Error writing obstruction map image")
3436
}
3537
}
3638

3739
geoipClient = NewGeoIPClient()
3840

3941
if err := LoadConfig(); err != nil {
40-
log.Fatal("Error loading config: ", err)
42+
log.Fatal().Err(err).Msg("Error loading config")
4143
}
4244

4345
if err := CheckDeps(); err != nil {
44-
log.Fatal("Error checking dependency packages: ", err)
46+
log.Fatal().Err(err).Msg("Error checking dependency packages")
4547
}
4648
}
4749

4850
func main() {
4951
if Iface == "" {
50-
log.Fatal("IFACE is not set")
52+
log.Fatal().Msg("IFACE is not set")
5153
}
5254

53-
fmt.Printf("Starlink Gateway: %s\n", StarlinkGateway)
54-
fmt.Printf("DURATION: %s\n", Duration)
55-
fmt.Printf("INTERVAL: %s\n", Interval)
56-
fmt.Printf("INTERVAL_SEC: %.2f\n", IntervalSeconds)
57-
fmt.Printf("IFACE: %s\n", Iface)
58-
fmt.Printf("COUNT: %d\n", Count)
59-
fmt.Printf("PoP: %s\n\n", PoP)
55+
log.Info().Msgf("Starlink Gateway: %s", StarlinkGateway)
56+
log.Info().Msgf("DURATION: %s", Duration)
57+
log.Info().Msgf("INTERVAL: %s", Interval)
58+
log.Info().Msgf("INTERVAL_SEC: %.2f", IntervalSeconds)
59+
log.Info().Msgf("IFACE: %s", Iface)
60+
log.Info().Msgf("COUNT: %d", Count)
61+
log.Info().Msgf("PoP: %s", PoP)
6062

6163
s, err := gocron.NewScheduler()
6264
if err != nil {
63-
log.Fatal("Error creating scheduler: ", err)
65+
log.Fatal().Err(err).Msg("Error creating scheduler")
6466
}
6567
defer func() {
6668
if err := s.Shutdown(); err != nil {
67-
log.Printf("Error shutting down scheduler: %v", err)
69+
log.Fatal().Err(err).Msg("Error shutting down scheduler")
6870
}
6971
}()
7072

@@ -80,7 +82,7 @@ func main() {
8082
),
8183
)
8284
if err != nil {
83-
log.Printf("Error creating icmp_ping job: %s", err.Error())
85+
log.Error().Err(err).Msg("Error creating icmp_ping job")
8486
return
8587
}
8688

@@ -95,7 +97,7 @@ func main() {
9597
),
9698
)
9799
if err != nil {
98-
log.Printf("Error creating irtt_ping job: %s", err.Error())
100+
log.Error().Err(err).Msg("Error creating irtt_ping job")
99101
return
100102
}
101103
}
@@ -105,10 +107,10 @@ func main() {
105107
for _, j := range s.Jobs() {
106108
t, err := j.NextRun()
107109
if err != nil {
108-
log.Printf("Error getting next run time for job %s: %s", j.Name(), err.Error())
110+
log.Warn().Err(err).Msgf("Error getting next run time for job %s", j.Name())
109111
}
110112

111-
fmt.Printf("[%s] Next run: %s\n", j.Name(), t)
113+
log.Info().Msgf("Next run for job %s: %s", j.Name(), t)
112114
}
113115

114116
select {}

cmd/lens/ping.go

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ import (
44
"context"
55
"fmt"
66
"io"
7-
"log"
87
"os"
98
"os/exec"
109
"path"
1110
"strconv"
1211
"time"
12+
13+
"github.com/phuslu/log"
1314
)
1415

1516
func ICMPPing(target string, interval float64) {
@@ -26,11 +27,11 @@ func ICMPPing(target string, interval float64) {
2627
fullFilename := path.Join("data", today, filename)
2728

2829
cmd := exec.Command("ping", "-D", "-c", strconv.Itoa(Count), "-i", fmt.Sprintf("%.2f", interval), "-I", Iface, target)
29-
log.Println(cmd.String())
30+
log.Info().Msgf("ping command: %s", cmd.String())
3031

3132
f, err := os.Create(fullFilename)
3233
if err != nil {
33-
log.Println("Error creating ping output file: ", err)
34+
log.Error().Err(err).Msg("Error creating ping output file")
3435
return
3536
}
3637
defer f.Close()
@@ -40,11 +41,11 @@ func ICMPPing(target string, interval float64) {
4041
cmd.Stderr = mw
4142

4243
if err := cmd.Start(); err != nil {
43-
log.Println("Error starting ping process: ", err)
44+
log.Error().Err(err).Msg("Error starting ping process")
4445
return
4546
}
4647

47-
fmt.Printf("Started ping process (PID %d) for target %s\n", cmd.Process.Pid, target)
48+
log.Info().Msgf("Started ping process (PID %d) for target %s", cmd.Process.Pid, target)
4849

4950
waitErr := make(chan error)
5051
go func() {
@@ -55,7 +56,7 @@ func ICMPPing(target string, interval float64) {
5556
select {
5657
case err := <-waitErr:
5758
if err != nil {
58-
log.Println(err)
59+
log.Error().Err(err).Msg("Ping process exited with error")
5960
}
6061
case <-ctx.Done():
6162
if cmd.Process != nil {
@@ -65,36 +66,36 @@ func ICMPPing(target string, interval float64) {
6566
log.Printf("Error killing ping process: %v", err)
6667
} else {
6768
if err := <-waitErr; err != nil {
68-
log.Println(err)
69+
log.Error().Err(err).Msg("Ping process exited with error after kill")
6970
}
7071
}
7172
} else {
7273
select {
7374
case err := <-waitErr:
7475
if err != nil {
75-
log.Println(err)
76+
log.Error().Err(err).Msg("Ping process exited with error after interrupt")
7677
}
7778
case <-time.After(5 * time.Second):
7879
if err := cmd.Process.Kill(); err != nil {
7980
log.Printf("Error killing ping process: %v", err)
8081
}
8182
if err := <-waitErr; err != nil {
82-
log.Println(err)
83+
log.Error().Err(err).Msg("Ping process exited with error after kill")
8384
}
8485
}
8586
}
8687
}
8788
}
8889

8990
if err := compress(path.Join(DataDir, today), filename); err != nil {
90-
log.Println(err)
91+
log.Error().Err(err).Msg("Error compressing ping output file")
9192
return
9293
}
9394

9495
if EnableSwift {
9596
conn, err := NewSwiftConn(SwiftUsername, SwiftAPIKey, SwiftAuthURL, SwiftDomain, SwiftTenant)
9697
if err != nil {
97-
log.Println("Error creating Swift client: ", err)
98+
log.Error().Err(err).Msg("Error creating Swift client")
9899
return
99100
}
100101
localFilename := fullFilename + ".tar.zst"
@@ -103,17 +104,19 @@ func ICMPPing(target string, interval float64) {
103104
month := fmt.Sprintf("%02d", time.Now().Month())
104105
day := time.Now().UTC().Format("2006-01-02")
105106
targetFilename := path.Join(ClientName, "ping", year, month, day, path.Base(localFilename))
106-
fmt.Printf("Uploading to Swift: %s\n", targetFilename)
107+
log.Info().Msgf("Uploading %s to Swift: %s", localFilename, targetFilename)
107108

108109
if err := UploadToSwift(conn, SwiftContainer, localFilename, targetFilename); err != nil {
109-
log.Println("Error uploading to Swift: ", err)
110+
log.Error().Err(err).Msgf("Error uploading %s to Swift container %s", localFilename, SwiftContainer)
110111
}
111112
defer func() {
112113
if err := os.Remove(localFilename); err != nil {
113-
log.Println("Error removing local file: ", err)
114+
log.Error().Err(err).Msgf("Error removing local file %s", localFilename)
114115
}
115116
}()
116117
}
118+
119+
notify()
117120
}
118121

119122
func IRTTPing() {
@@ -144,10 +147,10 @@ func IRTTPing() {
144147
local,
145148
IRTTHostPort,
146149
"-o", fullFilename)
147-
log.Println(cmd.String())
150+
log.Info().Msgf("irtt command: %s", cmd.String())
148151

149152
if err := cmd.Run(); err != nil {
150-
log.Println(err)
153+
log.Error().Err(err).Msg("Error running irtt command")
151154
}
152155
}(ctx)
153156

@@ -156,7 +159,7 @@ func IRTTPing() {
156159
if EnableSwift {
157160
conn, err := NewSwiftConn(SwiftUsername, SwiftAPIKey, SwiftAuthURL, SwiftDomain, ClientName)
158161
if err != nil {
159-
log.Println("Error creating Swift client: ", err)
162+
log.Error().Err(err).Msg("Error creating Swift client")
160163
return
161164
}
162165
localFilename := fullFilename + ".tar.zst"
@@ -167,12 +170,14 @@ func IRTTPing() {
167170

168171
targetFilename := path.Join(ClientName, "irtt", year, month, day, path.Base(localFilename))
169172
if err := UploadToSwift(conn, SwiftContainer, localFilename, targetFilename); err != nil {
170-
log.Println("Error uploading to Swift: ", err)
173+
log.Error().Err(err).Msgf("Error uploading %s to Swift container %s", localFilename, SwiftContainer)
171174
}
172175
defer func() {
173176
if err := os.Remove(localFilename); err != nil {
174-
log.Println("Error removing local file: ", err)
177+
log.Error().Err(err).Msgf("Error removing local file %s", localFilename)
175178
}
176179
}()
177180
}
181+
182+
notify()
178183
}

0 commit comments

Comments
 (0)