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

Version: 1.5.1 Dec 23 2015 19:43:55 ------------------------------------------------------------------------

Behaviours: cloudi_service.

Authors: Michael Truog (mjtruog [at] gmail (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}}]}

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_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.

Must be called from a 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_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(), Type::metric_type(), Name::metric_name(), Value::metric_value()) -> ok | {error, any()}

Update/Create a metric.

Must be called from a service process. Use cloudi_service:self/1 to get 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).


Generated by EDoc, Dec 23 2015, 19:43:55.