<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <font face="Calibri">I think we should limit ourselves to the
      Wildfly/EAP agent that we're already working on, as EAP hosted app
      monitoring/mgmt is our bread and butter.   Past that we should
      provide infrastructure to help others hook into the MW MIQ
      support.  So basically, what we're doing so far seems good to me. 
      As attractive as it is to have one agent allow many feeds to
      "plugin" we need to be wary of trying to have a single agent/feed
      do too much, or we'll end up with the RHQ scenario of an agent
      that is too heavy.   And from a dev standpoint, like miq, we
      should in general leave the feeds to be impl'd by those that want
      (or are required) to supply data/inventory, in the way that they
      see fit.  That community effort will validate and improve our
      infrastructure, and help us maintain focus on the core.</font><br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 3/24/2016 5:27 AM, Thomas Segismont
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAHnC0xgoH+EqTRRFQeaAm9CFgXnL+uvRrPKL2LS0DhHzJo8YYQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>Hi Matt,<br>
          <br>
        </div>
        Answers inline<br>
        <div>
          <div>
            <div class="gmail_extra"><br>
              <div class="gmail_quote">2016-03-23 14:47 GMT+01:00 Matt
                Wringe <span dir="ltr">&lt;<a moz-do-not-send="true"
                    href="mailto:mwringe@redhat.com" target="_blank">mwringe@redhat.com</a>&gt;</span>:<br>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex"><span
                    class="">----- Original Message -----<br>
                    &gt; From: "John Mazzitelli" &lt;<a
                      moz-do-not-send="true"
                      href="mailto:mazz@redhat.com"><a class="moz-txt-link-abbreviated" href="mailto:mazz@redhat.com">mazz@redhat.com</a></a>&gt;<br>
                    &gt; To: "Discussions around Hawkular development"
                    &lt;<a moz-do-not-send="true"
                      href="mailto:hawkular-dev@lists.jboss.org">hawkular-dev@lists.jboss.org</a>&gt;<br>
                    &gt; Sent: Wednesday, March 23, 2016 9:28:03 AM<br>
                    &gt; Subject: [Hawkular-dev] using hawkular wildfly
                    agent as a custom java agent<br>
                    &gt;<br>
                    &gt; This is for Matt, but figured post here for
                    public consumption.<br>
                    &gt;<br>
                    &gt; The question was asked yesterday, "Can we use
                    the Hawkular WildFly Agent to<br>
                    &gt; monitor other things other than WildFly?"<br>
                    <br>
                  </span>My question should have been more:<br>
                  <br>
                  "Do we have plans to have other Agents than just the
                  WildFly one"<br>
                </blockquote>
                <div><br>
                </div>
                <div><br>
                </div>
                <div>Here is the list of reporters I know we're working
                  on:<br>
                </div>
                <div>- hawkular-agent<br>
                </div>
                <div>- vertx-hawkular-metrics<br>
                </div>
                <div>- heapster plugin<br>
                </div>
                <div>- ptrans<br>
                </div>
                <div>- all language clients (hawkular-go, hawkular-ruby,
                  ... etc)<br>
                  <br>
                </div>
                <div>There is a JIRA in Metrics for a Node plugin.<br>
                </div>
                <div> </div>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  <br>
                  For me, being able to gather metrics from a WildFly
                  server is really awesome, but when I am dealing with
                  multiple systems I am going to want to be able to
                  manage all those metrics in the same place.<br>
                  <br>
                  Currently its possible for a user to custom write
                  their own component to interface with the Hawkular
                  Metrics server, but in this case it seems like we are
                  asking all our users to continuously write their own
                  agents. Which is not very user friendly and causes a
                  bunch of duplication of effort.<br>
                </blockquote>
                <div><br>
                </div>
                <div>This is not true. Many development platforms have
                  plugins to report data over the Graphite text
                  protocol. The goal of the ptrans project is to allow
                  reuse of existing monitoring infrastructure by
                  forwarding data sent over widely used monitoring
                  network protocols to the Metrics HTTP interface.<br>
                </div>
                <div> </div>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  <br>
                  It would be awesome to be able to provide more agents
                  that would be simple to setup and configure for
                  different systems.<br>
                </blockquote>
                <div><br>
                </div>
                <div>We already have a few projects (see above) but
                  obviously there's a limit in the number of reporters
                  the core team can maintain. ptrans lets us benefit
                  from a wide ecosystem of independent metric
                  collectors.<br>
                </div>
                <div> </div>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  <br>
                  If I am mostly running a bunch of different Java
                  application, including WildFly, its going to be really
                  tough to convince me to use Hawkular if its only going
                  to monitor a subset of my systems. I would be much
                  better off using Jolokia or something similar which
                  can monitor all or most of my applications.<br>
                </blockquote>
                <div><br>
                </div>
                <div>Correct me if I'm wrong, but Jolokia is not a
                  collection system. It is an HTTP adaptor around JMX. I
                  would argue that a great majority of Java applications
                  either:<br>
                </div>
                <div>- collect monitoring data with home-built systems
                  and publish to JMX<br>
                </div>
                <div>- collect monitoring data with Dropwizard Metrics<br>
                  <br>
                </div>
                <div>In the former case, user can combine jmxtrans(or
                  embedded jmxtrans) with ptrans. In the latter,
                  Dropwizard can be configured to send data over the
                  Graphite protocol to ptrans.<br>
                </div>
                <div> </div>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  <span class=""><br>
                    &gt;<br>
                    &gt; I gave one answer, but forgot there is a second
                    alternative.<br>
                    &gt;<br>
                    &gt; ====<br>
                    &gt;<br>
                    &gt; The first answer that I gave is that you can
                    use the Hawkular Wildfly Agent<br>
                    &gt; to collect JMX data via Jolokia interface.
                    There is an integration in the<br>
                    &gt; agent that lets you define your resource and
                    metric metadata and your<br>
                    &gt; JMX/Jolokia servers. As an example, see here:<br>
                    &gt; <a moz-do-not-send="true"
href="https://github.com/hawkular/hawkular-agent/blob/b52529823ca3c54d0b8b4aa560d568cd114afdec/hawkular-wildfly-agent-feature-pack/src/main/resources/subsystem-templates/hawkular-wildfly-agent.xml#L736-L817"
                      rel="noreferrer" target="_blank">https://github.com/hawkular/hawkular-agent/blob/b52529823ca3c54d0b8b4aa560d568cd114afdec/hawkular-wildfly-agent-feature-pack/src/main/resources/subsystem-templates/hawkular-wildfly-agent.xml#L736-L817</a><br>
                    &gt;<br>
                    &gt; You define where your JMX servers are via the
                    &lt;remote-jmx&gt; managed server<br>
                    &gt; like this:<br>
                    &gt;<br>
                    &gt;    &lt;remote-jmx name="Remote JMX"
                    enabled="false"<br>
                    &gt;    resourceTypeSets="MainJMX,MemoryPoolJMX"<br>
                    &gt;    url="<a moz-do-not-send="true"
                      href="http://localhost:8080/jolokia-war"
                      rel="noreferrer" target="_blank">http://localhost:8080/jolokia-war</a>"/&gt;<br>
                    &gt;<br>
                    &gt; OK, that's the JMX integration. Maybe useful,
                    maybe not. But I mention it<br>
                    &gt; just in case.<br>
                    <br>
                  </span>Having the agent running in an EAP instance be
                  able to monitor other jolokia end points is cool. But
                  I don't really understand why this isn't a more
                  standalone java application. I would think it would be
                  much more useful to be able to have a standalone java
                  agent which could run on the same system which is
                  exposing the jolokia endpoint. Say I am only running
                  Tomcat servers and I don't want to run Wildfly just to
                  be able to gather the metrics from Tomcat.<br>
                  <span class=""><br>
                    &gt; ====<br>
                    &gt;<br>
                    &gt; The second alternative I forgot to mention was
                    the ability for any component<br>
                    &gt; running in WildFly to obtain a Hawkular Agent
                    proxy via JNDI and use that<br>
                    &gt; proxy that store inventory and metrics into the
                    Hawkular Server.<br>
                    &gt;<br>
                    &gt; There is an example WAR module in the agent git
                    repo that demonstrates how to<br>
                    &gt; obtain the proxy via JNDI and how to store
                    inventory and metrics - see here:<br>
                    &gt; <a moz-do-not-send="true"
