@@ -92,7 +92,7 @@ export const server = new Elysia({
9292
9393 return await Promise . all (
9494 keys . map ( async ( key ) => {
95- const data = await hgetall ( `solutions :${ key . siteKey } ` ) ;
95+ const data = await hgetall ( `metrics:verified :${ key . siteKey } ` ) ;
9696 const current = sumSolutions ( data , currentStart ) ;
9797 const previous = sumSolutions ( data , previousStart , currentStart ) ;
9898
@@ -249,9 +249,9 @@ export const server = new Elysia({
249249 prevStartTime = startTime - periodLen ;
250250 }
251251
252- const [ challengesH , verifiedH , ratelimitedH , latSumH , latCountH ] = await Promise . all ( [
253- hgetall ( `metrics:challenges:${ sk } ` ) ,
252+ const [ verifiedH , failedH , ratelimitedH , latSumH , latCountH ] = await Promise . all ( [
254253 hgetall ( `metrics:verified:${ sk } ` ) ,
254+ hgetall ( `metrics:failed:${ sk } ` ) ,
255255 hgetall ( `metrics:ratelimited:${ sk } ` ) ,
256256 hgetall ( `metrics:latency_sum:${ sk } ` ) ,
257257 hgetall ( `metrics:latency_count:${ sk } ` ) ,
@@ -280,8 +280,8 @@ export const server = new Elysia({
280280
281281 const chartData = [ ] ;
282282 if ( bucketSize === day ) {
283- const chM = aggregateDaily ( challengesH , startTime , endTime ) ;
284283 const veM = aggregateDaily ( verifiedH , startTime , endTime ) ;
284+ const faM = aggregateDaily ( failedH , startTime , endTime ) ;
285285 const rlM = aggregateDaily ( ratelimitedH , startTime , endTime ) ;
286286
287287 const numDays =
@@ -296,20 +296,26 @@ export const server = new Elysia({
296296 const currentDayStart = Math . floor ( now / day ) * day ;
297297 for ( let i = 0 ; i < numDays ; i ++ ) {
298298 const b = currentDayStart - ( numDays - 1 - i ) * day ;
299+ const verified = veM . get ( b ) || 0 ;
300+ const failed = faM . get ( b ) || 0 ;
299301 chartData . push ( {
300302 bucket : b ,
301- challenges : chM . get ( b ) || 0 ,
302- verified : veM . get ( b ) || 0 ,
303+ challenges : verified + failed ,
304+ verified,
305+ failed,
303306 rateLimited : rlM . get ( b ) || 0 ,
304307 } ) ;
305308 }
306309 } else {
307- const allBuckets = new Set ( [ ...chM . keys ( ) , ...veM . keys ( ) , ...rlM . keys ( ) ] ) ;
310+ const allBuckets = new Set ( [ ...veM . keys ( ) , ...faM . keys ( ) , ...rlM . keys ( ) ] ) ;
308311 for ( const b of [ ...allBuckets ] . sort ( ( a , c ) => a - c ) ) {
312+ const verified = veM . get ( b ) || 0 ;
313+ const failed = faM . get ( b ) || 0 ;
309314 chartData . push ( {
310315 bucket : b ,
311- challenges : chM . get ( b ) || 0 ,
312- verified : veM . get ( b ) || 0 ,
316+ challenges : verified + failed ,
317+ verified,
318+ failed,
313319 rateLimited : rlM . get ( b ) || 0 ,
314320 } ) ;
315321 }
@@ -320,32 +326,36 @@ export const server = new Elysia({
320326 for ( let h = startHour ; h <= endHour ; h ++ ) {
321327 const b = h * 3600 ;
322328 const bs = String ( b ) ;
329+ const verified = Number ( verifiedH [ bs ] || 0 ) ;
330+ const failed = Number ( failedH [ bs ] || 0 ) ;
323331 chartData . push ( {
324332 bucket : b ,
325- challenges : Number ( challengesH [ bs ] || 0 ) ,
326- verified : Number ( verifiedH [ bs ] || 0 ) ,
333+ challenges : verified + failed ,
334+ verified,
335+ failed,
327336 rateLimited : Number ( ratelimitedH [ bs ] || 0 ) ,
328337 } ) ;
329338 }
330339 }
331340
332- const totalChallenges = sumRange ( challengesH , startTime , endTime ) ;
333341 const totalVerified = sumRange ( verifiedH , startTime , endTime ) ;
342+ const totalFailed = sumRange ( failedH , startTime , endTime ) ;
334343 const totalRateLimited = sumRange ( ratelimitedH , startTime , endTime ) ;
335344 const totalLatSum = sumRange ( latSumH , startTime , endTime ) ;
336345 const totalLatCount = sumRange ( latCountH , startTime , endTime ) ;
337346 const avgLatency = totalLatCount > 0 ? Math . round ( totalLatSum / totalLatCount ) : 0 ;
338347
339348 let prevStats = null ;
340349 if ( prevStartTime !== null ) {
341- const pChallenges = sumRange ( challengesH , prevStartTime , prevEndTime ) ;
342350 const pVerified = sumRange ( verifiedH , prevStartTime , prevEndTime ) ;
351+ const pFailed = sumRange ( failedH , prevStartTime , prevEndTime ) ;
343352 const pRateLimited = sumRange ( ratelimitedH , prevStartTime , prevEndTime ) ;
344353 const pLatSum = sumRange ( latSumH , prevStartTime , prevEndTime ) ;
345354 const pLatCount = sumRange ( latCountH , prevStartTime , prevEndTime ) ;
346355 prevStats = {
347- challenges : pChallenges ,
356+ challenges : pVerified + pFailed ,
348357 verified : pVerified ,
358+ failed : pFailed ,
349359 avgLatency : pLatCount > 0 ? Math . round ( pLatSum / pLatCount ) : 0 ,
350360 rateLimited : pRateLimited ,
351361 } ;
@@ -359,8 +369,9 @@ export const server = new Elysia({
359369 config : JSON . parse ( key . config ) ,
360370 } ,
361371 stats : {
362- challenges : totalChallenges ,
372+ challenges : totalVerified + totalFailed ,
363373 verified : totalVerified ,
374+ failed : totalFailed ,
364375 avgLatency,
365376 rateLimited : totalRateLimited ,
366377 } ,
@@ -492,8 +503,6 @@ export const server = new Elysia({
492503 const sk = params . siteKey ;
493504 await Promise . all ( [
494505 db . del ( `key:${ sk } ` ) ,
495- db . del ( `solutions:${ sk } ` ) ,
496- db . del ( `metrics:challenges:${ sk } ` ) ,
497506 db . del ( `metrics:verified:${ sk } ` ) ,
498507 db . del ( `metrics:failed:${ sk } ` ) ,
499508 db . del ( `metrics:ratelimited:${ sk } ` ) ,
0 commit comments