Its purpose in life is to help you create NodeGraphs like network or application topology, arranging nodes and edges, and dynamically query prometheus to add stat to graph items.
It support instant and range queries. Range query results will be averaged to get one metric.
Technically, it is an API which builds json nodegraph structure to be exposed to grafana. To enrich this structure with metrics, nodegopher query a prometheus instance.
It gets time range values from Grafana, so it can relay them to prometheus if you want to average values from a time range.