Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature] Implement Iperf3 check #385 #394

Merged
merged 64 commits into from
Aug 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
506f044
[feature] Implement Iperf check #385
Aryamanz29 Jun 6, 2022
6bd112b
[feature] Added device connection logic
Aryamanz29 Jun 11, 2022
c47467e
[feature] Added charts and metric (TCP)
Aryamanz29 Jun 13, 2022
488990b
[feauture] UDP mode added
Aryamanz29 Jun 16, 2022
f890ba9
[chores] Removed unnecessary code
Aryamanz29 Jun 20, 2022
a6ec0dc
[refactor] Refactor device connection logic
Aryamanz29 Jun 21, 2022
f3a79a5
[chores] Move Iperf server settings to project settings
Aryamanz29 Jun 21, 2022
69f63fc
[chores] Remove redundant else in guard clause
Aryamanz29 Jun 22, 2022
9a346ef
[fix] Fixed iperf check execution if device connection not working #399
Aryamanz29 Jun 23, 2022
9383f3a
[chores] Minor changes in configuration
Aryamanz29 Jun 24, 2022
bf7dfd5
[requested-changes] Changed chart conf and added log warnings
Aryamanz29 Jun 24, 2022
9d98a66
[change] Handled iperf in each mode
Aryamanz29 Jun 26, 2022
3050edf
[refactor] Iperf check class #405
Aryamanz29 Jun 27, 2022
efdc70a
[tests] Added tests for iperf check
Aryamanz29 Jun 28, 2022
0f65c6a
[docs] Added Iperf check instructions
Aryamanz29 Jun 28, 2022
7396e79
[requested-changes] Added bandwidth and transfer charts (UDP)
Aryamanz29 Jun 29, 2022
2b881e0
[docs] Added transfer & bandwidth charts (UDP) instructions
Aryamanz29 Jun 29, 2022
4d732bb
[requested-changes] Logger warning changed
Aryamanz29 Jun 30, 2022
8c488ab
[tests] Added test for Iperf check
Aryamanz29 Jun 30, 2022
f895630
[requested-changes] Set AUTO_IPERF to false
Aryamanz29 Jul 1, 2022
c75428e
[docs] Updated iperf table structure & minor changes
Aryamanz29 Jul 1, 2022
72a9eef
[tests] Improved Iperf tests
Aryamanz29 Jul 1, 2022
5908994
[change] Made Iperf check command configurable #398
Aryamanz29 Jul 3, 2022
ec80f2f
[docs] Added OPENWISP_MONITORING_IPERF_CHECK_CONFIG
Aryamanz29 Jul 5, 2022
50921cb
[fix] Fixed JSONDecodeError if iperf3 is not installed #412
Aryamanz29 Jul 7, 2022
56543bf
[requested-changes] Docs improvement
Aryamanz29 Jul 7, 2022
ef433ea
[change] Configured celery beat for Iperf check
Aryamanz29 Jul 8, 2022
38991a9
[docs] Added Iperf check celery beat configuration #390
Aryamanz29 Jul 8, 2022
64b607d
[change] Configured celery beat for Iperf check in settings #390
Aryamanz29 Jul 8, 2022
ce23bd0
[docs] Added iperf celery beat configuration
Aryamanz29 Jul 8, 2022
93f9220
[requested-changes] Moved iperf celery beat settings
Aryamanz29 Jul 11, 2022
8400291
[change] Removed manual conversion
Aryamanz29 Jul 11, 2022
f2b3110
[docs] Minor changes
Aryamanz29 Jul 12, 2022
91d472a
[requested-changes] Removed CHECK_LIST from run_checks args
Aryamanz29 Jul 12, 2022
a2abe5d
[feature] Added initial alert settings for iperf check
Aryamanz29 Jul 13, 2022
391537e
[tests] Added test_iperf_check_alert_notification
Aryamanz29 Jul 13, 2022
9810d24
[feature] Added alert for related_field (Iperf jitter) #406
Aryamanz29 Jul 14, 2022
d219e9f
[changes] Improved alert_on_related field
Aryamanz29 Jul 14, 2022
8082881
[tests] Added tests for alert_on_related_field
Aryamanz29 Jul 14, 2022
e4d6061
[docs] Added alert_on_related_field
Aryamanz29 Jul 14, 2022
df31203
[requested-changes] Remove is_working filter, formatted test json
Aryamanz29 Jul 18, 2022
02100af
[requested-changes] Explicitly specify ping & config checks
Aryamanz29 Jul 18, 2022
27732e6
[docs] Moved images to docs/1.1
Aryamanz29 Jul 18, 2022
8a9b826
[feature] Added support for iperf3 auth #414
Aryamanz29 Jul 18, 2022
fb1bc26
[tests] Added tests for iperf auth
Aryamanz29 Jul 19, 2022
87ddce9
[requested-changes] Changed iperf auth logic & improved tests
Aryamanz29 Jul 20, 2022
fa74e99
[docs] Added iperf auth
Aryamanz29 Jul 21, 2022
1d71d7c
[change] Changed chart types for iperf check #417
Aryamanz29 Jul 22, 2022
50256d2
[change] Changed chart look according to feedback
Aryamanz29 Jul 22, 2022
01cd70e
[change] Combined all iperf settings into one setting #418
Aryamanz29 Jul 25, 2022
c7b6cb1
[feature] Added --bitrate param to iperf check
Aryamanz29 Jul 26, 2022
46d86f0
[change] Added validation for settings config and non json error hand…
Aryamanz29 Jul 26, 2022
f9a4f98
[change] Added connect_points to iperf charts
Aryamanz29 Jul 27, 2022
1e4196b
[change] Docs & iperf charts improved
Aryamanz29 Jul 28, 2022
c4ce4a0
[feature] Added adaptive_prefix to monitoring charts
Aryamanz29 Jul 29, 2022
719932e
[requested-changes] Docs and minor changes
Aryamanz29 Jul 29, 2022
631d2bf
[fix] Fixed iperf bar charts x-axis incosistency #422
Aryamanz29 Aug 4, 2022
3524a68
[requested-changes] Fixed chart.js linting
Aryamanz29 Aug 4, 2022
abe40f8
[requested-changes] Combine iperf charts & improved docs
Aryamanz29 Aug 4, 2022
b12d9b5
[requested-changes] Moved rsa_public_key_path to OPENWISP_IPERF_CHECK…
Aryamanz29 Aug 4, 2022
e0e23d9
[requested-changes] Removed alert_on_related field
Aryamanz29 Aug 4, 2022
13b6416
[requested-changes] Removed rsa_public_key_path from settings
Aryamanz29 Aug 5, 2022
1b1dd84
[docs] Improved README
nemesifier Aug 8, 2022
9213aaf
[requested-changes] Added iperf to available features
Aryamanz29 Aug 8, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
361 changes: 356 additions & 5 deletions README.rst

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions openwisp_monitoring/check/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,11 @@ def _connect_signals(self):
sender=load_model('config', 'Device'),
dispatch_uid='auto_config_check',
)
if app_settings.AUTO_IPERF:
from .base.models import auto_iperf_check_receiver

