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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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