The query in the script below produces the following output:
{"results":[{"columns":["one","rel","two"],"data":[{"row":[{"domain":"metadata","nodetype":"CMAclass","name":"HbRing"},{},{"domain":"metadata","nodetype":"CMAclass","name":"CMAclass"}]}]}],"errors":[]}

What I noticed is that the relationship shows up as {}.  Do I need to
change the query to get the relationship type?  [See the script below
for the query]

In any case, below is a script which does a passable job of seeing if
Neo4j is operational (and not dead, comatose, or laying on the ground
twitching)...  I'm going to write an OCF resource agent using it - so I
can monitor neo4j "properly".  And I could also make it highly-available
using Pacemaker...

It can use either wget or curl to talk to Neo4j.

#
#    Simple script to monitor Neo4j for basic operation
#
#    Potential inputs to this script are:
#    ipport:    IP-port combination of the neo4j REST server
#    cypher:    Cypher query string
#    regex:     Regular expression to match server output against
#    grepflags: flags to give grep
ipport='127.0.0.1:7474'
ipport='[::ffff:127.0.0.1]:7474'
cypher="START one=node(*) RETURN one LIMIT 1"
#    Need at least one node and one relationship for this one to succeed...
cypher="START one=node(*) MATCH one-[rel]->two RETURN one, rel, two LIMIT 1"
regex='^{ *"results" *: *\[.*\] *, *"errors" *: *\[ *\] *}$'
grepflags=""
#
#    Other variables in the script
#    queryjson:    JSON-encapsulated version of cypher query
#    committrans:  url suffix for committing transactions in one go
#    URL:          URL to give to Neo4j REST service
#    header:       Extra header information to give REST service (i.e.,
Content-type)
queryjson="{\"statements\" : [ { \"statement\" : \"$cypher\" } ] }"
committrans='db/data/transaction/commit'
URL=http://${ipport}/${committrans}
header='Content-type: application/json'
use_wget=1

runquery() {
    if
      [ "$use_wget" -eq 1 ]
    then
      wget -q    --header="${header}" --post-data="$queryjson" 
--output-document=- $URL
    else
      curl -s -g --header "${header}" --data      "$queryjson"  --output
-          $URL
    fi
}
monitor() {
    runquery | grep ${grepflags} "${regex}" >/dev/null
}
runquery
monitor
rc=$?
echo $rc
exit $rc



-- 
    Alan Robertson <[email protected]> - @OSSAlanR

"Openness is the foundation and preservative of friendship...  Let me claim 
from you at all times your undisguised opinions." - William Wilberforce

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to