On 04/02/15 03:49, Martins Innus wrote:
Hi,
I am starting to work on a ganglia to PCP archive converter ...
OK that sounds like a useful addition.
In this case, if you constructed a pcp archive each day
containingin the previous 24 hours ganglia data, if you didn't do some
sort of state saving, each metric would start off at a raw counter value
of zero. Then at some later time, if you wanted to pmlogextract for a
time period that spanned multiple of these converted logs, you would get
a discontinuity when these "counters" reset to zero.
Yep. In fact you'd get this discontinuity and a <mark> record at each
archive boundary, independent of the counters being reset, because each
pmlogger invocation starts a new session with pmcd and this may be
because pmcd has been restarted or the machine rebooted, both of which
would cause PMDA data to be reset.
So I don't think this is any different to the status quo.
Or does all this just get handled properly by client tools when
they see the "MARK" records that pmlogextract would put in these locations?
When <mark> records are encountered client tools using "interp" mode
(and that is most of them that are used to replay an archive) see "No
values" for fetches that where the fetch interval spans a <mark> record,
and in the regions where there are no <mark> records, values are
returned as normal.
The much talked about, but not actually implemented, improved
pmlogreduce would do a much better job of handling this situation by
aggregation of values prior to the <mark> and after the <mark> and
reporting the time averaged value over an interval containing one or
more <mark> records. But this would be in a tool that converts one
archive into another (smaller, with less data granularity) archive, not
as a part of libpcp.
I haven't gotten far enough along to actually test what happens,
was just wondering what I should expect.
To see what to expect ...
install the sample PMDA
start a pmlogger logging sample.pdu
wait a while
restart pmcd
start another pmlogger logging sample.pdu
wait a while
kill the pmlogger
merge the two archives with pmlogextract
|