observe digest-score api lantency in prometheus

This commit is contained in:
Hongbo Wu
2024-07-01 12:01:42 +08:00
parent 9f7065c5c3
commit 550cef241c
2 changed files with 16 additions and 2 deletions

View File

@ -494,8 +494,6 @@ const latency = new client.Histogram({
buckets: [0.1, 0.5, 1, 2, 5, 10],
})
latency.observe(10)
registerMetric(latency)
export const updateHome = async (data: UpdateHomeJobData) => {

View File

@ -1,5 +1,7 @@
import axios from 'axios'
import client from 'prom-client'
import { env } from '../env'
import { registerMetric } from '../prometheus'
import { logError } from '../utils/logger'
export interface Feature {
@ -38,6 +40,15 @@ export type ScoreBody = {
score: number
}
// use prometheus to monitor the latency of digest score api
const latency = new client.Histogram({
name: 'omnivore_digest_score_latency',
help: 'Latency of digest score API in seconds',
buckets: [0.1, 0.5, 1, 2, 5, 10, 20, 30, 60],
})
registerMetric(latency)
export type ScoreApiResponse = Record<string, ScoreBody> // item_id -> score
interface ScoreClient {
getScores(data: ScoreApiRequestBody): Promise<ScoreApiResponse>
@ -65,6 +76,8 @@ class ScoreClientImpl implements ScoreClient {
async getScores(data: ScoreApiRequestBody): Promise<ScoreApiResponse> {
try {
const start = Date.now()
const response = await axios.post<ScoreApiResponse>(this.apiUrl, data, {
headers: {
'Content-Type': 'application/json',
@ -72,6 +85,9 @@ class ScoreClientImpl implements ScoreClient {
timeout: 5000,
})
const duration = (Date.now() - start) / 1000 // in seconds
latency.observe(duration)
return response.data
} catch (error) {
logError(error)