Skip to content

Commit 2269fce

Browse files
committed
Merge branch 'release/v11' into backlog/mdc-request-context-logging
# Conflicts: # backend/src/main/java/com/park/utmstack/loggin/LogContextBuilder.java # backend/src/main/resources/logback-spring.xml
2 parents 0220530 + 6ec2069 commit 2269fce

49 files changed

Lines changed: 419 additions & 436 deletions

File tree

Some content is hidden

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

agent-manager/agent/agent_imp.go

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"time"
1010

1111
"github.com/google/uuid"
12-
"github.com/threatwinds/go-sdk/catcher"
1312
"github.com/utmstack/UTMStack/agent-manager/database"
1413
"github.com/utmstack/UTMStack/agent-manager/models"
1514
"github.com/utmstack/UTMStack/agent-manager/utils"
@@ -83,7 +82,7 @@ func (s *AgentService) RegisterAgent(ctx context.Context, req *AgentRequest) (*A
8382
Key: oldAgent.AgentKey,
8483
}, nil
8584
} else {
86-
catcher.Error("agent already exists", nil, map[string]any{"hostname": agent.Hostname})
85+
utils.ALogger.ErrorF("agent with hostname %s already exists", agent.Hostname)
8786
return nil, status.Errorf(codes.AlreadyExists, "hostname has already been registered")
8887
}
8988
}
@@ -92,7 +91,7 @@ func (s *AgentService) RegisterAgent(ctx context.Context, req *AgentRequest) (*A
9291
agent.AgentKey = key
9392
err = s.DBConnection.Create(agent)
9493
if err != nil {
95-
catcher.Error("failed to create agent", err, map[string]any{})
94+
utils.ALogger.ErrorF("failed to create agent: %v", err)
9695
return nil, status.Error(codes.Internal, fmt.Sprintf("failed to create agent: %v", err))
9796
}
9897

@@ -106,7 +105,7 @@ func (s *AgentService) RegisterAgent(ctx context.Context, req *AgentRequest) (*A
106105
LastPing: time.Now(),
107106
}
108107

109-
catcher.Info("agent registered", map[string]any{"id": agent.ID, "hostname": agent.Hostname})
108+
utils.ALogger.Info("Agent %s with id %d registered correctly", agent.Hostname, agent.ID)
110109
return &AuthResponse{
111110
Id: uint32(agent.ID),
112111
Key: key,
@@ -126,7 +125,7 @@ func (s *AgentService) UpdateAgent(ctx context.Context, req *AgentRequest) (*Aut
126125
agent := &models.Agent{}
127126
err = s.DBConnection.GetFirst(agent, "id = ?", idInt)
128127
if err != nil {
129-
catcher.Error("failed to fetch agent", err, map[string]any{})
128+
utils.ALogger.ErrorF("failed to fetch agent: %v", err)
130129
return nil, status.Errorf(codes.NotFound, "agent not found")
131130
}
132131

@@ -157,7 +156,7 @@ func (s *AgentService) UpdateAgent(ctx context.Context, req *AgentRequest) (*Aut
157156

158157
err = s.DBConnection.Upsert(&agent, "id = ?", nil, idInt)
159158
if err != nil {
160-
catcher.Error("failed to update agent", err, map[string]any{})
159+
utils.ALogger.ErrorF("failed to update agent: %v", err)
161160
return nil, status.Errorf(codes.Internal, "failed to update agent: %v", err)
162161
}
163162

@@ -181,18 +180,18 @@ func (s *AgentService) DeleteAgent(ctx context.Context, req *DeleteRequest) (*Au
181180

182181
err = s.DBConnection.Upsert(&models.Agent{}, "id = ?", map[string]interface{}{"deleted_by": req.DeletedBy}, id)
183182
if err != nil {
184-
catcher.Error("unable to update delete_by field in agent", err, map[string]any{})
183+
utils.ALogger.ErrorF("unable to update delete_by field in agent: %v", err)
185184
}
186185

187186
err = s.DBConnection.Delete(&models.AgentCommand{}, "agent_id = ?", false, uint(idInt))
188187
if err != nil {
189-
catcher.Error("unable to delete agent commands", err, map[string]any{})
188+
utils.ALogger.ErrorF("unable to delete agent commands: %v", err)
190189
return &AuthResponse{}, status.Error(codes.Internal, fmt.Sprintf("unable to delete agent commands: %v", err.Error()))
191190
}
192191

193192
err = s.DBConnection.Delete(&models.Agent{}, "id = ?", false, id)
194193
if err != nil {
195-
catcher.Error("unable to delete agent", err, map[string]any{})
194+
utils.ALogger.ErrorF("unable to delete agent: %v", err)
196195
return &AuthResponse{}, status.Error(codes.Internal, fmt.Sprintf("unable to delete agent: %v", err.Error()))
197196
}
198197

@@ -204,7 +203,7 @@ func (s *AgentService) DeleteAgent(ctx context.Context, req *DeleteRequest) (*Au
204203
delete(s.AgentStreamMap, uint(idInt))
205204
s.AgentStreamMutex.Unlock()
206205

207-
catcher.Info("agent deleted", map[string]any{"agent_id": key, "deleted_by": req.DeletedBy})
206+
utils.ALogger.Info("Agent with key %s deleted by %s", key, req.DeletedBy)
208207

209208
return &AuthResponse{
210209
Id: uint32(idInt),
@@ -219,7 +218,7 @@ func (s *AgentService) ListAgents(ctx context.Context, req *ListRequest) (*ListA
219218
agents := []models.Agent{}
220219
total, err := s.DBConnection.GetByPagination(&agents, page, filter, "", false)
221220
if err != nil {
222-
catcher.Error("failed to fetch agents", err, map[string]any{})
221+
utils.ALogger.ErrorF("failed to fetch agents: %v", err)
223222
return nil, status.Errorf(codes.Internal, "failed to fetch agents: %v", err)
224223
}
225224

@@ -267,7 +266,7 @@ func (s *AgentService) AgentStream(stream AgentService_AgentStreamServer) error
267266

268267
switch msg := in.StreamMessage.(type) {
269268
case *BidirectionalStream_Result:
270-
catcher.Info("Received command result", map[string]any{"agent_id": msg.Result.AgentId, "result": msg.Result.Result})
269+
utils.ALogger.Info("Received command result from agent %s: %s", msg.Result.AgentId, msg.Result.Result)
271270
cmdID := msg.Result.GetCmdId()
272271

273272
s.CommandResultChannelM.Lock()
@@ -279,7 +278,7 @@ func (s *AgentService) AgentStream(stream AgentService_AgentStreamServer) error
279278
ExecutedAt: msg.Result.ExecutedAt,
280279
}
281280
} else {
282-
catcher.Error("failed to find result channel for CmdID", nil, map[string]any{"cmd_id": cmdID})
281+
utils.ALogger.ErrorF("failed to find result channel for CmdID: %s", cmdID)
283282
}
284283
s.CommandResultChannelM.Unlock()
285284
}
@@ -325,7 +324,7 @@ func (s *AgentService) ProcessCommand(stream PanelService_ProcessCommandServer)
325324
histCommand := createHistoryCommand(cmd, cmdID, uint(streamId))
326325
err = s.DBConnection.Create(&histCommand)
327326
if err != nil {
328-
catcher.Error("unable to create a new command history", err, map[string]any{})
327+
utils.ALogger.ErrorF("unable to create a new command history")
329328
}
330329

331330
err = agentStream.Send(&BidirectionalStream{
@@ -349,7 +348,7 @@ func (s *AgentService) ProcessCommand(stream PanelService_ProcessCommandServer)
349348
cmd.AgentId, cmdID,
350349
)
351350
if err != nil {
352-
catcher.Error("failed to update command status", err, map[string]any{})
351+
utils.ALogger.ErrorF("failed to update command status: %v", err)
353352
}
354353

355354
err = stream.Send(result)
@@ -370,7 +369,7 @@ func (s *AgentService) ListAgentCommands(ctx context.Context, req *ListRequest)
370369
commands := []models.AgentCommand{}
371370
total, err := s.DBConnection.GetByPagination(&commands, page, filter, "", false)
372371
if err != nil {
373-
catcher.Error("failed to fetch agent commands", err, map[string]any{})
372+
utils.ALogger.ErrorF("failed to fetch agent commands: %v", err)
374373
return nil, status.Errorf(codes.Internal, "failed to fetch agent commands: %v", err)
375374
}
376375

agent-manager/agent/collector_imp.go

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@ import (
44
context "context"
55
"fmt"
66
"io"
7-
"os"
87
"strconv"
98
sync "sync"
109
"time"
1110

1211
"github.com/google/uuid"
13-
"github.com/threatwinds/go-sdk/catcher"
1412
"github.com/utmstack/UTMStack/agent-manager/config"
1513
"github.com/utmstack/UTMStack/agent-manager/database"
1614
"github.com/utmstack/UTMStack/agent-manager/models"
@@ -63,8 +61,7 @@ func InitCollectorService() {
6361
collectors := []models.Collector{}
6462
_, err := CollectorServ.DBConnection.GetAll(&collectors, "")
6563
if err != nil {
66-
catcher.Error("failed to fetch collectors", err, nil)
67-
os.Exit(1)
64+
utils.ALogger.Fatal("failed to fetch collectors: %v", err)
6865
}
6966
for _, c := range collectors {
7067
CollectorServ.CacheCollectorKey[c.ID] = c.CollectorKey
@@ -79,7 +76,7 @@ func InitCollectorService() {
7976
moduleConfig := &types.ConfigurationSection{}
8077
moduleConfig, err = client.GetUTMConfig(moduleType)
8178
if err != nil {
82-
catcher.Error("failed to get module config", err, nil)
79+
utils.ALogger.ErrorF("failed to get module config: %v", err)
8380
time.Sleep(5 * time.Second)
8481
continue external
8582
}
@@ -89,7 +86,7 @@ func InitCollectorService() {
8986
var idInt int
9087
idInt, err = strconv.Atoi(group.CollectorID)
9188
if err != nil {
92-
catcher.Error("invalid collector ID", err, nil)
89+
utils.ALogger.ErrorF("invalid collector ID: %v", err)
9390
continue
9491
}
9592

@@ -131,7 +128,7 @@ func (s *CollectorService) RegisterCollector(ctx context.Context, req *RegisterR
131128
Key: oldCollector.CollectorKey,
132129
}, nil
133130
} else {
134-
catcher.Error("collector already registered with different IP", nil, map[string]any{"hostname": oldCollector.Hostname, "module": oldCollector.Module, "id": oldCollector.ID})
131+
utils.ALogger.ErrorF("collector %s(%s) with id %d already registered with different IP", oldCollector.Hostname, oldCollector.Module, oldCollector.ID)
135132
return nil, status.Errorf(codes.AlreadyExists, "hostname has already been registered")
136133
}
137134
}
@@ -140,7 +137,7 @@ func (s *CollectorService) RegisterCollector(ctx context.Context, req *RegisterR
140137
collector.CollectorKey = key
141138
err = s.DBConnection.Create(collector)
142139
if err != nil {
143-
catcher.Error("failed to create collector", err, map[string]any{})
140+
utils.ALogger.ErrorF("failed to create collector: %v", err)
144141
return nil, status.Error(codes.Internal, fmt.Sprintf("failed to create collector: %v", err))
145142
}
146143

@@ -154,7 +151,7 @@ func (s *CollectorService) RegisterCollector(ctx context.Context, req *RegisterR
154151
LastPing: time.Now(),
155152
}
156153

157-
catcher.Info("collector registered", map[string]any{"hostname": collector.Hostname, "module": collector.Module, "id": collector.ID})
154+
utils.ALogger.Info("Collector %s(%s) with id %d registered correctly", collector.Hostname, collector.Module, collector.ID)
158155
return &AuthResponse{
159156
Id: uint32(collector.ID),
160157
Key: key,
@@ -173,12 +170,12 @@ func (s *CollectorService) DeleteCollector(ctx context.Context, req *DeleteReque
173170

174171
err = s.DBConnection.Upsert(&models.Collector{}, "id = ?", map[string]interface{}{"deleted_by": req.DeletedBy}, id)
175172
if err != nil {
176-
catcher.Error("unable to delete collector", err, map[string]any{})
173+
utils.ALogger.ErrorF("unable to delete collector: %v", err)
177174
}
178175

179176
err = s.DBConnection.Delete(&models.Collector{}, "id = ?", false, id)
180177
if err != nil {
181-
catcher.Error("unable to delete collector", err, map[string]any{})
178+
utils.ALogger.ErrorF("unable to delete collector: %v", err)
182179
return nil, status.Error(codes.Internal, fmt.Sprintf("unable to delete collector: %v", err.Error()))
183180
}
184181

@@ -190,7 +187,7 @@ func (s *CollectorService) DeleteCollector(ctx context.Context, req *DeleteReque
190187
delete(s.CollectorStreamMap, uint(idInt))
191188
s.CollectorStreamMutex.Unlock()
192189

193-
catcher.Info("collector deleted", map[string]any{"collector_id": key, "deleted_by": req.DeletedBy})
190+
utils.ALogger.Info("Collector with key %s deleted by %s", key, req.DeletedBy)
194191
return &AuthResponse{
195192
Id: uint32(idInt),
196193
Key: key,
@@ -204,7 +201,7 @@ func (s *CollectorService) ListCollector(ctx context.Context, req *ListRequest)
204201
collectors := []models.Collector{}
205202
total, err := s.DBConnection.GetByPagination(&collectors, page, filter, "", false)
206203
if err != nil {
207-
catcher.Error("failed to fetch collectors", err, map[string]any{})
204+
utils.ALogger.ErrorF("failed to fetch collectors: %v", err)
208205
return nil, status.Errorf(codes.Internal, "failed to fetch collectors: %v", err)
209206
}
210207
return convertModelToCollectorResponse(collectors, total), nil
@@ -214,7 +211,7 @@ func (s *CollectorService) ProcessPendingConfigs() {
214211
for configs := range s.CollectorPendigConfigChan {
215212
collectorID, err := strconv.Atoi(configs.CollectorId)
216213
if err != nil {
217-
catcher.Error("invalid collector ID", err, map[string]any{})
214+
utils.ALogger.ErrorF("invalid collector ID: %v", err)
218215
continue
219216
}
220217

@@ -231,7 +228,7 @@ func (s *CollectorService) ProcessPendingConfigs() {
231228
},
232229
})
233230
if err != nil {
234-
catcher.Error("failed to send config to collector", err, map[string]any{})
231+
utils.ALogger.ErrorF("failed to send config to collector: %v", err)
235232
}
236233
}
237234
}
@@ -276,7 +273,7 @@ func (s *CollectorService) CollectorStream(stream CollectorService_CollectorStre
276273

277274
switch msg := in.StreamMessage.(type) {
278275
case *CollectorMessages_Result:
279-
catcher.Info("Received Knowledge", map[string]any{"request_id": msg.Result.RequestId})
276+
utils.ALogger.Info("Received Knowlodge: %s", msg.Result.RequestId)
280277

281278
case *CollectorMessages_Config:
282279
// Not implemented

agent-manager/agent/lastseen_imp.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"sync"
88
"time"
99

10-
"github.com/threatwinds/go-sdk/catcher"
1110
"github.com/utmstack/UTMStack/agent-manager/database"
1211
"github.com/utmstack/UTMStack/agent-manager/models"
1312
"github.com/utmstack/UTMStack/agent-manager/utils"
@@ -51,7 +50,7 @@ func (s *LastSeenService) InitPingSync() {
5150
for {
5251
_, err := s.DBConnection.GetAll(&pings, "")
5352
if err != nil {
54-
catcher.Error("failed to get LastSeen items", err, nil)
53+
utils.ALogger.ErrorF("failed to get LastSeen items: %v", err)
5554
time.Sleep(5 * time.Second)
5655
continue
5756
}
@@ -78,7 +77,7 @@ func (s *LastSeenService) processPings() {
7877
}
7978
}
8079

81-
catcher.Info("processPings goroutine ended", nil)
80+
utils.ALogger.Info("processPings goroutine ended")
8281
}
8382

8483
func (s *LastSeenService) flushLastSeenToDB() {
@@ -107,7 +106,7 @@ func (s *LastSeenService) flushLastSeenToDB() {
107106

108107
// Database operations
109108
dbOpsCount := len(pings)
110-
109+
111110
if dbOpsCount == 0 {
112111
continue
113112
}
@@ -131,7 +130,7 @@ func (s *LastSeenService) flushLastSeenToDB() {
131130
for ping := range pingChan {
132131
err := s.DBConnection.Upsert(&ping, "connector_id = ?", nil, ping.ConnectorID)
133132
if err != nil {
134-
catcher.Error("failed to save LastSeen item", err, map[string]any{"connector_id": ping.ConnectorID})
133+
utils.ALogger.ErrorF("failed to save LastSeen item for connector %d: %v", ping.ConnectorID, err)
135134
select {
136135
case errorChan <- err:
137136
default:

agent-manager/agent/parser.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"regexp"
55
"strconv"
66

7-
"github.com/threatwinds/go-sdk/catcher"
87
"github.com/utmstack/UTMStack/agent-manager/config"
98
"github.com/utmstack/UTMStack/agent-manager/models"
109
"github.com/utmstack/UTMStack/agent-manager/utils"
@@ -40,7 +39,7 @@ func createHistoryCommand(cmd *UtmCommand, cmdID string, agentId uint) *models.A
4039
func parseAgentToProto(agent models.Agent) *Agent {
4140
agentStatus, lastSeen, err := LastSeenServ.GetLastSeenStatus(agent.ID, "agent")
4241
if err != nil {
43-
catcher.Error("failed to get last seen status for agent", err, map[string]any{"agent_id": agent.ID})
42+
utils.ALogger.ErrorF("failed to get last seen status for agent %d: %v", agent.ID, err)
4443
}
4544
agentResult := &Agent{
4645
Id: uint32(agent.ID),
@@ -108,7 +107,7 @@ func replaceSecretValues(input string) string {
108107
func modelToProtoCollector(model models.Collector) *Collector {
109108
collectorStatus, lastSeen, err := LastSeenServ.GetLastSeenStatus(model.ID, "collector")
110109
if err != nil {
111-
catcher.Error("failed to get last seen status for collector", err, map[string]any{"collector_id": model.ID})
110+
utils.ALogger.ErrorF("failed to get last seen status for collector %d: %v", model.ID, err)
112111
}
113112
return &Collector{
114113
Id: int32(model.ID),

agent-manager/agent/utmgrpc.go

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ package agent
33
import (
44
"crypto/tls"
55
"net"
6-
"os"
76

8-
"github.com/threatwinds/go-sdk/catcher"
97
"github.com/utmstack/UTMStack/agent-manager/config"
8+
"github.com/utmstack/UTMStack/agent-manager/utils"
109
grpc "google.golang.org/grpc"
1110
"google.golang.org/grpc/credentials"
1211
"google.golang.org/grpc/health"
@@ -16,8 +15,7 @@ import (
1615
func InitGrpcServer() {
1716
err := InitAgentService()
1817
if err != nil {
19-
catcher.Error("failed to init agent service", err, nil)
20-
os.Exit(1)
18+
utils.ALogger.Fatal("failed to init agent service: %v", err)
2119
}
2220

2321
go InitCollectorService()
@@ -29,14 +27,14 @@ func InitGrpcServer() {
2927
func StartGrpcServer() {
3028
listener, err := net.Listen("tcp", "0.0.0.0:50051")
3129
if err != nil {
32-
catcher.Error("failed to listen", err, nil)
33-
os.Exit(1)
30+
utils.ALogger.Fatal("failed to listen: %v", err)
31+
return
3432
}
3533

3634
loadedCert, err := tls.LoadX509KeyPair(config.CertPath, config.CertKeyPath)
3735
if err != nil {
38-
catcher.Error("failed to load TLS credentials", err, nil)
39-
os.Exit(1)
36+
utils.ALogger.Fatal("failed to load TLS credentials: %v", err)
37+
return
4038
}
4139

4240
transportCredentials := credentials.NewTLS(&tls.Config{
@@ -59,9 +57,8 @@ func StartGrpcServer() {
5957
grpc_health_v1.RegisterHealthServer(grpcServer, healthServer)
6058
healthServer.SetServingStatus("", grpc_health_v1.HealthCheckResponse_SERVING)
6159

62-
catcher.Info("Starting gRPC server on 0.0.0.0:50051", nil)
60+
utils.ALogger.Info("Starting gRPC server on 0.0.0.0:50051")
6361
if err := grpcServer.Serve(listener); err != nil {
64-
catcher.Error("failed to serve", err, nil)
65-
os.Exit(1)
62+
utils.ALogger.Fatal("failed to serve: %v", err)
6663
}
6764
}

agent-manager/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ require (
4040
github.com/modern-go/reflect2 v1.0.2 // indirect
4141
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
4242
github.com/rogpeppe/go-internal v1.13.1 // indirect
43-
github.com/threatwinds/go-sdk v1.0.45
4443
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
4544
github.com/ugorji/go/codec v1.3.0 // indirect
4645
golang.org/x/arch v0.19.0 // indirect

0 commit comments

Comments
 (0)