Skip to content

Commit 1fb40d1

Browse files
authored
Merge branch 'main' into arsen/build-devnet
2 parents 1a8d929 + a33431a commit 1fb40d1

File tree

5 files changed

+60
-12
lines changed

5 files changed

+60
-12
lines changed

pkg/http/websocket_server.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ type ConnectionWrapper struct {
2222
}
2323

2424
type WSConnectionParams struct {
25-
ID string
26-
Type string
25+
ID string
26+
Type string
27+
CountryCode string
28+
IP string
2729
}
2830

2931
// StartWebSocketServer starts a WebSocket server
@@ -97,8 +99,10 @@ func StartWebSocketServer(
9799
}
98100
params := r.URL.Query()
99101
connParams := WSConnectionParams{
100-
ID: params.Get("ID"),
101-
Type: params.Get("Type"),
102+
ID: params.Get("ID"),
103+
Type: params.Get("Type"),
104+
CountryCode: r.Header.Get("Cf-Ipcountry"),
105+
IP: r.Header.Get("Cf-Connecting-Ip"),
102106
}
103107
defer conn.Close()
104108
connectCB(connParams)

pkg/jobcreator/controller.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77

88
"github.com/lilypad-tech/lilypad/pkg/data"
99
"github.com/lilypad-tech/lilypad/pkg/http"
10+
"github.com/lilypad-tech/lilypad/pkg/metricsDashboard"
1011
"github.com/lilypad-tech/lilypad/pkg/solver"
1112
"github.com/lilypad-tech/lilypad/pkg/solver/store"
1213
"github.com/lilypad-tech/lilypad/pkg/system"
@@ -98,6 +99,14 @@ func (controller *JobCreatorController) SubscribeToJobOfferUpdates(sub JobOfferS
9899
*/
99100
func (controller *JobCreatorController) subscribeToSolver() error {
100101
controller.solverClient.SubscribeEvents(func(ev solver.SolverEvent) {
102+
if ev.EventType == "DealStateUpdated" {
103+
metricsDashboard.TrackDeal(metricsDashboard.DealPayload{
104+
ID: ev.Deal.ID,
105+
JobID: ev.Deal.JobOffer,
106+
JobCreator: ev.Deal.JobCreator,
107+
ResourceProvider: ev.Deal.ResourceProvider,
108+
})
109+
}
101110
switch ev.EventType {
102111
case solver.DealAdded:
103112
if ev.Deal == nil {

pkg/metricsDashboard/logger.go

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
const jobsEndpoint = "jobs"
1515
const nodeInfoEndpoint = "nodes"
1616
const nodeConnectionEndpoint = "uptimes"
17+
const dealsEndpoint = "deals"
1718

1819
var host = os.Getenv("API_HOST") + "metrics-dashboard/"
1920

@@ -71,15 +72,39 @@ func TrackNodeInfo(resourceOffer data.ResourceOffer) {
7172
TrackEvent(url, payload)
7273
}
7374

74-
func TrackNodeConnectionEvent(event string, ID string) {
75+
type NodeConnectionParams struct {
76+
Event string
77+
ID string
78+
CountryCode string
79+
IP string
80+
}
81+
82+
func TrackNodeConnectionEvent(params NodeConnectionParams) {
7583
var url = host + nodeConnectionEndpoint
7684
data := map[string]interface{}{
77-
"ID": ID,
78-
"Event": event,
79-
"Time": time.Now().UnixMilli(),
85+
"ID": params.ID,
86+
"Event": params.Event,
87+
"CountryCode": params.CountryCode,
88+
"IP": params.IP,
89+
"Time": time.Now().UnixMilli(),
8090
}
8191
byts, _ := json.Marshal(data)
8292
payload := string(byts)
8393

8494
TrackEvent(url, payload)
8595
}
96+
97+
type DealPayload struct {
98+
ID string
99+
JobCreator string
100+
ResourceProvider string
101+
JobID string
102+
}
103+
104+
func TrackDeal(params DealPayload) {
105+
var url = host + dealsEndpoint
106+
byts, _ := json.Marshal(params)
107+
payload := string(byts)
108+
109+
TrackEvent(url, payload)
110+
}

pkg/solver/controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ func (controller *SolverController) addResourceOffer(resourceOffer data.Resource
337337
return ret, nil
338338
}
339339

340-
func (controller *SolverController) removeResourceOfferBYResourceProvider(ID string) error {
340+
func (controller *SolverController) removeResourceOfferByResourceProvider(ID string) error {
341341
controller.log.Info("remove resource offer", ID)
342342
resourceOffers, err := controller.store.GetResourceOffers(store.GetResourceOffersQuery{
343343
ResourceProvider: ID,

pkg/solver/server.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,24 @@ func (solverServer *solverServer) ListenAndServe(ctx context.Context, cm *system
137137
// WS connect events
138138
func (solverServer *solverServer) connectCB(connParams http.WSConnectionParams) {
139139
if connParams.Type == "ResourceProvider" {
140-
metricsDashboard.TrackNodeConnectionEvent("Connect", connParams.ID)
140+
metricsDashboard.TrackNodeConnectionEvent(metricsDashboard.NodeConnectionParams{
141+
Event: "Connect",
142+
ID: connParams.ID,
143+
CountryCode: connParams.CountryCode,
144+
IP: connParams.IP,
145+
})
141146
}
142147
}
143148

144149
func (solverServer *solverServer) disconnectCB(connParams http.WSConnectionParams) {
145150
if connParams.Type == "ResourceProvider" {
146-
metricsDashboard.TrackNodeConnectionEvent("Disconnect", connParams.ID)
147-
solverServer.controller.removeResourceOfferBYResourceProvider(connParams.ID)
151+
metricsDashboard.TrackNodeConnectionEvent(metricsDashboard.NodeConnectionParams{
152+
Event: "Disconnect",
153+
ID: connParams.ID,
154+
CountryCode: connParams.CountryCode,
155+
IP: connParams.IP,
156+
})
157+
solverServer.controller.removeResourceOfferByResourceProvider(connParams.ID)
148158
}
149159
}
150160

0 commit comments

Comments
 (0)