feat: add metrics

This commit is contained in:
Arvid Norlin
2024-08-22 16:50:55 +02:00
parent fac0d7acdc
commit 0b2936159f
9 changed files with 507 additions and 11 deletions

View File

@@ -20,9 +20,9 @@ import tempFilterData from "./tempFilterData.json"
import tempRatesData from "./tempRatesData.json"
const meter = metrics.getMeter("trpc.hotels")
let getHotelCounter = meter.createCounter("trpc.hotel.get")
let getHotelSuccessCounter = meter.createCounter("trpc.hotel.get-success")
let getHotelFailCounter = meter.createCounter("trpc.hotel.get-fail")
const getHotelCounter = meter.createCounter("trpc.hotel.get")
const getHotelSuccessCounter = meter.createCounter("trpc.hotel.get-success")
const getHotelFailCounter = meter.createCounter("trpc.hotel.get-fail")
export const hotelQueryRouter = router({
getHotel: serviceProcedure
@@ -40,6 +40,7 @@ export const hotelQueryRouter = router({
params.include = include.join(",")
}
getHotelCounter.add(1, { hotelId, language, include })
console.info(
"api.hotels.hotel start",
JSON.stringify({
@@ -59,6 +60,17 @@ export const hotelQueryRouter = router({
if (!apiResponse.ok) {
const text = await apiResponse.text()
getHotelFailCounter.add(1, {
hotelId,
language,
include,
error_type: "http_error",
error: JSON.stringify({
status: apiResponse.status,
statusText: apiResponse.statusText,
text,
}),
})
console.error(
"api.hotels.hotel error",
JSON.stringify({
@@ -76,6 +88,14 @@ export const hotelQueryRouter = router({
const validatedHotelData = getHotelDataSchema.safeParse(apiJson)
if (!validatedHotelData.success) {
getHotelFailCounter.add(1, {
hotelId,
language,
include,
error_type: "validation_error",
error: JSON.stringify(validatedHotelData.error),
})
console.error(
"api.hotels.hotel validation error",
JSON.stringify({
@@ -94,6 +114,18 @@ export const hotelQueryRouter = router({
.map((roomCategory) => {
const validatedRoom = roomSchema.safeParse(roomCategory)
if (!validatedRoom.success) {
getHotelFailCounter.add(1, {
hotelId,
language,
include,
error_type: "validation_error",
error: JSON.stringify(
validatedRoom.error.issues.map(({ code, message }) => ({
code,
message,
}))
),
})
console.error(
"api.hotels.hotel validation error",
JSON.stringify({
@@ -103,6 +135,7 @@ export const hotelQueryRouter = router({
)
throw badRequestError()
}
return validatedRoom.data
})
: []
@@ -129,6 +162,7 @@ export const hotelQueryRouter = router({
// const apiLang = toApiLang(language)
// params.set("hotelId", hotelId.toString())
// params.set("language", apiLang)
console.info("api.hotels.rates start", JSON.stringify({}))
const validatedHotelData = getRatesSchema.safeParse(tempRatesData)