This service will update monitoring metrics at regular intervals for the Erlang VM and CloudI. To disable the update, set the interval to undefined.
.Copyright © 2015-2019 Michael Truog
Version: 1.8.0 Nov 28 2019 15:44:13 ------------------------------------------------------------------------
Behaviours: cloudi_service.
Authors: Michael Truog (mjtruog at protonmail dot com).
This service will update monitoring metrics at regular intervals for the Erlang VM and CloudI. To disable the update, set the interval to undefined.
To allow services to provide metrics based on their execution, add service configuration option entries for aspects provided by this module (if other aspects are already being used, add it to the end of the list). This can be done automatically with the add/1 function, if the service configuration is provided programmatically.
Internal services need to add: {aspects_init_after, [{{cloudi_service_monitoring, aspect_init_after_internal}}]}, {aspects_request_before, [{{cloudi_service_monitoring, aspect_request_before_internal}}]}, {aspects_request_after, [{{cloudi_service_monitoring, aspect_request_after_internal}}]}, {aspects_info_before, [{{cloudi_service_monitoring, aspect_info_before_internal}}]}, {aspects_info_after, [{{cloudi_service_monitoring, aspect_info_after_internal}}]}, {aspects_terminate_before, [{{cloudi_service_monitoring, aspect_terminate_before_internal}}]}
External services need to add: {aspects_init_after, [{{cloudi_service_monitoring, aspect_init_after_external}}]}, {aspects_request_before, [{{cloudi_service_monitoring, aspect_request_before_external}}]}, {aspects_request_after, [{{cloudi_service_monitoring, aspect_request_after_external}}]}, {aspects_terminate_before, [{{cloudi_service_monitoring, aspect_terminate_before_external}}]}
To monitor logging usage, add (to the logging configuration): {aspects_log_after, [{{cloudi_service_monitoring, aspect_log_after}}]},driver() = driver_exometer()
driver_exometer() = {exometer, Reporters::[{exometer_reporter_name(), exometer_reporter_extra()}, ...], Interval::exometer_interval(), Owner::cloudi_service:source()}
supported drivers
exometer_interval() = pos_integer()
milliseconds
exometer_reporter_extra() = any()
exometer_reporter_name() = atom()
metric_list() = [{metric_type(), metric_name(), metric_value()}]
metric_name() = [atom() | binary() | integer(), ...]
metric_type() = counter | spiral | gauge | histogram
metric_value() = non_neg_integer()
add(Internal::cloudi_service_api:service_internal() | cloudi_service_api:service_external() | cloudi_service_api:service_proplist()) -> cloudi_service_api:service_internal() | cloudi_service_api:service_external() | cloudi_service_api:service_proplist()
aspect_info_after_internal() -> cloudi_service_api:aspect_info_after_internal_f()
aspect_info_before_internal() -> cloudi_service_api:aspect_info_before_internal_f()
aspect_init_after_external() -> cloudi_service_api:aspect_init_after_external_f()
aspect_init_after_internal() -> cloudi_service_api:aspect_init_after_internal_f()
aspect_log_after() -> cloudi_service_api:aspect_log_f()
aspect_log_before() -> cloudi_service_api:aspect_log_f()
aspect_request_after_external() -> cloudi_service_api:aspect_request_after_external_f()
aspect_request_after_internal() -> cloudi_service_api:aspect_request_after_internal_f()
aspect_request_before_external() -> cloudi_service_api:aspect_request_before_external_f()
aspect_request_before_internal() -> cloudi_service_api:aspect_request_before_internal_f()
aspect_terminate_before_external() -> cloudi_service_api:aspect_terminate_before_external_f()
aspect_terminate_before_internal() -> cloudi_service_api:aspect_terminate_before_internal_f()
cloudi_service_handle_info(Request, State, Dispatcher) -> any()
cloudi_service_init(Args, Prefix, Timeout, Dispatcher) -> any()
cloudi_service_terminate(Reason, Timeout, State) -> any()
update(Type::metric_type(), Name::metric_name(), Value::metric_value(), Driver::driver()) -> ok
update_or_create(Service::cloudi_service:source() | undefined, Type::metric_type(), Name::metric_name(), Value::metric_value()) -> ok | {error, any()}
update_or_create(Service::cloudi_service:source(), Type::metric_type(), Name::metric_name(), Value::metric_value(), Options::[{service_metric, boolean()}]) -> ok | {error, any()}
Generated by EDoc