Bumps the go_modules group with 2 updates in the /src/runtime directory: [github.com/containerd/containerd](https://github.com/containerd/containerd) and [github.com/containers/podman/v4](https://github.com/containers/podman). Bumps the go_modules group with 4 updates in the /src/tools/csi-kata-directvolume directory: [golang.org/x/sys](https://github.com/golang/sys), google.golang.org/protobuf, [golang.org/x/net](https://github.com/golang/net) and [google.golang.org/grpc](https://github.com/grpc/grpc-go). Bumps the go_modules group with 2 updates in the /src/tools/log-parser directory: [golang.org/x/sys](https://github.com/golang/sys) and gopkg.in/yaml.v3. Bumps the go_modules group with 2 updates in the /tests directory: [golang.org/x/sys](https://github.com/golang/sys) and gopkg.in/yaml.v3. Bumps the go_modules group with 2 updates in the /tools/testing/kata-webhook directory: [golang.org/x/sys](https://github.com/golang/sys) and [golang.org/x/net](https://github.com/golang/net). Updates `github.com/containerd/containerd` from 1.7.2 to 1.7.11 - [Release notes](https://github.com/containerd/containerd/releases) - [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md) - [Commits](https://github.com/containerd/containerd/compare/v1.7.2...v1.7.11) Updates `github.com/containers/podman/v4` from 4.2.0 to 4.9.4 - [Release notes](https://github.com/containers/podman/releases) - [Changelog](https://github.com/containers/podman/blob/v4.9.4/RELEASE_NOTES.md) - [Commits](https://github.com/containers/podman/compare/v4.2.0...v4.9.4) Updates `google.golang.org/protobuf` from 1.29.1 to 1.33.0 Updates `github.com/cyphar/filepath-securejoin` from 0.2.3 to 0.2.4 - [Release notes](https://github.com/cyphar/filepath-securejoin/releases) - [Commits](https://github.com/cyphar/filepath-securejoin/compare/v0.2.3...v0.2.4) Updates `golang.org/x/sys` from 0.15.0 to 0.19.0 - [Commits](https://github.com/golang/sys/compare/v0.15.0...v0.19.0) Updates `google.golang.org/protobuf` from 1.31.0 to 1.33.0 Updates `golang.org/x/net` from 0.19.0 to 0.23.0 - [Commits](https://github.com/golang/net/compare/v0.19.0...v0.23.0) Updates `google.golang.org/grpc` from 1.59.0 to 1.63.2 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.59.0...v1.63.2) Updates `golang.org/x/sys` from 0.0.0-20191026070338-33540a1f6037 to 0.1.0 - [Commits](https://github.com/golang/sys/compare/v0.15.0...v0.19.0) Updates `gopkg.in/yaml.v3` from 3.0.0-20200313102051-9f266ea9e77c to 3.0.0 Updates `golang.org/x/sys` from 0.0.0-20220429233432-b5fbb4746d32 to 0.19.0 - [Commits](https://github.com/golang/sys/compare/v0.15.0...v0.19.0) Updates `gopkg.in/yaml.v3` from 3.0.0-20210107192922-496545a6307b to 3.0.0 Updates `golang.org/x/sys` from 0.15.0 to 0.19.0 - [Commits](https://github.com/golang/sys/compare/v0.15.0...v0.19.0) Updates `golang.org/x/net` from 0.19.0 to 0.23.0 - [Commits](https://github.com/golang/net/compare/v0.19.0...v0.23.0) --- updated-dependencies: - dependency-name: github.com/containerd/containerd dependency-type: direct:production dependency-group: go_modules - dependency-name: github.com/containers/podman/v4 dependency-type: direct:production dependency-group: go_modules - dependency-name: google.golang.org/protobuf dependency-type: direct:production dependency-group: go_modules - dependency-name: github.com/cyphar/filepath-securejoin dependency-type: indirect dependency-group: go_modules - dependency-name: golang.org/x/sys dependency-type: indirect dependency-group: go_modules - dependency-name: google.golang.org/protobuf dependency-type: indirect dependency-group: go_modules - dependency-name: golang.org/x/net dependency-type: direct:production dependency-group: go_modules - dependency-name: google.golang.org/grpc dependency-type: direct:production dependency-group: go_modules - dependency-name: golang.org/x/sys dependency-type: indirect dependency-group: go_modules - dependency-name: gopkg.in/yaml.v3 dependency-type: indirect dependency-group: go_modules - dependency-name: golang.org/x/sys dependency-type: indirect dependency-group: go_modules - dependency-name: gopkg.in/yaml.v3 dependency-type: indirect dependency-group: go_modules - dependency-name: golang.org/x/sys dependency-type: indirect dependency-group: go_modules - dependency-name: golang.org/x/net dependency-type: indirect dependency-group: go_modules ... Signed-off-by: dependabot[bot] <support@github.com>
kata-log-parser
Introduction
kata-log-parser is a tool that combines logfiles generated by the various
system components, sorts them by timestamp, and re-displays the log entries. A
time delta is added to show how much time has elapsed between each log entry.
The tool is also able to check the validity of all log records, can re-format the logs, and output them in a different format.
For more information on the kata-log-parser tool, use the help command:
$ kata-log-parser --help
Logfile requirements
The tool reads logfiles in the logfmt structured
logging format. For example, a logfile created by the golang
Logrus package.
By default the tool requires that the following fields are defined for each log record:
-
Log level field (
level): must be one of the LogrusLogLevelvalues in string format (e.g.debug,info,error). -
Name field (
name): a single word that specifies the name of the application that generates the log record (e.g.kata-runtime). -
Process ID field (
pid): the numeric process identifier for the process that generates the log record. -
Source field (
source): a single word that specifies the name of a unique part of the system (e.g.runtime). -
Timestamp field (
time): in RFC3339 format and including a nanosecond value.
Additional to the fields above, the tool also expects the following field:
- Message field (
msg): a textual message allowing log records to be disambiguated.
Note: These requirements can be ignored by using the --ignore-missing-fields flag
Component logfiles
The primary logfiles the tool reads are:
-
The runtime log.
This log also includes virtcontainers log entries and agent best effort logs unpacking (unless
--no-agent-unpackis specified).
Usage
To merge all logs:
- Enable full debug.
- Clear the systemd journal (optional):
$ sudo systemctl stop systemd-journald $ sudo rm -f /var/log/journal/*/* /run/log/journal/*/* $ sudo systemctl start systemd-journald - Create a Kata container.
- Collect the logs (alternatively to journal clearing you may consider constraining collected logs by adding
--since=<container creation time>).$ sudo journalctl -q -o cat -a -t kata > ./kata.log - Ensure the logs are readable:
$ sudo chown $USER *.log - To install the program:
$ go get -d github.com/kata-containers/kata-containers $ pushd $GOPATH/src/github.com/kata-containers/kata-containers/src/tools/log-parser && make install && popd - To run the program:
$ kata-log-parser kata.log
Advanced processing using jq
jq is a command-line JSON processor which can be combined with kata-log-parser
to filter and fetch specific log entries.
Examples
Get only the raw guest console output
$ kata-log-parser --ignore-missing-fields --output-format json --no-agent-unpack kata.log | jq '.Entries[] | select(.Msg=="reading guest console") | .Data.vmconsole'
Get only the agent's unpacked log entries
This example also demonstrates how to get logs from the journal directly to the parser.
$ journalctl -q -o cat -a -t kata | kata-log-parser --ignore-missing-fields --output-format json - | jq '.Entries[] | select(.Source=="agent")'
Get only certain Sandbox ID logs
These logs sourced from containerd-kata-shim-v2 and being printed along with their Msg content, Time and Container ID.
$ kata-log-parser --ignore-missing-fields --output-format json kata.log | jq '.Entries[] | select(.Source=="containerd-kata-shim-v2" and .Sandbox=="2fa50251ccc3b9a85350e8fe6836d1875023714153b503b548360946fcec3829") | "\(.Msg) \(.Time) \(.Container)"'