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:
@@ -35,7 +35,7 @@ async function linkEmployeeToUser(
|
||||
employeeId: string,
|
||||
accessToken: string
|
||||
): 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 })
|
||||
|
||||
metricsApiCall.start()
|
||||
@@ -121,7 +121,7 @@ async function linkEmployeeToUser(
|
||||
* here we can check both sessions, the Scandic Friends one and the Azure one.
|
||||
*/
|
||||
export async function GET(request: NextRequest) {
|
||||
const dtmcLinkCounter = createCounter("dtmc.employee", "link")
|
||||
const dtmcLinkCounter = createCounter("dtmc.employee.link")
|
||||
const metricsEmployeeLink = dtmcLinkCounter.init()
|
||||
|
||||
metricsEmployeeLink.start()
|
||||
|
||||
@@ -25,7 +25,7 @@ import {
|
||||
export const dynamic = "force-dynamic"
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
const generateSitemapCounter = createCounter("sitemap", "generate")
|
||||
const generateSitemapCounter = createCounter("sitemap.generate")
|
||||
const metricsGenerateSitemap = generateSitemapCounter.init()
|
||||
try {
|
||||
metricsGenerateSitemap.start()
|
||||
@@ -44,7 +44,7 @@ export async function GET(request: NextRequest) {
|
||||
const responseData = await contentstackSync(syncToken)
|
||||
const mergedEntries = mergeEntries(currentEntries, responseData.entries)
|
||||
|
||||
const entriesSaveCounter = createCounter("sitemap", "entries.save")
|
||||
const entriesSaveCounter = createCounter("sitemap.entries.save")
|
||||
const metricsEntriesSave = entriesSaveCounter.init({
|
||||
entriesCount: mergedEntries.length,
|
||||
})
|
||||
@@ -59,7 +59,7 @@ export async function GET(request: NextRequest) {
|
||||
const sitemapData = mapEntriesToSitemapData(mergedEntries, hotelFilters)
|
||||
const lastUpdated = dt().utc().format()
|
||||
|
||||
const saveDataCounter = createCounter("sitemap", "data.save")
|
||||
const saveDataCounter = createCounter("sitemap.data.save")
|
||||
const metricsDataSave = saveDataCounter.init({
|
||||
sitemapEntriesCount: sitemapData.length,
|
||||
lastUpdated,
|
||||
@@ -70,7 +70,7 @@ export async function GET(request: NextRequest) {
|
||||
metricsDataSave.success()
|
||||
|
||||
if (syncToken !== responseData.syncToken) {
|
||||
const syncTokenSaveCounter = createCounter("sitemap", "syncToken.save")
|
||||
const syncTokenSaveCounter = createCounter("sitemap.syncToken.save")
|
||||
const metricsSyncTokenSave = syncTokenSaveCounter.init({
|
||||
syncToken: responseData.syncToken,
|
||||
})
|
||||
|
||||
@@ -19,7 +19,7 @@ export async function contentstackSync(syncToken: string | null) {
|
||||
const entries = []
|
||||
const syncOptions = syncToken ? { sync_token: syncToken } : { init: true }
|
||||
|
||||
const entriesSyncCounter = createCounter("sitemap", "entries.sync")
|
||||
const entriesSyncCounter = createCounter("sitemap.entries.sync")
|
||||
const metricsEntriesSync = entriesSyncCounter.init({
|
||||
environment,
|
||||
...syncOptions,
|
||||
@@ -33,8 +33,7 @@ export async function contentstackSync(syncToken: string | null) {
|
||||
entries.push(...syncResponse.items)
|
||||
|
||||
const entriesSyncPaginationCounter = createCounter(
|
||||
"sitemap",
|
||||
"entries.sync.pagination"
|
||||
"sitemap.entries.sync.pagination"
|
||||
)
|
||||
const metricsEntriesSyncPagination = entriesSyncPaginationCounter.init({
|
||||
environment,
|
||||
|
||||
@@ -15,7 +15,7 @@ export function mergeEntries(
|
||||
currentEntries: SyncItem[],
|
||||
newEntries: SyncItem[]
|
||||
) {
|
||||
const entriesMergeCounter = createCounter("sitemap", "entries.merge")
|
||||
const entriesMergeCounter = createCounter("sitemap.entries.merge")
|
||||
const metricsEntriesMerge = entriesMergeCounter.init({
|
||||
currentEntriesCount: currentEntries.length,
|
||||
newEntriesCount: newEntries.length,
|
||||
@@ -57,8 +57,7 @@ export function mergeEntries(
|
||||
|
||||
export function mapEntriesToHotelFilters(entries: SyncItem[]) {
|
||||
const entriesTransformToHotelFiltersCounter = createCounter(
|
||||
"sitemap",
|
||||
"entries.transform.hotelFilters"
|
||||
"sitemap.entries.transform.hotelFilters"
|
||||
)
|
||||
const metricsEntriesTransformToHotelFilters =
|
||||
entriesTransformToHotelFiltersCounter.init({
|
||||
@@ -93,11 +92,10 @@ export function mapEntriesToSitemapData(
|
||||
entries: SyncItem[],
|
||||
hotelFilters: HotelFilterEntries
|
||||
) {
|
||||
const entriesTransformCounter = createCounter("sitemap", "entries.transform")
|
||||
const entriesTransformCounter = createCounter("sitemap.entries.transform")
|
||||
const metricsEntriesTransform = entriesTransformCounter.init({
|
||||
entriesCount: entries.length,
|
||||
})
|
||||
|
||||
metricsEntriesTransform.start()
|
||||
|
||||
const filteredEntries = filterEntriesToSitemapEntries(entries)
|
||||
|
||||
@@ -10,7 +10,7 @@ import { env } from "@/env/server"
|
||||
import type { JWT } from "next-auth/jwt"
|
||||
import type { OIDCConfig } from "next-auth/providers"
|
||||
|
||||
export const signInCounter = createCounter("auth", "signIn")
|
||||
export const signInCounter = createCounter("auth.signIn")
|
||||
|
||||
function getLoginType(user: User) {
|
||||
if (user?.login_with.includes("@")) {
|
||||
|
||||
@@ -2,6 +2,7 @@ import { type NextMiddleware, NextResponse } from "next/server"
|
||||
|
||||
import { getCacheClient } from "@scandic-hotels/common/dataCache"
|
||||
import { logger } from "@scandic-hotels/common/logger"
|
||||
import { createCounter } from "@scandic-hotels/common/telemetry"
|
||||
import { findLang } from "@scandic-hotels/common/utils/languages"
|
||||
|
||||
import { notFound } from "@/server/errors/next"
|
||||
@@ -45,7 +46,7 @@ async function fetchAndCacheRedirect(lang: Lang, pathname: string) {
|
||||
"1d"
|
||||
)
|
||||
}
|
||||
|
||||
const redirectCounter = createCounter("middleware.redirect")
|
||||
export const middleware: NextMiddleware = async (request) => {
|
||||
const lang = findLang(request.nextUrl.pathname)!
|
||||
const headers = getDefaultRequestHeaders(request)
|
||||
@@ -56,6 +57,14 @@ export const middleware: NextMiddleware = async (request) => {
|
||||
)
|
||||
|
||||
if (matchedRedirect) {
|
||||
redirectCounter
|
||||
.init({
|
||||
lang,
|
||||
pathname: request.nextUrl.pathname,
|
||||
newPathname: matchedRedirect,
|
||||
})
|
||||
.success()
|
||||
|
||||
const newUrl = new URL(matchedRedirect, getPublicNextURL(request))
|
||||
headers.set("Cache-control", "public, max-age=14400") // 4 hours
|
||||
return NextResponse.redirect(newUrl, {
|
||||
|
||||
Reference in New Issue
Block a user