Skip to content

DAOS-17629 engine: unified logs' timestamp format - #16772

Merged
daltonbohning merged 7 commits into
masterfrom
grom72/DAOS-17629-unified-log-time-stamp-format
Sep 17, 2025
Merged

daltonbohning merged 7 commits into
masterfrom
grom72/DAOS-17629-unified-log-time-stamp-format

Conversation

@grom72

@grom72 grom72 commented Aug 27, 2025 •

Copy link
Copy Markdown
Contributor

DAOS-17629 engine: Engine time log format to follow server's one DAOS engine's log line should include the year and microseconds in the time stamp format.

The DAOS engine log line should not include '-' as a date and time separator in favour of a space.

Adjust the log parser for the new date and time format:

  • calculate the beginning of the message based on the actual field length
  • data and time are two separate fields.
    Increase the indexes of remaining fields by one.

New time stamp format: YYYY/MM/DD HH:MM:SS.mmmmmm

Steps for the author:

  • Commit message follows the guidelines.
  • Appropriate Features or Test-tag pragmas were used.
  • Appropriate Functional Test Stages were run.
  • At least two positive code reviews including at least one code owner from each category referenced in the PR.
  • Testing is complete. If necessary, forced-landing label added and a reason added in a comment.

After all prior steps are complete:

  • Gatekeeper requested (daos-gatekeeper added as a reviewer).

@github-actions

github-actions Bot commented Aug 27, 2025 •

Copy link
Copy Markdown

Ticket title is 'Server and engine logs use different timestamp formats'
Status is 'Resolved'
Labels: 'usability'
https://daosio.atlassian.net/browse/DAOS-17629

@grom72
grom72 force-pushed the grom72/DAOS-17629-unified-log-time-stamp-format branch from dae81f1 to 5024569 Compare August 27, 2025 09:58
@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage NLT on EL 8.8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-16772/16/display/redirect

@grom72
grom72 force-pushed the grom72/DAOS-17629-unified-log-time-stamp-format branch from 657daa5 to e3b6097 Compare September 2, 2025 08:03
@daosbuild3

Copy link
Copy Markdown
Collaborator

@grom72
grom72 force-pushed the grom72/DAOS-17629-unified-log-time-stamp-format branch 2 times, most recently from ca54427 to cb9daed Compare September 2, 2025 12:29
@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Unit Test bdev on EL 8.8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-16772/25/display/redirect

@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Unit Test with memcheck on EL 8.8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-16772/25/display/redirect

@daosbuild3

Copy link
Copy Markdown
Collaborator

@daosbuild3

Copy link
Copy Markdown
Collaborator

@grom72 grom72 changed the title DAOS-17629 engine: unified logs' timestamp forma DAOS-17629 engine: unified logs' timestamp format Sep 3, 2025
@daosbuild3

Copy link
Copy Markdown
Collaborator

@grom72
grom72 force-pushed the grom72/DAOS-17629-unified-log-time-stamp-format branch 2 times, most recently from c4ef3df to 48aff42 Compare September 8, 2025 11:39
@daosbuild3

Copy link
Copy Markdown
Collaborator

@grom72
grom72 force-pushed the grom72/DAOS-17629-unified-log-time-stamp-format branch 4 times, most recently from a85865b to 6447128 Compare September 9, 2025 05:35
DAOS engine's log line should include the year and microseconds in
the time stampformat.

DAOS engine log line should exclude '-' as a date and time separator
in favour of space.

Adjust the log parser for the new date and time format:
- calculate the beginning of the message based on the actual field length
- data and time are two separate fields.
  Increase the indexes of remaining fields by one.

Allow-unstable-test: true

Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
@grom72
grom72 force-pushed the grom72/DAOS-17629-unified-log-time-stamp-format branch from 6447128 to a043fb8 Compare September 9, 2025 05:37
@grom72
grom72 marked this pull request as ready for review September 9, 2025 11:55
@grom72
grom72 requested a review from a team as a code owner September 9, 2025 11:55
@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Functional Hardware Medium Verbs Provider MD on SSD completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-16772/36/execution/node/1605/log

Comment thread src/gurt/debug.c Outdated
Comment thread src/common/debug.c Outdated
Comment thread src/gurt/dlog.c Outdated
Comment thread src/tests/ftest/cart/util/cart_logparse.py Outdated
Comment thread src/tests/ftest/cart/util/cart_logparse.py
Comment thread src/tests/ftest/cart/util/cart_logparse.py
Comment thread src/tests/ftest/cart/util/cart_logparse.py Outdated
Comment thread src/tests/ftest/cart/util/cart_logparse.py Outdated
Comment thread src/tests/ftest/cart/util/cart_logparse.py Outdated
Skip-build-el9-gcc: true
Skip-build-leap15-gcc: true
Skip-build-leap15-icc: true
Skip-build-ubuntu20-gcc: true

