Interface IMetrics

This feature allows a client to configure metric collectors.

Inherited Members
IFeature.Session
Namespace: PushTechnology.ClientInterface.Client.Features.Metrics
Assembly: Diffusion.Client.dll
Syntax
public interface IMetrics : IFeature
Remarks

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:

  • To put PutSessionMetricCollectorAsync(ISessionMetricCollector) or remove RemoveSessionMetricCollectorAsync(String) a session metric collector, a session needs the CONTROL_SERVER global permission.
  • To put PutTopicMetricCollectorAsync(ITopicMetricCollector) or remove RemoveTopicMetricCollectorAsync(String) a topic metric collector, a session needs the CONTROL_SERVER global permission.
  • To list session metric collectors ListSessionMetricCollectorsAsync() or topic metric collectors ListTopicMetricCollectorsAsync(), a session needs the VIEW_SERVER global permission.
  • To get metrics with FetchAsync(), a session needs the VIEW_SERVER global permission.

Accessing the feature

This feature may be obtained from an ISession as follows:

var metrics = session.Metrics;

Added in version 6.7.

Methods

ListSessionMetricCollectorsAsync()

Retrieves the current session metric collectors.

Declaration
Task<List<ISessionMetricCollector>> ListSessionMetricCollectorsAsync()
Returns
Type Description
Task<List<ISessionMetricCollector>>

A Task that completes when a response is received from the server.

Remarks

If the task completes successfully, the Task result will be a list of current session metric collectors.

Exceptions
Type Condition
SessionSecurityException

If the calling session does not have VIEW_SERVER permission. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ListSessionMetricCollectorsAsync(CancellationToken)

Retrieves the current session metric collectors.

Declaration
Task<List<ISessionMetricCollector>> ListSessionMetricCollectorsAsync(CancellationToken cancellationToken)
Parameters
Type Name Description
CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
Task<List<ISessionMetricCollector>>

A Task that completes when a response is received from the server.

Remarks

If the task completes successfully, the Task result will be a list of current session metric collectors.

Exceptions
Type Condition
SessionSecurityException

If the calling session does not have VIEW_SERVER permission. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ListTopicMetricCollectorsAsync()

Retrieves the current topic metric collectors.

Declaration
Task<List<ITopicMetricCollector>> ListTopicMetricCollectorsAsync()
Returns
Type Description
Task<List<ITopicMetricCollector>>

A Task that completes when a response is received from the server.

Remarks

If the task completes successfully, the Task result will be a list of current session metric collectors.

Exceptions
Type Condition
SessionSecurityException

If the calling session does not have VIEW_SERVER permission. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ListTopicMetricCollectorsAsync(CancellationToken)

Retrieves the current topic metric collectors.

Declaration
Task<List<ITopicMetricCollector>> ListTopicMetricCollectorsAsync(CancellationToken cancellationToken)
Parameters
Type Name Description
CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
Task<List<ITopicMetricCollector>>

A Task that completes when a response is received from the server.

Remarks

If the task completes successfully, the Task result will be a list of current session metric collectors.

Exceptions
Type Condition
SessionSecurityException

If the calling session does not have VIEW_SERVER permission. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

MetricsRequest()

Creates an unconfigured IMetricsRequest. The request can be invoked using FetchAsync() to retrieve metrics for the server or cluster.

Declaration
IMetricsRequest MetricsRequest()
Returns
Type Description
IMetricsRequest

A new IMetricsRequest.

Remarks

See IMetricsRequest for more information.

Since 6.10.

PutSessionMetricCollectorAsync(ISessionMetricCollector)

Add a session metric collector, replacing any with the same name.

Declaration
Task<object> PutSessionMetricCollectorAsync(ISessionMetricCollector collector)
Parameters
Type Name Description
ISessionMetricCollector collector

The session metric collector.

Returns
Type Description
Task<System.Object>

A Task that completes when a response is received from the server.

Remarks

If the task completes successfully, the Task result will be null.

Exceptions
Type Condition
InvalidFilterException

If the metric collector session filter is invalid. Thrown by the returned task.

SessionSecurityException

If the calling session does not have CONTROL_SERVER permission. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

PutSessionMetricCollectorAsync(ISessionMetricCollector, CancellationToken)

Add a session metric collector, replacing any with the same name.

Declaration
Task<object> PutSessionMetricCollectorAsync(ISessionMetricCollector collector, CancellationToken cancellationToken)
Parameters
Type Name Description
ISessionMetricCollector collector

The session metric collector.

CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
Task<System.Object>

A Task that completes when a response is received from the server.

Remarks

If the task completes successfully, the Task result will be null.

Exceptions
Type Condition
InvalidFilterException

If the metric collector session filter is invalid. Thrown by the returned task.

SessionSecurityException

If the calling session does not have CONTROL_SERVER permission. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

PutTopicMetricCollectorAsync(ITopicMetricCollector)

Add a topic metric collector, replacing any with the same name.

Declaration
Task<object> PutTopicMetricCollectorAsync(ITopicMetricCollector collector)
Parameters
Type Name Description
ITopicMetricCollector collector

The topic metric collector.

Returns
Type Description
Task<System.Object>

A Task that completes when a response is received from the server.

Remarks

A ITopicMetricCollector instance can be created using NewTopicMetricCollectorBuilder().

If the task completes successfully, the Task result will be null.

Exceptions
Type Condition
SessionSecurityException

If the calling session does not have CONTROL_SERVER permission. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

PutTopicMetricCollectorAsync(ITopicMetricCollector, CancellationToken)

Add a topic metric collector, replacing any with the same name.

Declaration
Task<object> PutTopicMetricCollectorAsync(ITopicMetricCollector collector, CancellationToken cancellationToken)
Parameters
Type Name Description
ITopicMetricCollector collector

The topic metric collector.

CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
Task<System.Object>

A Task that completes when a response is received from the server.

Remarks

A ITopicMetricCollector instance can be created using NewTopicMetricCollectorBuilder().

If the task completes successfully, the Task result will be null.

Exceptions
Type Condition
SessionSecurityException

If the calling session does not have CONTROL_SERVER permission. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

RemoveSessionMetricCollectorAsync(String)

Removes any session metric collector with the given name, if it exists.

Declaration
Task<object> RemoveSessionMetricCollectorAsync(string name)
Parameters
Type Name Description
System.String name

The session metric collector name.

Returns
Type Description
Task<System.Object>

A Task that completes when a response is received from the server.

Remarks

If the task completes successfully, the Task result will be null.

Exceptions
Type Condition
SessionSecurityException

If the calling session does not have CONTROL_SERVER permission. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

RemoveSessionMetricCollectorAsync(String, CancellationToken)

Removes any session metric collector with the given name, if it exists.

Declaration
Task<object> RemoveSessionMetricCollectorAsync(string name, CancellationToken cancellationToken)
Parameters
Type Name Description
System.String name

The session metric collector name.

CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
Task<System.Object>

A Task that completes when a response is received from the server.

Remarks

If the task completes successfully, the Task result will be null.

Exceptions
Type Condition
SessionSecurityException

If the calling session does not have CONTROL_SERVER permission. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

RemoveTopicMetricCollectorAsync(String)

Removes any topic metric collector with the given name, if it exists.

Declaration
Task<object> RemoveTopicMetricCollectorAsync(string name)
Parameters
Type Name Description
System.String name

The topic metric collector name.

Returns
Type Description
Task<System.Object>

A Task that completes when a response is received from the server.

Remarks

If the task completes successfully, the Task result will be null.

Exceptions
Type Condition
SessionSecurityException

If the calling session does not have CONTROL_SERVER permission. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

RemoveTopicMetricCollectorAsync(String, CancellationToken)

Removes any topic metric collector with the given name, if it exists.

Declaration
Task<object> RemoveTopicMetricCollectorAsync(string name, CancellationToken cancellationToken)
Parameters
Type Name Description
System.String name

The topic metric collector name.

CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
Task<System.Object>

A Task that completes when a response is received from the server.

Remarks

If the task completes successfully, the Task result will be null.

Exceptions
Type Condition
SessionSecurityException

If the calling session does not have CONTROL_SERVER permission. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

Back to top