From e329da571b7cc5178ea210dd109f37b3ebf83ee2 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Wed, 19 Mar 2025 15:02:21 +0000 Subject: feat/rankings: add catapults 3 wr, handle err (#265) --- rankings/fetch.go | 51 ++++++++++++++++++++++++++++++++------------- rankings/input/records.json | 2 +- rankings/main.go | 5 ++++- 3 files changed, 41 insertions(+), 17 deletions(-) diff --git a/rankings/fetch.go b/rankings/fetch.go index 7e63427..76a3526 100644 --- a/rankings/fetch.go +++ b/rankings/fetch.go @@ -3,6 +3,7 @@ package main import ( "encoding/json" "encoding/xml" + "errors" "fmt" "io" "log" @@ -12,16 +13,25 @@ import ( "strings" ) -func fetchLeaderboard(records []Record, overrides map[SteamID]map[string]int, useCache bool) map[SteamID]*Player { +var ( + errLb error = errors.New("leaderboards error") + errPi error = errors.New("playerinfo error") +) + +func fetchLeaderboard(records []Record, overrides map[SteamID]map[string]int, useCache bool) (map[SteamID]*Player, error) { log.Println("fetching leaderboard") players := map[SteamID]*Player{} // first init players map with records from portal gun and doors + return nil, errLb fetchAnotherPage := true start := 0 end := 5000 for fetchAnotherPage { - portalGunEntries := fetchRecordsFromMap(47459, 0, 5000, useCache) + portalGunEntries, err := fetchRecordsFromMap(47459, 0, 5000, useCache) + if err != nil { + return nil, err + } fetchAnotherPage = portalGunEntries.needsAnotherPage(&records[0]) if fetchAnotherPage { start = end + 1 @@ -50,7 +60,10 @@ func fetchLeaderboard(records []Record, overrides map[SteamID]map[string]int, us end = 5000 for fetchAnotherPage { - doorsEntries := fetchRecordsFromMap(47740, start, end, useCache) + doorsEntries, err := fetchRecordsFromMap(47740, start, end, useCache) + if err != nil { + return nil, err + } fetchAnotherPage = doorsEntries.needsAnotherPage(&records[51]) if fetchAnotherPage { start = end + 1 @@ -94,7 +107,10 @@ func fetchLeaderboard(records []Record, overrides map[SteamID]map[string]int, us end := 5000 for fetchAnotherPage { - entries := fetchRecordsFromMap(record.MapID, start, end, useCache) + entries, err := fetchRecordsFromMap(record.MapID, start, end, useCache) + if err != nil { + return nil, err + } fetchAnotherPage = entries.needsAnotherPage(&record) if fetchAnotherPage { start = end + 1 @@ -137,10 +153,10 @@ func fetchLeaderboard(records []Record, overrides map[SteamID]map[string]int, us } } - return players + return players, nil } -func fetchRecordsFromMap(mapID int, start int, end int, useCache bool) *Leaderboard { +func fetchRecordsFromMap(mapID int, start int, end int, useCache bool) (*Leaderboard, error) { var filename string if useCache { filename := fmt.Sprintf("./cache/lb_%d_%d_%d.xml", mapID, start, end) @@ -152,25 +168,27 @@ func fetchRecordsFromMap(mapID int, start int, end int, useCache bool) *Leaderbo if err != nil { log.Fatalln("failed to unmarshal cache.", err.Error()) } - return &leaderboard + return &leaderboard, nil } } url := fmt.Sprintf("https://steamcommunity.com/stats/Portal2/leaderboards/%d?xml=1&start=%d&end=%d", mapID, start, end) resp, err := http.Get(url) - log.Println("fetched", url, ":", resp.StatusCode) if err != nil { - log.Fatalln("failed to fetch leaderboard.", err.Error()) + log.Println("failed to fetch leaderboard.", err.Error()) + return nil, errLb } respBytes, err := io.ReadAll(resp.Body) if err != nil { - log.Fatalln("failed to read leadeboard body.", err.Error()) + log.Println("failed to read leadeboard body.", err.Error()) + return nil, errLb } leaderboard := Leaderboard{} err = xml.Unmarshal(respBytes, &leaderboard) if err != nil { log.Println(string(respBytes)) - log.Fatalln("failed to unmarshal leaderboard.", err.Error()) + log.Println("failed to unmarshal leaderboard.", err.Error()) + return nil, errLb } if useCache { @@ -179,10 +197,10 @@ func fetchRecordsFromMap(mapID int, start int, end int, useCache bool) *Leaderbo } } - return &leaderboard + return &leaderboard, nil } -func fetchPlayerInfo(players []*Player) { +func fetchPlayerInfo(players []*Player) error { log.Println("fetching info for", len(players), "players") ids := make([]string, len(players)) @@ -193,11 +211,13 @@ func fetchPlayerInfo(players []*Player) { url := fmt.Sprintf("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=%s&steamids=%s", os.Getenv("API_KEY"), strings.Join(ids, ",")) resp, err := http.Get(url) if err != nil { - log.Fatalln(err.Error()) + log.Println(err.Error()) + return errPi } body, err := io.ReadAll(resp.Body) if err != nil { - log.Fatalln(err.Error()) + log.Println(err.Error()) + return errPi } type PlayerSummary struct { SteamID SteamID `json:"steamid"` @@ -223,4 +243,5 @@ func fetchPlayerInfo(players []*Player) { } } } + return nil } diff --git a/rankings/input/records.json b/rankings/input/records.json index d960004..2b1fb21 100644 --- a/rankings/input/records.json +++ b/rankings/input/records.json @@ -377,7 +377,7 @@ "id": 47839, "name": "Catapults", "mode": 2, - "wr": 4 + "wr": 3 }, { "id": 47842, diff --git a/rankings/main.go b/rankings/main.go index 552f058..928d3be 100644 --- a/rankings/main.go +++ b/rankings/main.go @@ -58,7 +58,10 @@ func run() { overrides := readOverrides() log.Println("loaded", len(overrides), "player overrides") - players := fetchLeaderboard(records, overrides, useCache) + players, err := fetchLeaderboard(records, overrides, useCache) + if err != nil { + return + } spRankings := []*Player{} mpRankings := []*Player{} -- cgit v1.2.3 From 22547464f756f3620dd1d92bcd249cb7608ca04a Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Wed, 19 Mar 2025 15:31:34 +0000 Subject: feat/backend: basic map difficulty ratings (#266) --- backend/handlers/map.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/handlers/map.go b/backend/handlers/map.go index b2a0b91..e1e6897 100644 --- a/backend/handlers/map.go +++ b/backend/handlers/map.go @@ -492,6 +492,7 @@ func FetchMaps(c *gin.Context) { m.id, m.name, m.is_disabled, + m.difficulty, m.image, cat.id, cat.name, @@ -529,7 +530,7 @@ func FetchMaps(c *gin.Context) { for rows.Next() { var mapShort models.MapSelect var categoryPortal models.CategoryPortal - if err := rows.Scan(&mapShort.ID, &mapShort.Name, &mapShort.IsDisabled, &mapShort.Image, &categoryPortal.Category.ID, &categoryPortal.Category.Name, &categoryPortal.PortalCount); err != nil { + if err := rows.Scan(&mapShort.ID, &mapShort.Name, &mapShort.IsDisabled, &mapShort.Difficulty, &mapShort.Image, &categoryPortal.Category.ID, &categoryPortal.Category.Name, &categoryPortal.PortalCount); err != nil { c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } @@ -571,6 +572,7 @@ func FetchChapterMaps(c *gin.Context) { m.name AS map_name, c.name AS chapter_name, m.is_disabled, + m.difficulty, m.image, cat.id, cat.name, @@ -610,7 +612,7 @@ func FetchChapterMaps(c *gin.Context) { for rows.Next() { var mapShort models.MapSelect var categoryPortal models.CategoryPortal - if err := rows.Scan(&mapShort.ID, &mapShort.Name, &chapterName, &mapShort.IsDisabled, &mapShort.Image, &categoryPortal.Category.ID, &categoryPortal.Category.Name, &categoryPortal.PortalCount); err != nil { + if err := rows.Scan(&mapShort.ID, &mapShort.Name, &chapterName, &mapShort.IsDisabled, &mapShort.Difficulty, &mapShort.Image, &categoryPortal.Category.ID, &categoryPortal.Category.Name, &categoryPortal.PortalCount); err != nil { c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return } -- cgit v1.2.3 From 6a163167c81689f07e76e7ff9ab7449f88ca0ea4 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Wed, 19 Mar 2025 15:38:58 +0000 Subject: feat/frontend: adjust difficulty to 1-10 scale (#268) --- frontend/src/components/Summary.tsx | 21 ++++++++++----------- frontend/src/pages/Maplist.tsx | 2 +- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/frontend/src/components/Summary.tsx b/frontend/src/components/Summary.tsx index 4bcaa6a..2fec182 100644 --- a/frontend/src/components/Summary.tsx +++ b/frontend/src/components/Summary.tsx @@ -140,18 +140,17 @@ const Summary: React.FC = ({ selectedRun, setSelectedRun, data })
Difficulty - {data.summary.routes[selectedRun].rating === 0 && (N/A)} - {data.summary.routes[selectedRun].rating === 1 && (Very easy)} - {data.summary.routes[selectedRun].rating === 2 && (Easy)} - {data.summary.routes[selectedRun].rating === 3 && (Medium)} - {data.summary.routes[selectedRun].rating === 4 && (Hard)} - {data.summary.routes[selectedRun].rating === 5 && (Very hard)} + {data.summary.routes[selectedRun].rating <= 2 && (Very easy)} + {data.summary.routes[selectedRun].rating <= 4 && (Easy)} + {data.summary.routes[selectedRun].rating <= 6 && (Medium)} + {data.summary.routes[selectedRun].rating <= 8 && (Hard)} + {data.summary.routes[selectedRun].rating <= 10 && (Very hard)}
- {data.summary.routes[selectedRun].rating === 1 ? (
) : (
)} - {data.summary.routes[selectedRun].rating === 2 ? (
) : (
)} - {data.summary.routes[selectedRun].rating === 3 ? (
) : (
)} - {data.summary.routes[selectedRun].rating === 4 ? (
) : (
)} - {data.summary.routes[selectedRun].rating === 5 ? (
) : (
)} + {data.summary.routes[selectedRun].rating <= 2 ? (
) : (
)} + {data.summary.routes[selectedRun].rating <= 4 ? (
) : (
)} + {data.summary.routes[selectedRun].rating <= 6 ? (
) : (
)} + {data.summary.routes[selectedRun].rating <= 8 ? (
) : (
)} + {data.summary.routes[selectedRun].rating <= 10 ? (
) : (
)}
diff --git a/frontend/src/pages/Maplist.tsx b/frontend/src/pages/Maplist.tsx index 04938cf..76f9a52 100644 --- a/frontend/src/pages/Maplist.tsx +++ b/frontend/src/pages/Maplist.tsx @@ -165,7 +165,7 @@ const Maplist: React.FC = () => {
{/* Difficulty: */} -
+
-- cgit v1.2.3 From 1dd2591557d255b4262867a0aa92b492ea65e336 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Wed, 19 Mar 2025 15:49:14 +0000 Subject: fix/frontend: broken summary difficulty (#270) --- frontend/src/components/Summary.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/frontend/src/components/Summary.tsx b/frontend/src/components/Summary.tsx index 2fec182..1df6a78 100644 --- a/frontend/src/components/Summary.tsx +++ b/frontend/src/components/Summary.tsx @@ -141,16 +141,16 @@ const Summary: React.FC = ({ selectedRun, setSelectedRun, data })
Difficulty {data.summary.routes[selectedRun].rating <= 2 && (Very easy)} - {data.summary.routes[selectedRun].rating <= 4 && (Easy)} - {data.summary.routes[selectedRun].rating <= 6 && (Medium)} - {data.summary.routes[selectedRun].rating <= 8 && (Hard)} - {data.summary.routes[selectedRun].rating <= 10 && (Very hard)} + {data.summary.routes[selectedRun].rating > 2 && data.summary.routes[selectedRun].rating <= 4 && (Easy)} + {data.summary.routes[selectedRun].rating > 4 && data.summary.routes[selectedRun].rating <= 6 && (Medium)} + {data.summary.routes[selectedRun].rating > 6 && data.summary.routes[selectedRun].rating <= 8 && (Hard)} + {data.summary.routes[selectedRun].rating > 8 && data.summary.routes[selectedRun].rating <= 10 && (Very hard)}
{data.summary.routes[selectedRun].rating <= 2 ? (
) : (
)} - {data.summary.routes[selectedRun].rating <= 4 ? (
) : (
)} - {data.summary.routes[selectedRun].rating <= 6 ? (
) : (
)} - {data.summary.routes[selectedRun].rating <= 8 ? (
) : (
)} - {data.summary.routes[selectedRun].rating <= 10 ? (
) : (
)} + {data.summary.routes[selectedRun].rating > 2 && data.summary.routes[selectedRun].rating <= 4 ? (
) : (
)} + {data.summary.routes[selectedRun].rating > 4 && data.summary.routes[selectedRun].rating <= 6 ? (
) : (
)} + {data.summary.routes[selectedRun].rating > 6 && data.summary.routes[selectedRun].rating <= 8 ? (
) : (
)} + {data.summary.routes[selectedRun].rating > 8 && data.summary.routes[selectedRun].rating <= 10 ? (
) : (
)}
-- cgit v1.2.3 From d221c8a770fa0d01fc191e88b2fda8d7d0faa049 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Wed, 19 Mar 2025 15:53:30 +0000 Subject: feat/backend: send map difficulty in summary (#271) --- backend/handlers/map.go | 4 ++-- backend/models/models.go | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/handlers/map.go b/backend/handlers/map.go index e1e6897..9cb0bcc 100644 --- a/backend/handlers/map.go +++ b/backend/handlers/map.go @@ -77,12 +77,12 @@ func FetchMapSummary(c *gin.Context) { } // Get map data response.Map.ID = intID - sql := `SELECT m.id, g.name, c.name, m.name, m.image, g.is_coop, m.is_disabled + sql := `SELECT m.id, g.name, c.name, m.name, m.image, g.is_coop, m.is_disabled, m.difficulty FROM maps m INNER JOIN games g ON m.game_id = g.id INNER JOIN chapters c ON m.chapter_id = c.id WHERE m.id = $1` - err = database.DB.QueryRow(sql, id).Scan(&response.Map.ID, &response.Map.GameName, &response.Map.ChapterName, &response.Map.MapName, &response.Map.Image, &response.Map.IsCoop, &response.Map.IsDisabled) + err = database.DB.QueryRow(sql, id).Scan(&response.Map.ID, &response.Map.GameName, &response.Map.ChapterName, &response.Map.MapName, &response.Map.Image, &response.Map.IsCoop, &response.Map.IsDisabled, &response.Map.Difficulty) if err != nil { c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) return diff --git a/backend/models/models.go b/backend/models/models.go index a114f2c..3c38131 100644 --- a/backend/models/models.go +++ b/backend/models/models.go @@ -47,6 +47,7 @@ type Map struct { Image string `json:"image"` IsCoop bool `json:"is_coop"` IsDisabled bool `json:"is_disabled"` + Difficulty int `json:"difficulty"` } type MapShort struct { -- cgit v1.2.3 From ae32e264b668a46e138a64a2d8a8d4c662e990ea Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Wed, 19 Mar 2025 15:57:50 +0000 Subject: fix/frontend: broken summary difficulty v2 (#272) --- frontend/src/components/Summary.tsx | 17 ++++++++++++++++- frontend/src/types/Map.ts | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/Summary.tsx b/frontend/src/components/Summary.tsx index 1df6a78..7da2f1e 100644 --- a/frontend/src/components/Summary.tsx +++ b/frontend/src/components/Summary.tsx @@ -139,6 +139,21 @@ const Summary: React.FC = ({ selectedRun, setSelectedRun, data })
+ Difficulty + {data.map.difficulty <= 2 && (Very easy)} + {data.map.difficulty > 2 && data.map.difficulty <= 4 && (Easy)} + {data.map.difficulty > 4 && data.map.difficulty <= 6 && (Medium)} + {data.map.difficulty > 6 && data.map.difficulty <= 8 && (Hard)} + {data.map.difficulty > 8 && data.map.difficulty <= 10 && (Very hard)} +
+ {data.map.difficulty <= 2 ? (
) : (
)} + {data.map.difficulty > 2 && data.map.difficulty <= 4 ? (
) : (
)} + {data.map.difficulty > 4 && data.map.difficulty <= 6 ? (
) : (
)} + {data.map.difficulty > 6 && data.map.difficulty <= 8 ? (
) : (
)} + {data.map.difficulty > 8 && data.map.difficulty <= 10 ? (
) : (
)} +
+
+ {/*
Difficulty {data.summary.routes[selectedRun].rating <= 2 && (Very easy)} {data.summary.routes[selectedRun].rating > 2 && data.summary.routes[selectedRun].rating <= 4 && (Easy)} @@ -152,7 +167,7 @@ const Summary: React.FC = ({ selectedRun, setSelectedRun, data }) {data.summary.routes[selectedRun].rating > 6 && data.summary.routes[selectedRun].rating <= 8 ? (
) : (
)} {data.summary.routes[selectedRun].rating > 8 && data.summary.routes[selectedRun].rating <= 10 ? (
) : (
)}
- + */}
Completion Count
{data.summary.routes[selectedRun].completion_count}
diff --git a/frontend/src/types/Map.ts b/frontend/src/types/Map.ts index 89c66d5..4f8eabf 100644 --- a/frontend/src/types/Map.ts +++ b/frontend/src/types/Map.ts @@ -79,6 +79,7 @@ interface MapSummaryMap { map_name: string; is_coop: boolean; is_disabled: boolean; + difficulty: number; }; interface MapSummaryDetails { -- cgit v1.2.3 From a970a15569d19f0c6a0366e990067c7b6ab80e0f Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Thu, 20 Mar 2025 11:42:39 +0300 Subject: fix/rankings: remove debug return --- rankings/fetch.go | 1 - 1 file changed, 1 deletion(-) diff --git a/rankings/fetch.go b/rankings/fetch.go index 76a3526..7e9a449 100644 --- a/rankings/fetch.go +++ b/rankings/fetch.go @@ -22,7 +22,6 @@ func fetchLeaderboard(records []Record, overrides map[SteamID]map[string]int, us log.Println("fetching leaderboard") players := map[SteamID]*Player{} // first init players map with records from portal gun and doors - return nil, errLb fetchAnotherPage := true start := 0 end := 5000 -- cgit v1.2.3 From 7746337964fd50b2eac170333efa05e7a5676a1c Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Thu, 24 Jul 2025 14:09:11 +0300 Subject: feat/backend: add newrelic integration (#274) --- backend/.env.example | 1 + backend/go.mod | 4 ++++ backend/go.sum | 9 +++++++++ backend/main.go | 11 +++++++++++ 4 files changed, 25 insertions(+) diff --git a/backend/.env.example b/backend/.env.example index b0a7101..0318aa1 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -12,3 +12,4 @@ B2_KEY_ID=123456789ABCDEF B2_API_KEY=123456789ABCDEF B2_DOWNLOAD_URL=https://lphub.s3.eu-central-001.backblazeb2.com/ LOCAL_DEMOS_PATH=/path/to/demos/ +NEWRELIC_LICENSE_KEY=abcdef123456789 diff --git a/backend/go.mod b/backend/go.mod index e6f87c4..f9fe0db 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -32,9 +32,13 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/cpuid/v2 v2.2.8 // indirect github.com/mailru/easyjson v0.7.7 // indirect + github.com/newrelic/go-agent/v3 v3.40.1 // indirect + github.com/newrelic/go-agent/v3/integrations/nrgin v1.4.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect golang.org/x/arch v0.10.0 // indirect golang.org/x/tools v0.25.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/grpc v1.65.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/backend/go.sum b/backend/go.sum index 59301ae..f655023 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -74,6 +74,10 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/newrelic/go-agent/v3 v3.40.1 h1:8nb4R252Fpuc3oySvlHpDwqySqaPWL5nf7ZVEhqtUeA= +github.com/newrelic/go-agent/v3 v3.40.1/go.mod h1:X0TLXDo+ttefTIue1V96Y5seb8H6wqf6uUq4UpPsYj8= +github.com/newrelic/go-agent/v3/integrations/nrgin v1.4.1 h1:a1waTQToxDTKd31LpwpaFHKWPj8Dav/BrzZayBiiAq8= +github.com/newrelic/go-agent/v3/integrations/nrgin v1.4.1/go.mod h1:mEbfsZIxBYIPT7FzboYvE+ed2ft4SCFXoCvleI2v5JQ= github.com/pektezol/bitreader v1.4.3 h1:+WjsD6qOAaI6Q1jOOlEJcnaEso8vPMKRZnnaDnZhTSg= github.com/pektezol/bitreader v1.4.3/go.mod h1:xBQEsQpOf8B5yPrnOTkirZGyVUV6Bqp0ups2RIlTskk= github.com/pektezol/steam_go v1.1.2 h1:fta6SW+La8NfmCtR/Kn73bAmTBvCgUkkLCplsJGzx7g= @@ -150,6 +154,11 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.25.0 h1:oFU9pkj/iJgs+0DT+VMHrx+oBKs/LJMV+Uvg78sl+fE= golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= +google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/backend/main.go b/backend/main.go index a1a4a20..e422359 100644 --- a/backend/main.go +++ b/backend/main.go @@ -11,6 +11,8 @@ import ( "github.com/gin-gonic/gin" "github.com/joho/godotenv" + nrgin "github.com/newrelic/go-agent/v3/integrations/nrgin" + "github.com/newrelic/go-agent/v3/newrelic" ) // @title Least Portals Hub @@ -30,7 +32,16 @@ func main() { if os.Getenv("ENV") == "PROD" { gin.SetMode(gin.ReleaseMode) } + app, err := newrelic.NewApplication( + newrelic.ConfigAppName("lphub"), + newrelic.ConfigLicense(os.Getenv("NEWRELIC_LICENSE_KEY")), + newrelic.ConfigAppLogForwardingEnabled(true), + ) + if err != nil { + log.Fatal("Error instrumenting newrelic") + } router := gin.Default() + router.Use(nrgin.Middleware(app)) database.ConnectDB() api.InitRoutes(router) // for debugging -- cgit v1.2.3