Skip to content

Releases: django-hurricane/django-hurricane

1.6.2

Choose a tag to compare

@SteinRobert SteinRobert released this 29 Oct 17:56
dc486a1

What's Changed

Full Changelog: 1.6.1...1.6.2

1.6.1

Choose a tag to compare

@SteinRobert SteinRobert released this 08 Oct 17:13
80150e7

What's Changed

New Contributors

Full Changelog: 1.6.0...1.6.1

1.6.0

Choose a tag to compare

@liquidiert liquidiert released this 27 Jun 08:16
531270a

Summary

Version 1.6.0 of django hurricane introduces two brand new cli args:

  • max-body-size
  • max-buffer-size

With these you can adjust how the underlying tornado should handle huge message sizes.
Also this version introduces the option to customize your django hurricane experience via env variables, django settings or cli args!

What's Changed

New Contributors

Full Changelog: 1.5.0...1.6.0

1.5.0

Choose a tag to compare

@Schille Schille released this 15 Feb 18:21
102f4ca

Summary

Django-Hurricane 1.5.0 now includes a Prometheus instrumentation and can control memory allocations! 🎉
There are a couple of new options for the python manage.py serve command:
--no-metrics to disable the metrics endpoint which serves on /metrics (on the internal port) by default
--max-memory to limit the maximum memory allocation and restart if exceeded
--workers set the amount of threads for the ThreadPoolExecutor

In addition, there is now a proper structlog integration as soon as you install structlog to your project.
Hint: If you run Hurricane workloads on GKE, please install https://github.com/multani/structlog-gcp, too, to perfectly process your logs to Google's log format.

What's Changed

  • feat: add prometheus instrumentation by @Schille in #120
  • fix: package name is django-hurricane by @hng in #123
  • feat: structlog integration by @Schille in #122
  • feat: add max memory observer, make worker threads adjustable by @Schille in #125

New Contributors

  • @hng made their first contribution in #123

Full Changelog: 1.4.0...1.5.0

1.4.0

Choose a tag to compare

@Schille Schille released this 09 Oct 15:16
c744dd5

Summary

Django-Hurricane 1.4.0 now supports Django 4.2! 🎉
In addition, we added a new command option python manage.py serve --check-migrations-apply that applies missing migrations on startup.

The performance for concurrent requests was considerably improved by using the ThreadPoolExecutor for WSGI requests to Django.
The load testing results from Hurricane version 1.3.4 are the following:

Type     Name                                                                          # reqs      # fails |    Avg     Min     Max    Med |   req/s  failures/s
--------|----------------------------------------------------------------------------|-------|-------------|-------|-------|-------|-------|--------|-----------
GET      /                                                                                 61     0(0.00%) |    141       1     806      2 |    0.51        0.00
GET      /heavy                                                                            57     0(0.00%) |    562     502    1022    502 |    0.48        0.00
GET      /medium                                                                          183     0(0.00%) |    211     102     881    102 |    1.54        0.00
--------|----------------------------------------------------------------------------|-------|-------------|-------|-------|-------|-------|--------|-----------
         Aggregated                                                                       301     0(0.00%) |    263       1    1022    100 |    2.53        0.00

Response time percentiles (approximated)
Type     Name                                                                                  50%    66%    75%    80%    90%    95%    98%    99%  99.9% 99.99%   100% # reqs
--------|--------------------------------------------------------------------------------|--------|------|------|------|------|------|------|------|------|------|------|------
GET      /                                                                                       2     95    280    350    490    550    670    810    810    810    810     61
GET      /heavy                                                                                500    500    510    590    810    850    860   1000   1000   1000   1000     57
GET      /medium                                                                               100    170    270    310    510    600    810    810    880    880    880    183
--------|--------------------------------------------------------------------------------|--------|------|------|------|------|------|------|------|------|------|------|------
         Aggregated                                                                            100    370    500    500    550    710    810    850   1000   1000   1000    301

The load testing with Hurricane version 1.4.0 from this release in comparison:

Type     Name                                                                          # reqs      # fails |    Avg     Min     Max    Med |   req/s  failures/s
--------|----------------------------------------------------------------------------|-------|-------------|-------|-------|-------|-------|--------|-----------
GET      /                                                                                 61     0(0.00%) |      2       1      10      2 |    0.51        0.00
GET      /heavy                                                                            62     0(0.00%) |    503     502     523    502 |    0.52        0.00
GET      /medium                                                                          179     0(0.00%) |    103     101     110    101 |    1.50        0.00
--------|----------------------------------------------------------------------------|-------|-------------|-------|-------|-------|-------|--------|-----------
         Aggregated                                                                       302     0(0.00%) |    165       1     523    100 |    2.53        0.00

Response time percentiles (approximated)
Type     Name                                                                                  50%    66%    75%    80%    90%    95%    98%    99%  99.9% 99.99%   100% # reqs
--------|--------------------------------------------------------------------------------|--------|------|------|------|------|------|------|------|------|------|------|------
GET      /                                                                                       2      2      2      2      2      7     10     10     10     10     10     61
GET      /heavy                                                                                500    500    500    500    500    510    510    520    520    520    520     62
GET      /medium                                                                               100    100    100    100    100    110    110    110    110    110    110    179
--------|--------------------------------------------------------------------------------|--------|------|------|------|------|------|------|------|------|------|------|------
         Aggregated                                                                            100    100    110    500    500    500    500    510    520    520    520    302

In general, concurrent requests do not stack up anymore, instead, they are executed concurrently. As one can see, the /heavy view blocks for ~500ms (time.sleep(0.5)), the /medium view respectively 100ms (time.sleep(0.1)). In the upper table, the response times get longer over time. The response times are now true to the actual view duration because the requests are executed in parallel.

What's Changed

New Contributors

Full Changelog: 1.3.4...1.4.0

1.3.4

Choose a tag to compare

@tschale tschale released this 05 Oct 16:17
f878cd1

What's Changed

New Contributors

Full Changelog: 1.3.3...1.3.4

1.3.3

Choose a tag to compare

@tschale tschale released this 15 Sep 16:35
7d123a1

What's Changed

Full Changelog: 1.3.2...1.3.3

1.3.2

Choose a tag to compare

@tschale tschale released this 14 Sep 16:13
f825211

What's Changed

  • chore: add static file handler for Django in DEBUG mode by @SteinRobert in #101

Full Changelog: 1.3.1...1.3.2

1.3.1

Choose a tag to compare

@tschale tschale released this 31 Aug 14:19
a490f85

What's Changed

Full Changelog: 1.3.0...1.3.1

1.3.0

Choose a tag to compare

@tschale tschale released this 22 Jul 12:00
7f21e0e

What's Changed

  • Check for static files and recollect if changed by @vvvityaaa in #95

Full Changelog: 1.2.0...1.3.0