1.2.11 - the luminosity branch¶
v1.2.11 - January 17, 2019
Bug fixes release¶
- Bug fixes are described below.
Changes from v1.2.10¶
- Fix webapp time out - Graphs in search_features_profiles. Added a lightweight ionosphere_show_graphs function to ionosphere_backend to and changed from using ionosphere_metric_data to using this lightweight function which does not process matched graphs, only the images required by the show graaphs context. This stops webapp time outs (2746, 2602). In skyline/webapp/ionosphere_backend.py and skyline/webapp/webapp.py
- skyline/webapp/webapp.py - Fix webapp 500 error on no metric. Set metric_found_in_other_redis before the OTHER_SKYLINE_REDIS_INSTANCES conditional check otherwise webapp return a 500 server error instead of a 404 if the metric does not exist (2792)
- skyline/mirage/mirage_alerters.py - Removed superfluous spaces in slack alert string concatenations (2618)
- Updated boundary.py with analyse_derivatives (2034, 2742)
- Updated boundary_alerters.py with analyse_derivatives (2034, 2742), alert_slack (2618) and incorrect scale in some graphs (2498)
- Updated settings with BOUNDARY_SLACK_OPTS for alert_slack (2742, 2618)
- Updated utils/verify_alerts.py for Boundary and alert_slack (2742, 2618)
- skyline/skyline_functions.py - Remove the metric from thenon_derivative_metrics Redis set. This set is normally managed by Analyzer and although the metric is added to the derivative_metrics set above, it only gets removed from the non_derivative_metrics set after the Analyzer Redis key analyzer.derivative_metrics_expiry expires, which can be up to 300 seconds when the derivative_metrics and non_derivative_metrics Redis sets are recreated (2796, 2488)
- Updated skyline/analyzer/alerters.py with the initial basic description of the new slack thread messages functionally is terms of the webapp code changes and the changes required to the DB and Panorama/Redis to achieve the desired goal this is still TODO in terms of Panorama workload and DB changes. (2646)
- Wrapped the determination of the slack_thread_ts in try except (2646)
- Fix Cross-Site Scripting Security Vulnerability #85 - import flask.escape as flask_escape and wrap resp in webapp.py to fix #85 and added additional request argument validation (2816) in skyline/webapp/webapp.py
- Validate request arguments that are used in SQL in skyline/webapp/ionosphere_backend.py to fix #86 (2818)
- Updated version to v1.2.11 and general docs updates (2748)
- Updated readme.md to be consistent with the documentation in terms of the available metrics sources (2748)
Update notes¶
- You can only upgrade to v1.2.11 from v1.2.10-stable-luminosity
- There is no change to the DB
- There are some changes to settings.py related to Boundary slack alerting
How to update from v1.2.10¶
- Download the new release tag or clone/update to get it to a temp location, ready to be deployed.
- Diff your current running version skyline/settings.py with the new version of skyline/settings.py and create a new settings.py in the temp location appropriate for Skyline v1.2.11 and your set up, ready to be deployed.
- Stop all the Skyline services and ensure any service controls such as monit, supervisor or systemd do not start them again, (change as appropriate for your set up) e.g.
NEW_SKYLINE_VERSION="v1.2.11" # Your new Skyline version
OLD_SKYLINE_VERSION="v1.2.10-stable-luminosity" # Your old Skyline version
CURRENT_SKYLINE_PATH="/opt/skyline/github/skyline" # Your Skyline path
NEW_SKYLINE_PATH="${CURRENT_SKYLINE_PATH}.${NEW_SKYLINE_VERSION}" # Your new Skyline path
mkdir -p "${CURRENT_SKYLINE_PATH}.${NEW_SKYLINE_VERSION}"
cd "${CURRENT_SKYLINE_PATH}.${NEW_SKYLINE_VERSION}"
git clone https://github.com/earthgecko/skyline .
git checkout "$NEW_SKYLINE_VERSION"
# Stop all other Skyline services
SKYLINE_SERVICES="horizon
analyzer
mirage
crucible
boundary
ionosphere
luminosity
panorama
webapp"
for i in $SKYLINE_SERVICES
do
/etc/init.d/$i stop
done
- Move your current Skyline directory to a backup directory and move the new Skyline v1.2.11 with your new settings.py from the temp location to your working Skyline directory, (change your paths as appropriate) e.g.
mv /opt/skyline/github/skyline /opt/skyline/github/skyline.v1.2.10-luminosity-stable
mv "$NEW_SKYLINE_PATH" "$CURRENT_SKYLINE_PATH"
- Start the all Skyline services (change as appropriate for your set up) e.g.
# Start all other Skyline services
SKYLINE_SERVICES="panorama
luminosity
horizon
analyzer
mirage
crucible
boundary
ionosphere
webapp"
for i in $SKYLINE_SERVICES
do
/etc/init.d/$i start
done
- Check the logs
# How are they running
tail -n 20 /var/log/skyline/*.log
# Any errors - each app
find /var/log/skyline -type f -name "*.log" | while read skyline_logfile
do
echo "#####
# Checking for errors in $skyline_logfile"
cat "$skyline_logfile" | grep -B2 -A10 -i "error ::\|traceback" | tail -n 60
echo ""
echo ""
done