Darren Reed
2010-10-15 23:08:25 UTC
At present, dtrace does not support conditional execution,
so no if's and no loops.
With the current design, all collection of statistics is about
something that is happening. This means I can't present
information about objects that have no activity alongside
those that do. Well, I suppose I can, but I have to either
provide the information from outside of the D script or
cause some iterative function to occur that the D script
can monitor and learn from - both of which seem like
kludges to me.
Therefore what I'd like to do is be able to return an array
of objects and assign them the value "0". For example:
@fsactivity[zfs_list()] = zero();
... where "zfs_list()" would return an array of strings that
are the names of all the zfs filesystems and zero() is a
function that would be considered an aggregation friendly
function that assigned 0 to every element in fsactivity.
Now I know that doing zero() is possible, and specifics of
zfs_list() aside, but is it possible to support a function
returning an array or list that is used to populate an
array in D? Can the internals of D be easily modified to
work in that fashion or would that require an extensive
rewrite?
Darren
so no if's and no loops.
With the current design, all collection of statistics is about
something that is happening. This means I can't present
information about objects that have no activity alongside
those that do. Well, I suppose I can, but I have to either
provide the information from outside of the D script or
cause some iterative function to occur that the D script
can monitor and learn from - both of which seem like
kludges to me.
Therefore what I'd like to do is be able to return an array
of objects and assign them the value "0". For example:
@fsactivity[zfs_list()] = zero();
... where "zfs_list()" would return an array of strings that
are the names of all the zfs filesystems and zero() is a
function that would be considered an aggregation friendly
function that assigned 0 to every element in fsactivity.
Now I know that doing zero() is possible, and specifics of
zfs_list() aside, but is it possible to support a function
returning an array or list that is used to populate an
array in D? Can the internals of D be easily modified to
work in that fashion or would that require an extensive
rewrite?
Darren