(Make that "not much of a web page developer". I'm a back-end Java guy
mostly, don't much value my UI skills and so have stayed away from the
browser except for straight HTML and CSS.)

On Fri, Jul 8, 2016 at 8:39 PM, Russell Bateman <
russell.bate...@perfectsearchcorp.com> wrote:

> Thanks, Andy and Matt, I had actually tried out the Developer Tools
> earlier today as suggested by the doc, but, I'm not much of a web
> developer, don't have a lot of familiarity with those tools in Chrome or in
> Firefox, and I couldn't see anything going on (in Firefox) that was
> helpful. I may have to grow strong that way.
>
> For now, we're in 0.6.1. I'm hoping that soon after 1.0 makes its
> appearance, we can move up, but you point out something we're already
> beginning to pay attention to: incompatiblities. Still we're committed to
> (and love!) the technology. I've written a dozen custom processors (for
> proprietary ETL stuff) already and my colleague has done the same.
>
> Thanks, again.
>
>
> On Fri, Jul 8, 2016 at 5:11 PM, Andy LoPresto <alopre...@apache.org>
> wrote:
>
>> Russell,
>>
>> To echo Matt’s point, the NiFi UI uses the REST API on every command, and
>> developer tools is a great way to observe this.
>>
>> Another example using the REST API is Andrew Grande’s “nifi-deploy-api”
>> project on GitHub [1]. It is a groovy script that can automate the
>> deployment of NiFi instances and does this using the API. If you run it
>> with the ‘--debug’ flag, you can see the HTTP endpoints it invokes to
>> accomplish this.
>>
>> Finally, the REST API is extremely well documented here [2] (also locally
>> in the installation). It is extensive, but should be able to answer a
>> number of the questions you asked. For example, to get processor
>> statistics, you would invoke:
>>
>> GET /controller/process-groups/{process-group-id}/status
>>
>> Gets the status for a process group
>> The status for a process group includes status for all descendent
>> components. When invoked on the root group with recursive set to true, it
>> will return the current status of every component in the flow.
>>
>> When I invoke that endpoint on a simple cluster I have running with a
>> single Base64EncodeContent processor named “Token Example”  on the canvas,
>> I get this response:
>>
>>
>> https://ncm.nifi.apache.org:4567/nifi-api/controller/process-groups/root/status
>>
>> <processGroupStatusEntity>
>> <revision>
>> <clientId>392b161b-d9cc-442a-9394-8db9cee33ba7</clientId>
>> </revision>
>> <processGroupStatus>
>> <activeThreadCount>0</activeThreadCount>
>> <id>d17d7a95-6301-46ff-b003-11c58698bd31</id>
>> <input>0 / 0 bytes</input>
>> <name>NiFi Flow</name>
>> <output>0 / 0 bytes</output>
>> <processorStatus>
>> <activeThreadCount>0</activeThreadCount>
>> <groupId>d17d7a95-6301-46ff-b003-11c58698bd31</groupId>
>> <id>b642a34d-c18c-4bb1-b836-6bbc9d32f31e</id>
>> <input>0 / 0 bytes</input>
>> <name>*Token Example*</name>
>> <output>0 / 0 bytes</output>
>> <read>0 bytes</read>
>> <runStatus>Invalid</runStatus>
>> <tasks>0</tasks>
>> <tasksDuration>00:00:00.000</tasksDuration>
>> <type>*Base64EncodeContent*</type>
>> <written>0 bytes</written>
>> </processorStatus>
>> <queued>0 / 0 bytes</queued>
>> <queuedCount>0</queuedCount>
>> <queuedSize>0 bytes</queuedSize>
>> <read>0 bytes</read>
>> <received>0 / 0 bytes</received>
>> <sent>0 / 0 bytes</sent>
>> <statsLastRefreshed>16:09:46 PDT</statsLastRefreshed>
>> <transferred>0 / 0 bytes</transferred>
>> <written>0 bytes</written>
>> </processGroupStatus>
>> </processGroupStatusEntity>
>>
>> [1] https://github.com/aperepel/nifi-api-deploy
>> [2] https://nifi.apache.org/docs/nifi-docs/rest-api/index.html
>>
>> Andy LoPresto
>> alopre...@apache.org
>> *alopresto.apa...@gmail.com <alopresto.apa...@gmail.com>*
>> PGP Fingerprint: 70EC B3E5 98A6 5A3F D3C4  BACE 3C6E F65B 2F7D EF69
>>
>> On Jul 8, 2016, at 3:18 PM, Matt Gilman <matt.c.gil...@gmail.com> wrote:
>>
>> Russell,
>>
>> I can provide a more detailed response when I'm back in front of my
>> computer but thought I'd offer this as a quick suggestion.
>>
>> All flows use process groups. The blank canvas when you load your nifi
>> instance is the root level process group. If you don't know the actual ID,
>> you can use the alias 'root' as the path parameter for the process group ID.
>>
>> Please check out your browser's Dev Tools to see these API's in action.
>> The UI uses these API's exclusively.
>>
>> Also the API's have been completely refactored in the upcoming 1.0.0
>> release to align with the authorization policies of each resource. So the
>> answers to your questions will depend on which version your running.
>>
>> Matt
>>
>> Sent from my iPhone
>>
>> On Jul 8, 2016, at 5:35 PM, Russell Bateman <
>> russell.bate...@perfectsearchcorp.com> wrote:
>>
>> I'm trying to figure out how to use the ReST (nifi-api) interface to
>> accomplish a number of things. First, I've played successfully with it
>> doing simple things like getting configuration, a list of existing
>> processors, and the like. I've even discovered that in
>> controller/history/processors/{processorId} I can use the processor name
>> for {processorId} instead of an intangible or impossible number.
>>
>> What puzzles me is that I need a {process-group-id} to do so many things.
>> I'm not using a process group, my flow is very simple for now. Maybe,
>> think
>> I, I have one process group and I just need its id, but how do I get that?
>> I see no list API for it.
>>
>> The long list of things I'm hoping to do down the road from a UI is to be
>> able to see things like:
>>
>>  1. How many times a processor processed anything?
>>  2. How many flowfiles were processed?
>>  3. How many flowfiles were produced?
>>  4. Can I get this information per processor?
>>  5. How can I tell different instances of the same processor apart?
>>  6. Why can't I see the name I gave a processor in configuration? (For
>>  example, I named an instance of GetFile to "Get PDF files from test
>> fodder".
>>  7. How can I get a list of items on the NiFi canvas like processors and
>>  relationships.
>>  8. How many times processors or a processor failed?
>>  9. What is the profile of resource usage, like memory in use?
>>  10. What is the profile of processor latency?
>>     - flowfiles backed up awaiting processing
>>     - flowfiles in other states (?)
>>
>> Any nudge on any of this would be very welcome. NiFi is new enough that
>> there's precious few samples of people using the ReST interface.
>>
>> Thanks
>>
>>
>>
>

Reply via email to