You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We can easily run dist-tests locally and it works fine. We can run them inside remote Kubernetes cluster as well and it also works.
A single point we miss right now is to get the tests execution status, inside the remote Kubernetes, in an suitable way to be able to
Identify test execution status
Identify exact commit of the codex which fails
Identify exact commit of the tests which fails
We can implement it in the following way
Run tests inside remote Kubernetes
Ship runner logs to Elasticsearch
Visualize logs in Kibana to get the data about tests execution status
Search for logs in Kibana to get all tests debug data
Visualize tests execution status in Grafana and probably make it publicly available
To implement that we should add some additional data into the logs and also add additional log file.
Proposal
Add additional log file to the tests execution
07-50-31Z_DownloadTests - Existing - Folder with tests debug logs and metrics
07-50-31Z_DownloadTests_FAILED.log - Existing - Failed logs
07-50-31Z_DownloadTests_STATUS.log - Proposed - Test run status
Add additional fields to every log file
runid - Unique ID of the tests run
category - Category of the tests
name - Test name
By using these fields in the Kibana, we would be able to get data for
All logs for the specific run
All logs for Short or Long tests category
All logs for specific test by name
Status log fields
Field
Example
Default
Set mode
Description
time
Jul 17, 2023 @ 10:46:13.455
%time%
Auto by app
Time of the log entry
runid
20230717-104613
null
Via env var
Unique ID of the test run
category
short
%category%
Auto by app
Test category
name
DownloadTests
%name%
Auto by app
Test name
status
successful
%status%
Auto by app
Test execution status
testid
sha-3257e42
null
Via env var
cs-codex-dist-tests commit ID
codexid
codexstorage/nim-codex:sha-a899384
%docker image%
Auto by app
Codex Docker image ID
Status log example
Log format can be in different format, but in case of JSON, parsing should be easier
We probably should consider to add a branch name to the table in case we will run tests from a non-default one. If so, app should handle one more variable like BRANCH.
Intro
We can easily run dist-tests locally and it works fine. We can run them inside remote Kubernetes cluster as well and it also works.
A single point we miss right now is to get the tests execution status, inside the remote Kubernetes, in an suitable way to be able to
We can implement it in the following way
To implement that we should add some additional data into the logs and also add additional log file.
Proposal
Add additional log file to the tests execution
Add additional fields to every log file
By using these fields in the Kibana, we would be able to get data for
run
Short
orLong
tests categoryname
Status log fields
time
Jul 17, 2023 @ 10:46:13.455
%time%
runid
20230717-104613
null
category
short
%category%
name
DownloadTests
%name%
status
successful
%status%
testid
sha-3257e42
null
codexid
codexstorage/nim-codex:sha-a899384
%docker image%
Status log example
Log format can be in different format, but in case of JSON, parsing should be easier
Elasticsearch Demo index
We can use this example to create Demo index in Elasticsearch and put some data to visualize it in Kibana and Grafana
Kibana and Grafana visualization of the data from the Status log
Screenshots
Implementation
RUNID
variable to appCODEXID
variable to app (reuseCODEXDOCKERIMAGE
?)RUNID
variable to app and it should be added to every log line after the timeCATEGORY
to every log line after theRUNID
NAME
to every log line after theCATEGORY
time - runid - category - name - ...
Comments
The text was updated successfully, but these errors were encountered: