Diffusion C API 6.12.0
Loading...
Searching...
No Matches
metrics.h File Reference

Allows a client to configure metric collectors. More...

Data Structures

struct  diffusion_metrics_put_session_metric_collector_params_s
 Structure supplied when issuing a diffusion_metrics_put_session_metric_collector call. More...
struct  diffusion_metrics_put_topic_metric_collector_params_s
 Structure supplied when issuing a diffusion_metrics_put_topic_metric_collector call. More...
struct  diffusion_metrics_remove_session_metric_collector_params_s
 Structure supplied when issuing a diffusion_metrics_remove_session_metric_collector call. More...
struct  diffusion_metrics_remove_topic_metric_collector_params_s
 Structure supplied when issuing a diffusion_metrics_remove_topic_metric_collector call. More...
struct  diffusion_metrics_list_session_metric_collectors_params_s
 Structure supplied when issuing a diffusion_metrics_list_session_metric_collectors call. More...
struct  diffusion_metrics_list_topic_metric_collectors_params_s
 Structure supplied when issuing a diffusion_metrics_list_topic_metric_collectors call. More...

Typedefs

typedef struct DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_T DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_T
 Opaque Session Metric Collector Builder struct.
typedef struct DIFFUSION_SESSION_METRIC_COLLECTOR_T DIFFUSION_SESSION_METRIC_COLLECTOR_T
 Opaque Session Metric Collector struct.
typedef struct DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_T DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_T
 Opaque Topic Metric Collector Builder struct.
typedef struct DIFFUSION_TOPIC_METRIC_COLLECTOR_T DIFFUSION_TOPIC_METRIC_COLLECTOR_T
 Opaque Topic Metric Collector struct.
typedef int(* session_metric_collector_put_cb) (void *context)
 callback when a session metric collector has been set on the server.
typedef int(* session_metric_collector_remove_cb) (void *context)
 callback when a session metric collector has been removed from the server.
typedef int(* session_metric_collector_list_cb) (const LIST_T *session_metric_collectors, void *context)
 callback when the list of session metric collectors has been retrieved from the server.
typedef int(* topic_metric_collector_put_cb) (void *context)
 callback when a topic metric collector has been set on the server.
typedef int(* topic_metric_collector_remove_cb) (void *context)
 callback when a topic metric collector has been removed from the server.
typedef int(* topic_metric_collector_list_cb) (const LIST_T *topic_metric_collectors, void *context)
 callback when the list of topic metric collectors has been retrieved from the server.
typedef struct diffusion_metrics_put_session_metric_collector_params_s DIFFUSION_METRICS_PUT_SESSION_METRIC_COLLECTOR_PARAMS_T
 Structure supplied when issuing a diffusion_metrics_put_session_metric_collector call.
typedef struct diffusion_metrics_put_topic_metric_collector_params_s DIFFUSION_METRICS_PUT_TOPIC_METRIC_COLLECTOR_PARAMS_T
 Structure supplied when issuing a diffusion_metrics_put_topic_metric_collector call.
typedef struct diffusion_metrics_remove_session_metric_collector_params_s DIFFUSION_METRICS_REMOVE_SESSION_METRIC_COLLECTOR_PARAMS_T
 Structure supplied when issuing a diffusion_metrics_remove_session_metric_collector call.
typedef struct diffusion_metrics_remove_topic_metric_collector_params_s DIFFUSION_METRICS_REMOVE_TOPIC_METRIC_COLLECTOR_PARAMS_T
 Structure supplied when issuing a diffusion_metrics_remove_topic_metric_collector call.
typedef struct diffusion_metrics_list_session_metric_collectors_params_s DIFFUSION_METRICS_LIST_SESSION_METRIC_COLLECTORS_PARAMS_T
 Structure supplied when issuing a diffusion_metrics_list_session_metric_collectors call.
typedef struct diffusion_metrics_list_topic_metric_collectors_params_s DIFFUSION_METRICS_LIST_TOPIC_METRIC_COLLECTORS_PARAMS_T
 Structure supplied when issuing a diffusion_metrics_list_topic_metric_collectors call.

Functions

DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_Tdiffusion_session_metric_collector_builder_init ()
 Initialize a new session metric collector builder.
DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_Tdiffusion_session_metric_collector_builder_reset (DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_T *builder)
 Reset the session metric collector builder's internal values.
DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_Tdiffusion_session_metric_collector_builder_export_to_prometheus (DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_T *builder, bool export_to_prometheus)
 Specifies whether the metric collector should export metrics to Prometheus or not.
DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_Tdiffusion_session_metric_collector_builder_maximum_groups (DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_T *builder, int limit)
 Set the maximum number of groups maintained by the metric collector.
DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_Tdiffusion_session_metric_collector_builder_group_by_property (DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_T *builder, char *property_name)
 Adds the name of a session property to group by to the list known to this builder.
DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_Tdiffusion_session_metric_collector_builder_group_by_properties (DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_T *builder, LIST_T *property_names)
 Specifies a list of session property names to group by, replacing any current list known to this builder.
DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_Tdiffusion_session_metric_collector_builder_remove_metrics_with_no_matches (DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_T *builder, bool remove)
 Specifies whether the metric collector should remove any metrics that have no matches.
void diffusion_session_metric_collector_builder_free (DIFFUSION_SESSION_METRIC_COLLECTOR_BUILDER_T *builder)
 Free a session metric collector builder.
void diffusion_session_metric_collector_free (DIFFUSION_SESSION_METRIC_COLLECTOR_T *collector)
 Free a session metric collector.
bool diffusion_session_metric_collector_get_session_filter (DIFFUSION_SESSION_METRIC_COLLECTOR_T *collector, char **session_filter)
 Returns the session filter of the session metric collector.
bool diffusion_session_metric_collector_get_name (DIFFUSION_SESSION_METRIC_COLLECTOR_T *collector, char **name)
 Returns the name of the session metric collector.
bool diffusion_session_metric_collector_removes_metrics_with_no_matches (DIFFUSION_SESSION_METRIC_COLLECTOR_T *collector, bool *removes)
 Indicates whether metrics with no matches should be removed.
bool diffusion_session_metric_collector_exports_to_prometheus (DIFFUSION_SESSION_METRIC_COLLECTOR_T *collector, bool *exports_to_prometheus)
 Indicates whether the metric collector exports to Prometheus.
bool diffusion_session_metric_collector_maximum_groups (DIFFUSION_SESSION_METRIC_COLLECTOR_T *collector, int *maximum_groups)
 Limit the number of groups maintained by this metric collector.
bool diffusion_session_metric_collector_get_group_by_properties (DIFFUSION_SESSION_METRIC_COLLECTOR_T *collector, LIST_T **group_by)
 Returns the list of properties to group by.
bool diffusion_session_metric_collector_compare (DIFFUSION_SESSION_METRIC_COLLECTOR_T *collector_1, DIFFUSION_SESSION_METRIC_COLLECTOR_T *collector_2)
 Compares two session metric collectors.
DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_Tdiffusion_topic_metric_collector_builder_init ()
 Initialize a new topic metric collector builder.
DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_Tdiffusion_topic_metric_collector_builder_reset (DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_T *builder)
 Reset the topic metric collector builder's internal values.
DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_Tdiffusion_topic_metric_collector_builder_export_to_prometheus (DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_T *builder, bool export_to_prometheus)
 Specifies whether the metric collector should export metrics to Prometheus or not.
DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_Tdiffusion_topic_metric_collector_builder_maximum_groups (DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_T *builder, int limit)
 Set the maximum number of groups maintained by the metric collector.
DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_Tdiffusion_topic_metric_collector_builder_group_by_topic_type (DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_T *builder, bool group_by_topic_type)
 Specifies whether the metric collector should group by topic type.
DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_Tdiffusion_topic_metric_collector_builder_group_by_topic_view (DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_T *builder, bool group_by_topic_view)
 Specifies whether the metric collector should group by topic view.
DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_Tdiffusion_topic_metric_collector_builder_group_by_path_prefix_parts (DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_T *builder, int parts)
 Specifies the number of leading parts of the topic path the metric collector should use to group results.
DIFFUSION_TOPIC_METRIC_COLLECTOR_Tdiffusion_topic_metric_collector_builder_create (DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_T *builder, char *name, char *topic_selector, DIFFUSION_API_ERROR *api_error)
 Create a new topic metric collector using the values currently known by the builder.
void diffusion_topic_metric_collector_builder_free (DIFFUSION_TOPIC_METRIC_COLLECTOR_BUILDER_T *builder)
 Free a topic metric collector builder.
void diffusion_topic_metric_collector_free (DIFFUSION_TOPIC_METRIC_COLLECTOR_T *collector)
 Free a topic metric collector.
bool diffusion_topic_metric_collector_get_topic_selector (DIFFUSION_TOPIC_METRIC_COLLECTOR_T *collector, char **topic_selector)
 Returns the topic selector of the topic metric collector.
bool diffusion_topic_metric_collector_get_name (DIFFUSION_TOPIC_METRIC_COLLECTOR_T *collector, char **name)
 Returns the name of the topic metric collector.
bool diffusion_topic_metric_collector_groups_by_topic_type (DIFFUSION_TOPIC_METRIC_COLLECTOR_T *collector, bool *groups_by_topic_type)
 Specifies whether the metric collector should group by topic type.
bool diffusion_topic_metric_collector_groups_by_topic_view (DIFFUSION_TOPIC_METRIC_COLLECTOR_T *collector, bool *groups_by_topic_view)
 Indicates whether the metric collector groups by topic view.
bool diffusion_topic_metric_collector_group_by_path_prefix_parts (DIFFUSION_TOPIC_METRIC_COLLECTOR_T *collector, int *group_by_path_prefix_parts)
 Specifies the number of leading parts of the topic path to group by, or 0, if the collector does not group by path prefix.
bool diffusion_topic_metric_collector_exports_to_prometheus (DIFFUSION_TOPIC_METRIC_COLLECTOR_T *collector, bool *exports_to_prometheus)
 Indicates whether the metric collector exports to Prometheus.
bool diffusion_topic_metric_collector_maximum_groups (DIFFUSION_TOPIC_METRIC_COLLECTOR_T *collector, int *maximum_groups)
 Limit the number of groups maintained by this metric collector.
bool diffusion_topic_metric_collector_compare (DIFFUSION_TOPIC_METRIC_COLLECTOR_T *collector_1, DIFFUSION_TOPIC_METRIC_COLLECTOR_T *collector_2)
 Compares two topic metric collectors.
bool diffusion_metrics_put_session_metric_collector (SESSION_T *session, const DIFFUSION_METRICS_PUT_SESSION_METRIC_COLLECTOR_PARAMS_T params, DIFFUSION_API_ERROR *api_error)
 Add a session metric collector, replacing any with the same name.
bool diffusion_metrics_list_session_metric_collectors (SESSION_T *session, const DIFFUSION_METRICS_LIST_SESSION_METRIC_COLLECTORS_PARAMS_T params, DIFFUSION_API_ERROR *api_error)
 Retrieves the current session metric collectors.
bool diffusion_metrics_remove_session_metric_collector (SESSION_T *session, const DIFFUSION_METRICS_REMOVE_SESSION_METRIC_COLLECTOR_PARAMS_T params, DIFFUSION_API_ERROR *api_error)
 Removes any session metric collector with the given name, if it exists.
bool diffusion_metrics_put_topic_metric_collector (SESSION_T *session, const DIFFUSION_METRICS_PUT_TOPIC_METRIC_COLLECTOR_PARAMS_T params, DIFFUSION_API_ERROR *api_error)
 Add a topic metric collector, replacing any with the same name.
bool diffusion_metrics_list_topic_metric_collectors (SESSION_T *session, const DIFFUSION_METRICS_LIST_TOPIC_METRIC_COLLECTORS_PARAMS_T params, DIFFUSION_API_ERROR *api_error)
 Retrieves the current topic metric collectors.
bool diffusion_metrics_remove_topic_metric_collector (SESSION_T *session, const DIFFUSION_METRICS_REMOVE_TOPIC_METRIC_COLLECTOR_PARAMS_T params, DIFFUSION_API_ERROR *api_error)
 Removes any topic metric collector with the given name, if it exists.

Detailed Description

Allows a client to configure metric collectors.

Diffusion servers provide metrics which are made available in several ways:-

  • Java Management Extensions (JMX) MBeans.
  • Through the Diffusion Management Console.
  • As endpoints for Prometheus.

Metric collectors allow custom aggregation of metrics that are relevant to your application. There are no default metric collectors, only the ones that you create.

There are two types of metric collector: Session Metric Collectors and Topic Metric Collectors.

For full details regarding the configuration and operation of metric collectors see the user manual.

Session Metric Collectors

These can be configured to record metric data for a subset of all sessions, specified with a session filter.

The set of metrics recorded by each session metric collector is the same as those recorded for the whole server. For full details of session metrics, see the table in the user manual.

If the session filters of two different session metric collectors select the same session, both will record metrics for that session. It is only valid to add the metrics of different session metric collectors if their session filters select distinct sets of sessions.

You can optionally group the sessions within a collector by session properties.

Topic Metric Collectors

These can be configured to record metric data for a subset of all topics, specified with a topic selector.

You can optionally group the topics within a collector by topic type.

The set of metrics recorded by each topic metric collector is the same as those recorded for the whole server. For full details of topic metrics, see the table in the user manual.

If the topic selectors of two different topic metric collectors select the same topic, both will record metrics for that topic. It is only valid to add the metrics of different topic metric collectors if their topic selectors select distinct sets of topics.

Access control

The following access control restrictions are applied:

Since
6.7