Merged in chore/redirect-counter (pull request #3302)

Counter name is now searchable and add counter for redirects

* refactor: createCounter() only takes one argument, the name of the counter. Makes it easier to search for

* feat: add counter when we do a redirect from redirect-service


Approved-by: Linus Flood
This commit is contained in:
Joakim Jäderberg
2025-12-08 10:24:05 +00:00
parent edca33c49f
commit 8b94540d19
61 changed files with 146 additions and 236 deletions

View File

@@ -14,7 +14,7 @@ import type { JWT } from "next-auth/jwt"
const authLogger = createLogger("auth") const authLogger = createLogger("auth")
export const PRE_REFRESH_TIME_IN_SECONDS = 180 export const PRE_REFRESH_TIME_IN_SECONDS = 180
export const signInCounter = createCounter("auth", "signIn") export const signInCounter = createCounter("auth.signIn")
async function refreshTokens(token: JWT) { async function refreshTokens(token: JWT) {
try { try {

View File

@@ -35,7 +35,7 @@ async function linkEmployeeToUser(
employeeId: string, employeeId: string,
accessToken: string accessToken: string
): Promise<LinkEmployeeResult> { ): Promise<LinkEmployeeResult> {
const apiCallCounter = createCounter("dtmc.api", "team_member_card") const apiCallCounter = createCounter("dtmc.api.team_member_card")
const metricsApiCall = apiCallCounter.init({ employee_id: employeeId }) const metricsApiCall = apiCallCounter.init({ employee_id: employeeId })
metricsApiCall.start() metricsApiCall.start()
@@ -121,7 +121,7 @@ async function linkEmployeeToUser(
* here we can check both sessions, the Scandic Friends one and the Azure one. * here we can check both sessions, the Scandic Friends one and the Azure one.
*/ */
export async function GET(request: NextRequest) { export async function GET(request: NextRequest) {
const dtmcLinkCounter = createCounter("dtmc.employee", "link") const dtmcLinkCounter = createCounter("dtmc.employee.link")
const metricsEmployeeLink = dtmcLinkCounter.init() const metricsEmployeeLink = dtmcLinkCounter.init()
metricsEmployeeLink.start() metricsEmployeeLink.start()

View File

@@ -25,7 +25,7 @@ import {
export const dynamic = "force-dynamic" export const dynamic = "force-dynamic"
export async function GET(request: NextRequest) { export async function GET(request: NextRequest) {
const generateSitemapCounter = createCounter("sitemap", "generate") const generateSitemapCounter = createCounter("sitemap.generate")
const metricsGenerateSitemap = generateSitemapCounter.init() const metricsGenerateSitemap = generateSitemapCounter.init()
try { try {
metricsGenerateSitemap.start() metricsGenerateSitemap.start()
@@ -44,7 +44,7 @@ export async function GET(request: NextRequest) {
const responseData = await contentstackSync(syncToken) const responseData = await contentstackSync(syncToken)
const mergedEntries = mergeEntries(currentEntries, responseData.entries) const mergedEntries = mergeEntries(currentEntries, responseData.entries)
const entriesSaveCounter = createCounter("sitemap", "entries.save") const entriesSaveCounter = createCounter("sitemap.entries.save")
const metricsEntriesSave = entriesSaveCounter.init({ const metricsEntriesSave = entriesSaveCounter.init({
entriesCount: mergedEntries.length, entriesCount: mergedEntries.length,
}) })
@@ -59,7 +59,7 @@ export async function GET(request: NextRequest) {
const sitemapData = mapEntriesToSitemapData(mergedEntries, hotelFilters) const sitemapData = mapEntriesToSitemapData(mergedEntries, hotelFilters)
const lastUpdated = dt().utc().format() const lastUpdated = dt().utc().format()
const saveDataCounter = createCounter("sitemap", "data.save") const saveDataCounter = createCounter("sitemap.data.save")
const metricsDataSave = saveDataCounter.init({ const metricsDataSave = saveDataCounter.init({
sitemapEntriesCount: sitemapData.length, sitemapEntriesCount: sitemapData.length,
lastUpdated, lastUpdated,
@@ -70,7 +70,7 @@ export async function GET(request: NextRequest) {
metricsDataSave.success() metricsDataSave.success()
if (syncToken !== responseData.syncToken) { if (syncToken !== responseData.syncToken) {
const syncTokenSaveCounter = createCounter("sitemap", "syncToken.save") const syncTokenSaveCounter = createCounter("sitemap.syncToken.save")
const metricsSyncTokenSave = syncTokenSaveCounter.init({ const metricsSyncTokenSave = syncTokenSaveCounter.init({
syncToken: responseData.syncToken, syncToken: responseData.syncToken,
}) })

View File

@@ -19,7 +19,7 @@ export async function contentstackSync(syncToken: string | null) {
const entries = [] const entries = []
const syncOptions = syncToken ? { sync_token: syncToken } : { init: true } const syncOptions = syncToken ? { sync_token: syncToken } : { init: true }
const entriesSyncCounter = createCounter("sitemap", "entries.sync") const entriesSyncCounter = createCounter("sitemap.entries.sync")
const metricsEntriesSync = entriesSyncCounter.init({ const metricsEntriesSync = entriesSyncCounter.init({
environment, environment,
...syncOptions, ...syncOptions,
@@ -33,8 +33,7 @@ export async function contentstackSync(syncToken: string | null) {
entries.push(...syncResponse.items) entries.push(...syncResponse.items)
const entriesSyncPaginationCounter = createCounter( const entriesSyncPaginationCounter = createCounter(
"sitemap", "sitemap.entries.sync.pagination"
"entries.sync.pagination"
) )
const metricsEntriesSyncPagination = entriesSyncPaginationCounter.init({ const metricsEntriesSyncPagination = entriesSyncPaginationCounter.init({
environment, environment,

View File

@@ -15,7 +15,7 @@ export function mergeEntries(
currentEntries: SyncItem[], currentEntries: SyncItem[],
newEntries: SyncItem[] newEntries: SyncItem[]
) { ) {
const entriesMergeCounter = createCounter("sitemap", "entries.merge") const entriesMergeCounter = createCounter("sitemap.entries.merge")
const metricsEntriesMerge = entriesMergeCounter.init({ const metricsEntriesMerge = entriesMergeCounter.init({
currentEntriesCount: currentEntries.length, currentEntriesCount: currentEntries.length,
newEntriesCount: newEntries.length, newEntriesCount: newEntries.length,
@@ -57,8 +57,7 @@ export function mergeEntries(
export function mapEntriesToHotelFilters(entries: SyncItem[]) { export function mapEntriesToHotelFilters(entries: SyncItem[]) {
const entriesTransformToHotelFiltersCounter = createCounter( const entriesTransformToHotelFiltersCounter = createCounter(
"sitemap", "sitemap.entries.transform.hotelFilters"
"entries.transform.hotelFilters"
) )
const metricsEntriesTransformToHotelFilters = const metricsEntriesTransformToHotelFilters =
entriesTransformToHotelFiltersCounter.init({ entriesTransformToHotelFiltersCounter.init({
@@ -93,11 +92,10 @@ export function mapEntriesToSitemapData(
entries: SyncItem[], entries: SyncItem[],
hotelFilters: HotelFilterEntries hotelFilters: HotelFilterEntries
) { ) {
const entriesTransformCounter = createCounter("sitemap", "entries.transform") const entriesTransformCounter = createCounter("sitemap.entries.transform")
const metricsEntriesTransform = entriesTransformCounter.init({ const metricsEntriesTransform = entriesTransformCounter.init({
entriesCount: entries.length, entriesCount: entries.length,
}) })
metricsEntriesTransform.start() metricsEntriesTransform.start()
const filteredEntries = filterEntriesToSitemapEntries(entries) const filteredEntries = filterEntriesToSitemapEntries(entries)

View File

@@ -10,7 +10,7 @@ import { env } from "@/env/server"
import type { JWT } from "next-auth/jwt" import type { JWT } from "next-auth/jwt"
import type { OIDCConfig } from "next-auth/providers" import type { OIDCConfig } from "next-auth/providers"
export const signInCounter = createCounter("auth", "signIn") export const signInCounter = createCounter("auth.signIn")
function getLoginType(user: User) { function getLoginType(user: User) {
if (user?.login_with.includes("@")) { if (user?.login_with.includes("@")) {

View File

@@ -2,6 +2,7 @@ import { type NextMiddleware, NextResponse } from "next/server"
import { getCacheClient } from "@scandic-hotels/common/dataCache" import { getCacheClient } from "@scandic-hotels/common/dataCache"
import { logger } from "@scandic-hotels/common/logger" import { logger } from "@scandic-hotels/common/logger"
import { createCounter } from "@scandic-hotels/common/telemetry"
import { findLang } from "@scandic-hotels/common/utils/languages" import { findLang } from "@scandic-hotels/common/utils/languages"
import { notFound } from "@/server/errors/next" import { notFound } from "@/server/errors/next"
@@ -45,7 +46,7 @@ async function fetchAndCacheRedirect(lang: Lang, pathname: string) {
"1d" "1d"
) )
} }
const redirectCounter = createCounter("middleware.redirect")
export const middleware: NextMiddleware = async (request) => { export const middleware: NextMiddleware = async (request) => {
const lang = findLang(request.nextUrl.pathname)! const lang = findLang(request.nextUrl.pathname)!
const headers = getDefaultRequestHeaders(request) const headers = getDefaultRequestHeaders(request)
@@ -56,6 +57,14 @@ export const middleware: NextMiddleware = async (request) => {
) )
if (matchedRedirect) { if (matchedRedirect) {
redirectCounter
.init({
lang,
pathname: request.nextUrl.pathname,
newPathname: matchedRedirect,
})
.success()
const newUrl = new URL(matchedRedirect, getPublicNextURL(request)) const newUrl = new URL(matchedRedirect, getPublicNextURL(request))
headers.set("Cache-control", "public, max-age=14400") // 4 hours headers.set("Cache-control", "public, max-age=14400") // 4 hours
return NextResponse.redirect(newUrl, { return NextResponse.redirect(newUrl, {

View File

@@ -63,9 +63,8 @@ export function sanitize(data: any): Record<string, string | number | boolean> {
* *
* See the codebase for reference usage. * See the codebase for reference usage.
*/ */
export function createCounter(meterName: string, counterName: string) {
const fullName = `${meterName}.${counterName}`
export function createCounter(meterName: string) {
return { return {
/** /**
* Initializes the counter event handlers with a set of base attributes. * Initializes the counter event handlers with a set of base attributes.
@@ -82,7 +81,7 @@ export function createCounter(meterName: string, counterName: string) {
* @param attrs - Additional attributes specific to this 'start' event. Defaults to an empty object. * @param attrs - Additional attributes specific to this 'start' event. Defaults to an empty object.
*/ */
start(attrs: object | undefined = undefined) { start(attrs: object | undefined = undefined) {
logger.debug(`[${fullName}] start`, attrs) logger.debug(`[${meterName}] start`, attrs)
}, },
/** /**
@@ -93,10 +92,10 @@ export function createCounter(meterName: string, counterName: string) {
success(attrs: object = {}) { success(attrs: object = {}) {
const mergedAttrs = deepmerge.all<object>([baseAttrs, attrs]) const mergedAttrs = deepmerge.all<object>([baseAttrs, attrs])
const finalAttrs = sanitize(mergedAttrs) const finalAttrs = sanitize(mergedAttrs)
Sentry.metrics.count(fullName, 1, { Sentry.metrics.count(meterName, 1, {
attributes: { ...finalAttrs, status: "success" }, attributes: { ...finalAttrs, status: "success" },
}) })
logger.debug(`[${fullName}] success`, mergedAttrs) logger.debug(`[${meterName}] success`, mergedAttrs)
}, },
/** /**
@@ -119,10 +118,10 @@ export function createCounter(meterName: string, counterName: string) {
]) ])
const finalAttrs = sanitize(mergedAttrs) const finalAttrs = sanitize(mergedAttrs)
Sentry.metrics.count(fullName, 1, { Sentry.metrics.count(meterName, 1, {
attributes: { ...finalAttrs, status: "error" }, attributes: { ...finalAttrs, status: "error" },
}) })
logger.error(`[${fullName}] dataError: ${errorMsg}`, mergedAttrs) logger.error(`[${meterName}] dataError: ${errorMsg}`, mergedAttrs)
}, },
/** /**
@@ -143,10 +142,10 @@ export function createCounter(meterName: string, counterName: string) {
]) ])
const finalAttrs = sanitize(mergedAttrs) const finalAttrs = sanitize(mergedAttrs)
Sentry.metrics.count(fullName, 1, { Sentry.metrics.count(meterName, 1, {
attributes: { ...finalAttrs, status: "error" }, attributes: { ...finalAttrs, status: "error" },
}) })
logger.error(`[${fullName}] noDataError:`, mergedAttrs) logger.error(`[${meterName}] noDataError:`, mergedAttrs)
}, },
/** /**
@@ -165,10 +164,10 @@ export function createCounter(meterName: string, counterName: string) {
]) ])
const finalAttrs = sanitize(mergedAttrs) const finalAttrs = sanitize(mergedAttrs)
Sentry.metrics.count(fullName, 1, { Sentry.metrics.count(meterName, 1, {
attributes: { ...finalAttrs, status: "error" }, attributes: { ...finalAttrs, status: "error" },
}) })
logger.error(`[${fullName}] validationError`, mergedAttrs) logger.error(`[${meterName}] validationError`, mergedAttrs)
}, },
/** /**
@@ -196,11 +195,11 @@ export function createCounter(meterName: string, counterName: string) {
]) ])
const finalAttrs = sanitize(mergedAttrs) const finalAttrs = sanitize(mergedAttrs)
Sentry.metrics.count(fullName, 1, { Sentry.metrics.count(meterName, 1, {
attributes: { ...finalAttrs, status: "error" }, attributes: { ...finalAttrs, status: "error" },
}) })
logger.error( logger.error(
`[${fullName}] httpError ${res.status}, ${res.statusText}:`, `[${meterName}] httpError ${res.status}, ${res.statusText}:`,
mergedAttrs mergedAttrs
) )
}, },
@@ -231,10 +230,10 @@ export function createCounter(meterName: string, counterName: string) {
]) ])
const finalAttrs = sanitize(mergedAttrs) const finalAttrs = sanitize(mergedAttrs)
Sentry.metrics.count(fullName, 1, { Sentry.metrics.count(meterName, 1, {
attributes: { ...finalAttrs, status: "error" }, attributes: { ...finalAttrs, status: "error" },
}) })
logger.error(`[${fullName}] fail message: ${msg}`, mergedAttrs) logger.error(`[${meterName}] fail message: ${msg}`, mergedAttrs)
}, },
} }
}, },

View File

@@ -57,8 +57,7 @@ async function getJwt(scopes: string[]) {
async function fetchServiceToken(scopes: string[]) { async function fetchServiceToken(scopes: string[]) {
const fetchServiceTokenCounter = createCounter( const fetchServiceTokenCounter = createCounter(
"tokenManager", "tokenManager.fetchServiceToken"
"fetchServiceToken"
) )
const metricsFetchServiceToken = fetchServiceTokenCounter.init({ const metricsFetchServiceToken = fetchServiceTokenCounter.init({
scopes, scopes,

View File

@@ -22,7 +22,7 @@ export const create = safeProtectedServiceProcedure
const { language, ...inputWithoutLang } = input const { language, ...inputWithoutLang } = input
const { rooms, ...loggableInput } = inputWithoutLang const { rooms, ...loggableInput } = inputWithoutLang
const createBookingCounter = createCounter("trpc.booking", "create") const createBookingCounter = createCounter("trpc.booking.create")
const metricsCreateBooking = createBookingCounter.init({ const metricsCreateBooking = createBookingCounter.init({
language, language,

View File

@@ -37,7 +37,7 @@ export const bookingMutationRouter = router({
.mutation(async function ({ ctx }) { .mutation(async function ({ ctx }) {
const { confirmationNumber } = ctx const { confirmationNumber } = ctx
const priceChangeCounter = createCounter("trpc.booking", "price-change") const priceChangeCounter = createCounter("trpc.booking.price-change")
const metricsPriceChange = priceChangeCounter.init({ confirmationNumber }) const metricsPriceChange = priceChangeCounter.init({ confirmationNumber })
metricsPriceChange.start() metricsPriceChange.start()
@@ -127,7 +127,7 @@ export const bookingMutationRouter = router({
const { confirmationNumber } = ctx const { confirmationNumber } = ctx
const { language, refId, ...body } = input const { language, refId, ...body } = input
const addPackageCounter = createCounter("trpc.booking", "package.add") const addPackageCounter = createCounter("trpc.booking.package.add")
const metricsAddPackage = addPackageCounter.init({ const metricsAddPackage = addPackageCounter.init({
confirmationNumber, confirmationNumber,
language, language,
@@ -181,7 +181,7 @@ export const bookingMutationRouter = router({
const { confirmationNumber } = ctx const { confirmationNumber } = ctx
const { language, refId, ...body } = input const { language, refId, ...body } = input
const guaranteeBookingCounter = createCounter("trpc.booking", "guarantee") const guaranteeBookingCounter = createCounter("trpc.booking.guarantee")
const metricsGuaranteeBooking = guaranteeBookingCounter.init({ const metricsGuaranteeBooking = guaranteeBookingCounter.init({
confirmationNumber, confirmationNumber,
language, language,
@@ -235,7 +235,7 @@ export const bookingMutationRouter = router({
const { confirmationNumber } = ctx const { confirmationNumber } = ctx
const { language, refId, ...body } = input const { language, refId, ...body } = input
const updateBookingCounter = createCounter("trpc.booking", "update") const updateBookingCounter = createCounter("trpc.booking.update")
const metricsUpdateBooking = updateBookingCounter.init({ const metricsUpdateBooking = updateBookingCounter.init({
confirmationNumber, confirmationNumber,
language, language,
@@ -287,10 +287,7 @@ export const bookingMutationRouter = router({
const { confirmationNumber } = ctx const { confirmationNumber } = ctx
const { codes, language } = input const { codes, language } = input
const removePackageCounter = createCounter( const removePackageCounter = createCounter("trpc.booking.package.remove")
"trpc.booking",
"package.remove"
)
const metricsRemovePackage = removePackageCounter.init({ const metricsRemovePackage = removePackageCounter.init({
confirmationNumber, confirmationNumber,
codes, codes,
@@ -337,8 +334,7 @@ export const bookingMutationRouter = router({
const { confirmationNumber } = ctx const { confirmationNumber } = ctx
const resendConfirmationCounter = createCounter( const resendConfirmationCounter = createCounter(
"trpc.booking", "trpc.booking.confirmation.resend"
"confirmation.resend"
) )
const metricsResendConfirmation = resendConfirmationCounter.init({ const metricsResendConfirmation = resendConfirmationCounter.init({
confirmationNumber, confirmationNumber,

View File

@@ -43,7 +43,7 @@ export const bookingQueryRouter = router({
.query(async function ({ ctx }) { .query(async function ({ ctx }) {
const { confirmationNumber, lang, token, serviceToken } = ctx const { confirmationNumber, lang, token, serviceToken } = ctx
const getBookingCounter = createCounter("trpc.booking", "get") const getBookingCounter = createCounter("trpc.booking.get")
const metricsGetBooking = getBookingCounter.init({ confirmationNumber }) const metricsGetBooking = getBookingCounter.init({ confirmationNumber })
metricsGetBooking.start() metricsGetBooking.start()
@@ -110,7 +110,7 @@ export const bookingQueryRouter = router({
input: { confirmationNumber, lastName, firstName, email }, input: { confirmationNumber, lastName, firstName, email },
}) { }) {
const { lang, token, serviceToken } = ctx const { lang, token, serviceToken } = ctx
const findBookingCounter = createCounter("trpc.booking", "findBooking") const findBookingCounter = createCounter("trpc.booking.findBooking")
const metricsFindBooking = findBookingCounter.init({ confirmationNumber }) const metricsFindBooking = findBookingCounter.init({ confirmationNumber })
metricsFindBooking.start() metricsFindBooking.start()
@@ -180,8 +180,7 @@ export const bookingQueryRouter = router({
const { confirmationNumber, lang, token } = ctx const { confirmationNumber, lang, token } = ctx
const getLinkedReservationsCounter = createCounter( const getLinkedReservationsCounter = createCounter(
"trpc.booking", "trpc.booking.linkedReservations"
"linkedReservations"
) )
const metricsGetLinkedReservations = getLinkedReservationsCounter.init({ const metricsGetLinkedReservations = getLinkedReservationsCounter.init({
confirmationNumber, confirmationNumber,
@@ -230,7 +229,7 @@ export const bookingQueryRouter = router({
const { confirmationNumber } = ctx const { confirmationNumber } = ctx
const language = toApiLang(lang) const language = toApiLang(lang)
const getBookingStatusCounter = createCounter("trpc.booking", "status") const getBookingStatusCounter = createCounter("trpc.booking.status")
const metricsGetBookingStatus = getBookingStatusCounter.init({ const metricsGetBookingStatus = getBookingStatusCounter.init({
confirmationNumber, confirmationNumber,
}) })

View File

@@ -13,7 +13,7 @@ export async function getBooking(
lang: Lang, lang: Lang,
token: string token: string
) { ) {
const getBookingCounter = createCounter("booking", "get") const getBookingCounter = createCounter("booking.get")
const metricsGetBooking = getBookingCounter.init({ confirmationNumber }) const metricsGetBooking = getBookingCounter.init({ confirmationNumber })
metricsGetBooking.start() metricsGetBooking.start()
@@ -60,7 +60,7 @@ export async function findBooking(
firstName?: string, firstName?: string,
email?: string email?: string
) { ) {
const findBookingCounter = createCounter("booking", "find") const findBookingCounter = createCounter("booking.find")
const metricsGetBooking = findBookingCounter.init({ const metricsGetBooking = findBookingCounter.init({
confirmationNumber, confirmationNumber,
lastName, lastName,
@@ -114,7 +114,7 @@ export async function cancelBooking(
language: Lang, language: Lang,
token: string token: string
) { ) {
const cancelBookingCounter = createCounter("booking", "cancel") const cancelBookingCounter = createCounter("booking.cancel")
const metricsCancelBooking = cancelBookingCounter.init({ const metricsCancelBooking = cancelBookingCounter.init({
confirmationNumber, confirmationNumber,
language, language,

View File

@@ -25,8 +25,7 @@ export const usePointsModalQueryRouter = router({
get: contentstackBaseProcedure.query(async ({ ctx }) => { get: contentstackBaseProcedure.query(async ({ ctx }) => {
const { lang, uid } = ctx const { lang, uid } = ctx
const getRefsCounter = createCounter( const getRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.usePointsModal.get.refs"
"usePointsModal.get.refs"
) )
const metricsRefs = getRefsCounter.init({ const metricsRefs = getRefsCounter.init({
lang, lang,
@@ -60,7 +59,7 @@ export const usePointsModalQueryRouter = router({
metricsRefs.success() metricsRefs.success()
const getCounter = createCounter("trpc.contentstack", "usePointsModal.get") const getCounter = createCounter("trpc.contentstack.usePointsModal.get")
const metrics = getCounter.init({ const metrics = getCounter.init({
lang, lang,

View File

@@ -27,8 +27,7 @@ export const accountPageQueryRouter = router({
const { lang, uid } = ctx const { lang, uid } = ctx
const getAccountPageRefsCounter = createCounter( const getAccountPageRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.accountPage.get.refs"
"accountPage.get.refs"
) )
const metricsRefs = getAccountPageRefsCounter.init({ lang, uid }) const metricsRefs = getAccountPageRefsCounter.init({ lang, uid })
metricsRefs.start() metricsRefs.start()
@@ -69,8 +68,7 @@ export const accountPageQueryRouter = router({
metricsRefs.success() metricsRefs.success()
const getAccountPageCounter = createCounter( const getAccountPageCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.accountPage.get"
"accountPage.get"
) )
const metrics = getAccountPageCounter.init({ lang, uid }) const metrics = getAccountPageCounter.init({ lang, uid })
metrics.start() metrics.start()

View File

@@ -60,8 +60,7 @@ import type {
const getContactConfig = cache(async (lang: Lang) => { const getContactConfig = cache(async (lang: Lang) => {
const getContactConfigCounter = createCounter( const getContactConfigCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.contactConfig.get"
"contactConfig.get"
) )
const metricsGetContactConfig = getContactConfigCounter.init({ lang }) const metricsGetContactConfig = getContactConfigCounter.init({ lang })
@@ -104,8 +103,7 @@ export const baseQueryRouter = router({
const { lang } = ctx const { lang } = ctx
const getHeaderRefsCounter = createCounter( const getHeaderRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.header.get.refs"
"header.get.refs"
) )
const metricsGetHeaderRefs = getHeaderRefsCounter.init({ lang }) const metricsGetHeaderRefs = getHeaderRefsCounter.init({ lang })
@@ -139,7 +137,7 @@ export const baseQueryRouter = router({
const connections = getConnections(validatedHeaderRefs.data) const connections = getConnections(validatedHeaderRefs.data)
const getHeaderCounter = createCounter("trpc.contentstack", "header.get") const getHeaderCounter = createCounter("trpc.contentstack.header.get")
const metricsGetHeader = getHeaderCounter.init({ lang }) const metricsGetHeader = getHeaderCounter.init({ lang })
metricsGetHeader.start() metricsGetHeader.start()
@@ -178,8 +176,7 @@ export const baseQueryRouter = router({
const { lang } = ctx const { lang } = ctx
const getFooterRefsCounter = createCounter( const getFooterRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.footer.get.refs"
"footer.get.refs"
) )
const metricsGetFooterRefs = getFooterRefsCounter.init({ lang }) const metricsGetFooterRefs = getFooterRefsCounter.init({ lang })
@@ -216,7 +213,7 @@ export const baseQueryRouter = router({
const connections = getFooterConnections(validatedFooterRefs.data) const connections = getFooterConnections(validatedFooterRefs.data)
const footerUID = responseRef.data.all_footer.items[0].system.uid const footerUID = responseRef.data.all_footer.items[0].system.uid
const getFooterCounter = createCounter("trpc.contentstack", "footer.get") const getFooterCounter = createCounter("trpc.contentstack.footer.get")
const metricsGetFooter = getFooterCounter.init({ lang }) const metricsGetFooter = getFooterCounter.init({ lang })
metricsGetFooter.start() metricsGetFooter.start()
@@ -263,8 +260,7 @@ export const baseQueryRouter = router({
const lang = input.lang ?? ctx.lang const lang = input.lang ?? ctx.lang
const getSitewideCampaignBannerRefsCounter = createCounter( const getSitewideCampaignBannerRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.sitewideCampaignBanner.get.refs"
"sitewideCampaignBanner.get.refs"
) )
const metricsGetSitewideCampaignBannerRefs = const metricsGetSitewideCampaignBannerRefs =
getSitewideCampaignBannerRefsCounter.init({ getSitewideCampaignBannerRefsCounter.init({
@@ -307,8 +303,7 @@ export const baseQueryRouter = router({
metricsGetSitewideCampaignBannerRefs.success() metricsGetSitewideCampaignBannerRefs.success()
const getSitewideCampaignBannerCounter = createCounter( const getSitewideCampaignBannerCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.sitewideCampaignBanner.get"
"sitewideCampaignBanner.get"
) )
const metricsGetSitewideCampaignBanner = const metricsGetSitewideCampaignBanner =
getSitewideCampaignBannerCounter.init({ getSitewideCampaignBannerCounter.init({
@@ -353,8 +348,7 @@ export const baseQueryRouter = router({
const lang = input.lang ?? ctx.lang const lang = input.lang ?? ctx.lang
const getSiteConfigRefsCounter = createCounter( const getSiteConfigRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.siteConfig.get.refs"
"siteConfig.get.refs"
) )
const metricsGetSiteConfigRefs = getSiteConfigRefsCounter.init({ lang }) const metricsGetSiteConfigRefs = getSiteConfigRefsCounter.init({ lang })
@@ -397,8 +391,7 @@ export const baseQueryRouter = router({
metricsGetSiteConfigRefs.success() metricsGetSiteConfigRefs.success()
const getSiteConfigCounter = createCounter( const getSiteConfigCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.siteConfig.get"
"siteConfig.get"
) )
const metricsGetSiteConfig = getSiteConfigCounter.init({ lang }) const metricsGetSiteConfig = getSiteConfigCounter.init({ lang })

View File

@@ -74,8 +74,7 @@ const getBreadcrumbs = cache(async function fetchMemoizedBreadcrumbs<T>(
{ uid, lang }: { uid: string; lang: Lang } { uid, lang }: { uid: string; lang: Lang }
) { ) {
const getBreadcrumbsRefsCounter = createCounter( const getBreadcrumbsRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.breadcrumbs.get.refs"
"breadcrumbs.get.refs"
) )
const metricsGetBreadcrumbsRefs = getBreadcrumbsRefsCounter.init({ const metricsGetBreadcrumbsRefs = getBreadcrumbsRefsCounter.init({
lang, lang,
@@ -107,8 +106,7 @@ const getBreadcrumbs = cache(async function fetchMemoizedBreadcrumbs<T>(
const tags = getTags(validatedRefsData.data, lang) const tags = getTags(validatedRefsData.data, lang)
const getBreadcrumbsCounter = createCounter( const getBreadcrumbsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.breadcrumbs.get"
"breadcrumbs.get"
) )
const metricsGetBreadcrumbs = getBreadcrumbsCounter.init({ const metricsGetBreadcrumbs = getBreadcrumbsCounter.init({
lang, lang,

View File

@@ -26,8 +26,7 @@ export const campaignOverviewPageQueryRouter = router({
const { lang, uid } = ctx const { lang, uid } = ctx
const getCampaignOverviewPageRefsCounter = createCounter( const getCampaignOverviewPageRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.campaignOverviewPage.get.refs"
"campaignOverviewPage.get.refs"
) )
const metricsGetCampaignOverviewPageRefs = const metricsGetCampaignOverviewPageRefs =
getCampaignOverviewPageRefsCounter.init({ getCampaignOverviewPageRefsCounter.init({
@@ -67,8 +66,7 @@ export const campaignOverviewPageQueryRouter = router({
const tags = generatePageTags(validatedRefsData.data, lang) const tags = generatePageTags(validatedRefsData.data, lang)
const getCampaignOverviewPageCounter = createCounter( const getCampaignOverviewPageCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.campaignOverviewPage.get"
"campaignOverviewPage.get"
) )
const metricsGetCampaignOverviewPage = getCampaignOverviewPageCounter.init({ const metricsGetCampaignOverviewPage = getCampaignOverviewPageCounter.init({
lang, lang,

View File

@@ -23,8 +23,7 @@ export const campaignPageQueryRouter = router({
const { lang, uid } = ctx const { lang, uid } = ctx
const getCampaignPageRefsCounter = createCounter( const getCampaignPageRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.campaignPage.get.refs"
"campaignPage.get.refs"
) )
const metricsGetCampaignPageRefs = getCampaignPageRefsCounter.init({ const metricsGetCampaignPageRefs = getCampaignPageRefsCounter.init({
lang, lang,
@@ -60,8 +59,7 @@ export const campaignPageQueryRouter = router({
const tags = generatePageTags(validatedRefsData.data, lang) const tags = generatePageTags(validatedRefsData.data, lang)
const getCampaignPageCounter = createCounter( const getCampaignPageCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.campaignPage.get"
"campaignPage.get"
) )
const metricsGetCampaignPage = getCampaignPageCounter.init({ const metricsGetCampaignPage = getCampaignPageCounter.init({
lang, lang,

View File

@@ -106,8 +106,7 @@ export async function getCampaignPagesByHotelPageUid(
) { ) {
const today = dt().format("YYYY-MM-DD") const today = dt().format("YYYY-MM-DD")
const getCampaignPagesByHotelUidRefsCounter = createCounter( const getCampaignPagesByHotelUidRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.campaignPage.byHotelUid.get.refs"
"campaignPage.byHotelUid.get.refs"
) )
const metricsGetCampaignPagesByHotelUidRefs = const metricsGetCampaignPagesByHotelUidRefs =
getCampaignPagesByHotelUidRefsCounter.init({ getCampaignPagesByHotelUidRefsCounter.init({
@@ -156,8 +155,7 @@ export async function getCampaignPagesByHotelPageUid(
const tags = generateTagsFromSystem(lang, validatedRefsData.data) const tags = generateTagsFromSystem(lang, validatedRefsData.data)
const getCampaignPagesByHotelUidCounter = createCounter( const getCampaignPagesByHotelUidCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.campaignPage.byHotelUid.get"
"campaignPage.byHotelUid.get"
) )
const metricsGetCampaignPagesByHotelUid = const metricsGetCampaignPagesByHotelUid =
getCampaignPagesByHotelUidCounter.init({ getCampaignPagesByHotelUidCounter.init({

View File

@@ -31,8 +31,7 @@ export const collectionPageQueryRouter = router({
const tags = generatePageTags(collectionPageRefs, lang) const tags = generatePageTags(collectionPageRefs, lang)
const getCollectionPageCounter = createCounter( const getCollectionPageCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.collectionPage.get"
"collectionPage.get"
) )
const metricsGetCollectionPage = getCollectionPageCounter.init({ const metricsGetCollectionPage = getCollectionPageCounter.init({
lang, lang,

View File

@@ -21,8 +21,7 @@ import type { System } from "../schemas/system"
export async function fetchCollectionPageRefs(lang: Lang, uid: string) { export async function fetchCollectionPageRefs(lang: Lang, uid: string) {
const getCollectionPageRefsCounter = createCounter( const getCollectionPageRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.collectionPage.get.refs"
"collectionPage.get.refs"
) )
const metricsGetCollectionPageRefs = getCollectionPageRefsCounter.init({ const metricsGetCollectionPageRefs = getCollectionPageRefsCounter.init({
lang, lang,
@@ -60,8 +59,7 @@ export function validateCollectionPageRefs(
uid: string uid: string
) { ) {
const getCollectionPageRefsCounter = createCounter( const getCollectionPageRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.collectionPage.get.refs"
"collectionPage.get.refs"
) )
const metricsGetCollectionPageRefs = getCollectionPageRefsCounter.init({ const metricsGetCollectionPageRefs = getCollectionPageRefsCounter.init({
lang, lang,

View File

@@ -27,8 +27,7 @@ export const contentPageQueryRouter = router({
const tags = generatePageTags(contentPageRefs, lang) const tags = generatePageTags(contentPageRefs, lang)
const getContentPageCounter = createCounter( const getContentPageCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.contentPage.get"
"contentPage.get"
) )
const metricsGetContentPage = getContentPageCounter.init({ const metricsGetContentPage = getContentPageCounter.init({
lang, lang,

View File

@@ -24,8 +24,7 @@ import type { System } from "../schemas/system"
export async function fetchContentPageRefs(lang: Lang, uid: string) { export async function fetchContentPageRefs(lang: Lang, uid: string) {
const getContentPageRefsCounter = createCounter( const getContentPageRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.contentPage.get.refs"
"contentPage.get.refs"
) )
const metricsGetContentPageRefs = getContentPageRefsCounter.init({ const metricsGetContentPageRefs = getContentPageRefsCounter.init({
lang, lang,

View File

@@ -27,8 +27,7 @@ export const destinationCityPageQueryRouter = router({
const { lang, uid, serviceToken } = ctx const { lang, uid, serviceToken } = ctx
const getDestinationCityPageRefsCounter = createCounter( const getDestinationCityPageRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.destinationCityPage.get.refs"
"destinationCityPage.get.refs"
) )
const metricsGetDestinationCityPageRefs = const metricsGetDestinationCityPageRefs =
getDestinationCityPageRefsCounter.init({ lang, uid }) getDestinationCityPageRefsCounter.init({ lang, uid })
@@ -63,8 +62,7 @@ export const destinationCityPageQueryRouter = router({
const tags = generatePageTags(validatedRefsData.data, lang) const tags = generatePageTags(validatedRefsData.data, lang)
const getDestinationCityPageCounter = createCounter( const getDestinationCityPageCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.destinationCityPage.get"
"destinationCityPage.get"
) )
const metricsGetDestinationCityPage = getDestinationCityPageCounter.init({ const metricsGetDestinationCityPage = getDestinationCityPageCounter.init({
lang, lang,

View File

@@ -72,8 +72,7 @@ export function getConnections({
export async function getCityPageCount(lang: Lang) { export async function getCityPageCount(lang: Lang) {
const getCityPageCountCounter = createCounter( const getCityPageCountCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.cityPageCount.get"
"cityPageCount.get"
) )
const metricsGetCityPageCount = getCityPageCountCounter.init({ lang }) const metricsGetCityPageCount = getCityPageCountCounter.init({ lang })
@@ -111,8 +110,7 @@ export async function getCityPageCount(lang: Lang) {
export async function getCityPageUrls(lang: Lang) { export async function getCityPageUrls(lang: Lang) {
const getCityPageUrlsCounter = createCounter( const getCityPageUrlsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.cityPageUrls.get"
"cityPageUrls.get"
) )
const metricsGetCityPageUrls = getCityPageUrlsCounter.init({ lang }) const metricsGetCityPageUrls = getCityPageUrlsCounter.init({ lang })

View File

@@ -31,8 +31,7 @@ export const destinationCountryPageQueryRouter = router({
const { lang, uid } = ctx const { lang, uid } = ctx
const getDestinationCountryPageRefsCounter = createCounter( const getDestinationCountryPageRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.destinationCountryPage.get.refs"
"destinationCountryPage.get.refs"
) )
const metricsGetDestinationCountryPageRefs = const metricsGetDestinationCountryPageRefs =
getDestinationCountryPageRefsCounter.init({ lang, uid }) getDestinationCountryPageRefsCounter.init({ lang, uid })
@@ -69,8 +68,7 @@ export const destinationCountryPageQueryRouter = router({
const tags = generatePageTags(validatedRefsData.data, lang) const tags = generatePageTags(validatedRefsData.data, lang)
const getDestinationCountryPageCounter = createCounter( const getDestinationCountryPageCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.destinationCountryPage.get"
"destinationCountryPage.get"
) )
const metricsGetDestinationCountryPage = const metricsGetDestinationCountryPage =
getDestinationCountryPageCounter.init({ lang, uid }) getDestinationCountryPageCounter.init({ lang, uid })

View File

@@ -74,8 +74,7 @@ export async function getCityListDataByCityIdentifier(
cityIdentifier: string cityIdentifier: string
) { ) {
const getCityListDataCounter = createCounter( const getCityListDataCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.cityListData.get"
"cityListData.get"
) )
const metricsGetCityListData = getCityListDataCounter.init({ const metricsGetCityListData = getCityListDataCounter.init({
lang, lang,
@@ -161,8 +160,7 @@ export async function getCityPages(
export async function getCountryPageUrls(lang: Lang) { export async function getCountryPageUrls(lang: Lang) {
const getCountryPageUrlsCounter = createCounter( const getCountryPageUrlsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.getCountryPageUrls"
"getCountryPageUrls"
) )
const metricsGetCountryPageUrls = getCountryPageUrlsCounter.init({ lang }) const metricsGetCountryPageUrls = getCountryPageUrlsCounter.init({ lang })

View File

@@ -42,8 +42,7 @@ export const destinationOverviewPageQueryRouter = router({
const { lang, uid } = ctx const { lang, uid } = ctx
const getDestinationOverviewPageRefsCounter = createCounter( const getDestinationOverviewPageRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.destinationOverviewPage.get.refs"
"destinationOverviewPage.get.refs"
) )
const metricsGetDestinationOverviewPageRefs = const metricsGetDestinationOverviewPageRefs =
getDestinationOverviewPageRefsCounter.init({ lang, uid }) getDestinationOverviewPageRefsCounter.init({ lang, uid })
@@ -81,8 +80,7 @@ export const destinationOverviewPageQueryRouter = router({
metricsGetDestinationOverviewPageRefs.success() metricsGetDestinationOverviewPageRefs.success()
const getDestinationOverviewPageCounter = createCounter( const getDestinationOverviewPageCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.destinationOverviewPage.get"
"destinationOverviewPage.get"
) )
const metricsGetDestinationOverviewPage = const metricsGetDestinationOverviewPage =
getDestinationOverviewPageCounter.init({ lang, uid }) getDestinationOverviewPageCounter.init({ lang, uid })

View File

@@ -16,10 +16,7 @@ export const hotelPageQueryRouter = router({
get: contentstackExtendedProcedureUID.query(async ({ ctx }) => { get: contentstackExtendedProcedureUID.query(async ({ ctx }) => {
const { lang, uid } = ctx const { lang, uid } = ctx
const getHotelPageCounter = createCounter( const getHotelPageCounter = createCounter("trpc.contentstack.hotelPage.get")
"trpc.contentstack",
"hotelPage.get"
)
const metricsGetHotelPage = getHotelPageCounter.init({ lang, uid }) const metricsGetHotelPage = getHotelPageCounter.init({ lang, uid })
metricsGetHotelPage.start() metricsGetHotelPage.start()

View File

@@ -15,8 +15,7 @@ import type {
export async function getHotelPageCount(lang: Lang) { export async function getHotelPageCount(lang: Lang) {
const getHotelPageCountCounter = createCounter( const getHotelPageCountCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.hotelPageCount.get"
"hotelPageCount.get"
) )
const metricsGetHotelPageCount = getHotelPageCountCounter.init({ lang }) const metricsGetHotelPageCount = getHotelPageCountCounter.init({ lang })
@@ -52,8 +51,7 @@ export async function getHotelPageCount(lang: Lang) {
export async function getHotelPageUrls(lang: Lang) { export async function getHotelPageUrls(lang: Lang) {
const getHotelPageUrlsCounter = createCounter( const getHotelPageUrlsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.hotelPageUrls.get"
"hotelPageUrls.get"
) )
const metricsGetHotelPageUrls = getHotelPageUrlsCounter.init({ lang }) const metricsGetHotelPageUrls = getHotelPageUrlsCounter.init({ lang })

View File

@@ -74,8 +74,7 @@ export async function getUrlsOfAllLanguages(
) )
const getLanguageSwitcherCounter = createCounter( const getLanguageSwitcherCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.languageSwitcher.get"
"languageSwitcher.get"
) )
const metricsGetLanguageSwitcher = getLanguageSwitcherCounter.init({ const metricsGetLanguageSwitcher = getLanguageSwitcherCounter.init({
lang, lang,

View File

@@ -26,8 +26,7 @@ import type { Lang } from "@scandic-hotels/common/constants/language"
export const getAllLoyaltyLevels = cache(async (lang: Lang) => { export const getAllLoyaltyLevels = cache(async (lang: Lang) => {
const getLoyaltyLevelAllCounter = createCounter( const getLoyaltyLevelAllCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.loyaltyLevel.all"
"loyaltyLevel.all"
) )
const metricsGetLoyaltyLevelAll = getLoyaltyLevelAllCounter.init() const metricsGetLoyaltyLevelAll = getLoyaltyLevelAllCounter.init()
@@ -70,8 +69,7 @@ export const getAllLoyaltyLevels = cache(async (lang: Lang) => {
export const getLoyaltyLevel = cache( export const getLoyaltyLevel = cache(
async (lang: Lang, level_id: MembershipLevel) => { async (lang: Lang, level_id: MembershipLevel) => {
const getLoyaltyLevelCounter = createCounter( const getLoyaltyLevelCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.loyaltyLevel.get"
"loyaltyLevel.get"
) )
const metricsGetLoyaltyLevel = getLoyaltyLevelCounter.init({ const metricsGetLoyaltyLevel = getLoyaltyLevelCounter.init({
lang, lang,

View File

@@ -27,8 +27,7 @@ export const loyaltyPageQueryRouter = router({
const { lang, uid } = ctx const { lang, uid } = ctx
const getLoyaltyPageRefsCounter = createCounter( const getLoyaltyPageRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.loyaltyPage.get.refs"
"loyaltyPage.get.refs"
) )
const metricsGetLoyaltyPageRefs = getLoyaltyPageRefsCounter.init({ const metricsGetLoyaltyPageRefs = getLoyaltyPageRefsCounter.init({
lang, lang,
@@ -71,8 +70,7 @@ export const loyaltyPageQueryRouter = router({
].flat() ].flat()
const getLoyaltyPageCounter = createCounter( const getLoyaltyPageCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.loyaltyPage.get"
"loyaltyPage.get"
) )
const metricsGetLoyaltyPage = getLoyaltyPageCounter.init({ lang, uid }) const metricsGetLoyaltyPage = getLoyaltyPageCounter.init({ lang, uid })

View File

@@ -36,7 +36,7 @@ const fetchMetadata = cache(async function fetchMemoizedMetadata<T>(
query: string | DocumentNode, query: string | DocumentNode,
{ uid, lang }: { uid: string; lang: Lang } { uid, lang }: { uid: string; lang: Lang }
) { ) {
const getMetadataCounter = createCounter("trpc.contentstack", "metadata.get") const getMetadataCounter = createCounter("trpc.contentstack.metadata.get")
const metricsGetMetadata = getMetadataCounter.init({ lang, uid }) const metricsGetMetadata = getMetadataCounter.init({ lang, uid })
metricsGetMetadata.start() metricsGetMetadata.start()
@@ -241,8 +241,7 @@ export const metadataQueryRouter = router({
} }
const transformMetadataCounter = createCounter( const transformMetadataCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.metadata.transform"
"metadata.transform"
) )
const metricsTransformMetadata = transformMetadataCounter.init() const metricsTransformMetadata = transformMetadataCounter.init()

View File

@@ -16,8 +16,7 @@ type SasTierComparisonResponse = z.input<typeof validateSasTierComparisonSchema>
export const getSasTierComparison = cache(async (lang: Lang) => { export const getSasTierComparison = cache(async (lang: Lang) => {
const getSasTierComparisonCounter = createCounter( const getSasTierComparisonCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.partner.getSasTierComparison"
"partner.getSasTierComparison"
) )
const metricsGetSasTierComparison = getSasTierComparisonCounter.init({ const metricsGetSasTierComparison = getSasTierComparisonCounter.init({
lang, lang,

View File

@@ -19,8 +19,7 @@ export const profilingConsentQueryRouter = router({
const tag = `${lang}:profiling_consent` const tag = `${lang}:profiling_consent`
const getProfilingConsentCounter = createCounter( const getProfilingConsentCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.profilingConsent.get"
"profilingConsent.get"
) )
const metricsGetProfilingConsent = getProfilingConsentCounter.init({ const metricsGetProfilingConsent = getProfilingConsentCounter.init({
lang, lang,

View File

@@ -23,8 +23,7 @@ export const promoCampaignPageQueryRouter = router({
const { lang, uid } = ctx const { lang, uid } = ctx
const getPromoCampaignPageRefsCounter = createCounter( const getPromoCampaignPageRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.promoCampaignPage.get.refs"
"promoCampaignPage.get.refs"
) )
const metricsGetPromoCampaignPageRefs = const metricsGetPromoCampaignPageRefs =
getPromoCampaignPageRefsCounter.init({ getPromoCampaignPageRefsCounter.init({
@@ -61,8 +60,7 @@ export const promoCampaignPageQueryRouter = router({
const tags = generatePageTags(validatedRefsData.data, lang) const tags = generatePageTags(validatedRefsData.data, lang)
const getPromoCampaignPageCounter = createCounter( const getPromoCampaignPageCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.promoCampaignPage.get"
"promoCampaignPage.get"
) )
const metricsGetPromoCampaignPage = getPromoCampaignPageCounter.init({ const metricsGetPromoCampaignPage = getPromoCampaignPageCounter.init({
lang, lang,

View File

@@ -33,8 +33,7 @@ export const rewardQueryRouter = router({
.input(rewardsAllInput) .input(rewardsAllInput)
.query(async function ({ input, ctx }) { .query(async function ({ input, ctx }) {
const getContentstackRewardAllCounter = createCounter( const getContentstackRewardAllCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.reward.all"
"reward.all"
) )
const metricsGetContentstackRewardAll = const metricsGetContentstackRewardAll =
getContentstackRewardAllCounter.init() getContentstackRewardAllCounter.init()
@@ -113,8 +112,7 @@ export const rewardQueryRouter = router({
const { level_id } = input const { level_id } = input
const getRewardByLevelCounter = createCounter( const getRewardByLevelCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.reward.byLevel"
"reward.byLevel"
) )
const metricsGetRewardByLevel = getRewardByLevelCounter.init({ const metricsGetRewardByLevel = getRewardByLevelCounter.init({
level_id, level_id,
@@ -180,8 +178,7 @@ export const rewardQueryRouter = router({
.input(langInput.optional()) // lang is required for client, but not for server .input(langInput.optional()) // lang is required for client, but not for server
.query(async function ({ ctx }) { .query(async function ({ ctx }) {
const getCurrentRewardCounter = createCounter( const getCurrentRewardCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.reward.current"
"reward.current"
) )
const metricsGetCurrentReward = getCurrentRewardCounter.init() const metricsGetCurrentReward = getCurrentRewardCounter.init()
@@ -238,10 +235,7 @@ export const rewardQueryRouter = router({
surprises: contentStackBaseWithProtectedProcedure surprises: contentStackBaseWithProtectedProcedure
.input(langInput.optional()) // lang is required for client, but not for server .input(langInput.optional()) // lang is required for client, but not for server
.query(async ({ ctx }) => { .query(async ({ ctx }) => {
const getSurprisesCounter = createCounter( const getSurprisesCounter = createCounter("trpc.contentstack.surprises")
"trpc.contentstack",
"surprises"
)
const metricsGetSurprises = getSurprisesCounter.init() const metricsGetSurprises = getSurprisesCounter.init()
metricsGetSurprises.start() metricsGetSurprises.start()
@@ -304,8 +298,7 @@ export const rewardQueryRouter = router({
input.map(({ rewardId, couponCode }) => { input.map(({ rewardId, couponCode }) => {
async function handleUnwrap() { async function handleUnwrap() {
const getUnwrapSurpriseCounter = createCounter( const getUnwrapSurpriseCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.reward.unwrap"
"reward.unwrap"
) )
const metricsGetUnwrapSurprise = getUnwrapSurpriseCounter.init({ const metricsGetUnwrapSurprise = getUnwrapSurpriseCounter.init({
@@ -357,10 +350,7 @@ export const rewardQueryRouter = router({
.mutation(async ({ input, ctx }) => { .mutation(async ({ input, ctx }) => {
const { rewardId, couponCode } = input const { rewardId, couponCode } = input
const getRedeemCounter = createCounter( const getRedeemCounter = createCounter("trpc.contentstack.reward.redeem")
"trpc.contentstack",
"reward.redeem"
)
const metricGetRedeem = getRedeemCounter.init({ rewardId, couponCode }) const metricGetRedeem = getRedeemCounter.init({ rewardId, couponCode })

View File

@@ -40,8 +40,7 @@ export async function getCachedAllTierRewards(token: string) {
"getAllTierRewards", "getAllTierRewards",
async () => { async () => {
const getApiRewardAllTiersCounter = createCounter( const getApiRewardAllTiersCounter = createCounter(
"trpc.api", "trpc.api.reward.allTiers"
"reward.allTiers"
) )
const metricsGetApiRewardAllTiers = getApiRewardAllTiersCounter.init() const metricsGetApiRewardAllTiers = getApiRewardAllTiersCounter.init()
@@ -90,8 +89,7 @@ export async function getCmsRewards(lang: Lang, rewardIds: string[]) {
) )
const getContentstackRewardAllRefsCounter = createCounter( const getContentstackRewardAllRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.reward.all.refs"
"reward.all.refs"
) )
const metricsGetContentstackRewardAllRefs = const metricsGetContentstackRewardAllRefs =
getContentstackRewardAllRefsCounter.init({ lang, rewardIds }) getContentstackRewardAllRefsCounter.init({ lang, rewardIds })
@@ -126,8 +124,7 @@ export async function getCmsRewards(lang: Lang, rewardIds: string[]) {
metricsGetContentstackRewardAllRefs.success() metricsGetContentstackRewardAllRefs.success()
const getContentstackRewardAllCounter = createCounter( const getContentstackRewardAllCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.reward.all"
"reward.all"
) )
const metricsGetContentstackRewardAll = getContentstackRewardAllCounter.init({ const metricsGetContentstackRewardAll = getContentstackRewardAllCounter.init({
lang, lang,

View File

@@ -24,8 +24,9 @@ import type { blocksSchema } from "./output"
export interface GetStartPageData extends z.input<typeof startPageSchema> {} export interface GetStartPageData extends z.input<typeof startPageSchema> {}
export interface StartPage extends z.output<typeof startPageSchema> {} export interface StartPage extends z.output<typeof startPageSchema> {}
export interface GetStartPageRefsSchema export interface GetStartPageRefsSchema extends z.input<
extends z.input<typeof startPageRefsSchema> {} typeof startPageRefsSchema
> {}
export type Block = z.output<typeof blocksSchema> export type Block = z.output<typeof blocksSchema>
@@ -34,8 +35,7 @@ export const startPageQueryRouter = router({
const { lang, uid } = ctx const { lang, uid } = ctx
const getStartPageRefsCounter = createCounter( const getStartPageRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack.startPage.get.refs"
"startPage.get.refs"
) )
const metricsGetStartPageRefs = getStartPageRefsCounter.init({ lang, uid }) const metricsGetStartPageRefs = getStartPageRefsCounter.init({ lang, uid })
@@ -67,10 +67,7 @@ export const startPageQueryRouter = router({
metricsGetStartPageRefs.success() metricsGetStartPageRefs.success()
const getStartPageCounter = createCounter( const getStartPageCounter = createCounter("trpc.contentstack.startPage.get")
"trpc.contentstack",
"startPage.get"
)
const metricsGetStartPage = getStartPageCounter.init({ lang, uid }) const metricsGetStartPage = getStartPageCounter.init({ lang, uid })
metricsGetStartPage.start() metricsGetStartPage.start()

View File

@@ -16,7 +16,7 @@ export const urls = publicProcedure
.query(async ({ input }) => { .query(async ({ input }) => {
const { lang } = input const { lang } = input
const locationsUrlsCounter = createCounter("trpc.hotel.locations", "urls") const locationsUrlsCounter = createCounter("trpc.hotel.locations.urls")
const metricsLocationsUrls = locationsUrlsCounter.init({ const metricsLocationsUrls = locationsUrlsCounter.init({
lang, lang,
}) })

View File

@@ -117,8 +117,7 @@ export const hotelQueryRouter = router({
let hotelsToFetch: string[] = [] let hotelsToFetch: string[] = []
const getHotelsByCSFilterCounter = createCounter( const getHotelsByCSFilterCounter = createCounter(
"trpc.hotel.hotels", "trpc.hotel.hotels.byCSFilter"
"byCSFilter"
) )
const metricsGetHotelsByCSFilter = getHotelsByCSFilterCounter.init({ const metricsGetHotelsByCSFilter = getHotelsByCSFilterCounter.init({
input, input,
@@ -296,10 +295,7 @@ export const hotelQueryRouter = router({
return cacheClient.cacheOrGet( return cacheClient.cacheOrGet(
`${apiLang}:nearbyHotels:${hotelId}`, `${apiLang}:nearbyHotels:${hotelId}`,
async () => { async () => {
const nearbyHotelsCounter = createCounter( const nearbyHotelsCounter = createCounter("trpc.hotel.nearbyHotelIds")
"trpc.hotel",
"nearbyHotelIds"
)
const metricsNearbyHotels = nearbyHotelsCounter.init({ const metricsNearbyHotels = nearbyHotelsCounter.init({
params, params,
hotelId, hotelId,
@@ -392,7 +388,7 @@ export const hotelQueryRouter = router({
hotelId, hotelId,
language, language,
} }
const meetingRoomsCounter = createCounter("trpc.hotel", "meetingRooms") const meetingRoomsCounter = createCounter("trpc.hotel.meetingRooms")
const metricsMeetingRooms = meetingRoomsCounter.init({ const metricsMeetingRooms = meetingRoomsCounter.init({
params, params,
}) })
@@ -453,10 +449,7 @@ export const hotelQueryRouter = router({
language, language,
} }
const additionalDataCounter = createCounter( const additionalDataCounter = createCounter("trpc.hotel.additionalData")
"trpc.hotel",
"additionalData"
)
const metricsAdditionalData = additionalDataCounter.init({ const metricsAdditionalData = additionalDataCounter.init({
params, params,
}) })
@@ -517,10 +510,7 @@ export const hotelQueryRouter = router({
language: apiLang, language: apiLang,
} }
const breakfastCounter = createCounter( const breakfastCounter = createCounter("trpc.hotel.packages.breakfast")
"trpc.hotel.packages",
"breakfast"
)
const metricsBreakfast = breakfastCounter.init({ const metricsBreakfast = breakfastCounter.init({
params, params,
hotelId: input.hotelId, hotelId: input.hotelId,
@@ -597,10 +587,7 @@ export const hotelQueryRouter = router({
language: apiLang, language: apiLang,
} }
const ancillaryCounter = createCounter( const ancillaryCounter = createCounter("trpc.hotel.packages.ancillary")
"trpc.hotel.packages",
"ancillary"
)
const metricsAncillary = ancillaryCounter.init({ const metricsAncillary = ancillaryCounter.init({
params, params,
hotelId: input.hotelId, hotelId: input.hotelId,

View File

@@ -16,7 +16,7 @@ export const getHotel = cache(
const { language, isCardOnlyPayment } = input const { language, isCardOnlyPayment } = input
const hotelId = input.hotelId.trim() const hotelId = input.hotelId.trim()
const getHotelCounter = createCounter("hotel", "getHotel") const getHotelCounter = createCounter("hotel.getHotel")
const metricsGetHotel = getHotelCounter.init({ const metricsGetHotel = getHotelCounter.init({
hotelId, hotelId,
language, language,

View File

@@ -12,10 +12,7 @@ export async function getHotelIdsByCityId({
cityId: string cityId: string
serviceToken: string serviceToken: string
}) { }) {
const getHotelIdsByCityIdCounter = createCounter( const getHotelIdsByCityIdCounter = createCounter("hotel.getHotelIdsByCityId")
"hotel",
"getHotelIdsByCityId"
)
const metricsGetHotelIdsByCityId = getHotelIdsByCityIdCounter.init({ const metricsGetHotelIdsByCityId = getHotelIdsByCityIdCounter.init({
cityId, cityId,
}) })

View File

@@ -13,8 +13,7 @@ export async function getHotelIdsByCountry({
serviceToken: string serviceToken: string
}) { }) {
const getHotelIdsByCountryCounter = createCounter( const getHotelIdsByCountryCounter = createCounter(
"hotel", "hotel.getHotelIdsByCountry"
"getHotelIdsByCountry"
) )
const metricsGetHotelIdsByCountry = getHotelIdsByCountryCounter.init({ const metricsGetHotelIdsByCountry = getHotelIdsByCountryCounter.init({

View File

@@ -45,8 +45,7 @@ export async function getHotelsAvailabilityByCity({
} satisfies Record<string, string | number> } satisfies Record<string, string | number>
const getHotelsAvailabilityByCityCounter = createCounter( const getHotelsAvailabilityByCityCounter = createCounter(
"hotel", "hotel.getHotelsAvailabilityByCity"
"getHotelsAvailabilityByCity"
) )
const metricsGetHotelsAvailabilityByCity = const metricsGetHotelsAvailabilityByCity =
getHotelsAvailabilityByCityCounter.init({ getHotelsAvailabilityByCityCounter.init({

View File

@@ -47,8 +47,7 @@ export async function getHotelsAvailabilityByHotelIds({
]) ])
const getHotelsAvailabilityByHotelIdsCounter = createCounter( const getHotelsAvailabilityByHotelIdsCounter = createCounter(
"hotel", "hotel.getHotelsAvailabilityByHotelIds"
"getHotelsAvailabilityByHotelIds"
) )
const metricsGetHotelsAvailabilityByHotelIds = const metricsGetHotelsAvailabilityByHotelIds =
getHotelsAvailabilityByHotelIdsCounter.init({ getHotelsAvailabilityByHotelIdsCounter.init({

View File

@@ -13,7 +13,7 @@ export async function getPackages(input: PackagesOutput, serviceToken: string) {
const { adults, children, endDate, hotelId, lang, packageCodes, startDate } = const { adults, children, endDate, hotelId, lang, packageCodes, startDate } =
input input
const getPackagesCounter = createCounter("hotel", "getPackages") const getPackagesCounter = createCounter("hotel.getPackages")
const metricsGetPackages = getPackagesCounter.init({ const metricsGetPackages = getPackagesCounter.init({
input, input,
}) })

View File

@@ -34,8 +34,7 @@ export async function getRoomFeaturesInventory(
} }
const getRoomFeaturesInventoryCounter = createCounter( const getRoomFeaturesInventoryCounter = createCounter(
"hotel", "hotel.getRoomFeaturesInventory"
"getRoomFeaturesInventory"
) )
const metricsGetRoomFeaturesInventory = const metricsGetRoomFeaturesInventory =
getRoomFeaturesInventoryCounter.init(params) getRoomFeaturesInventoryCounter.init(params)

View File

@@ -29,8 +29,7 @@ export async function getRoomsAvailability(
const redemption = searchType === SEARCH_TYPE_REDEMPTION const redemption = searchType === SEARCH_TYPE_REDEMPTION
const getRoomsAvailabilityCounter = createCounter( const getRoomsAvailabilityCounter = createCounter(
"hotel", "hotel.getRoomsAvailability"
"getRoomsAvailability"
) )
const metricsGetRoomsAvailability = getRoomsAvailabilityCounter.init({ const metricsGetRoomsAvailability = getRoomsAvailabilityCounter.init({
input, input,

View File

@@ -15,7 +15,7 @@ const feedUrl =
export const jobylonQueryRouter = router({ export const jobylonQueryRouter = router({
feed: router({ feed: router({
get: publicProcedure.query(async function () { get: publicProcedure.query(async function () {
const jobylonFeedGetCounter = createCounter("trpc.jobylon.feed", "get") const jobylonFeedGetCounter = createCounter("trpc.jobylon.feed.get")
const metricsJobylonFeedGet = jobylonFeedGetCounter.init() const metricsJobylonFeedGet = jobylonFeedGetCounter.init()
metricsJobylonFeedGet.start() metricsJobylonFeedGet.start()

View File

@@ -157,8 +157,7 @@ export const userMutationRouter = router({
ctx, ctx,
}) { }) {
const generatePreferencesLinkCounter = createCounter( const generatePreferencesLinkCounter = createCounter(
"trpc.user", "trpc.user.generatePreferencesLink"
"generatePreferencesLink"
) )
const metricsGeneratePreferencesLink = generatePreferencesLinkCounter.init() const metricsGeneratePreferencesLink = generatePreferencesLinkCounter.init()
@@ -196,7 +195,7 @@ export const userMutationRouter = router({
ctx, ctx,
input, input,
}) { }) {
const signupCounter = createCounter("trpc.user", "signup") const signupCounter = createCounter("trpc.user.signup")
const metricsSignup = signupCounter.init() const metricsSignup = signupCounter.init()
const apiResponse = await api.post(api.endpoints.v2.Profile.profile, { const apiResponse = await api.post(api.endpoints.v2.Profile.profile, {
@@ -224,8 +223,7 @@ export const userMutationRouter = router({
.input(profilingConsentInput) .input(profilingConsentInput)
.mutation(async function ({ ctx, input }) { .mutation(async function ({ ctx, input }) {
const profilingConsentCounter = createCounter( const profilingConsentCounter = createCounter(
"trpc.user", "trpc.user.profilingConsent"
"profilingConsent"
) )
const metricsProfilingConsent = profilingConsentCounter.init() const metricsProfilingConsent = profilingConsentCounter.init()
@@ -252,8 +250,7 @@ export const userMutationRouter = router({
.input(profilingConsentPromptDateInput) .input(profilingConsentPromptDateInput)
.mutation(async function ({ ctx, input }) { .mutation(async function ({ ctx, input }) {
const profilingConsentPromptDateCounter = createCounter( const profilingConsentPromptDateCounter = createCounter(
"trpc.user", "trpc.user.profilingConsentPromptDate"
"profilingConsentPromptDate"
) )
const metricsProfilingConsentPromptDate = const metricsProfilingConsentPromptDate =
profilingConsentPromptDateCounter.init() profilingConsentPromptDateCounter.init()

View File

@@ -234,8 +234,7 @@ export const userQueryRouter = router({
const { limit, page, lang } = input const { limit, page, lang } = input
const friendTransactionsCounter = createCounter( const friendTransactionsCounter = createCounter(
"trpc.user.transactions", "trpc.user.transactions.friendTransactions"
"friendTransactions"
) )
const metricsFriendTransactions = friendTransactionsCounter.init({ const metricsFriendTransactions = friendTransactionsCounter.init({

View File

@@ -26,7 +26,7 @@ export const userTrackingInfo = safeProtectedProcedure.query(async function ({
}) })
async function getScandicFriendsUserTrackingData(session: Session | null) { async function getScandicFriendsUserTrackingData(session: Session | null) {
const userTrackingInfoCounter = createCounter("user", "userTrackingInfo") const userTrackingInfoCounter = createCounter("user.userTrackingInfo")
const metricsUserTrackingInfo = userTrackingInfoCounter.init() const metricsUserTrackingInfo = userTrackingInfoCounter.init()
metricsUserTrackingInfo.start() metricsUserTrackingInfo.start()

View File

@@ -15,7 +15,7 @@ export const getCreditCards = cache(
session: Session session: Session
onlyNonExpired?: boolean onlyNonExpired?: boolean
}) => { }) => {
const getCreditCardsCounter = createCounter("user", "getCreditCards") const getCreditCardsCounter = createCounter("user.getCreditCards")
const metricsGetCreditCards = getCreditCardsCounter.init({ const metricsGetCreditCards = getCreditCardsCounter.init({
onlyNonExpired, onlyNonExpired,
}) })

View File

@@ -12,7 +12,7 @@ export async function getPreviousStays(
language: Lang, language: Lang,
cursor?: string cursor?: string
) { ) {
const getPreviousStaysCounter = createCounter("user", "getPreviousStays") const getPreviousStaysCounter = createCounter("user.getPreviousStays")
const metricsGetPreviousStays = getPreviousStaysCounter.init({ const metricsGetPreviousStays = getPreviousStaysCounter.init({
limit, limit,
cursor, cursor,

View File

@@ -12,7 +12,7 @@ export async function getUpcomingStays(
language: Lang, language: Lang,
cursor?: string cursor?: string
) { ) {
const getUpcomingStaysCounter = createCounter("user", "getUpcomingStays") const getUpcomingStaysCounter = createCounter("user.getUpcomingStays")
const metricsGetUpcomingStays = getUpcomingStaysCounter.init({ const metricsGetUpcomingStays = getUpcomingStaysCounter.init({
limit, limit,
cursor, cursor,

View File

@@ -22,7 +22,7 @@ export async function getPreviousStays(
language: Lang, language: Lang,
cursor?: string cursor?: string
) { ) {
const getPreviousStaysCounter = createCounter("user", "getPreviousStays") const getPreviousStaysCounter = createCounter("user.getPreviousStays")
const metricsGetPreviousStays = getPreviousStaysCounter.init({ const metricsGetPreviousStays = getPreviousStaysCounter.init({
limit, limit,
cursor, cursor,
@@ -74,7 +74,7 @@ export async function getUpcomingStays(
language: Lang, language: Lang,
cursor?: string cursor?: string
) { ) {
const getUpcomingStaysCounter = createCounter("user", "getUpcomingStays") const getUpcomingStaysCounter = createCounter("user.getUpcomingStays")
const metricsGetUpcomingStays = getUpcomingStaysCounter.init({ const metricsGetUpcomingStays = getUpcomingStaysCounter.init({
limit, limit,
cursor, cursor,
@@ -128,7 +128,7 @@ export const getCreditCards = cache(
session: Session session: Session
onlyNonExpired?: boolean onlyNonExpired?: boolean
}) => { }) => {
const getCreditCardsCounter = createCounter("user", "getCreditCards") const getCreditCardsCounter = createCounter("user.getCreditCards")
const metricsGetCreditCards = getCreditCardsCounter.init({ const metricsGetCreditCards = getCreditCardsCounter.init({
onlyNonExpired, onlyNonExpired,
}) })

View File

@@ -11,7 +11,7 @@ export const getBasicUser = cache(
}: { }: {
token: { expires_at?: number; access_token: string } token: { expires_at?: number; access_token: string }
}) => { }) => {
const getBasicUserCounter = createCounter("user", "getBasicUser") const getBasicUserCounter = createCounter("user.getBasicUser")
const metricsGetBasicUser = getBasicUserCounter.init() const metricsGetBasicUser = getBasicUserCounter.init()
metricsGetBasicUser.start() metricsGetBasicUser.start()

View File

@@ -17,7 +17,7 @@ export const getVerifiedUser = cache(
token: { expires_at?: number; access_token: string } token: { expires_at?: number; access_token: string }
includeExtendedPartnerData?: boolean includeExtendedPartnerData?: boolean
}) => { }) => {
const getVerifiedUserCounter = createCounter("user", "getVerifiedUser") const getVerifiedUserCounter = createCounter("user.getVerifiedUser")
const metricsGetVerifiedUser = getVerifiedUserCounter.init() const metricsGetVerifiedUser = getVerifiedUserCounter.init()
metricsGetVerifiedUser.start() metricsGetVerifiedUser.start()