09/08/14 Version 1.6.5 - Two Node Mode
- If the first line of the input only has two columns, twonode mode is set automatically
- The default edge length is now set to 1.5 instead of the old 3, which should make for
more compact graphs by default
- Added edge label capability for GDF and DOT output! (Not GraphSON yet)
label.edge=fields[2]−Canduplicateedgesiftheyhavemultiplelabels:(onlyforGDF!)label.duplicate=1;InDOTitwillchosetheFIRSTlabelusedfortheedge!07/08/13Version1.6.4−GraphSONsupport−AddingGraphSONdataformatsupportfortoolslikeHelios.js−j:onthecommandlineorgraphson=1:inpropertyfile−Fixingeventnodesizeregexcheck04/30/13Version1.6.3−Minoredits−Removalofadditionalscripts−Thisversionisthefirstonenottobundlethesampledata,perlscripts,andloganalysisscriptsanymoreFindthemongithubat:http://github.com/zrlram/parsersandhttps://github.com/zrlram/loganalysis−Fixedissuewithcolornames−Addedxlabelsbydefault.Thisway,labelsaredisplayedoutsideofthenodeitself,notinsideanymore.Youcanturnthisoffbyusingxlabels=0intheconfigurationfile.−Fixingoutputbugwheretargetprintedtwice10/16/11Version1.6.2−GDFsupport−Removedafterglow−lgl.plfinally.Sorry,butIdon′tthinkanyoneisusingLGLanymoreanyways.GetitfromCVSifyouneedit.−AddingGDFdataformatsupportfortoolslikeGephi.−k:onthecommandlineorgdf=1:inpropertyfile12/02/10Version1.6.1−PaulHallidaypatch−Addingnewshape:Mrecord−Addingnewmetainformation.Youcannowinput5columnswherethelasttwoorthree(dependingonwhetheryouareintwoorthreecolumnmode)aremetadatathatyoucanuseintheconfigurationfile.03/22/10Version1.6.0−Addingedgesizes(size.edge=<expressionreturningsize>)Defaultedgesizeisone.Noscalingisdone!Sizesareabsolute!−Fixingabugwiththe"notacolor"message.Shouldonlyshowifsomecolorwasactuallyset−label.(source∣event∣target)=0nowturnsofflabelsforreal.−AddedaDEBUGvariable−Newcommandlinefunctions:−q:Quietmode.Suppressalloutput.Attention!Youshoulduse−wtowriteoutputtoafile!−ifile:Readinputfromafile,insteadoffromSTDIN−wfile:Writeoutputtoafile,insteadoftoSTDOUT−Addinggetseverity()functionforconfigurationfiles.(ByrequestfromPaulHalliday)color.source=getseverity(fields[2])
color.source=get_severity($fields[0],20)
Second, optional argument, is for the maximum number of steps. The highest
severity is red, the lowest is green, the ones inbetween shades.
07/30/08 Version 1.5.9.5 - DAVIX special release
- Deleted experimental scripts:
- afterglow-lgl2.pl
- afterglow-walrus.pl
- Removing debug statements from afterglow code
- Fixing various little issues in afterglow (see source for more information)
- Allowing hex numbers as colors (new graphviz feature)
09/08/07 Version 1.5.9
- Adding property to add a URL element to nodes. See sample.properties for an example.
- Adding label property to change labels on nodes. This overwrites the old
label.(source|event|destination) to use not only boolean values.
If you are using [0|1] it turns labels on or off. Otherwise it uses the
expression as the label
- New is also that you can define "label" which defines the label for all the nodes
06/10/07 Version 1.5.8
- Nodes can have a size now:
(size.[source|target|event]=)
Size is accumulative! So if a node shows up multiple times, the
values are summed up!! This is unlike any other property in
AfterGlow where values are replaced.
- The maximum node size can be defined as well, either with a
property:
(maxnodesize=)
or via the command line:
-m=
The size is scaled to a max of 'maxsize'. Note that if you
are only setting the maxsize and no special sizes for nodes
Afterglow will blow the nodes up to optimal size so the labels
will fit.
There is a limit also, if you want the source nodes to be a max of say
1, you cannot have the target nodes be scaled to fit the labels. They
will have a max size of 1 and if you don't use any expression, they will
be of size 1. This can be a bit annoying ;)
Be cautious with sizes. The number you provide in the assignment is not the actual size
that the node will get, but this number will get scaled!
- One of the problems with assignments is that they might get overwritten with later nodes
For example, you have these entries:
A,B
A,C
and your properties are:
color="blue" if (fileds[1]eq"B")color="red"youwouldreallyexpectthecolorforAtobeblueasyouspecifiedthatexplicitly.However,astheotherentrycomeslater,thecolorwillendupbeingred.AfterGlowtakescareofthis.Itwilldeterminethatthesecondcolorassignmentisacatch−all,identifiedbythefactthatthereisno"if"statement.Ifthishappens,itwillre−usethemorespecificconditionspecifiedearlier.IhopeIammakingsenseandthecodereallydoeswhatyouwouldexpect;)−DefinewhetherAfterGlowshouldsumnodesizesornot.(sum.[source∣target∣event]=[0∣1];)bydefaultsummarizationisenabled.−Addedcapabilitytodefinethresholdspernodetypeinpropertiesfile(threshold.[source∣event∣target]=<value>;)−Addedcapabilitytochangethenodeshape:shape.[source∣event∣target]=(box∣polygon∣circle∣ellipse∣invtriangle∣octagon∣pentagon∣diamond∣point∣triangle∣plaintext)−Fixedanissuewhere,ifyouuse−ttoonlyprocesstwocolumnsandyoucanusethethirdinthepropertyfileforsizeorcolor.Thethirdcolumnwasnotcarriedthrough,however.Thisisfixed!−Thecolorassignmentheuristicchangedabit.Alongthesamelinesthatthesizeassignmentworks.Catch−allsarenottakingpresedenceanymore.Youmightwanttotakethisintoaccountwhendefiningcolors.Thecatch−allwillonlybeused,iftherewasneveramorespecificcolorassignmentthatwasevaluatedforthisnode.Forexample:color="gray50"if(fields[2] !~ /(CON|FIN|CLO)/)
color="white"
This is used with a three-column dataset, but only two are displayed (-t). If the first condition
ever evaluated to true for a node, the last one will not hit, although the data might have a node that
evaluates to false in the first assignment and then the latter one would grip. As a catch-all it does
get superior treatment. This is really what you would intuitively assume.
- Just another note on color. Watch out, if you are definig colors not based on the fields in the
data, but some other conditions that might change per record, you will get the wrong results as
AfterGlow uses a cache for colorswhich keys off the concatenation of all the field values. Just
a note! Anyone having problems with this? I might have to change the heuristic for caching then. Let
me know.
02/08/07 Version 1.5.7
- With this release I am not bundling the scripts in the
database directory anymore. Get them from CVS if you
need them.
- Adding label to the graph (-a command line option)
- Color nodes which are source AND target differently
(color.sourcetarget=...)
- Added Text::CSV to parse input data (Thanks Neil)
07/03/06 Version 1.5.6
- Fan out filtering introduced
- Introducing subnet() function
- Introducing field() function
- Code optimization for speedup!
- Configuration option to define variables (variable=)
- Removed regex() operator (duplicate of match())
- Fixed a few bugs for clustering
03/09/06 Version 1.4
- Fixing omit-threshold bug. Only draw edges if BOTH nodes
have a higher threshold, not just one of them.
- Introducing cluster capability. This will cluster
multiple nodes into one;
cluster=expression
cluster.{source,event,target}=expression
- Introduction of functions to work with colors and
clusters:
any_regex()
regex()
match()
regex_replace()
03/05/06 Version 1.3
- Adding capability to define colors independent
of the node (color=...)
- Introducing label.{source,event,target}=[0|1]
to disable labels