Skip to content
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

Structured logs: add identifiers & tx hashes in log output #1537

Closed
5 of 9 tasks
Tracked by #1538
adizere opened this issue Nov 3, 2021 · 0 comments · Fixed by #1491
Closed
5 of 9 tasks
Tracked by #1538

Structured logs: add identifiers & tx hashes in log output #1537

adizere opened this issue Nov 3, 2021 · 0 comments · Fixed by #1491
Assignees
Labels
O: code-hygiene Objective: cause to improve code hygiene O: new-feature Objective: cause to add a new feature or support O: usability Objective: cause to improve the user experience (UX) and ease using the product
Milestone

Comments

@adizere
Copy link
Member

adizere commented Nov 3, 2021

Crate

ibc-relayer

Summary of problem

It is currently very difficult to correlate lines of output in the Hermes log. The only support for doing so is the thread identifiers, which became useless once a relayer action (e.g, submitting to a chain) crosses thread boundaries. This is a problem because it's difficult to understand from the log the sequence of steps that Hermes takes towards accomplishing a task such as relaying an IBC ICS20 packet.

Proposal

High level description: Break down Hermes tasks into concrete steps. A single task, such as handing an event, involves multiple steps (all the way from receiving the event from the WS to the last part of submitting the tx to a chain). Each step may span multiple lines of output in the log. All of the steps and the corresponding log lines that pertain to a single task should have an identifier.

In addition to identifiers per task, we would also like to make tx hashes as first-order citizens in the log. Towards this end, at least one of the steps that Hermes takes towards handling an event it should output

Acceptance Criteria

  • break Hermes tasks into discrete steps, and tag all steps & log output for a task with the same identifier;
  • identifier reqs: can be a simple random string (not necessarily universally unique)
  • info level log output detailing the tx hashes that are being handled as part of a task
  • can the logs indicate activity (or lack thereof) in more clearer ways??

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate milestone (priority) applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@adizere adizere added O: new-feature Objective: cause to add a new feature or support O: code-hygiene Objective: cause to improve code hygiene O: usability Objective: cause to improve the user experience (UX) and ease using the product labels Nov 3, 2021
@adizere adizere added this to the v0.8.2 milestone Nov 3, 2021
@adizere adizere added the P-high label Nov 23, 2021
@adizere adizere assigned mzabaluev and unassigned seanchen1991 Nov 23, 2021
@adizere adizere linked a pull request Nov 23, 2021 that will close this issue
5 tasks
@adizere adizere modified the milestones: v0.10.0, v0.10.1 Dec 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
O: code-hygiene Objective: cause to improve code hygiene O: new-feature Objective: cause to add a new feature or support O: usability Objective: cause to improve the user experience (UX) and ease using the product
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants