1
- import { logger } from '@dydxprotocol-indexer/base' ;
1
+ import { logger , stats } from '@dydxprotocol-indexer/base' ;
2
2
import {
3
3
AssetPositionTable ,
4
4
FundingIndexMap ,
@@ -36,6 +36,7 @@ export async function getPnlTicksCreateObjects(
36
36
blockTime : IsoString ,
37
37
txId : number ,
38
38
) : Promise < PnlTicksCreateObject [ ] > {
39
+ const startGetPnlTicksCreateObjects : number = Date . now ( ) ;
39
40
const pnlTicksToBeCreatedAt : DateTime = DateTime . utc ( ) ;
40
41
const [
41
42
mostRecentPnlTicks ,
@@ -47,6 +48,10 @@ export async function getPnlTicksCreateObjects(
47
48
getMostRecentPnlTicksForEachAccount ( ) ,
48
49
SubaccountTable . getSubaccountsWithTransfers ( blockHeight , { readReplica : true , txId } ) ,
49
50
] ) ;
51
+ stats . timing (
52
+ `${ config . SERVICE_NAME } _get_ticks_relevant_accounts` ,
53
+ new Date ( ) . getTime ( ) - startGetPnlTicksCreateObjects ,
54
+ ) ;
50
55
const accountToLastUpdatedBlockTime : _ . Dictionary < IsoString > = _ . mapValues (
51
56
mostRecentPnlTicks ,
52
57
( pnlTick : PnlTicksCreateObject ) => pnlTick . blockTime ,
@@ -66,17 +71,27 @@ export async function getPnlTicksCreateObjects(
66
71
) ,
67
72
...newSubaccountIds ,
68
73
] ;
74
+ stats . gauge (
75
+ `${ config . SERVICE_NAME } _get_ticks_accounts_to_update` ,
76
+ accountsToUpdate . length ,
77
+ ) ;
69
78
const idToSubaccount : _ . Dictionary < SubaccountFromDatabase > = _ . keyBy (
70
79
subaccountsWithTransfers ,
71
80
'id' ,
72
81
) ;
82
+ const getFundingIndexStart : number = Date . now ( ) ;
73
83
const blockHeightToFundingIndexMap : _ . Dictionary < FundingIndexMap > = await
74
84
getBlockHeightToFundingIndexMap (
75
85
subaccountsWithTransfers ,
76
86
accountsToUpdate ,
77
87
txId ,
78
88
) ;
89
+ stats . timing (
90
+ `${ config . SERVICE_NAME } _get_ticks_funding_indices` ,
91
+ new Date ( ) . getTime ( ) - getFundingIndexStart ,
92
+ ) ;
79
93
94
+ const getAccountInfoStart : number = Date . now ( ) ;
80
95
const [
81
96
subaccountTotalTransfersMap ,
82
97
openPerpetualPositions ,
@@ -122,7 +137,12 @@ export async function getPnlTicksCreateObjects(
122
137
OraclePriceTable . findLatestPrices ( blockHeight ) ,
123
138
FundingIndexUpdatesTable . findFundingIndexMap ( blockHeight ) ,
124
139
] ) ;
140
+ stats . timing (
141
+ `${ config . SERVICE_NAME } _get_ticks_account_info` ,
142
+ new Date ( ) . getTime ( ) - getAccountInfoStart ,
143
+ ) ;
125
144
145
+ const computePnlStart : number = Date . now ( ) ;
126
146
const newTicksToCreate : PnlTicksCreateObject [ ] = accountsToUpdate . map (
127
147
( account : string ) => getNewPnlTick (
128
148
account ,
@@ -139,6 +159,10 @@ export async function getPnlTicksCreateObjects(
139
159
currentFundingIndexMap ,
140
160
) ,
141
161
) ;
162
+ stats . timing (
163
+ `${ config . SERVICE_NAME } _get_ticks_compute_pnl` ,
164
+ new Date ( ) . getTime ( ) - computePnlStart ,
165
+ ) ;
142
166
return newTicksToCreate ;
143
167
}
144
168
0 commit comments