Querying data in AppMaps
This example shows how to import AppMap data into neo4j where it can be queried using the neo4j query language.
An example query finds classes that don’t call any other methods in other classes. These classes are “leaves” of the AppMap call graph.
In this example, a
CallTree is created for each AppMap file provided on the command
CallTree is flattened into an array. Each array element contains information
about a method call: the class that contains the method, and an array of methods called by
that method (child methods).
For each element in the flattened array, a node in a graph database is created for the containing class. For each element in the array of child methods, an edge is created from the new node to a node for the class of the child method.
The example requires a neo4j instance to be available.
The examples use AppMap data recorded from the tests for the open source application Discourse, “A platform for community discussion”. The recordings were created using the appmap-ruby client. Since the Discourse application is open source and public on AppLand, the recorded scenario data can be freely downloaded from scenarios in the application.
From the application page, choose a scenario:
Open the properties for the scenario:
Download the data:
Downloading several sets of data will make the query results more interesting.
The scenarios of applications in the AppLand sandbox each contain a Timeline view, showing the call sequence contained in the AppMap data.