-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CLOB-1054] add some telemetry for conditional order triggering #958
Conversation
WalkthroughThe recent updates involve the addition of new constants related to trade price types and conditional order triggers in the metrics module, refining the system's capability to monitor trading activities more precisely. In the clob (central limit order book) module, adjustments are made to the conditional order triggering mechanism. This includes the removal of a telemetry counter and the introduction of new functions and logic to better manage the conditions under which orders are triggered, ensuring that trade prices are within specified bounds. Changes
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 1
Configuration used: CodeRabbit UI
Files selected for processing (4)
- protocol/lib/metrics/constants.go (2 hunks)
- protocol/lib/metrics/metric_keys.go (1 hunks)
- protocol/x/clob/keeper/stateful_order_state.go (1 hunks)
- protocol/x/clob/keeper/untriggered_conditional_orders.go (3 hunks)
Additional comments: 6
protocol/x/clob/keeper/untriggered_conditional_orders.go (4)
7-14: The new imports for telemetry and metrics are consistent with the PR's objectives to enhance telemetry for conditional order triggering.
291-422: > Note: This review was outside the patches, so it was mapped to the patch with the greatest overlap. Original lines [273-321]
The modifications to the
MaybeTriggerConditionalOrders
function, including the logic for triggering orders based on oracle price and last traded price, align with the PR's objectives to refine the control flow and logic for triggering conditional orders.
325-367: The addition of the
TriggerOrdersWithPrice
function, which triggers orders and emits relevant metrics, is well-implemented and supports the PR's goal of enhancing telemetry.369-421: The
getClampedTradePricesForTriggering
function, which calculates clamped trade prices for order triggering, is a necessary addition to support the refined triggering logic.protocol/lib/metrics/constants.go (2)
34-34: The addition of the constant
Type
is consistent with the existing naming conventions and seems appropriate for telemetry purposes.123-124: The new constants
MaxTradePrice
andMinTradePrice
have been added. Ensure that these constants are being used in the telemetry logic as intended and that their introduction does not conflict with any existing metrics.Verification successful
The constants
MaxTradePrice
andMinTradePrice
are actively used in the codebase, particularly within theuntriggered_conditional_orders.go
file, which aligns with the intent of the PR to enhance telemetry. They are also referenced in other files related to trade price management, indicating their integration into the system's logic.Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify the usage of MaxTradePrice and MinTradePrice in the codebase. rg --type go "MaxTradePrice|MinTradePrice"Length of output: 3160
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 0
Configuration used: CodeRabbit UI
Files selected for processing (1)
- protocol/lib/metrics/metric_keys.go (1 hunks)
Files skipped from review as they are similar to previous changes (1)
- protocol/lib/metrics/metric_keys.go
), | ||
), | ||
) | ||
|
||
telemetry.IncrCounterWithLabels( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pls use new metrics library!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also define new non-modular metric name.
also wondering why we moved this out of MustTriggerConditionalOrder
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so that we can add price type as a label (without passing it down as an argument)
metrics.GetLabelForStringValue(metrics.Type, priceType), | ||
metrics.GetLabelForIntValue(metrics.PerpetualId, int(perpetualId)), | ||
} | ||
telemetry.SetGaugeWithLabels([]string{metrics.ClobConditionalOrderTriggerPrice}, priceFloat, labels) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
new metrics library pls!
"github.com/dydxprotocol/v4-chain/protocol/lib/metrics"
can you make a ticket for O(3N) -> O(N)? |
Co-authored-by: Jonathan Fung <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 0
Configuration used: CodeRabbit UI
Files selected for processing (1)
- protocol/x/clob/keeper/untriggered_conditional_orders.go (3 hunks)
Files skipped from review as they are similar to previous changes (1)
- protocol/x/clob/keeper/untriggered_conditional_orders.go
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 0
Configuration used: CodeRabbit UI
Files selected for processing (1)
- protocol/x/clob/keeper/untriggered_conditional_orders.go (3 hunks)
Files skipped from review as they are similar to previous changes (1)
- protocol/x/clob/keeper/untriggered_conditional_orders.go
Changelist
Test Plan
[Describe how this PR was tested (if applicable)]
Author/Reviewer Checklist
state-breaking
label.indexer-postgres-breaking
label.PrepareProposal
orProcessProposal
, manually add the labelproposal-breaking
.feature:[feature-name]
.backport/[branch-name]
.refactor
,chore
,bug
.