|
|
|
@ -2,24 +2,25 @@ With APM we can easily visualize where latencies are coming from. |
|
|
|
|
|
|
|
Open `sensors/sensors.py` file in the editor. |
|
|
|
|
|
|
|
Add the following to the `def refresh_sensors` endpoint. |
|
|
|
Add the following to the `def simulate_all_sensors` function. |
|
|
|
|
|
|
|
```python |
|
|
|
time.sleep(2) |
|
|
|
db.session.execute('SELECT pg_sleep(2);') |
|
|
|
```{{copy}} |
|
|
|
|
|
|
|
When we are done the function should look like: |
|
|
|
|
|
|
|
``` python |
|
|
|
@app.route('/refresh_sensors') |
|
|
|
def refresh_sensors(): |
|
|
|
app.logger.info('Calling refresh sensor simulator') |
|
|
|
sensors = simulate_all_sensors() |
|
|
|
|
|
|
|
time.sleep(2) |
|
|
|
|
|
|
|
return jsonify({'sensor_count': len(sensors), |
|
|
|
'system_status': sensors}) |
|
|
|
@tracer.wrap(name='sensor-simulator') |
|
|
|
def simulate_all_sensors(): |
|
|
|
db.session.execute('SELECT pg_sleep(2);') |
|
|
|
sensors = Sensor.query.all() |
|
|
|
for sensor in sensors: |
|
|
|
sensor.value = random.randint(1,100) |
|
|
|
db.session.add_all(sensors) |
|
|
|
db.session.commit() |
|
|
|
app.logger.info('Sensor data updated') |
|
|
|
return [s.serialize() for s in sensors] |
|
|
|
```{{copy}} |
|
|
|
|
|
|
|
Restart our services `docker-compose up`{{execute interrupt}} |
|
|
|
|