19:28:21 #startmeeting 19:28:21 Meeting started Wed Jun 27 19:28:21 2018 UTC. The chair is sumpfralle1. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:28:21 Useful Commands: #action #agreed #help #info #idea #link #topic. 19:28:43 #chair TheSnide chteuchteu h01ger kenyon be0rn 19:28:43 Current chairs: TheSnide be0rn chteuchteu h01ger kenyon sumpfralle1 19:29:05 welcome! 19:37:02 human presences are welcome to raise their voice :) 19:37:22 * sumpfralle1 will talk to himself otherwise ... 19:38:19 hi 19:38:39 hello! 19:39:08 do you have a specific topic? Otherwise I would just summarize what I did during the last week 19:39:40 go ahead, i'll follow with my small achievements. 19:39:56 hehe - there is no order of relevance implied :) 19:40:20 I did more Debian packaging. 19:40:33 The package for 2.0 looks nice, now (for my taste). 19:40:57 h01ger is not available right now, thus it will wait for a few more days until it can see the light 19:41:23 And I am right now adding a bit of tests: only for the packaging (systemd services, config files, ...) 19:41:37 (as part of Debian's autopkgtest) 19:41:57 and I did a bit more of cleanup in the issue tracker 19:42:02 that's it 19:43:11 meanwhile many small changes landed in stable-2.0 - maybe we want to relase it? 19:46:56 sure 19:47:08 i'm not really looking at the 2.0.x to be honest 19:47:33 * TheSnide is more focused on pushing 3.0 out of the door 19:48:11 a very good strategy! 19:48:12 so, just tell me a commit ID, and i'll just release it. 19:48:40 acutally, I think you can even "git tag -s" yourself. I'll use that to do the tgz 19:49:05 #topic 2.999.x 19:49:20 So, i did some work on that branch lately. 19:49:21 OK - good. In one or two days I am done with Debian testing. I will tell you then. (and tag it before) 19:49:25 what works now: 19:49:52 - sqlite/pgsql is fully working. You can choose via /etc/munin.conf 19:50:40 - new test is also working. It's a full E2E test case. It only does smoke test for now, not testing the failures. 19:51:29 - fixed a *huge* bug that prevented graph with "negative" to be generated 90% of the cases. 19:51:50 yeah! 19:52:33 Therefore i released 2.999.9, since I was quite happy with the current state 19:53:08 * sumpfralle1 cheers 19:53:21 a huge topic are "limits". This is in an unknown state 19:53:29 (pun intended) 19:53:56 :) 19:54:01 So, i'll have to rewrite that part. 19:54:31 -> I'm planning to *generate* the limits directly in munin-update, and only consuming them in munin-limits. 19:54:56 Thus munin-limits would be more of "munin-alerts"? 19:54:57 therefore munin-limits will be a mere alerting tool. 19:55:00 yup 19:55:32 it will therefore enable the red & yellow flags in htttp 19:55:39 ? 19:56:05 currently munin-http doesn't show any limits. Since they are not computed 19:56:46 ok 19:57:00 * TheSnide admits to prioritize according to his mood, not according to real market analysis ;) 19:57:14 now the limit-state would be stored in the database? 19:57:20 yep 19:57:24 mood is the best motivator imaginable :) 19:57:42 nothing will be stored outside the db. (except for the rrd, of course) 19:58:15 #topic munin-c 19:59:18 We cannot use multi-homed plugins (such as the SNMP ones), as there's no support for multi-hosted node in munin-c 19:59:39 that means: no plugin state based on the requester? 19:59:45 or are there more requirements? 19:59:46 nope 19:59:54 means 2 things : 20:00:01 - no plugin state based on the requester? 20:00:27 - when a plugin emits "hostname", the munin-node-c just ignores it. 20:00:59 then you cannot have "virtual hosts", such as routers from SNMP plugins on a central node. 20:01:11 http://guide.munin-monitoring.org/en/latest/tutorial/snmp.html 20:01:46 I never used this, but could imagine that people liked this. Anyway: you will have reasons ... 20:02:31 My reasons are "i'm not monitoring routers via SNMP"... but it's *highly* convenient for a large number of users. or at least it was 20:02:53 ... and the implementation to support it isn't trivial to get right. 20:03:46 Also, another point of munin-node-c is more the systemd startup scripts. We need a way to launch the 1sec plugins to daemonize themselves. 20:04:07 ... and systemd is precisely designed to prevent rogue processes ;) 20:04:43 Do you feel that the 1sec plugins are an important feature? (I have no opinion about them right now) 20:04:49 So i was thinking about implementing a "munin-run * aquire" 20:05:34 sumpfralle1: I really like them. And 1 sec is much better than the usual 5s of the competition... #marketing 20:05:49 #keepitsimple :) 20:06:05 what is the "aquire" about? 20:06:37 also, it enables very nice analysis, like http://demo.munin-monitoring.org/munin-monitoring.org/demo.munin-monitoring.org/multicpu1sec-pinpoint=1530122491,1530129812.png?size_x=800&size_y=400 20:06:55 it's a new command for a plugin. 20:07:11 it's says : "daemonize yourself" 20:07:34 i made that up lately, so it's not really official yet 20:07:48 thus we could allow persistent data flow connections (separate for different plugins)? 20:07:54 nop 20:07:56 e 20:08:07 the idea is more having : 20:08:27 $ munin-run cpu1sec acquire 20:09:03 $ ... returns but leaves cpu1sec running in the background filling the state file. 20:09:06 then 20:09:14 $ munin-run cpu1sec fetch 20:09:37 ... just does a "cat cpu.statefile && truncate cpu.statefile" 20:10:10 The statefile follows the usual munin network protocol, but includes timestamps? 20:10:20 Prior that, i tried to implement the forking automatically when detecting it didn't fork yet 20:10:26 while asking for "config" 20:10:36 that sounds hairy :( 20:10:37 ... it is nice, but very error prone 20:10:52 The statefile follows the usual munin network protocol. 20:11:12 the protocol already suports timestamped values 20:11:30 field1.value 123456:VALUE1 20:11:36 field1.value 123458:VALUE2 20:11:38 supports, but not necessarily contains? 20:11:44 field1.value 123459:VALUE4 20:11:45 ... 20:12:02 if you emit the "standard" one: 20:12:02 thus the 1sec plugin is required to add these? 20:12:08 field1.value VALUE 20:12:36 the munin-update translate it internally to "field1.value $(now):VALUE" 20:12:54 yes 20:13:16 https://github.com/munin-monitoring/contrib/blob/master/plugins/network/if1sec_ 20:13:33 and it's C counterpart https://github.com/munin-monitoring/contrib/blob/master/plugins/network/if1sec-c.c 20:14:06 I am not really sure, if a new argument is required for this. 20:14:29 it isn't. but it makes it plainly obvious. 20:14:33 Would it be currently allowed to return more than one value on fetch? (with different timestamps) 20:14:49 it is. 20:14:53 ok 20:15:00 could we use munin-async here? 20:15:08 It stores and transports the statefile, or? 20:15:13 old munin version will only use the last value actully 20:16:12 munin-async is a differnt beast. It basically calls the node directly locally. then spools the data and hand it back when asked by the master 20:16:31 ... it is the same idea, but on a differnt level. 20:16:41 ... it also spools the config part. 20:16:49 And the idea (and its implementation) is not reusable for this purpose? 20:17:17 * sumpfralle1 does not want to interfere with plans, but he has the sleight feeling, that there could be a simpler approach with the current tools 20:17:19 the "1sec" part was designed *specifically* to avoid forking & opening files. 20:17:37 to have the _lowest_ impact possible. 20:18:34 Just have a look at the C version of the 1sec plugins. They are *DAMN* efficient. 20:18:50 No doubt about that. We will need the same "transfer state" handling as munin-async uses now, or? 20:19:04 (tracking whom requested the data from us when) 20:19:29 not really. It just "flock()" & "ftruncate()" 20:20:03 only 1 master is supported. If you need multiple master, you have to launch multiple daemons. 20:20:11 munin-async does it differently, or? Was that a good approach? 20:20:31 the munin-async approach is much older. and much more naive. 20:21:03 It works pretty well, but the implementation turned out to be way more tricky than expected. 20:21:22 --> and I'd like to rewrite it in a munin-async-c 20:21:23 I can imagine that. 20:21:28 ha! :) 20:21:34 but... ENOTIME 20:21:52 I was hesitant to propose a rewrite of it all in python - and you are silently doing it into C :) 20:22:04 no, not python. 20:22:23 Everyone has his beloved pet :) 20:22:24 I mean, Python isn't much better than Perl. 20:22:43 apart of the "massive amount of devs" 20:23:05 "me" being part of this amount of devs would be my reason :) 20:23:12 but that is not sufficient, I know 20:23:15 and, everything that runs on the node always felt like a match for C. 20:23:31 - efficiency 20:23:36 - portability 20:24:01 the permission handling on windows will be a nightmare :) 20:24:05 Portability was once the promise of Perl... and it somehow failed 20:24:27 permission handling in windows is "disabled". period. 20:25:02 and python hasn't got any better in terms of portability. 20:25:34 and. The *real* reason is "it's fun". 20:25:48 * sumpfralle1 is happy with that 20:26:18 * TheSnide is quite bored with multi terabytes JVM at work ;) 20:27:04 We can offer your a shelter of minimal ressource usage under munin's wings :) 20:27:15 yeap. 20:27:24 i miss my Z80 days 20:27:37 now you sound _old_ :) 20:27:51 that's because i am! 20:27:57 congratulations! 20:29:59 * TheSnide started with soldering on a Veroboard ;) 20:30:42 * sumpfralle1 is too young (or grew up in the wrong country) to know such a thing ... 20:30:49 https://en.wikipedia.org/wiki/Veroboard 20:31:21 was quite a thing in the 80's 20:31:34 I thought, it still is :) 20:31:53 * sumpfralle1 did not know the name, but the style 20:32:06 yeah, now everyone uses plastic ZIP breadboards 20:32:18 s/ZIP/ZIF/ 20:32:32 anyway.. i think we can close the meeting ;) 20:32:37 :) 20:32:45 summarizing: you enjoy progressing!? 20:33:03 i do. 20:33:07 yeah! 20:33:13 se let's continue! 20:33:15 so 20:33:20 #endmeeting