public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
From: Nathan Scott <nathans@redhat.com>
To: "Frank Ch. Eigler" <fche@redhat.com>, David Smith <dsmith@redhat.com>
Cc: pcp@oss.sgi.com, Systemtap List <systemtap@sourceware.org>
Subject: Re: systemtap/pcp integration
Date: Thu, 24 Jul 2014 07:40:00 -0000	[thread overview]
Message-ID: <686315886.17105377.1406187642603.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <y0mwqb4t9v0.fsf@fche.csb>



----- Original Message -----
> [...]
> Yes, but the systemtap side of this would be pretty trivial.  Printing
> JSON strings is easy.

Thats only a small part of the problem though (even just considering
the systemtap side of things), and there are many advantages to the MMV
format being so close to the representation the PMDA needs to export.

> >  (for ... reasons?)
> 
> Other messages in the thread pointed out some reasons

Those references were a little too vague for me to follow the intent.

> - ability to generalize to event traffic, not just sampled metrics

That's not really a reason to start over though - the MMV format is
versioned, it could easily be extended and all its many advantages
kept.  Or, a separate PMDA might make a better option there - there
is no reason one PMDA needs to service both these (very different)
tracing/sampling data models.

Anyway, do keep in mind the oft-mentioned cost of string conversions
(Ken mentioned on the last call, IIRC, David mentioned his concerns
originally, and I will say it again too) - every time we've profiled
pmdalinux, the CPU cost is always dominated by the string extraction/
conversion code for the procfs/sysfs files.

That will be orders of magnitude worse for event tracing, I imagine.

> - robustness, by avoiding fragile C code

Do you mean Davids systemtap code?  The MMV code in PCP has been around
for quite some time, and I know of a number of production environments
using it 24x7 on hundreds of machines, for many years - its not fragile
at all.  Stability in Davids code will come over time, if there really
is an issue there (?) but experience would suggest there is no inherent
flaw in the approach he's using.

> So the proposal is to think about a single general JSON PMDA that can
> be configured to bridge data from multiple JSON-emitting applications,
> including systemtap scripts.

Bridges like this have been implemented several times in the past and it
has never worked well.  The fundamental, unsolvable-in-the-general-case
problem is that we have well-defined metric semantics in PCP.  So these
bridges have to (attempt to) map from the usually-far-less-so,if-defined
-at-all semantics offered by the other tool, and come up with the highly
detailed PCP metric metadata, somehow.  To date custom PMDAs have always
done a better job - more simply-coded, and with domain-specific-code, as
designed for PCP PMDAs (we can still use JSON there of course, as in the
elasticsearch case).


FWIW, I chatted to someone last week who was actually using Zabbix in a
production environment - they were interested in exploring the opposite
direction to what you've described above.  IOW, they would like to have
a PCP component that talks Zabbix protocol (JSON-alike, IIRC) such that
they wouldn't have to install the Zabbix agent code everywhere.  They'd
like instead to rely on a PCP component (could pmwebd be taught to fill
this role, perhaps? dunno) giving them everything they need for all the
many machines they rollout, cookie-cutter style, from PCP.  Then, their
central Zabbix instance could continue doing their alerting, which they
like.  It sounded a little bit like the graphana/graphite exporting, and
I believe its also JSON-based, so just thought I'd mention it here.

cheers.

--
Nathan

      reply	other threads:[~2014-07-24  7:40 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-17 21:14 David Smith
2014-07-18 15:49 ` Frank Ch. Eigler
2014-07-18 17:02   ` David Smith
2014-07-18 18:27     ` Frank Ch. Eigler
2014-07-22 14:25       ` David Smith
2014-07-22 15:21         ` Frank Ch. Eigler
2014-07-22 21:02           ` David Smith
2014-07-18 21:10 ` [pcp] " William Cohen
2014-07-21 15:43   ` David Smith
2014-07-21 15:54     ` William Cohen
2014-07-22  1:32 ` Nathan Scott
2014-07-22  2:57   ` Frank Ch. Eigler
2014-07-22 14:50   ` [pcp] " David Smith
2014-07-23 10:29     ` Nathan Scott
2014-07-23 14:42       ` Frank Ch. Eigler
2014-07-24  7:40         ` Nathan Scott [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=686315886.17105377.1406187642603.JavaMail.zimbra@redhat.com \
    --to=nathans@redhat.com \
    --cc=dsmith@redhat.com \
    --cc=fche@redhat.com \
    --cc=pcp@oss.sgi.com \
    --cc=systemtap@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).