Skip to content

Commit 5b49c90

Browse files
authored
[IND-520] Add more pnl stats (#826)
1 parent b5d4e8a commit 5b49c90

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

indexer/services/roundtable/src/helpers/pnl-ticks-helper.ts

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { logger } from '@dydxprotocol-indexer/base';
1+
import { logger, stats } from '@dydxprotocol-indexer/base';
22
import {
33
AssetPositionTable,
44
FundingIndexMap,
@@ -36,6 +36,7 @@ export async function getPnlTicksCreateObjects(
3636
blockTime: IsoString,
3737
txId: number,
3838
): Promise<PnlTicksCreateObject[]> {
39+
const startGetPnlTicksCreateObjects: number = Date.now();
3940
const pnlTicksToBeCreatedAt: DateTime = DateTime.utc();
4041
const [
4142
mostRecentPnlTicks,
@@ -47,6 +48,10 @@ export async function getPnlTicksCreateObjects(
4748
getMostRecentPnlTicksForEachAccount(),
4849
SubaccountTable.getSubaccountsWithTransfers(blockHeight, { readReplica: true, txId }),
4950
]);
51+
stats.timing(
52+
`${config.SERVICE_NAME}_get_ticks_relevant_accounts`,
53+
new Date().getTime() - startGetPnlTicksCreateObjects,
54+
);
5055
const accountToLastUpdatedBlockTime: _.Dictionary<IsoString> = _.mapValues(
5156
mostRecentPnlTicks,
5257
(pnlTick: PnlTicksCreateObject) => pnlTick.blockTime,
@@ -66,17 +71,27 @@ export async function getPnlTicksCreateObjects(
6671
),
6772
...newSubaccountIds,
6873
];
74+
stats.gauge(
75+
`${config.SERVICE_NAME}_get_ticks_accounts_to_update`,
76+
accountsToUpdate.length,
77+
);
6978
const idToSubaccount: _.Dictionary<SubaccountFromDatabase> = _.keyBy(
7079
subaccountsWithTransfers,
7180
'id',
7281
);
82+
const getFundingIndexStart: number = Date.now();
7383
const blockHeightToFundingIndexMap: _.Dictionary<FundingIndexMap> = await
7484
getBlockHeightToFundingIndexMap(
7585
subaccountsWithTransfers,
7686
accountsToUpdate,
7787
txId,
7888
);
89+
stats.timing(
90+
`${config.SERVICE_NAME}_get_ticks_funding_indices`,
91+
new Date().getTime() - getFundingIndexStart,
92+
);
7993

94+
const getAccountInfoStart: number = Date.now();
8095
const [
8196
subaccountTotalTransfersMap,
8297
openPerpetualPositions,
@@ -122,7 +137,12 @@ export async function getPnlTicksCreateObjects(
122137
OraclePriceTable.findLatestPrices(blockHeight),
123138
FundingIndexUpdatesTable.findFundingIndexMap(blockHeight),
124139
]);
140+
stats.timing(
141+
`${config.SERVICE_NAME}_get_ticks_account_info`,
142+
new Date().getTime() - getAccountInfoStart,
143+
);
125144

145+
const computePnlStart: number = Date.now();
126146
const newTicksToCreate: PnlTicksCreateObject[] = accountsToUpdate.map(
127147
(account: string) => getNewPnlTick(
128148
account,
@@ -139,6 +159,10 @@ export async function getPnlTicksCreateObjects(
139159
currentFundingIndexMap,
140160
),
141161
);
162+
stats.timing(
163+
`${config.SERVICE_NAME}_get_ticks_compute_pnl`,
164+
new Date().getTime() - computePnlStart,
165+
);
142166
return newTicksToCreate;
143167
}
144168

0 commit comments

Comments
 (0)