Skip to content

Commit

Permalink
add telemetry and logs for liquidation daemon (#2122)
Browse files Browse the repository at this point in the history
(cherry picked from commit 5030459)

# Conflicts:
#	protocol/daemons/liquidation/client/grpc_helper.go
  • Loading branch information
jayy04 authored and mergify[bot] committed Aug 21, 2024
1 parent af25ad8 commit 787ae8a
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 4 deletions.
48 changes: 48 additions & 0 deletions protocol/daemons/liquidation/client/grpc_helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"fmt"
"time"

errorsmod "cosmossdk.io/errors"
"github.com/cosmos/cosmos-sdk/telemetry"
"github.com/cosmos/cosmos-sdk/types/grpc"
"github.com/cosmos/cosmos-sdk/types/query"
Expand Down Expand Up @@ -241,11 +242,58 @@ func (c *Client) SendLiquidatableSubaccountIds(
subaccountOpenPositionInfo = append(subaccountOpenPositionInfo, *openPositionInfoMap[perpetualId])
}

<<<<<<< HEAD
request := &api.LiquidateSubaccountsRequest{
BlockHeight: blockHeight,
LiquidatableSubaccountIds: liquidatableSubaccountIds,
NegativeTncSubaccountIds: negativeTncSubaccountIds,
SubaccountOpenPositionInfo: subaccountOpenPositionInfo,
=======
// Break this down to multiple requests if the number of subaccounts is too large.

// Liquidatable subaccount ids.
requests := GenerateLiquidateSubaccountsPaginatedRequests(
liquidatableSubaccountIds,
blockHeight,
pageLimit,
)

// Negative TNC subaccount ids.
requests = append(
requests,
GenerateNegativeTNCSubaccountsPaginatedRequests(
negativeTncSubaccountIds,
blockHeight,
pageLimit,
)...,
)

// Subaccount open position info.
requests = append(
requests,
GenerateSubaccountOpenPositionPaginatedRequests(
subaccountOpenPositionInfo,
blockHeight,
pageLimit,
)...,
)

telemetry.ModuleSetGauge(
metrics.LiquidationDaemon,
float32(len(requests)),
metrics.NumRequests,
metrics.Count,
)

for _, req := range requests {
if _, err := c.LiquidationServiceClient.LiquidateSubaccounts(ctx, req); err != nil {
return errorsmod.Wrapf(
err,
"failed to send liquidatable subaccount ids to protocol at block height %d",
blockHeight,
)
}
>>>>>>> 50304592 (add telemetry and logs for liquidation daemon (#2122))
}

if _, err := c.LiquidationServiceClient.LiquidateSubaccounts(ctx, request); err != nil {
Expand Down
24 changes: 20 additions & 4 deletions protocol/daemons/liquidation/client/sub_task_runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,13 +119,21 @@ func (c *Client) FetchApplicationStateAtBlockHeight(
// Subaccounts
subaccounts, err = c.GetAllSubaccounts(queryCtx, liqFlags.QueryPageLimit)
if err != nil {
return nil, nil, err
return nil, nil, errorsmod.Wrapf(
err,
"failed to fetch subaccounts at block height %d",
blockHeight,
)
}

// Market prices
marketPrices, err := c.GetAllMarketPrices(queryCtx, liqFlags.QueryPageLimit)
if err != nil {
return nil, nil, err
return nil, nil, errorsmod.Wrapf(
err,
"failed to fetch market prices at block height %d",
blockHeight,
)
}
marketPricesMap := lib.UniqueSliceToMap(marketPrices, func(m pricestypes.MarketPrice) uint32 {
return m.Id
Expand All @@ -134,13 +142,21 @@ func (c *Client) FetchApplicationStateAtBlockHeight(
// Perpetuals
perpetuals, err := c.GetAllPerpetuals(queryCtx, liqFlags.QueryPageLimit)
if err != nil {
return nil, nil, err
return nil, nil, errorsmod.Wrapf(
err,
"failed to fetch perpetuals at block height %d",
blockHeight,
)
}

// Liquidity tiers
liquidityTiers, err := c.GetAllLiquidityTiers(queryCtx, liqFlags.QueryPageLimit)
if err != nil {
return nil, nil, err
return nil, nil, errorsmod.Wrapf(
err,
"failed to fetch liquidity tiers at block height %d",
blockHeight,
)
}
liquidityTiersMap := lib.UniqueSliceToMap(liquidityTiers, func(l perptypes.LiquidityTier) uint32 {
return l.Id
Expand Down
1 change: 1 addition & 0 deletions protocol/lib/metrics/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,7 @@ const (
GetSubaccountsFromKey = "get_subaccounts_from_key"
LiquidatableSubaccountIds = "liquidatable_subaccount_ids"
LiquidationDaemon = "liquidation_daemon"
NumRequests = "num_requests"
NegativeTncSubaccountIds = "negative_tnc_subaccount_ids"
PageLimit = "page_limit"
SendLiquidatableSubaccountIds = "send_liquidatable_subaccount_ids"
Expand Down

0 comments on commit 787ae8a

Please sign in to comment.