Introduction

The ImageMaster Monitoring Services provide an interface for monitoring all kinds of system activities in an ImageMaster environment. They are an internal component of the Integration Service, which allows obtaining metrics from an ImageMaster system in a way which is often desired by service and operation teams. To request such statistics, URLs are used, which comply with certain standard patterns. The exact URL patterns that are supported depend on the ImageMaster modules to be monitored. This documentation describes the supported URL patterns for monitoring the various ImageMaster services.

Unified format

To avoid various different metrics formats for monitoring ImageMaster modules, a unified format was introduced:

  • All metrics are based on a common metrics system and metrics database according to the approach established by [Prometheus].

  • All data and metrics are provided in the JSON format.

Some modules require authentication. Authentication functionality, however, is not part of the module that handles the unified format.

The unified format resource (at least the default Java implementation) will process a request and give a hint to add “/groups” to the URL. This can also serve as a health check that the metrics resource is alive.

Accessing metrics

To manually access metrics, enter the URL a module provides. Usually it will end with “/monitoring” or “/metrics” or in another similar way. In the example below it is “/metrics”. The pattern to retrieve all available metric groups is:

  • /metrics/groups

The following endpoints are used for the different modules:

  • Integration Service:

    https://imagemaster.local:8081/rest/core/metrics/groups

  • Web client:

    https://imagemaster.local:8081/rest/client/metrics/groups

  • Content Services for ERP:

    https://imagemaster.local:8081/rest/erp/metrics/groups

  • Signature Service:

    https://imagemaster.local:8081/rest/signature/metrics/groups

  • Workflow Service:

    https://imagemaster.local:8081/rest/workflow/metrics/groups

  • OfficeClient:

    https://ImaOffice.local/ImageMaster.Office365.Coordinator/metrics/groups

  • Content Services for SharePoint:

    https://imaspc.local:8081/monitoring/unified/groups

  • Content Services for File Shares:

    https://imafsa.local:8081/monitoring/groups

  • Batch Scheduler:

    https://imagemaster.local:8081/metrics/groups

Group-related metrics

After retrieving all the groups it is possible to retrieve metrics for each groups separately. Each group is supposed to contain logically connected metrics. For example, items like the following could be in one group: “status”, “archived”, “retrieved”, “queue”, “issues”. The pattern to retrieve all available metrics for a specific group is:

  • /metrics/groups/<groupName>

For example, group with the label “status” can be used to retrieve all available metrics contained in it. To retrieve the metrics, send the following GET request:

  • /metrics/groups/status

If the group is not found, an empty array is returned without any error! Otherwise, this request returns all the metrics with labels contained in the given group.

Additional metrics information

The pattern to retrieve additional information about metrics in the specific group is:

  • /metrics/groups/<groupName>/info

For example, if the group called “status” has been created, it is possible to get additional information about its metrics by sending the GET request to:

  • /metrics/groups/status/info

It is possible to retrieve information about one specific metric. For example, if a metric from the group “status” is called “issues_total”, use the following request:

  • /metrics/groups/status/info/issues_total

Filtering metrics

Metrics can be filtered by adding the parameters “include” or “exclude”. These parameters can be repeated any number of times. In case there are several include and exclude filters, the request can be interpreted as “include this metric and also include that metrics, but additionally exclude (from all, that are included) this metric and also exclude some of those metrics”.

It is possible to filter one specific metric (include=this_specific_metric) or to use the asterisk wildcard to filter for all metrics starting with a given string (include=archived*).

The following example includes metrics with the name “issues_total” and all metrics which start with the prefix “archived” (for example “archived_items” and “archived_bytes”):

  • /metrics/groups/status?include=issues_total&include=archived*

The following example results in all metrics whose names start with the prefix “archived” except “archived_items”:

  • /metrics/groups/status?include=archived*&exclude=archived_items

Filters allow excluding metrics which cost a lot of resources to be calculated, where it makes sense to retrieve values less frequently.