Django Graphs is a free and open source Django application that allows collection and visualization of any kind of time series data.
Features
- Collect time series data trough a fully featured REST API courtesy of the Django Rest Framework
- Visualize your Data using Graphs
- Simple/Mobile view using Chart.js
- Advanced view using (more data + zoom) MetricsGraphicsjs
- Create displays to show most recent data
- Permission System with multiple access levels
- Secure API endpoints using either session, basic or token authentication
- Attribute to make Graphs/Displays public
Viewer
group that can only view graphs/displaysUser
group that can edit/delete graphs/displays/selectors/types/instances and post data
- Localization support (currently English and German available)
The usage is pretty straight forward after understanding a few basic concepts
Data Entries
are created via the API. They consist of a (automatic) timestamp and a type, instance and value.Types
define of which type a data entry is (Basically its name and unit).Instances
are used to differentiate between data sources. For example if measuring temperature one instance could be outside and oneGraph Selectors
are basically the lines of a graph. By defining a type and instance the data entries are filtered and then displayed in the graph.
Usage of the API is explained in the build in API Docs. If used from anywhere else than the API browser you basically need to supply authentication (either basic or token) and a json body containing a type, instance and value.
You can use the included docker compose template either as a standalone or in combination with traefik. The process is basically the same as here
If you want to install it without docker you can follow a tutorial like this one, note that you have to manually set the environment variables in the .env.template
file.
ALWAYS backup your database before updating!
To update using the default settings simply git pull
and run sh update.sh
.
Some updates might require to rebuild the container if new requirements where added.
Postgresql container updates can cause database incompatibilities. To update create a db dump before updating and import it afterwards.
See LICENSE.md
for licensing information.