73 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| Monitoring
 | |
| ==========
 | |
| 
 | |
| Notfellchen should, like every other software, be easy to monitor. Therefore a basic metrics are exposed to `https://notfellchen.org/metrics`.
 | |
| The data is encoded in JSON format and is therefore suitable to bea read by humans and it is easy to use it as data source for further processing.
 | |
| 
 | |
| 
 | |
| Exposed Metrics
 | |
| ---------------
 | |
| 
 | |
| .. code::
 | |
| 
 | |
|    users: number of users (all roles combined)
 | |
|    staff: number of users with staff status
 | |
|    adoption_notices: number of adoption notices
 | |
|    adoption_notices_by_status: number of adoption notices by major status
 | |
|    adoption_notices_without_location: number of location notices that are not geocoded
 | |
| 
 | |
| Example workflow
 | |
| ----------------
 | |
| 
 | |
| To use the exposed metrics you will usually need a time series database and a visualization tool.
 | |
| 
 | |
| As time series database we will utilize InfluxDB, the visualization tool will be Grafana.
 | |
| 
 | |
| InfluxDB and Telegraf
 | |
| ^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| First we install InfluxDB (e.g. with docker, be aware of the security risks!).
 | |
| 
 | |
| .. code::
 | |
| 
 | |
|    # Pull the image
 | |
|    $ sudo docker pull influxdb
 | |
| 
 | |
|    # Start influxdb
 | |
|    $ sudo docker run -d -p 8086:8086 -v influxdb:/var/lib/influxdb --name influxdb influxdb
 | |
| 
 | |
|    # Start influxdb console
 | |
|    $ docker exec -it influxdb influx
 | |
|    Connected to http://localhost:8086 version 1.8.3
 | |
|    InfluxDB shell version: 1.8.3
 | |
|    > create database monitoring
 | |
|    > create user "telegraf" with password 'mypassword'
 | |
|    > grant all on monitoring to telegraf
 | |
| 
 | |
| .. note::
 | |
|    When creating the user telegraf check the double and single quotes for username an password.
 | |
| 
 | |
| Now install telegraf and configure `etc/telegraf/telegraf.conf`. Modify the domain and your password for the InfluxDB database. 
 | |
| 
 | |
| .. literalinclude:: example.telegraf.conf
 | |
|     :linenos:
 | |
|     :language: python
 | |
| 
 | |
| Graphana
 | |
| ^^^^^^^^
 | |
| 
 | |
| Now we can simply use the InfluxDB as data source in Grafana and configure until you have
 | |
| beautiful plots!
 | |
| 
 | |
| .. image:: monitoring_grafana.png
 | |
| 
 | |
| Healthchecks
 | |
| ------------
 | |
| 
 | |
| You can configure notfellchen to give a hourly ping to a healthchecks server. If this ping is not received, you will get notified and cna check why the celery jobs are no running.
 | |
| Add the following to your `notfellchen.cfg` and adjust the URL to match your check.
 | |
| .. code::
 | |
| 
 | |
|   [monitoring]
 | |
|   healthchecks_url=https://health.example.org/ping/5fa7c9b2-753a-4cb3-bcc9-f982f5bc68e8
 |