.. _envoy_v3_api_file_envoy/extensions/health_checkers/dynamic_modules/v3/dynamic_modules.proto: Dynamic Modules Health Checker (proto) ====================================== .. _extension_envoy.health_checkers.dynamic_modules: This extension has the qualified name ``envoy.health_checkers.dynamic_modules`` .. note:: This extension is functional but has not had substantial production burn time, use only with this caveat. This extension is not hardened and should only be used in deployments where both the downstream and upstream are trusted. .. tip:: This extension extends and can be used with the following extension category: - :ref:`envoy.health_checkers ` This extension must be configured with one of the following type URLs: - :ref:`type.googleapis.com/envoy.extensions.health_checkers.dynamic_modules.v3.DynamicModuleHealthCheck ` .. _envoy_v3_api_msg_extensions.health_checkers.dynamic_modules.v3.DynamicModuleHealthCheck: extensions.health_checkers.dynamic_modules.v3.DynamicModuleHealthCheck ---------------------------------------------------------------------- :repo:`[extensions.health_checkers.dynamic_modules.v3.DynamicModuleHealthCheck proto] ` Configuration for the Dynamic Modules Health Checker. This health checker allows loading shared object files via ``dlopen`` to implement custom active health checking behavior. A module can be loaded by multiple health checkers; the module is loaded only once and shared across multiple health checker instances. Envoy drives the standard per-host interval and timeout timers and applies the common ``interval``, ``timeout``, ``healthy_threshold`` and ``unhealthy_threshold`` settings. On each interval the module is asked to check the host; it may perform the work on its own thread and reports the host's health status back to Envoy. .. code-block:: json :force: { "dynamic_module_config": {...}, "health_checker_name": ..., "health_checker_config": {...} } .. _envoy_v3_api_field_extensions.health_checkers.dynamic_modules.v3.DynamicModuleHealthCheck.dynamic_module_config: dynamic_module_config (:ref:`extensions.dynamic_modules.v3.DynamicModuleConfig `, *REQUIRED*) Specifies the shared-object level configuration. This field is required. .. _envoy_v3_api_field_extensions.health_checkers.dynamic_modules.v3.DynamicModuleHealthCheck.health_checker_name: health_checker_name (`string `_, *REQUIRED*) The name for this health checker configuration. This can be used to distinguish between different health checker implementations inside a dynamic module. For example, a module can have completely different health checker implementations (e.g., a ping checker, an external-service checker). When Envoy receives this configuration, it passes the ``health_checker_name`` to the dynamic module's health checker config init function together with the ``health_checker_config``. That way a module can decide which in-module health checker implementation to use based on the name at load time. .. _envoy_v3_api_field_extensions.health_checkers.dynamic_modules.v3.DynamicModuleHealthCheck.health_checker_config: health_checker_config (`Any `_) The configuration for the health checker chosen by ``health_checker_name``. If not specified, an empty configuration is passed to the module. This is passed to the module's health checker initialization function. Together with the ``health_checker_name``, the module can decide which in-module health checker implementation to use and fine-tune the behavior of the health checker. ``google.protobuf.Struct`` is serialized as JSON before passing it to the module. ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly without the wrapper. .. code-block:: yaml # Passing a JSON struct configuration health_checker_config: "@type": "type.googleapis.com/google.protobuf.Struct" value: path: "/healthz" degraded_on_slow_response: true # Passing a simple string configuration health_checker_config: "@type": "type.googleapis.com/google.protobuf.StringValue" value: "/healthz"