post_save.connect(
auto_iperf_check_receiver,
sender=load_model('config', 'Device'),
dispatch_uid='auto_iperf_check',
)
24 changes: 23 additions & 1 deletion openwisp_monitoring/check/base/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@
from jsonfield import JSONField

from openwisp_monitoring.check import settings as app_settings
from openwisp_monitoring.check.tasks import auto_create_config_check, auto_create_ping
from openwisp_monitoring.check.tasks import (
auto_create_config_check,
auto_create_iperf_check,
auto_create_ping,
)
from openwisp_utils.base import TimeStampedEditableModel

from ...utils import transaction_on_commit
Expand Down Expand Up @@ -116,3 +120,21 @@ def auto_config_check_receiver(sender, instance, created, **kwargs):
object_id=str(instance.pk),
)
)


def auto_iperf_check_receiver(sender, instance, created, **kwargs):
"""
Implements OPENWISP_MONITORING_AUTO_IPERF
The creation step is executed in the background
"""
# we need to skip this otherwise this task will be executed
# every time the configuration is requested via checksum
if not created:
return
transaction_on_commit(
lambda: auto_create_iperf_check.delay(
model=sender.__name__.lower(),
app_label=sender._meta.app_label,
object_id=str(instance.pk),
)
)
1 change: 1 addition & 0 deletions openwisp_monitoring/check/classes/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
from .config_applied import ConfigApplied # noqa
from .iperf import Iperf # noqa
from .ping import Ping # noqa
Loading