[00:18] <menn0> axw: I wasn't going to tackle the statemetrics bit so if you've already started on that then great
[00:54] <axw> menn0 wallyworld_: I'm back if you want to chat
[00:54] <wallyworld_> meeting in today's standup HO?
[00:55] <menn0> axw, wallyworld_: sounds good
[02:33] <axw> wallyworld_: what's a sensible upper bound on the flush interval? 10 minutes?
[02:33] <wallyworld_> i was thinking more like seconds
[02:34] <wallyworld_> since we need to not lose errors if agent is killed
[02:34] <wallyworld_> and actually, we should maybe flush immediately if there's an error
[02:34] <wallyworld_> or a warning or ciritical
[02:34] <axw> wallyworld_: it'll flush when the agent shuts down
[02:34] <wallyworld_> what about when it is killed
[02:34] <axw> and it'll go to logsink.log immediately anyway
[02:35] <axw> wallyworld_: what do you mean by killed?
[02:35] <wallyworld_> hard stopped via kill -9 or something
[02:35] <wallyworld_> do we catch signals
[02:35] <axw> wallyworld_: I can't recall if we catch the signal, but we should if we don't
[02:36] <wallyworld_> yep, and systemd restart etc
[02:36] <axw> wallyworld_: SIGTERM should lead to graceful shutdown, which would involve flushing
[02:36] <wallyworld_> ok, all that aside, i think 5 or 10s max for flush interval, IMO
[02:38] <axw> wallyworld_: I'll make it 10 seconds. if we get to 10 seconds then you've basically got no logging happening, and you shouldn't have the flush interval that high anyway
[02:39] <wallyworld_> exactly, hence the desire to not allow the user to do something dumb by mistake
[02:42] <axw> menn0: on the allwatcher frame size thread: doesn't the first response have to have all the records? i.e. like the other watchers, the first response gives you the initial state
[02:43] <menn0> axw: gah, good point
[02:43] <menn0> axw: maybe there needs to be some special handling for the allwatcher
[02:43] <axw> menn0: yeah, it could get pretty huge
[02:43] <axw> menn0: perhaps some kind of continuation flag
[02:44] <menn0> axw: exactly
[03:21] <menn0> wallyworld_: ping
[03:21] <wallyworld_> hey
[03:21] <menn0> wallyworld_: I have some questions about your PR. quick hangout?
[03:21] <wallyworld_> sure
[03:22] <menn0> wallyworld_: standup again?
[03:22] <wallyworld_> yep
[03:57] <wallyworld_> menn0: with where the interface lives, it may be used multiple places so saying it needs to live where it is used doesn't always work. For state, because it's a bit of a ball of mud, we to date have tended to include interfaces for entity foo in the state/foo.go file. For other things like Environ, we have a separate interfaces.go file, but if we were to do that for state as it exists now, it wouldn't be pretty
[03:58] <menn0> wallyworld_: understood but for this interface it seems like it might be better to be defined at point of use.
[03:58] <menn0> wallyworld_: happy to defer to your judgement
[03:59] <wallyworld_> menn0: i guess i'm saying "point of use" could be many places not just one place in the code
[03:59] <menn0> wallyworld_: fair enough
[03:59] <wallyworld_> but the other place, i should return a concrete type though
[05:35] <anastasiamac> axw: ping
[07:46] <rogpeppe> axw, anastasiamac: looking for a second review of https://github.com/juju/juju/pull/7507 if you fancy it...
[07:47] <rogpeppe> wallyworld_: ^
[07:47] <axw> rogpeppe: sure
[07:47] <rogpeppe> axw: ta!
[07:50] <axw> rogpeppe: ah, I was wondering what the context of your tweet was :)
[07:50] <rogpeppe> axw: :)
[07:55] <axw> rogpeppe: LGTM, thanks!
[07:56] <rogpeppe> git diff
[07:56] <rogpeppe> axw: tyvm
[08:00] <rogpeppe> axw: another (tiny) one - I just noticed I missed out a return statement in the ContextWithDeadline code https://github.com/juju/utils/pull/283
[08:01] <axw> rogpeppe: LGTM
[08:15] <rogpeppe> axw: thanks