Module cloudi_service_monitoring

CloudI Monitoring Service

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-2016 Michael Truog

Version: 1.5.2 Jan 10 2017 20:40:08 ------------------------------------------------------------------------

Behaviours: cloudi_service.

Authors: Michael Truog (mjtruog at protonmail dot com).

Description

CloudI Monitoring Service

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}}]},

Data Types

driver()

driver() = driver_exometer()

driver_exometer()

driver_exometer() = {exometer, Reporters::[{exometer_reporter_name(), exometer_reporter_extra()}, ...], Interval::exometer_interval(), Owner::cloudi_service:source()}

supported drivers

exometer_interval()

exometer_interval() = pos_integer()

milliseconds

exometer_reporter_extra()

exometer_reporter_extra() = any()

exometer_reporter_name()

exometer_reporter_name() = atom()

metric_list()

metric_list() = [{metric_type(), metric_name(), metric_value()}]

metric_name()

metric_name() = [atom() | binary() | integer(), ...]

metric_type()

metric_type() = counter | spiral | gauge | histogram

metric_value()

metric_value() = non_neg_integer()

Function Index

add/1

Add cloudi_service_monitoring service configuration options.

Programmatically adds service configuration options to provide service metrics based on service events.
aspect_info_after_internal/0

Function for aspects_info_after service configuration option.

Add as {{cloudi_service_monitoring, aspect_info_after_internal}}.
aspect_info_before_internal/0

Function for aspects_info_before service configuration option.

Add as {{cloudi_service_monitoring, aspect_info_before_internal}}.
aspect_init_after_external/0

Function for aspects_init_after service configuration option.

Add as {{cloudi_service_monitoring, aspect_init_after_external}}.
aspect_init_after_internal/0

Function for aspects_init_after service configuration option.

Add as {{cloudi_service_monitoring, aspect_init_after_internal}}.
aspect_log_after/0

Function for aspects_log_after logging configuration option.

Add as {{cloudi_service_monitoring, aspect_log_after}}.
aspect_log_before/0

Function for aspects_log_before logging configuration option.

Add as {{cloudi_service_monitoring, aspect_log_before}}.
aspect_request_after_external/0

Function for aspects_request_after service configuration option.

Add as {{cloudi_service_monitoring, aspect_request_after_external}}.
aspect_request_after_internal/0

Function for aspects_request_after service configuration option.

Add as {{cloudi_service_monitoring, aspect_request_after_internal}}.
aspect_request_before_external/0

Function for aspects_request_before service configuration option.

Add as {{cloudi_service_monitoring, aspect_request_before_external}}.
aspect_request_before_internal/0

Function for aspects_request_before service configuration option.

Add as {{cloudi_service_monitoring, aspect_request_before_internal}}.
aspect_terminate_before_external/0

Function for aspects_terminate_before service configuration option.

Add as {{cloudi_service_monitoring, aspect_terminate_before_external}}.
aspect_terminate_before_internal/0

Function for aspects_terminate_before service configuration option.

Add as {{cloudi_service_monitoring, aspect_terminate_before_internal}}.
cloudi_service_handle_info/3
cloudi_service_handle_request/11
cloudi_service_init/4
cloudi_service_terminate/3
update/4
update_or_create/4

Update/Create a metric.

Use cloudi_service:self/1 to get the service process when passing a service metric, otherwise use 'undefined' instead of the service process.
update_or_create/5

Update/Create a metric with options.

Must be called from a service process.

Function Details

add/1

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()

Add cloudi_service_monitoring service configuration options.

Programmatically adds service configuration options to provide service metrics based on service events.

aspect_info_after_internal/0

aspect_info_after_internal() -> cloudi_service_api:aspect_info_after_internal_f()

Function for aspects_info_after service configuration option.

Add as {{cloudi_service_monitoring, aspect_info_after_internal}}.

aspect_info_before_internal/0

aspect_info_before_internal() -> cloudi_service_api:aspect_info_before_internal_f()