Skip-build-el9-rpm: true
Skip-build-leap15-rpm: true

Skip-unit-test: false
Skip-unit-test-memcheck: false
Skip-NLT: false

Allow-unstable-test: true

Skip-func-test-el8: false
Skip-fault-injection-test: false

Skip-func-hw-test: false

Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
Comment thread src/gurt/dlog.c Outdated
Comment thread src/gurt/dlog.c Outdated
Comment thread src/tests/ftest/cart/util/cart_logparse.py Outdated
Comment thread src/tests/ftest/cart/util/cart_logparse.py Outdated
Simplified condition (negation removed)
Extend documentation

Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
@grom72
grom72 requested a review from janekmi September 11, 2025 08:58
Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
@daosbuild3

Copy link
Copy Markdown
Collaborator

Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
@kccain

kccain commented Sep 11, 2025

Copy link
Copy Markdown
Contributor

Currently, I'm not aware of anyone except me using it (and manually, not yet exercised in CI): - the script daos_sys_logscan.py also uses cart_logparse. With master branch (not including this patch) it can scan through a list of engine logfiles having the old timestamp format and produce a report of relevant pool service leadership state transitions, pool map updates, and rebuild activity. This utility has been helpful for example in parsing engine logs provided in bug reports from the field. With the code changes in this branch, the utility fails to parse the same set of legacy-formatted logfiles. It is failing to match even simple regular expressions like the one that looks for the rank assignment log line within a file.

I don't have a lot of time right now to debug and prepare a refreshed version of daos_sys_logscan.py, but just informing about another user of cart_logparse that will need to be updated (and in a way to maintain compatibility between the two timestamp formats).

@grom72

grom72 commented Sep 12, 2025 •

Copy link
Copy Markdown
Contributor Author

I don't have a lot of time right now to debug and prepare a refreshed version of daos_sys_logscan.py, but just informing about another user of cart_logparse that will need to be updated (and in a way to maintain compatibility between the two timestamp formats).

@kccain
Can we backport the daos_sys_logscan.py script to 2.6 branch (#16849) assuming that it is the last release with the old log format?

grom72 added a commit that referenced this pull request Sep 12, 2025
The new log format was proposed and implemented in #16772.
The cart_logparse.py script was modified in #16772 to support
the new log format only.
The daos_sys_logscan.py tool is based on cart_logparse.py script and
after #16772 landing it will no longer support the old log format.

Backporting the tool to release/2.6 enables analysis of the
old logs.

Doc-only: true

Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
Allow-unstable-test: true

Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Functional Hardware Large MD on SSD completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-16772/43/execution/node/1464/log

@grom72

grom72 commented Sep 17, 2025

Copy link
Copy Markdown
Contributor Author

Validation results:

@grom72
grom72 requested a review from a team September 17, 2025 06:11
@daltonbohning daltonbohning added the forced-landing The PR has known failures or has intentionally reduced testing, but should still be landed. label Sep 17, 2025
@daltonbohning
daltonbohning merged commit 4eff681 into master Sep 17, 2025
51 of 53 checks passed
@daltonbohning
daltonbohning deleted the grom72/DAOS-17629-unified-log-time-stamp-format branch September 17, 2025 14:26
@grom72
grom72 restored the grom72/DAOS-17629-unified-log-time-stamp-format branch October 22, 2025 13:07
@grom72
grom72 deleted the grom72/DAOS-17629-unified-log-time-stamp-format branch October 22, 2025 13:12
grom72 added a commit that referenced this pull request Nov 17, 2025
From now on, all dates provided for log operations must be in the ISO 8601
date format: YYYY-MM-DD. Zeros should be added to the beginning of one-digit
months and days.

Harmonize log operations module with the new logs' date/time stamp format
introduced by the #16772 PR:
YYYY-MM-DD HH:MM:SS.mmmmmm

Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>

Cancel-prev-build: false
Allow-unstable-test: true
daltonbohning pushed a commit that referenced this pull request Nov 19, 2025
The new log format was proposed and implemented in #16772.
The cart_logparse.py script was modified in #16772 to support
the new log format only.
The daos_sys_logscan.py tool is based on cart_logparse.py script and
after #16772 landing it will no longer support the old log format.

Backporting the tool to release/2.6 enables analysis of the
old logs.

Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
daltonbohning pushed a commit that referenced this pull request Nov 19, 2025
From now on, all dates provided for log operations must be in the ISO 8601
date format: YYYY-MM-DD. Zeros should be added to the beginning of one-digit
months and days.

Harmonize log operations module with the new logs' date/time stamp format
introduced by the #16772 PR:
YYYY-MM-DD HH:MM:SS.mmmmmm

Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

forced-landing The PR has known failures or has intentionally reduced testing, but should still be landed.

Development

Successfully merging this pull request may close these issues.

5 participants