tmp logging

This commit is contained in:
Carl-Gerhard Lindesvärd
2025-11-17 14:40:01 +01:00
parent 56c74e13ff
commit aa8765d627
6 changed files with 25 additions and 14 deletions

View File

@@ -5,7 +5,7 @@ import type { FastifyReply, FastifyRequest } from 'fastify';
import sharp from 'sharp';
import {
DEFAULT_HEADER_ORDER,
DEFAULT_IP_HEADER_ORDER,
getClientIpFromHeaders,
} from '@openpanel/common/server/get-client-ip';
import { TABLE_NAMES, ch, chQuery, formatClickhouseDate } from '@openpanel/db';
@@ -397,10 +397,10 @@ export async function stats(request: FastifyRequest, reply: FastifyReply) {
}
export async function getGeo(request: FastifyRequest, reply: FastifyReply) {
const ip = getClientIpFromHeaders(request.headers);
const { ip, header } = getClientIpFromHeaders(request.headers);
const others = await Promise.all(
DEFAULT_HEADER_ORDER.map(async (header) => {
const ip = getClientIpFromHeaders(request.headers, header);
DEFAULT_IP_HEADER_ORDER.map(async (header) => {
const { ip } = getClientIpFromHeaders(request.headers, header);
return {
header,
ip,
@@ -417,13 +417,14 @@ export async function getGeo(request: FastifyRequest, reply: FastifyReply) {
selected: {
geo,
ip,
header,
},
...others.reduce(
(acc, other) => {
acc[other.header] = other;
return acc;
},
{} as Record<string, { ip: string; geo: GeoLocation }>,
{} as Record<string, { ip: string; header: string; geo: GeoLocation }>,
),
});
}

View File

@@ -2,11 +2,13 @@ import { getClientIpFromHeaders } from '@openpanel/common/server/get-client-ip';
import type { FastifyRequest } from 'fastify';
export async function ipHook(request: FastifyRequest) {
const ip = getClientIpFromHeaders(request.headers);
const { ip, header } = getClientIpFromHeaders(request.headers);
if (ip) {
request.clientIp = ip;
request.clientIpHeader = header;
} else {
request.clientIp = '';
request.clientIpHeader = '';
}
}

View File

@@ -1,3 +1,4 @@
import { DEFAULT_IP_HEADER_ORDER } from '@openpanel/common';
import type { FastifyReply, FastifyRequest } from 'fastify';
import { path, pick } from 'ramda';
@@ -37,12 +38,15 @@ export async function requestLoggingHook(
url: request.url,
method: request.method,
elapsed: reply.elapsedTime,
clientIp: request.clientIp,
clientIpHeader: request.clientIpHeader,
headers: pick(
[
'openpanel-client-id',
'openpanel-sdk-name',
'openpanel-sdk-version',
'user-agent',
...DEFAULT_IP_HEADER_ORDER,
],
request.headers,
),

View File

@@ -55,6 +55,7 @@ declare module 'fastify' {
interface FastifyRequest {
client: IServiceClientWithProject | null;
clientIp: string;
clientIpHeader: string;
timestamp?: number;
session: SessionValidationResult;
}