Hi, I was trying to make this Daml Command Life Cycle and metrics table based on concord ledger. Can anyone help me with this? There are a lot of assumptions so … feel free to tell me I’m wrong
Image a command is submitted and it will go through
- Client Node (Participating node)
Step |
Metric |
Checking/Validation client cert and token |
- Is there a metric for this? |
Validating Daml command |
daml.commands.submissions |
|
Is there a metric for all the time spent on committer nodes from here |
- Committer Node (Replica)
Step |
Metric |
Fetching the package |
daml.execution.get_lf_package |
Preparing the transaction |
daml.execution.total |
Forming Consensus |
Some metrics on ledger level |
Persist the transaction |
Some metrics on ledger level |
- Client Node (Participating node)
Step |
Metric |
Storing the transaction |
daml.index.db.store_ledger_entry (Is that right?) |
Stream Result to the Ledger API |
Not sure if there a metric for this |
2 Likes
If by any chance you are using the sandbox metrics documentation page as your reference, please note that it’s mostly comprehensive but valid only for the sandbox. With that said, there are metrics that happen to be shared as there are shared components, but for metrics specific to VMBC replica nodes please refer to its documentation.
Regarding the table you put together:
- there is no metric for the validation of authorization tokens and certificates
- the time taken to validate that a gRPC command is well formed is measured by
daml.commands.validation
-
daml.commands.submissions
measures the overall time taken to validate, deduplicate and interpret a command
- as mentioned, for metrics on the replica please refer to the VMBC documentation
- in particular,
daml.execution
measures the interpretation time on the participant, not the time taken on the committer to re-interpret
-
daml.index.db.store_ledger_entry
is indeed the time to store the transaction coming back from the committer to the participant index
- there are a few metrics under
daml.lapi.transaction_service
keeping track of the time spent on each service, but for streaming please note that it just measure that latency between subscription and returning the first result
3 Likes
That’s right. I was referring to the sandbox doco Daml Sandbox — Daml SDK 1.11.0 documentation. Just curious, does it also apply to Daml on SQL?
To the best of my understanding, they all use the same implementation of the participant at this point, but as a note (also for future readers) metrics are not a strict part of the Ledger API, so different vendors may track different metrics under different names, using different reporters, and so on.