Function for aspects_info_before service configuration option.

Add as {{cloudi_service_monitoring, aspect_info_before_internal}}.

aspect_init_after_external/0

aspect_init_after_external() -> cloudi_service_api:aspect_init_after_external_f()

Function for aspects_init_after service configuration option.

Add as {{cloudi_service_monitoring, aspect_init_after_external}}.

aspect_init_after_internal/0

aspect_init_after_internal() -> cloudi_service_api:aspect_init_after_internal_f()

Function for aspects_init_after service configuration option.

Add as {{cloudi_service_monitoring, aspect_init_after_internal}}.

aspect_log_after/0

aspect_log_after() -> cloudi_service_api:aspect_log_f()

Function for aspects_log_after logging configuration option.

Add as {{cloudi_service_monitoring, aspect_log_after}}.

aspect_log_before/0

aspect_log_before() -> cloudi_service_api:aspect_log_f()

Function for aspects_log_before logging configuration option.

Add as {{cloudi_service_monitoring, aspect_log_before}}.

aspect_request_after_external/0

aspect_request_after_external() -> cloudi_service_api:aspect_request_after_external_f()

Function for aspects_request_after service configuration option.

Add as {{cloudi_service_monitoring, aspect_request_after_external}}.

aspect_request_after_internal/0

aspect_request_after_internal() -> cloudi_service_api:aspect_request_after_internal_f()

Function for aspects_request_after service configuration option.

Add as {{cloudi_service_monitoring, aspect_request_after_internal}}.

aspect_request_before_external/0

aspect_request_before_external() -> cloudi_service_api:aspect_request_before_external_f()

Function for aspects_request_before service configuration option.

Add as {{cloudi_service_monitoring, aspect_request_before_external}}.

aspect_request_before_internal/0

aspect_request_before_internal() -> cloudi_service_api:aspect_request_before_internal_f()

Function for aspects_request_before service configuration option.

Add as {{cloudi_service_monitoring, aspect_request_before_internal}}.

aspect_terminate_before_external/0

aspect_terminate_before_external() -> cloudi_service_api:aspect_terminate_before_external_f()

Function for aspects_terminate_before service configuration option.

Add as {{cloudi_service_monitoring, aspect_terminate_before_external}}.

aspect_terminate_before_internal/0

aspect_terminate_before_internal() -> cloudi_service_api:aspect_terminate_before_internal_f()

Function for aspects_terminate_before service configuration option.

Add as {{cloudi_service_monitoring, aspect_terminate_before_internal}}.

cloudi_service_handle_info/3

cloudi_service_handle_info(Request, State, Dispatcher) -> any()

cloudi_service_handle_request/11

cloudi_service_handle_request(Type, Name, Pattern, RequestInfo, Request, Timeout, Priority, TransId, Pid, State, Dispatcher) -> any()

cloudi_service_init/4

cloudi_service_init(Args, Prefix, Timeout, Dispatcher) -> any()

cloudi_service_terminate/3

cloudi_service_terminate(Reason, Timeout, State) -> any()

update/4

update(Type::metric_type(), Name::metric_name(), Value::metric_value(), Driver::driver()) -> ok

update_or_create/4

update_or_create(Service::cloudi_service:source() | undefined, Type::metric_type(), Name::metric_name(), Value::metric_value()) -> ok | {error, any()}

Update/Create a metric.

Use cloudi_service:self/1 to get the service process when passing a service metric, otherwise use 'undefined' instead of the service process.

update_or_create/5

update_or_create(Service::cloudi_service:source(), Type::metric_type(), Name::metric_name(), Value::metric_value(), Options::[{service_metric, boolean()}]) -> ok | {error, any()}

Update/Create a metric with options.

Must be called from a service process. Use cloudi_service:self/1 to get the service process. The option service_metric determines whether the cloudi_service_monitoring service metric prefix is used (which includes the service id, service_metric defaults to false).


Generated by EDoc, Jan 10 2017, 20:40:08.