Archived community.zenoss.org | full text search
Skip navigation
Currently Being Moderated

Dev Chat 03/17/2011

VERSION 1 
Created on: Apr 28, 2011 10:48 AM by Nick Yeates - Last Modified:  Apr 28, 2011 10:48 AM by Nick Yeates

--- Log opened Thu Mar 17 00:00:35 2011
08:13 < froztbyte> um, anyone know where I can find jcurry's Creating Zenpacks doc for v2? the forum one seems to have been updated+replaced for v3
09:10 < fragfutter> froztbyte: http://www.skills-1st.co.uk/papers/jane/zenpacks/
09:12 < froztbyte> fragfutter: you ftw
13:02 < Salman> Hello
13:02 < Salman> can anyone help related to zenoss report
13:04 < Salman> hello
13:05 < Salman> anybody home
13:05 < Salman> hello
13:05 < Salman> hello
13:05 < Salman> hello
13:20 < Sam-I-Am> i'll be around in about 40 mins... getting ready for work
13:22 < Salman> what
13:23 < Salman> oh come on
13:30 < Salman> helllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllo
13:31  * fragfutter thinks someone has earned an ingor list entry
13:32 < Simon4> it's either that or he's about to offer a lot of money for support
13:36 < Salman> this is totally stupid
13:36 < Salman> nobody is here to help or support
13:41 < kokey> hehe
13:41 < kokey> ok so the guy here that has built the monitoring system that we're replacing with zenoss
13:41 < kokey> who they are keeping
13:41 < kokey> today someone mentioned snmpd is using a lot of CPU on something
13:42 < kokey> so this guy logged into the server and stopped snmpd
13:43 < kokey> later on he saw my mail about looking into it
13:43 < Simon4> s m r t
13:43 < kokey> and mentioned he has done so
13:43 < kokey> saying he shut it down since we're not really using it
13:43 < kokey> i think he somehow missed the little fact that zenoss polls over snmpd
13:44 < kokey> all his monitoring has been based on sysedge sending snmp traps
13:44 < Salman> is anybody using zenoss here
13:44 < kokey> Salman: yeah i've used it once
13:44 < Salman> can we make a report of downtime events
13:45 < kokey> downtime events?
13:45 < kokey> events that happened during a maintenance window?
13:46 < kokey> or do you mean events that caused systems or applications to be down?
13:46 < Salman> like
13:46 < kokey> and by report, do you mean a scheduled report, or reporting the events as it happens
13:46 < Salman> i want to see a machine how many times it was down
13:46 < Salman> in certain time period
13:49 < kokey> you can check for a time period using the availability report
13:49 < kokey> though it doesn't tell you how many numbers in numbers, but rather in percentage of the time
13:49 < Salman> i didnt find any option
13:49 < kokey> Reports->Performance Reports->Availability Report
13:50 < Salman> it just tells in percentage
13:50 < Salman> how to find  out
13:50 < Salman> when was the downtime
13:50 < Salman> it only shows avaiability time in percentage
13:50 < kokey> check the event history
13:50 < kokey> if you want to know when it happened
13:51 < Salman> hmmm where is taht
13:51 < Salman> event history?
13:51 < kokey> Events->History
13:52 < Salman> oh yea
13:52 < Salman> thanks
13:52 < Salman> u r great
13:52 < kokey> you can filter it by device
13:53 < Salman> but do u think
13:53 < Salman> we can schedule this as report
13:54 < kokey> hmmm, i suspect there's a way to do it
13:54 < Salman> which software r u using?
13:54 < kokey> though others on here will have links to better examples
13:56 < Salman> which software r u using
13:56 < kokey> i'm on 3.0.3
13:58 < Salman> there is no option to monitor vlans right
14:01 < c0nsense> Hey! I want know if can i do for 3 mail address receive alerts from an alert rule.
14:02 < c0nsense> in the option: Address (optional): i put an mail here. can i put more one mail for more one people receive alerts?
14:02 < Salman> y dont u create a mailing list
14:02 < Simon4> c0nsense: I've never tried, but try maybe with commas to separate?
14:03 < Salman> and put that mailing list in the optional mail
14:04 < c0nsense> Simon4: me too, never tried!
14:04 < c0nsense> Salman: i cant use mailing list there..
14:06 < kokey> c0nsense: just create a group, and put three users in there
14:10 < Sam-I-Am> moo.
14:12 < Sam-I-Am> Salman: depends what you mean by monitoring vlans
14:14 < Sam-I-Am> Simon4: ever have a transform which zenoss just doesnt seem to notice?
14:16 < Salman> can we monitor specific vlan traffic
14:17 < Sam-I-Am> depends if your switches support it
14:17 < Sam-I-Am> if they have counters for vlan interfaces, sure.
14:19 < Salman> hmmm
14:22 < kokey> Salman: depends on the equipment
14:22 < kokey> Salman: on many cisco switches you can, but you need to enable the counters on the switch first
14:25 < Sam-I-Am> and also any settings which may prevent the indexes from changing after reboot
14:31 < Salman> thanks for ur help and support
14:31 < Salman> kokey: thanks for ur help and support
14:36 < Sam-I-Am> yo nick
14:39 < fragfutter> nyeates: i did it!
14:40 < fragfutter> i had a great support reply today. Something along the lines of, yes you found a bug, we fixed it, please download the new version from url bla. check url, same old version there...
14:47 < Simon4> Sam-I-Am: hmm, no
14:47 < Simon4> (re transform)
14:51 < c0nsense> so thanks! list created alerts running
14:51 < c0nsense> thx!
14:53 < Sam-I-Am> Simon4: yeah, its a weird problem
14:53 < Sam-I-Am> Simon4: all of my other transforms are working and updates take effect fine
14:53 < Simon4> Sam-I-Am: nothing in zenhub.log?
14:54 < Simon4> and events are definitely ending up in that class?
14:54 < Sam-I-Am> they're ending up in the correct class
14:54 < Sam-I-Am> just... not using the transform which clarifies the language on several items
14:54 < Sam-I-Am> and all of my transforms how have a catchall at the end to prevent odd cases from slipping through
14:54 < Sam-I-Am> er, now have
14:54 < Simon4> hmm
14:55  * Sam-I-Am restarts zenoss
14:55 < Simon4> I would doublecheck zenhub.log for stack traces from the transform
14:55 < Sam-I-Am> ahh there we go
14:55 < Sam-I-Am> 2011-03-17 08:55:13,284 ERROR zen.Events: Error processing transform/mapping on Event Class /zport/dmd/Events/HW/Power
15:10 <@nyeates> heya, sorry i didnt say hi before....working off the st pattys day bfast
15:11 < Sam-I-Am> lol
15:12  * Sam-I-Am realized for another year he doesnt have green shirts
15:15  * nyeates pinches sam
15:15 < Sam-I-Am> owww!
15:15 <@nyeates> tsk-tsk .... no green
15:15 < Sam-I-Am> well, i have green t-shirts, but we have customers here today so i couldnt wear them
15:15  * Simon4 is in green
15:15 < Simon4> not quite at the pint point, but getting there
15:15 < Sam-I-Am> green beer!
15:16 <@nyeates> I did have to skip the 8am beer this st pattys day....dont care to lead a dev meeting intoxicated
15:16 <@nyeates> we in the office to do a kegs and eggs bfast across the street at a irish bar
15:18 <@nyeates> ok back to upping new videos. We are posting a ton of new screencasts and beginner guide videos to the commiunity site
15:19  * fragfutter wonders how many of the people running around in green, have been to ireland at least once...
15:20 < Sam-I-Am> nyeates: aww, we all configure zenoss while intoxicated :/
15:23 <@nyeates> yes, likely... in fact its why we still call copying, overwriting :-D
15:23 < Simon4> hmm, more coffee or a glass of water?
15:23 < fragfutter> nyeates: you also need to up a few montly zenoss irc logs
15:24 < Sam-I-Am> moar coffee!
15:24  * Sam-I-Am is doing iced coffee this morning... its warm out.
15:24 <@nyeates> fragfutter: thanks for the reminder; I do need to do this, and to get many a ZenPacks live
15:24 <@nyeates> ill work on it, promise
15:24 < Sam-I-Am> nyeates: you need moar peeps!
15:25 <@nyeates> well, im still doing part enterprise support, so that eats into time too
15:26 < Sam-I-Am> nyeates: hire more peeps? heh
15:26 <@nyeates> welcom josh and rhys
15:26 < Sam-I-Am> or just contract us nerds out with nothing better to do than sit on irc.
15:26  * rhys lurks
15:26  * Sam-I-Am waves
15:27  * joshmoore nods
15:27 <@nyeates> I have considered that Sam.... anyone want to help me get the irc logs up?
15:27 < joshmoore> Ah, so I found the right timezone to see some action here.
15:28 < fragfutter> joshmoore: wait another 30minutes
15:28 <@nyeates> josh, today is the dev meeting, a lot of action in 30 mins... want to be on the IRC dev email reminder?
15:28 <@nyeates> anyone want to be on the IRC dev email reminder?
15:28 < Sam-I-Am> nyeates: if you tell me how i can get the logs up
15:28 < Sam-I-Am> willing to help with whatever.
15:28 <@nyeates> k ill PM you
15:29 < joshmoore> interesting....guess I'll have to stick around, then.
15:29 < Sam-I-Am> nyeates: i'm irc too much to need reminders lol
15:29 < Sam-I-Am> although i usually think off-weeks are dev weeks
15:29 < fragfutter> Sam-I-Am: we can start to send you reminders when it's time to leave for the weekend
15:29 < rmatte> nyeates: this needs to be put on the ZenPacks page: docs/DOC-10256
15:29 < joshmoore> a quick question before hand: "Delete from ZenPacks" deletes the template or just detaches it?
15:29 < Sam-I-Am> fragfutter: weekends?
15:29 < rmatte> The page has 935 views and it's not even listed yet lol
15:29 < fragfutter> Sam-I-Am: like in 30 minutes :
15:30 < rmatte> joshmoore: it removes it from the ZenPack, doesn't remove it from Zenoss
15:30 < joshmoore> rmatte: +1. Awesome.
15:30 < rmatte> joshmoore: templates get stored in the objects.xml file within ZenPacks, so you're just modifying that via the UI
15:31 < joshmoore> so i could delete via the cli? (and then restart something I assume?)
15:31 < rmatte> well, what do you mean by "delete via the cli"?
15:31 < rmatte> delete what?
15:32 < Sam-I-Am> rmatte: hows life?
15:32 < joshmoore> perl -i -pe 's/MYTEMPLATE//g' ...
15:32 < rmatte> Sam-I-Am: good, been sick the last 4 days, finally back at work
15:32 < Sam-I-Am> eeew
15:32 < rmatte> joshmoore: you mean against the objects.xml file?
15:32 < joshmoore> yes.
15:33 < rmatte> I wouldn't recommend it
15:33 < rmatte> you should either hand edit it (and be really careful) or do it via the UI
15:33 < joshmoore> ok. good to know. (I wouldn't have done it unless someone here told me "it's ok")
15:33 < rmatte> It's XML, so a simple regex isn't going to magically remove it properly
15:34 < rmatte>
15:34 < rmatte> you need to make sure the XML is formatted properly after it's removal
15:35 < joshmoore> well, "import elementtree", but I can't type that inline as quickly. It was more the spirit of what I might have done.
15:35 < joshmoore> My main issue at the moment is trying to apply the same template multiple times with minor variations (think multiple instances of some server on the same device)
15:36 < rmatte> joshmoore: oh, you can just used ZMI to copy the template over
15:36 < rmatte> use*
15:37 < joshmoore> but modifications won't carry through, right?
15:37 < rmatte> like you're just trying to create multiple copies of the same template on a device?
15:37 <@nyeates> cafpow rmatte.... that Cisco ZenPack is now showing!
15:37 < rmatte> nyeates: cool
15:37 <@nyeates> thx for tip
15:37 < rmatte> joshmoore: you're trying to copy and template and modify it as it's copied?
15:37 < rmatte> nyeates: np
15:38 <@nyeates> bbiab - i will be back a little before the dev meet
15:38 < joshmoore> rmatte: I'm looking to define a template "OMERO" (our server system) and then have it applied once say using ${here/cPortA} and once with ${here/cPortB}
15:39 < rmatte> oh right, dev meet
15:39 < rmatte> huzzah
15:40 < rmatte> joshmoore: ok... so why not just copy the template to a different name in the same class, then modify both, and bind them to the device, or create local copies?
15:41 < rmatte> or are there a ton of entries with ${here/cPortA} in them that you need changed to ${here/cPortB}?
15:41 < joshmoore> so two local copies of the same template can be applied to a device?
15:42 < joshmoore> not a ton, yet, no. But we'll be getting there. Any thing that's maintable and not error-prone I'm fine with.
15:42 < rmatte> joshmoore: as long as the names are different
15:42 < joshmoore> rmatte: check.
15:42 < rmatte> you'd need one to be OMERO and the other OMERO2 or whatever
15:43 < rmatte> then create local copies, and modify OMERO2
15:43 < rmatte> the templates need to be created under the actual device class that the device is in to allow copying
15:43 < rmatte> and then after they are bound to the device you can create local copies and then delete them from the class if you want
15:44 < joshmoore> i'll try that, rather than messing with my own zenpacks. thanks.
15:44 < rmatte> you'll obviously need to edit both as you go along, it's not going to keep them in sync automatically
15:44 < joshmoore> ah....shucks. that's what i was hoping for.
15:44 < rmatte> nah, there's no functionality like that
15:45 < rmatte> It could theoretically be done via zendmd using a python script
15:45 < rmatte> but you'd need to familiarize yourself with zendmd
15:45 < rmatte> and python
15:46 < rmatte> It's definitely not a scripting project for a python/zendmd newb
15:46 < rmatte> I'm not sure what your skill level is when it comes to python
15:46 < joshmoore> That was my other approach (using ZenossTemplateManager - http://www.linuxdynasty.org/howto-add-multiple-datapoints-to-zenoss-using-the-zenoss-api.html)
15:46 < joshmoore> Python's not a problem. zendmd has some interesting quirks though.
15:47 < rmatte> yeh, that looks about right
15:47 < rmatte> yeh zendmd takes time to learn
15:47 < Sam-I-Am> and then its magical
15:47 < rmatte> I'm at the point where I'm fairly comfortable with it
15:47 < Sam-I-Am> rmatte: yesterday was "transform day" for me... finally mostly comfortable with those.
15:48 < rmatte> hehe
15:48 < Sam-I-Am> wrote a giant one for handling mpls traps
15:48 < joshmoore> zendmd + pdb.set_trace got me saved me this morning: http://dev.zenoss.org/trac/ticket/7825
15:48 < rmatte> I've lost count of how many transforms I've written
15:48 < Sam-I-Am> another case where vendor-specific stuff comes up
15:48 < rmatte> yeh, I wrote one for cisco EIGRP traps that works well
15:49 < rmatte> probably similar
15:49 < Sam-I-Am> if i had more vendors i would publish these
15:49 < Sam-I-Am> rather cover all of the big ones than just a couple
15:49 < Sam-I-Am> maybe i'll roll a zenpack for each vendor and people can pick what they want
15:49 < rmatte> joshmoore: fun
15:49 < Sam-I-Am> it comes with monitoring templates and transforms
15:50 < joshmoore> one more question and I'll lurk in peace: If I delete a template and recreate it (with the same name, etc) will the rrd data get re-used?
15:50 < rmatte> cool
15:50 < Sam-I-Am> theres not a whole lot of mpls stuff out there
15:50 < rmatte> joshmoore: if you create it with the exact same datasource/datapoint names, yes it will
15:50 < Sam-I-Am> although im never convinced my code is "complete" enough... vendors seem to always send me new stuff.
15:50 < Sam-I-Am> er, vendor equipment.
15:51 < rmatte> joshmoore: If you want to get rid of RRD data, just remove the RRD files for the device in $ZENHOME/perf/Devices
15:51 < joshmoore> Sweet. Then I think I'm scripting template creation ftw. Thanks one and all.
15:51 < rmatte> code is never "complete" in general
15:51 < rmatte> lol
15:51 < Sam-I-Am> yeh, hence why we have version numbers
15:51 < davetoo> I'm fixin to try writing a daemon
15:52 < rmatte> davetoo: That does what?
15:52 < davetoo> teaches me how to write daemons
15:52 < rmatte> yes, I finally fixed this damn php code... code that my boss wrote and keep breaking in some new way every month
15:52 < rmatte> fixed this month's problem
15:53 < davetoo> rmatte: exploring ideas about event dependencies
15:53 < rmatte> davetoo: ah, if you need a project, try writing one for my formula datasource pack
15:53 < rmatte> ah I see
15:53 < Sam-I-Am> rmatte: keeps you employed
15:53 < rmatte> I'm going to write one for it eventually, just haven't had time
15:54 < rmatte> Sam-I-Am: The fact that I'm the only one who knows anything about 90% of the systems now is what keeps me employed
15:54 < Sam-I-Am> lol
15:55 < rmatte> there's also a lot of my code powering this place
15:55 < davetoo> rmatte: has to do with modeling the network as a graph structure rather than just a tree.  I want to subscribe to config changes.
15:55 < rmatte> Warning: Cannot use a scalar value as an array in /var/www/cake_1.2.5/app/vendors/Nova/OTRSReport.php on line 112
15:55 < rmatte> that was the error I fixed
15:55 < Sam-I-Am> awesome
15:55 < rmatte> basically an array being created but not declared as an array
15:55 < rmatte> the fix turned out to be simple
15:55 < rmatte>       if (!is_array($ticket)) {
15:55 < rmatte>         $ticket = array();
15:55 < rmatte>       }
15:56 < rmatte> lol
15:56 < Sam-I-Am> eh, arrays, scalars... languages should just figure out what you really want
15:56 < davetoo> our guys ran out of scalability with cakePHP and ported the system to CodeIgnite
15:56 < davetoo> They should have used Django
15:56 < rmatte> Sam-I-Am: agreed
15:56 < rmatte> davetoo: well, my boss and the guy who coded this stuff with him were not good at cake at all
15:56 < rmatte> davetoo: now I have a cake expert working under me
15:57  * Sam-I-Am loves projects involving writing a document as to why we cannot do something.  depressing.
15:57 < rmatte> but he's focussing on other stuff
15:57 < davetoo> I haven't written a transform in quite some time but never liked the idea of writing code that wasn't under source control.
15:57 < Sam-I-Am> can you have your cake and eat it too?
15:57 < Sam-I-Am> davetoo: not to mention the editor :/
15:57 < davetoo> Fortunately, I discovered yesterday that transforms are just a simple string attribute of an EventClass
15:57 < rmatte> Sam-I-Am: occasionally
15:58 < rmatte> davetoo: yeh, you can easily write a script to pull them out and commit them to svn at automatic intervals
15:58 < rmatte> which is something I haven't done yet, but intend to
15:58 < Sam-I-Am> davetoo: i post my transforms in the wiki which takes care of revision control sorta :/
15:58 < Simon4> rmatte: I wrote a script that mirrors a svn tree into the transforms
15:58 < rmatte> we're switching source control systems right now, so I'm holding off
15:58 < Simon4> commit to svn and it updates the transform
15:58 < rmatte> we're moving from svn to mercurial
15:58 < Sam-I-Am> Simon4: ooh, thats sexy
15:58 < Simon4> never ended up using it, but it was fun to play with
15:59 < rhys> event transforms are the biggest problem for me. I can get all the data into zenoss, its just ridiculously hard to sort it
15:59 < rmatte> *gasp* developers, quick everyone hide
15:59 < davetoo> I'm "converting" to Git.
15:59 <@rocket> ah people .. hide ...
15:59 < rmatte> davetoo: mercurial is really similar to git
15:59 < rhys> and thus starts all vendor/customer relationships.
15:59 -!- nyeates changed the topic of #zenoss to: "Developer chat is currentl IN SESSION - Bring us your questions - 3.1.0 is current stable version"
16:00 < davetoo> It was a requirement on a recent project because I did not have VPN access to the $client network
16:00 < rmatte> we're also switching from trac to redmine
16:00 < davetoo> so I had to schlep the code between there and home
16:00 < davetoo> speakign of which
16:00 < davetoo> When are Zenoss going to switch the public archive to Git?
16:00 < Sam-I-Am> and where did it go...
16:00 < rmatte> davetoo: I heard they may be moving it back to svn
16:00 < theacolyte> Question: I have locations turned on for about 500 sites, and it doesn't display anything anymore - it did with just 4. It used to try to geocode, now it doesn't even bother until I clear the cache, and then it geocodes and shows a map with no points on it (but zoomed in, like there should be)
16:01 < rmatte> theacolyte: you have a bad address in there somewhere
16:01 < rmatte> theacolyte: go through any that were recently added and try changing the addresses on them
16:01 < Sam-I-Am> rmatte: bad as in unreadable or ungeocodable?
16:01 < rmatte> ungeocodable
16:01 < theacolyte> So... I have 500 locations, how would you suggest that I do that?
16:01 < Sam-I-Am> awesome.
16:02 < theacolyte> And if that's the case, why doesn't Zenoss have some sort of method of telling you which one?
16:02 < Sam-I-Am> that could be my problem as well.  you'd think it would just skip stuff it can't geocode (or there'd be a log of which one somewhere)
16:02 < rmatte> theacolyte: I've had to go through and remove postal codes before because google's API didn't like them
16:02 <@emiller> there was some investigation of using git, but no one is pushing it right now.
16:02 < rmatte> stupid stuff like that
16:02 < Sam-I-Am> i have roughly the same issue as theacolyte
16:02 <@nyeates> Some initial announcements: We will soon be working to update as many ZenPacks to 3.* as we can. Any entries will get a cool custom t-shirt made just for the contest. 3.1.0 continues to get reports of running stable, report your bugs!
16:02 < rmatte> which is why I check them every time I add a new site now
16:02 < Sam-I-Am> nyeates: which tshirt? heh
16:02 < theacolyte> rmatte: unfortunately, that's not a feasible thing for us/me
16:02 < fragfutter> the event console has the possibility to add the production state columns. with 3.1 sorting on this column got fixed. But now if i leave it open for some time (autorefreshing) at some point it looses the selections (prodcution and test, test is lost). Is this a known issue?
16:03 < rmatte> theacolyte: well, I don't know what to suggest, did it just happen recently or has it never worked?
16:03 <@nyeates> the code one won, "My ZenPack is 3.x, what about yours" and shows the zenpack installing
16:03 < davetoo> emiller: ok; it's mostly interesting for the chance for us to make our own little sandbox branches
16:03 < theacolyte> It's never worked, but that's why I'm trying to ask the developers what to do
16:03 < rmatte> theacolyte: you do actually have addresses specified under each location?
16:03 < theacolyte> Yep
16:04 < davetoo> as in street addresses
16:04 <@rocket> fragfutter: sounds new to me
16:04 < theacolyte> Yep
16:04 < rmatte> theacolyte: there's an address property, not the name
16:04 < theacolyte> I know....
16:04 < theacolyte> Like I said it worked with 4, not with 500
16:04 < rmatte> but ok, if you have those defined the only way to really troubleshoot it would be to go through the locations 1 by 1 by hand
16:04 < rmatte> I had to do it for 100 locations one time
16:04 <@nyeates> theacolye: I have seen some addresses fail over others...check the charactes used, make sure spaces and no weird characters
16:04 < Sam-I-Am> rmatte: the funny thing is... it'll show all the locations for me once, after it geocodes.  its when i go back to the map a second time there's nothing on it.
16:04 < rmatte> took about an hour
16:05 < rmatte> Sam-I-Am: yeh, that's the behaviour
16:05 < davetoo> I've never had the need to use the geocoding.. but is there a way to enter long/lat directly?
16:05 < theacolyte> No offense, but asking someone to go through 500 locations by hand is... a horrible solution
16:05 < rmatte> Sam-I-Am: I had the exact same problem, ended up changing some of the addresses and voila it worked
16:05 < rmatte> Sam-I-Am: seen it many times across many different boxes
16:05 < davetoo> maybe one could do the geocoding offline in some other tool
16:05 < Sam-I-Am> theacolyte: i had someone here enter all 400 for me :/
16:05 < Sam-I-Am> rmatte: hmm, wish there was a log of which one borked.
16:06 < rmatte> davetoo: won't work, it geocodes basically every time
16:06 < Simon4> script adding locations via zendmd
16:06 < joshmoore> no way to perform the action from zendmd/python iteratively?
16:06 < davetoo> is that a pure Google API thing?
16:06 < rmatte> you don't need to actually re-add the locations...
16:07 < rmatte> theacolyte: what version are you using, 2.5 or 3.x?
16:07 < Sam-I-Am> hmm @ someone asking why we don't get power-off traps :/
16:07 < theacolyte> rmatte: 3.x
16:07 < davetoo> hah
16:07 < rmatte> theacolyte: it's even more of a pain in the ass to troubleshoot it in the new UI
16:07 < rmatte> in the old UI you could check to see if each location loads or not 1 by 1
16:08 < rmatte> since you could go to locations, click on a location, then click on the map tab
16:08 < davetoo> anybody know off the top of their heads where the code is that does this work?
16:08 < rmatte> if it loaded, it was ok, if it didn't it was messed up
16:08 < rmatte> but 3.x doesn't have that ability anymore
16:09 < rmatte> I'm really starting to wish they had just re-skinned the old UI
16:09 < davetoo> i.e. the geocoding requests?
16:09 < davetoo> Is it all in javascript?
16:09 < rmatte> davetoo: probably
16:09 < davetoo> ECMAScript
16:10 < rmatte> ah, you can still do the map thing, it's just a bit more of a pain...
16:10 < rmatte> you select the location in infrastructure
16:10 < rmatte> then click the details button
16:10 < rmatte> then click map
16:10 < theacolyte> Hmm, I guess I wasn't really expecting a silver bullet, but I haven't attended a devchat before hehe
16:10 < themactech> I have a question for python gurus, when I call a zendmd query from a modeler script, it causes zenmodeler to exit with an error, would I be able to bypass that by calling a sub-process instead within the modeler script that would launch an external script?
16:10 < rmatte> so you'll have to do that for each location and adjust the addresses for the ones that don't load
16:10 < theacolyte> rmatte: actually, that helps
16:11 < rmatte> theacolyte: that's the way I fix it
16:11 < theacolyte> rmatte: That means I can go into each one, one by one and click the details button/map, and see if it loads- if it doesn't I've found my issue
16:11 < rmatte> it's a bit tedious, but it works
16:11 <@nyeates> theacolyte: it would be nice if our code would just skip over undeciferable addresses. Can you enter a trac bug ticket for this? Are you familar with making bugs?
16:11 < rmatte> theacolyte: exactly
16:11 < theacolyte> nyeates: can you reset my trac account password? lol
16:11 < theacolyte> nyeates: it's theacolyte (go figure)
16:11 < rmatte>
16:11 <@rocket> themactech: what zendmd query?
16:12 < theacolyte> rmatte: well, that's not bad I guess... I can do that... my horror was having to enter them in one by one and then seeing if it still works
16:12 < rmatte> themactech: you can't do a zendmd query in a modeler plugin
16:12 <@nyeates> sure theacolyte
16:12 < rmatte> many have tried, many have failed
16:12 <@rocket> themactech: you may not have enough workers to do that .. basically you need at least 2 workers in that scenario or things will never respond
16:12 < davetoo> http://dev.zenoss.org/trac/browser/branches/zenoss-3.1.x/Products/ZenModel/tests/testGoogleMaps.py  <--- I would be looking at that code
16:12 < davetoo> and make a zendmd test script to pull the address from each location and test them thusly
16:12 < rmatte> rocket: ah, I didn't think it was even possible to do
16:13 <@rocket> rmatte: you can too .. but its not recommended
16:13  * rmatte nods
16:13 <@rocket> rmatte: it kills performance, requires at least 2 workers
16:13 < Sam-I-Am> rocket: can't hire more workers?
16:13 <@rocket> basically you load the zenscript base stuff and go to town .. etc ..
16:13 <@rocket> funny!
16:13 < rmatte> I can see why you wouldn't want modeler plugins touching dmd as they go along
16:13 <@rocket> err punny!
16:13 < rmatte> lots of overhead
16:14 < themactech> my goal was to make a self updating modeler, one that would update OSProduct and HWProduct
16:15 < themactech> I do not want to update all of those at all my deployments
16:15 < themactech> If my Apple modeler detects a new MacBookPro model, I want it to be able to create that entry during modeling so I don't end up with stuff in "unknown" manufacturer
16:16 < themactech> I got the zendmd script working to check if a model exists or not (same with SW), and create it if such is the case
16:16 < themactech> I just can't seem to do this during modeling
16:17 < rmatte> themactech: yeh, too bad the code doesn't actually work like that to begin with lol
16:17 < themactech> I read that python can call a sub-process, seems the closest to bash calling another script, if that could work, I could have the modeler hand off the model name, os version, and manufacturer off to that script
16:17 < themactech> It would do what it needs to do then the modeler would kick back in
16:18 < themactech> anyone tried to call a sub-process from the modeler plugin with the 'wait' command so it holds until the sub-process completes?
16:18 < themactech> or does that break it as well\
16:18 <@rocket> themactech: that should do so automatically
16:18 < davetoo> that would be slowwwww
16:18 <@rocket> you are updating that wrong if its going to unknown
16:19 < themactech> its only during modeling, so once every 6 hours, and only from MY custom modelers
16:19 < rmatte> rocket: the HW/Software mapping is still half broken
16:19 < rmatte> new software entries don't actually get created in zope
16:19 < themactech> If I make a modeler for Apple products, I know the devices modeled by it will be Apple products, I would not have this modeler run on Dell hardware or APC UPS
16:19 < rmatte> the hardware stuff seems to work ok now
16:20 <@rocket> setHwProductKey = MultiArgs(id,vendor_id)
16:20 < rmatte> themactech: right, but the idea is to add the product OIDs to the apple products section
16:20 < rmatte> that way when it picks up the OID it knows what it is
16:20 <@rocket> from Products.DataCollector.plugins.DataMaps import MultiArgs
16:20 < rmatte> I wish the products info would get auto-pulled from a server somewhere, but it's not
16:21 < davetoo> that would be a great idea for a community project
16:22 < davetoo> a community database
16:22 < rmatte> yeh
16:22 < rmatte> just need to create some daemon to pull down the products from it
16:22 < rmatte> it honestly wouldn't be that hard to do
16:22 < Sam-I-Am> can you only add product IDs via zenpack somehow?  i was hoping loading MIBs with product IDs would work... but i dont think it does.
16:22 < Sam-I-Am> er, mass-add
16:23 < rmatte> Sam-I-Am: loading Mibs doesn't work
16:23 < Sam-I-Am> :/
16:23 < rmatte> but it would be simple enough to script something to automate it
16:23 < rmatte> then keep a database of them, and have a daemon pulling down data from the database
16:23 < rmatte> would be pretty slick
16:23 < Sam-I-Am> yep
16:23 < Sam-I-Am> well, go write it
16:24 < davetoo> cron job would probably be good enough
16:24 < rmatte> whenever I have time, I have so many coding projects on the go right now
16:24 < rmatte> it's ridiculous
16:24 < rmatte> I code all day at work, get home, and code more
16:24 < rmatte> lol
16:24 < davetoo> hope you'
16:24 < Sam-I-Am> sad :/
16:24 < davetoo> re a fast typist
16:24 < themactech> Sorry someone walked into my lab and bugged me with some really irrelevant crap, took a few minutes to ditch him
16:24 < rmatte> Yeh, I can hold my own in terms of speed
16:24 < davetoo> is rrdcache implemented yet?
16:25 < rmatte> davetoo: ummm, rrdCache has been available for a while
16:25 < rmatte> not sure what you're referring to exactly?
16:25 < Sam-I-Am> rmatte: but not in zenoss
16:25 < davetoo> in Zenoss
16:25 < themactech> I have zenoss servers deployed at many sites, I do NOT want to have to update my products/os database everytime vendor A,B or C comes up with a new model
16:25 < rmatte> Sam-I-Am: getRRDCache()
16:25 < rmatte> has been around since 2.3 and before
16:25 < Sam-I-Am> uh..
16:25 < Sam-I-Am> i could have sworn that wasnt implemented
16:26 < themactech> if a self-updating modeler is not the answer, I am open to suggestions
16:26 < rmatte> actually sorry, it's cacheRRDValue()
16:26 < rmatte> cacheRRDValue('ssCpuSystem', default)
16:26 < davetoo> How is your modeler going to know what the name of this new OID is?
16:26 < rmatte> or whatever
16:26 < Sam-I-Am> how does that integrate into zenoss?  patch for rrd code?
16:26 < davetoo> rmatte: but is that related to the acutal rrdcache daemon from RRDTools?
16:27 < themactech> I do not use OID as keys, I use product model numbers
16:27 < Simon4> that's totally unrelated
16:27 < rmatte> Sam-I-Am: that's an actual zendmd function
16:27 < rmatte> not sure exactly where it's in use in the actual zenoss code
16:27 < Simon4> at rmatte and davetoo
16:27 < davetoo> rmatte: I'm talking about a new RRDTools-provided daemon
16:27 < davetoo> kind of like memcached for RRD data
16:27 < themactech> many manufacturers will return the same OID on different models
16:27 < rmatte> oh, you're talking about the actual daemon
16:27 <@nyeates> what does rrdcache daemon from RRDTools do?
16:27 < rmatte> my bad
16:27 < rmatte> that's why I was asking for context before
16:27 < davetoo> it batches the writes, mostly
16:28 <@nyeates> or what use case can it fill?
16:28 < Simon4> nyeates: it collects up a whole bunch of IO operations in ram before doing them on disk
16:28 < Simon4> greatly reduces IO
16:28 < Simon4> Avalon is rumoured to be supporting it
16:28 < Simon4> and we're all waiting eagerly
16:28 < rmatte> yeh, Avalon should have that, and will also have libstorage
16:28 < themactech> And again using Apple as an example, the actual model number they return locally is useless, I pull down better info from their web page using the serial number in my modeler
16:28 < Sam-I-Am> libstorage?
16:28 < themactech> that is what I use as HWProduct key
16:28 < Simon4> rmatte: relstorage you mean?
16:29 < rmatte> yeh, my bad
16:29 < rmatte> relstorage
16:29 < davetoo> dev guys:
16:29 < davetoo> Please add ipython to the external libs
16:29 < fragfutter> davetoo: easy_install ipython
16:29 < davetoo> (of course there's a dependency on readline lib)
16:30 < davetoo> yeah yeah
16:31 < Sam-I-Am> hmm @ relstorage storing "pickles"
16:31 < Sam-I-Am> wonder if they're dill
16:31 < davetoo> dev guys: who creates the Debian packages for Zenoss?
16:31 < davetoo> I'd love to see a zenoss-only (non-Stack) version
16:32 <@nyeates> I think that Glenn probably makes those packages....Glenn you in here?
16:32 < fragfutter> davetoo: or if you only need tabcompletion: import rlcompleter; import readline; readline.parse_and_bind("tab: complete")
16:33 < davetoo> fragfutter: I find the ipython magic %page command incredibly useful
16:34 < davetoo> any (public) ETA for Avalon?
16:35 < fragfutter> davetoo: i think there is also a standard pretty print
16:35 < davetoo> pprint.pprint
16:35 < Sam-I-Am> davetoo: one of these days i'd like to roll debian packages
16:35 < Sam-I-Am> i've rolled a lot of debian packages in the past
16:35 < mike_lunt> davetoo:  There are no plans to create a non-stack DEB at this point.
16:36 < mike_lunt> davetoo:  public ETA for Avalon has not been set
16:38 < fragfutter> davetoo: pprint it is.
16:38 < mike_lunt> davetoo:  We will likely have a 3.1.1 public version during mid-summer.
16:41 <@nyeates> mike_lunt: what will be in the 3.1.1? will it be a bug fix release?
16:41 < davetoo> ok thank you
16:43 < davetoo> The thing that's useful about the .deb is that PyDev loves the way the python libraries are set up when I use it's interpreter
16:43 < mike_lunt> nyeates:  It will be more than a bug fix release.  It will include lots of UI and backend performance enhancements based on real world product use at a large cloud provider.
16:43 <@nyeates> ooh, nice
16:43 < Simon4> mike_lunt: rrdcached and relstorage?
16:43 < davetoo> a Fanatical provider?
16:43  * Sam-I-Am waits patiently for those
16:44  * Simon4 will just keep asking every dev session
16:44 < davetoo> Close to your Engineering offices?
16:44 < mike_lunt> simon4: relstorage will not be in 3.1.1
16:44 < Simon4> mike_lunt: how about rrdcached?
16:46 < Sam-I-Am> my sysadmin would love rrdcached.. i'm constantly swamping his boxen
16:46 < davetoo> I've got to say, compared to the lack of daemon stability in, say, v0.99 ...    I'm really happy with the current set of daemons
16:46 < Simon4> I'm very happy with stability in genera
16:46 < Simon4> l
16:46 < davetoo> maybe that all comes down to teh PBDaemon base class
--- Log closed Thu Mar 17 16:46:37 2011

Comments (0)