href="https://github.com/hawkular/hawkular-agent/tree/master/hawkular-wildfly-agent-itest-parent/hawkular-wildfly-agent-example-jndi"
                      rel="noreferrer" target="_blank">https://github.com/hawkular/hawkular-agent/tree/master/hawkular-wildfly-agent-itest-parent/hawkular-wildfly-agent-example-jndi</a><br>
                    &gt;<br>
                    &gt; This is just a simple WAR with a servlet. But
                    it shows how a component can<br>
                    &gt; get the agent proxy via JNDI here:<br>
                    &gt;<br>
                    &gt; <a moz-do-not-send="true"
href="https://github.com/hawkular/hawkular-agent/blob/master/hawkular-wildfly-agent-itest-parent/hawkular-wildfly-agent-example-jndi/src/main/java/org/hawkular/agent/example/HawkularWildFlyAgentProvider.java#L32-L35"
                      rel="noreferrer" target="_blank">https://github.com/hawkular/hawkular-agent/blob/master/hawkular-wildfly-agent-itest-parent/hawkular-wildfly-agent-example-jndi/src/main/java/org/hawkular/agent/example/HawkularWildFlyAgentProvider.java#L32-L35</a><br>
                    &gt;<br>
                    &gt; Here's code that shows the servlet doing things
                    like sending metrics, avail,<br>
                    &gt; and creating resources:<br>
                    &gt;<br>
                    &gt; <a moz-do-not-send="true"
href="https://github.com/hawkular/hawkular-agent/blob/master/hawkular-wildfly-agent-itest-parent/hawkular-wildfly-agent-example-jndi/src/main/java/org/hawkular/agent/example/MyAppServlet.java"
                      rel="noreferrer" target="_blank">https://github.com/hawkular/hawkular-agent/blob/master/hawkular-wildfly-agent-itest-parent/hawkular-wildfly-agent-example-jndi/src/main/java/org/hawkular/agent/example/MyAppServlet.java</a><br>
                    &gt;<br>
                    &gt; No one is using this yet. So there may be
                    issues I am not aware of, but we<br>
                    &gt; have integration tests that show this working.<br>
                    &gt;<br>
                    &gt; This was put together with the anticipation of
                    someone asking for this<br>
                    &gt; capability - that is, "can the agent be used to
                    collect metrics for other<br>
                    &gt; things other than WildFly". Essentially, this
                    just gives you a skeleton Java<br>
                    &gt; agent that you can extend to collect your own
                    metrics and inventory. So you<br>
                    &gt; can write a WAR or EAR, deploy it in any
                    WildFly that has an agent<br>
                    &gt; subsystem, and your EAR/WAR can be used as an
                    "agent" for your custom stuff.<br>
                    &gt;<br>
                    &gt; Again, maybe useful, maybe not. But I mention
                    it just in case.<br>
                    <br>
                  </span>Being able to expose custom metrics is
                  extremely important. Awesome that we have the ability
                  to do that with the agent currently :)<br>
                  <div class="HOEnZb">
                    <div class="h5">_______________________________________________<br>
                      hawkular-dev mailing list<br>
                      <a moz-do-not-send="true"
                        href="mailto:hawkular-dev@lists.jboss.org">hawkular-dev@lists.jboss.org</a><br>
                      <a moz-do-not-send="true"
                        href="https://lists.jboss.org/mailman/listinfo/hawkular-dev"
                        rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/hawkular-dev</a><br>
                    </div>
                  </div>
                </blockquote>
              </div>
              <br>
              <br clear="all">
              <br>
              -- <br>
              <div class="gmail_signature">
                <div dir="ltr">
                  <div>Thomas Segismont<br>
                  </div>
                  JBoss ON Engineering Team<br>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
hawkular-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:hawkular-dev@lists.jboss.org">hawkular-dev@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/hawkular-dev">https://lists.jboss.org/mailman/listinfo/hawkular-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>