[00:18] axw: I wasn't going to tackle the statemetrics bit so if you've already started on that then great [00:54] menn0 wallyworld_: I'm back if you want to chat [00:54] meeting in today's standup HO? [00:55] axw, wallyworld_: sounds good [02:33] wallyworld_: what's a sensible upper bound on the flush interval? 10 minutes? [02:33] i was thinking more like seconds [02:34] since we need to not lose errors if agent is killed [02:34] and actually, we should maybe flush immediately if there's an error [02:34] or a warning or ciritical [02:34] wallyworld_: it'll flush when the agent shuts down [02:34] what about when it is killed [02:34] and it'll go to logsink.log immediately anyway [02:35] wallyworld_: what do you mean by killed? [02:35] hard stopped via kill -9 or something [02:35] do we catch signals [02:35] wallyworld_: I can't recall if we catch the signal, but we should if we don't [02:36] yep, and systemd restart etc [02:36] wallyworld_: SIGTERM should lead to graceful shutdown, which would involve flushing [02:36] ok, all that aside, i think 5 or 10s max for flush interval, IMO [02:38] 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] exactly, hence the desire to not allow the user to do something dumb by mistake [02:42] 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] axw: gah, good point [02:43] axw: maybe there needs to be some special handling for the allwatcher [02:43] menn0: yeah, it could get pretty huge [02:43] menn0: perhaps some kind of continuation flag [02:44] axw: exactly [03:21] wallyworld_: ping [03:21] hey [03:21] wallyworld_: I have some questions about your PR. quick hangout? [03:21] sure [03:22] wallyworld_: standup again? [03:22] yep [03:57] 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] wallyworld_: understood but for this interface it seems like it might be better to be defined at point of use. [03:58] wallyworld_: happy to defer to your judgement [03:59] menn0: i guess i'm saying "point of use" could be many places not just one place in the code [03:59] wallyworld_: fair enough [03:59] but the other place, i should return a concrete type though [05:35] axw: ping === frankban|afk is now known as frankban [07:46] axw, anastasiamac: looking for a second review of https://github.com/juju/juju/pull/7507 if you fancy it... [07:47] wallyworld_: ^ [07:47] rogpeppe: sure [07:47] axw: ta! [07:50] rogpeppe: ah, I was wondering what the context of your tweet was :) [07:50] axw: :) [07:55] rogpeppe: LGTM, thanks! [07:56] git diff [07:56] axw: tyvm [08:00] 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] rogpeppe: LGTM [08:15] axw: thanks === freyes__ is now known as freyes === freyes__ is now known as freyes === cory_fu_ is now known as cory_fu === frankban is now known as frankban|afk === mup_ is now known as mup === mup_ is now known as mup === mup_ is now known as mup === Spads_ is now known as Spads === jcsackett_ is now known as jcsackett === JoseeAntonioR is now known as jose