-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request juju#17046 from cderici/log-with-tagsf-in-probably…
…UpdateStatus-JUJU-5551 juju#17046 This has the initial changes to ultimately move the status history in state package out of the mongo and into the logs on disk via whatever logging interface is used (e.g., debug-log, loki). It uses the new `InfoWithLabelsf` (added in juju/loggo#48) in the `probablyUpdateStatusHistory`, along with the DB write (we're keeping it for now). Couple of notes: - There's a better way to do this, instead of passing individual parameters, we could create an interface like: ```go type StatusEntity interface { Entity StatusKind() string StatusId() string } ``` and have the entities implement it and just call these in `probablyUpdateStatusHistory`. But I didn't bother too much, since the entire `state` package, including `probablyUpdateStatusHistory` and everything's going away eventually. - Kept the `globalKey` argument because the document for the DB write uses it, and again, we don't have a good way of generating it uniformly across entities. ## Checklist <!-- If an item is not applicable, use `~strikethrough~`. --> - [x] Code style: imports ordered, good names, simple structure, etc - [x] Comments saying why design decisions were made - [x] Go unit tests, with comments saying what you're testing ## QA steps Bootstrap with this change: ``` juju bootstrap localhost deleteme ``` Add a model and a charm: ``` juju add-model tst && juju deploy ubuntu -n 3 ``` Then while it's going up take a look at the debug-logs to see status updates: ``` juju debug-log -m controller --include-module juju.status ``` You should see something like: ``` machine-0: 18:50:01 INFO juju.status domain:status,id:ubuntu/2,kind:unit-workload,value:waiting waiting for machine machine-0: 18:50:01 INFO juju.status kind:machine,value:started,domain:status,id:0 machine-0: 18:50:02 INFO juju.status kind:unit-workload-version,value:unknown,domain:status,id:ubuntu/2 machine-0: 18:50:02 INFO juju.status domain:status,id:ubuntu/2,kind:unit-agent,value:allocating machine-0: 18:50:03 INFO juju.status domain:status,id:0,kind:machine,value:pending machine-0: 18:50:04 INFO juju.status domain:status,id:0,kind:machine-instance,value:pending machine-0: 18:50:05 INFO juju.status kind:machine,value:pending,domain:status,id:1 machine-0: 18:50:05 INFO juju.status value:pending,domain:status,id:1,kind:machine-instance machine-0: 18:50:06 INFO juju.status id:2,kind:machine,value:pending,domain:status machine-0: 18:50:06 INFO juju.status value:pending,domain:status,id:2,kind:machine-instance machine-0: 18:50:15 INFO juju.status value:allocating,domain:status,id:0,kind:machine-instance starting machine-0: 18:50:18 INFO juju.status value:allocating,domain:status,id:1,kind:machine-instance starting machine-0: 18:50:20 INFO juju.status id:0,kind:machine-instance,value:allocating,domain:status acquiring LXD image machine-0: 18:50:20 INFO juju.status domain:status,id:0,kind:machine-instance,value:allocating Creating container machine-0: 18:50:22 INFO juju.status kind:machine-instance,value:allocating,domain:status,id:1 acquiring LXD image machine-0: 18:50:23 INFO juju.status domain:status,id:1,kind:machine-instance,value:allocating Creating container machine-0: 18:50:25 INFO juju.status id:2,kind:machine-instance,value:allocating,domain:status starting machine-0: 18:50:30 INFO juju.status domain:status,id:2,kind:machine-instance,value:allocating acquiring LXD image machine-0: 18:50:30 INFO juju.status kind:machine-instance,value:allocating,domain:status,id:2 Creating container machine-0: 18:51:02 INFO juju.status kind:machine,value:started,domain:status,id:0 machine-0: 18:51:02 INFO juju.status id:0,kind:machine-instance,value:running,domain:status Container started machine-0: 18:51:04 INFO juju.status id:0,kind:machine-lxd-profile,value:applied,domain:status machine-0: 18:51:44 INFO juju.status kind:machine-instance,value:running,domain:status,id:0 Running machine-0: 18:51:50 INFO juju.status domain:status,id:1,kind:machine-instance,value:running Container started machine-0: 18:51:50 INFO juju.status domain:status,id:2,kind:machine-instance,value:running Container started machine-0: 18:51:59 INFO juju.status id:1,kind:machine-lxd-profile,value:applied,domain:status machine-0: 18:51:59 INFO juju.status domain:status,id:2,kind:machine-lxd-profile,value:applied machine-0: 18:52:02 INFO juju.status kind:machine,value:started,domain:status,id:0 machine-0: 18:52:50 INFO juju.status id:1,kind:machine-instance,value:running,domain:status Running machine-0: 18:52:52 INFO juju.status domain:status,id:2,kind:machine-instance,value:running Running machine-0: 18:53:03 INFO juju.status kind:machine,value:started,domain:status,id:0 machine-0: 18:54:07 INFO juju.status kind:machine,value:started,domain:status,id:0 machine-0: 18:55:09 INFO juju.status domain:status,id:0,kind:machine,value:started machine-0: 18:56:10 INFO juju.status id:0,kind:machine,value:started,domain:status machine-0: 18:57:09 INFO juju.status id:ubuntu/0,kind:unit-workload,value:waiting,domain:status installing agent machine-0: 18:57:10 INFO juju.status domain:status,id:0,kind:machine,value:started machine-0: 18:57:16 INFO juju.status domain:status,id:0,kind:machine,value:started machine-0: 18:57:22 INFO juju.status id:ubuntu/0,kind:unit-workload,value:waiting,domain:status agent initialising machine-0: 18:58:01 INFO juju.status kind:unit-workload,value:waiting,domain:status,id:ubuntu/2 installing agent machine-0: 18:58:02 INFO juju.status domain:status,id:ubuntu/1,kind:unit-workload,value:waiting installing agent machine-0: 18:58:11 INFO juju.status value:started,domain:status,id:0,kind:machine machine-0: 18:58:23 INFO juju.status id:2,kind:machine,value:started,domain:status machine-0: 18:58:24 INFO juju.status domain:status,id:ubuntu/2,kind:unit-workload,value:waiting agent initialising machine-0: 18:58:24 INFO juju.status value:started,domain:status,id:1,kind:machine machine-0: 18:58:25 INFO juju.status value:waiting,domain:status,id:ubuntu/1,kind:unit-workload agent initialising ``` You may also use json format to see the exact json objects being used: ``` juju debug-log -m controller --include-module juju.status --format json --replay ``` ## Links <!-- Link to all relevant specification, documentation, bug, issue or JIRA card. --> **Launchpad bug:** https://bugs.launchpad.net/juju/+bug/ **Jira card:** JUJU-5551
- Loading branch information
Showing
17 changed files
with
250 additions
and
92 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.