diff --git a/README.md b/README.md index f68b86c..018f0ca 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,10 @@ Versioning is strictly based on [Semantic Versioning](https://semver.org/) * push commit and tag * upload rock to luarocks: `luarocks upload rockspecs/[name] --api-key=abc` +### 3.1.0 (19-Jun-2024) + +* Feat: remove version check of resty.events [#162](https://github.com/Kong/lua-resty-healthcheck/pull/162) + ### 3.0.2 (16-May-2024) * Fix: avoid creating multiple timers to run the same active check [#157](https://github.com/Kong/lua-resty-healthcheck/pull/157) diff --git a/docs/index.html b/docs/index.html index 9a5ced9..9a431be 100644 --- a/docs/index.html +++ b/docs/index.html @@ -53,25 +53,23 @@

Topics

Module resty.healthcheck

Healthcheck library for OpenResty.

-

- - -

Some notes on the usage of this library:

+

Some notes on the usage of this library:

+

Info:

@@ -459,8 +456,8 @@

Healt
Report a health failure. Reports a health failure which will count against the number of occurrences - required to make a target "fall". The type of healthchecker, - "tcp" or "http" (see new) determines against which counter the occurence goes. + required to make a target “fall”. The type of healthchecker, + “tcp” or “http” (see new) determines against which counter the occurence goes. If unhealthy.tcp_failures (for TCP failures) or unhealthy.http_failures is set to zero in the configuration, this function is a no-op and returns true. @@ -478,7 +475,7 @@

Parameters:

(optional) hostname of the target being checked.
  • check - (optional) the type of check, either "passive" or "active", default "passive". + (optional) the type of check, either “passive” or “active”, default “passive”.
  • @@ -521,7 +518,7 @@

    Parameters:

    the http statuscode, or nil to report an invalid http response.
  • check - (optional) the type of check, either "passive" or "active", default "passive". + (optional) the type of check, either “passive” or “active”, default “passive”.
  • @@ -543,7 +540,7 @@

    Returns:

    Report a health success. Reports a health success which will count against the number of occurrences - required to make a target "rise". + required to make a target “rise”. If healthy.successes is set to zero in the configuration, this function is a no-op and returns true. @@ -560,7 +557,7 @@

    Parameters:

    (optional) hostname of the target being checked.
  • check - (optional) the type of check, either "passive" or "active", default "passive". + (optional) the type of check, either “passive” or “active”, default “passive”.
  • @@ -597,13 +594,13 @@

    Parameters:

  • operation The socket operation that failed: - "connect", "send" or "receive". + “connect”, “send” or “receive”. TODO check what kind of information we get from the OpenResty layer in order to tell these error conditions apart - https://github.com/openresty/lua-resty-core/blob/master/lib/ngx/balancer.md#getlastfailure + https://github.com/openresty/lua-resty-core/blob/master/lib/ngx/balancer.md#get_last_failure
  • check - (optional) the type of check, either "passive" or "active", default "passive". + (optional) the type of check, either “passive” or “active”, default “passive”.
  • @@ -639,7 +636,7 @@

    Parameters:

    (optional) hostname of the target being checked.
  • check - (optional) the type of check, either "passive" or "active", default "passive". + (optional) the type of check, either “passive” or “active”, default “passive”.
  • @@ -772,7 +769,7 @@

    Returns:

    It will be started upon creation.

    NOTE: the returned checker object must be anchored, if not it will be - removed by Lua's garbage collector and the healthchecks will cease to run. + removed by Lua’s garbage collector and the healthchecks will cease to run.

    Parameters:

    @@ -781,34 +778,35 @@

    Parameters:

    table with checker options. Options are:

    +

    If any of the health counters above (e.g. checks.passive.unhealthy.timeouts) is set to zero, the according category of checks is not taken to account. This way active or passive health checks can be disabled selectively. @@ -832,7 +830,7 @@

    Returns:

    generated by LDoc 1.5.0 -Last updated 2024-05-16 13:54:05 +Last updated 2024-06-19 21:43:00
    diff --git a/docs/topics/README.md.html b/docs/topics/README.md.html index 44f9e76..438a7db 100644 --- a/docs/topics/README.md.html +++ b/docs/topics/README.md.html @@ -50,20 +50,19 @@

    Modules

    +

    lua-resty-healthcheck

    -

    lua-resty-healthcheck

    - -

    latest version -latest luarocks version -master branch -License -Twitter Follow

    +

    latest version +latest luarocks version +master branch +License +Twitter Follow

    A health check library for OpenResty.

    -

    Synopsis

    +

    Synopsis

     http {
    @@ -127,6 +126,7 @@ 

    Synopsis

    +

    Description

    This library supports performing active and passive health checks on arbitrary hosts.

    @@ -135,7 +135,7 @@

    Description

    happens via the lua-resty-worker-events library.

    Targets are added using checker:add_target(host, port). -Changes in status ("healthy" or "unhealthy") are broadcasted via worker-events.

    +Changes in status (“healthy” or “unhealthy”) are broadcasted via worker-events.

    Active checks are executed in the background based on the specified timer intervals.

    @@ -146,6 +146,7 @@

    Description

    for the complete API.

    +

    History

    Versioning is strictly based on Semantic Versioning

    @@ -153,302 +154,339 @@

    History

    Releasing new versions:

      -
    • update changelog below (PR's should be merged including a changelog entry)
    • -
    • based on changelog determine new SemVer version
    • -
    • create a new rockspec
    • -
    • render the docs using ldoc (don't do this within PR's)
    • -
    • commit as "release x.x.x" (do not include rockspec revision)
    • -
    • tag the commit with "x.x.x" (do not include rockspec revision)
    • -
    • push commit and tag
    • -
    • upload rock to luarocks: luarocks upload rockspecs/[name] --api-key=abc
    • +
    • update changelog below (PR’s should be merged including a changelog entry)
    • +
    • based on changelog determine new SemVer version
    • +
    • create a new rockspec
    • +
    • render the docs using ldoc (don’t do this within PR’s)
    • +
    • commit as “release x.x.x” (do not include rockspec revision)
    • +
    • tag the commit with “x.x.x” (do not include rockspec revision)
    • +
    • push commit and tag
    • +
    • upload rock to luarocks: luarocks upload rockspecs/[name] —api-key=abc
    + +

    3.1.0 (19-Jun-2024)

    + +
      +
    • Feat: remove version check of resty.events #162
    • +
    + +

    3.0.2 (16-May-2024)

      -
    • Fix: avoid creating multiple timers to run the same active check #157
    • +
    • Fix: avoid creating multiple timers to run the same active check #157
    +

    3.0.1 (22-Dec-2023)

      -
    • Fix: fix delay clean logic when multiple healthchecker was started #146
    • +
    • Fix: fix delay clean logic when multiple healthchecker was started #146
    +

    3.0.0 (12-Oct-2023)

      -
    • Perf: optimize by localizing some functions #92 (backport)
    • -
    • Fix: Generate fresh default http_statuses within new() #83 (backport)
    • +
    • Perf: optimize by localizing some functions #92 (backport)
    • +
    • Fix: Generate fresh default http_statuses within new() #83 (backport)
    +

    2.0.0 (22-Sep-2020)

    Note: Changes in this version has been discarded from current & future development. -Below you can see it's changelog but be aware that these changes might not be present in 3.y.z unless they are explicitly stated in 3.y.z, 1.6.3 or previous releases. Read more at: release 3.0.0 (#142) and chore(*): realign master branch to 3.0.0 release (#144)

    - -
    -
      -
    • BREAKING: fallback for deprecated top-level field type is now removed - (deprecated since 0.5.0) #56
    • -
    • BREAKING: Bump lua-resty-worker-events dependency to 2.0.0. This makes - a lot of the APIs in this library asynchronous as the worker events post - and post_local won't anymore call poll on a running worker automatically, - for more information, see: - https://github.com/Kong/lua-resty-worker-events#200-16-september-2020
    • -
    • BREAKING: tcpfailures can no longer be 0 on http(s) checks (unless http(s)failures - are also set to 0) #55
    • -
    • feature: Added support for https_sni #49
    • -
    • fix: properly log line numbers by using tail calls #29
    • -
    • fix: when not providing a hostname, use IP #48
    • -
    • fix: makefile; make install
    • -
    • feature: added a status version field #54
    • -
    • feature: add headers for probe request #54
    • -
    • fix: exit early when reloading during a probe #47
    • -
    • fix: prevent target-list from being nil, due to async behaviour #44
    • -
    • fix: replace timer and node-wide locks with resty-timer, to prevent interval - skips #59
    • -
    • change: added additional logging on posting events #25
    • -
    • fix: do not run out of timers during init/init_worker when adding a vast - amount of targets #57
    • -
    • fix: do not call on the module table, but use a method for locks. Also in - #57
    • -
    +Below you can see it’s changelog but be aware that these changes might not be present in 3.y.z unless they are explicitly stated in 3.y.z, 1.6.3 or previous releases. Read more at: release 3.0.0 (#142) and chore(*): realign master branch to 3.0.0 release (#144)

    + +
      +
    • BREAKING: fallback for deprecated top-level field type is now removed +(deprecated since 0.5.0) #56
    • +
    • BREAKING: Bump lua-resty-worker-events dependency to 2.0.0. This makes +a lot of the APIs in this library asynchronous as the worker events post +and post_local won’t anymore call poll on a running worker automatically, +for more information, see: +https://github.com/Kong/lua-resty-worker-events#200-16-september-2020
    • +
    • BREAKING: tcp_failures can no longer be 0 on http(s) checks (unless http(s)_failures +are also set to 0) #55
    • +
    • feature: Added support for https_sni #49
    • +
    • fix: properly log line numbers by using tail calls #29
    • +
    • fix: when not providing a hostname, use IP #48
    • +
    • fix: makefile; make install
    • +
    • feature: added a status version field #54
    • +
    • feature: add headers for probe request #54
    • +
    • fix: exit early when reloading during a probe #47
    • +
    • fix: prevent target-list from being nil, due to async behaviour #44
    • +
    • fix: replace timer and node-wide locks with resty-timer, to prevent interval +skips #59
    • +
    • change: added additional logging on posting events #25
    • +
    • fix: do not run out of timers during init/init_worker when adding a vast +amount of targets #57
    • +
    • fix: do not call on the module table, but use a method for locks. Also in +#57
    • +
    -

    1.6.3 (06-Sep-2023)

      -
    • Feature: Added support for https_sni #49 (backport)
    • -
    • Fix: Use OpenResty API for mTLS #99 (backport)
    • +
    • Feature: Added support for https_sni #49 (backport)
    • +
    • Fix: Use OpenResty API for mTLS #99 (backport)
    +

    1.6.2 (17-Nov-2022)

      -
    • Fix: avoid raising worker events for new targets that were marked for delayed - removal, i.e. targets that already exist in memory only need the removal flag - cleared when added back. #122
    • +
    • Fix: avoid raising worker events for new targets that were marked for delayed +removal, i.e. targets that already exist in memory only need the removal flag +cleared when added back. #122
    +

    1.6.1 (25-Jul-2022)

      -
    • Fix: improvements to ensure the proper securing of shared resources to avoid - race conditions and clearly report failure states. - #112, - #113, - #114.
    • -
    • Fix: reduce the frequency of checking for unused targets, reducing the number - of locks created. #116
    • -
    • Fix accept any lua-resty-events - 0.1.x release. #118
    • +
    • Fix: improvements to ensure the proper securing of shared resources to avoid +race conditions and clearly report failure states. +#112, +#113, +#114.
    • +
    • Fix: reduce the frequency of checking for unused targets, reducing the number +of locks created. #116
    • +
    • Fix accept any lua-resty-events +0.1.x release. #118
    +

    1.6.0 (27-Jun-2022)

      -
    • Feature: introduce support to lua-resty-events - module in addition to lua-resty-worker-events - support. With this addition, the lua-resty-healthcheck luarocks package does - not require a specific event-sharing module anymore, but you are still - required to provide either lua-resty-worker-events or lua-resty-events. - #105
    • -
    • Change: if available, lua-resty-healthcheck now uses string.buffer, the new LuaJIT's - serialization API. If it is unavailable, lua-resty-healthcheck fallbacks to - cjson. #109
    • +
    • Feature: introduce support to lua-resty-events +module in addition to lua-resty-worker-events +support. With this addition, the lua-resty-healthcheck luarocks package does +not require a specific event-sharing module anymore, but you are still +required to provide either lua-resty-worker-events or lua-resty-events. +#105
    • +
    • Change: if available, lua-resty-healthcheck now uses string.buffer, the new LuaJIT’s +serialization API. If it is unavailable, lua-resty-healthcheck fallbacks to +cjson. #109
    +

    1.5.3 (14-Nov-2022)

      -
    • Fix: avoid raising worker events for new targets that were marked for delayed - removal, i.e. targets that already exist in memory only need the removal flag - cleared when added back. #121
    • +
    • Fix: avoid raising worker events for new targets that were marked for delayed +removal, i.e. targets that already exist in memory only need the removal flag +cleared when added back. #121
    +

    1.5.2 (07-Jul-2022)

      -
    • Better handling of resty.lock failure modes, adding more checks to ensure the - lock is held before running critical code, and improving the decision whether a - function should be retried after a timeout trying to acquire a lock. - #113
    • -
    • Increased logging for locked function failures. - #114
    • -
    • The cleanup frequency of deleted targets was lowered, cutting the number of - created locks in a short period. - #116
    • +
    • Better handling of resty.lock failure modes, adding more checks to ensure the +lock is held before running critical code, and improving the decision whether a +function should be retried after a timeout trying to acquire a lock. +#113
    • +
    • Increased logging for locked function failures. +#114
    • +
    • The cleanup frequency of deleted targets was lowered, cutting the number of +created locks in a short period. +#116
    +

    1.5.1 (23-Mar-2022)

      -
    • Fix: avoid breaking active health checks when adding or removing targets. - #93
    • +
    • Fix: avoid breaking active health checks when adding or removing targets. +#93
    +

    1.5.0 (09-Feb-2022)

      -
    • New option checks.active.headers supports one or more lists of values indexed by - header name. #87
    • -
    • Introduce dealyed_clear() function, used to remove addresses after a time interval. - This function may be used when an address is being removed but may be added again - before the interval expires, keeping its health status. - #88
    • +
    • New option checks.active.headers supports one or more lists of values indexed by +header name. #87
    • +
    • Introduce dealyed_clear() function, used to remove addresses after a time interval. +This function may be used when an address is being removed but may be added again +before the interval expires, keeping its health status. +#88
    +

    1.4.3 (31-Mar-2022)

      -
    • Fix: avoid breaking active health checks when adding or removing targets. - #100
    • +
    • Fix: avoid breaking active health checks when adding or removing targets. +#100
    +

    1.4.2 (29-Jun-2021)

      -
    • Fix: prevent new active checks being scheduled while a health check is running. - #72
    • -
    • Fix: remove event watcher when stopping an active health check. - #74; fixes Kong issue - #7406
    • +
    • Fix: prevent new active checks being scheduled while a health check is running. +#72
    • +
    • Fix: remove event watcher when stopping an active health check. +#74; fixes Kong issue +#7406
    +

    1.4.1 (17-Feb-2021)

      -
    • Fix: make sure that a single worker will actively check hosts' statuses. - #67
    • +
    • Fix: make sure that a single worker will actively check hosts' statuses. +#67
    +

    1.4.0 (07-Jan-2021)

      -
    • Use a single timer to actively health check targets. This reduces the number - of timers used by health checkers, as they used to use two timers by each - target. #62
    • +
    • Use a single timer to actively health check targets. This reduces the number +of timers used by health checkers, as they used to use two timers by each +target. #62
    +

    1.3.0 (17-Jun-2020)

      -
    • Adds support to mTLS to active healthchecks. This feature can be used adding - the fields ssl_cert and ssl_key, with certificate and key respectively, - when creating a new healthcheck object. - #41
    • +
    • Adds support to mTLS to active healthchecks. This feature can be used adding +the fields ssl_cert and ssl_key, with certificate and key respectively, +when creating a new healthcheck object. +#41
    +

    1.2.0 (13-Feb-2020)

    +

    1.1.2 (19-Dec-2019)

      -
    • Fix: when ngx.sleep API is not available (e.g. in the log phase) it is not - possible to lock using lua-resty-lock and any function that needs exclusive - access would fail. This fix adds a retry method that starts a new light - thread, which has access to ngx.sleep, to lock the critical path. - #37;
    • +
    • Fix: when ngx.sleep API is not available (e.g. in the log phase) it is not +possible to lock using lua-resty-lock and any function that needs exclusive +access would fail. This fix adds a retry method that starts a new light +thread, which has access to ngx.sleep, to lock the critical path. +#37;
    +

    1.1.1 (14-Nov-2019)

      -
    • Fix: fail when it is not possible to get exclusive access to the list of - targets. This fix prevents that workers get to an inconsistent state. - #34;
    • +
    • Fix: fail when it is not possible to get exclusive access to the list of +targets. This fix prevents that workers get to an inconsistent state. +#34;
    +

    1.1.0 (30-Sep-2019)

      -
    • Add support for setting the custom Host header to be used for active checks.
    • -
    • Fix: log error on SSL Handshake failure - #28;
    • +
    • Add support for setting the custom Host header to be used for active checks.
    • +
    • Fix: log error on SSL Handshake failure +#28;
    +

    1.0.0 (05-Jul-2019)

      -
    • BREAKING: all API functions related to hosts require a hostname argument - now. This way different hostnames listening on the same IP and ports - combination do not have an effect on each other.
    • -
    • Fix: fix reporting active TCP probe successes - #20; - fixes issue #19
    • +
    • BREAKING: all API functions related to hosts require a hostname argument +now. This way different hostnames listening on the same IP and ports +combination do not have an effect on each other.
    • +
    • Fix: fix reporting active TCP probe successes +#20; +fixes issue #19
    +

    0.6.1 (04-Apr-2019)

      -
    • Fix: set up event callback only after target list is loaded - #18; - fixes Kong issue #4453
    • +
    • Fix: set up event callback only after target list is loaded +#18; +fixes Kong issue #4453
    +

    0.6.0 (26-Sep-2018)

      -
    • Introduce checks.active.https_verify_certificate field. - It is true by default; setting it to false disables certificate - verification in active healthchecks over HTTPS.
    • +
    • Introduce checks.active.https_verify_certificate field. +It is true by default; setting it to false disables certificate +verification in active healthchecks over HTTPS.
    +

    0.5.0 (25-Jul-2018)

      -
    • Add support for https -- thanks @gaetanfl for the PR!
    • -
    • Introduce separate checks.active.type and checks.passive.type fields; - the top-level type field is still supported as a fallback but is now - deprecated.
    • +
    • Add support for https — thanks @gaetanfl for the PR!
    • +
    • Introduce separate checks.active.type and checks.passive.type fields; +the top-level type field is still supported as a fallback but is now +deprecated.
    +

    0.4.2 (23-May-2018)

      -
    • Fix Host header in active healthchecks
    • +
    • Fix Host header in active healthchecks
    +

    0.4.1 (21-May-2018)

      -
    • Fix internal management of healthcheck counters
    • +
    • Fix internal management of healthcheck counters
    +

    0.4.0 (20-Mar-2018)

      -
    • Correct setting of defaults in http_statuses
    • -
    • Type and bounds checking to checks table
    • +
    • Correct setting of defaults in http_statuses
    • +
    • Type and bounds checking to checks table
    +

    0.3.0 (18-Dec-2017)

      -
    • Disable individual checks by setting their counters to 0
    • +
    • Disable individual checks by setting their counters to 0
    +

    0.2.0 (30-Nov-2017)

    +

    0.1.0 (27-Nov-2017) Initial release

      -
    • Initial upload
    • +
    • Initial upload
    +

    +

    Copyright and License

     Copyright 2017-2022 Kong Inc.
    @@ -467,13 +505,11 @@ 

    Copyright and License

    - -
    generated by LDoc 1.5.0 -Last updated 2024-05-16 13:54:05 +Last updated 2024-06-19 21:43:00
    diff --git a/rockspecs/lua-resty-healthcheck-3.1.0-1.rockspec b/rockspecs/lua-resty-healthcheck-3.1.0-1.rockspec new file mode 100644 index 0000000..382fd78 --- /dev/null +++ b/rockspecs/lua-resty-healthcheck-3.1.0-1.rockspec @@ -0,0 +1,26 @@ +package = "lua-resty-healthcheck" +version = "3.1.0-1" +source = { + url = "git+https://github.com/Kong/lua-resty-healthcheck.git", + tag = "3.1.0" +} +description = { + summary = "Healthchecks for OpenResty to check upstream service status", + detailed = [[ + lua-resty-healthcheck is a module that can check upstream service + availability by sending requests and validating responses at timed + intervals. + ]], + license = "Apache 2.0", + homepage = "https://github.com/Kong/lua-resty-healthcheck" +} +dependencies = { + "penlight >= 1.9.2", + "lua-resty-timer ~> 1", +} +build = { + type = "builtin", + modules = { + ["resty.healthcheck"] = "lib/resty/healthcheck.lua", + } +}