Monitor ITRS Analytics ingestion pipeline

Overview Copied

You can monitor the ITRS Analytics ingestion pipeline and display the dataviews in Active Console. Use the template (templates/iax-monitoring.xml) included in the Gateway package.

The template uses the REST Extractor plugin. Each sampler calls the ITRS Analytics ingestion monitoring API and converts the JSON response into dataviews. The template provides dataviews for these areas:

The same file includes rules that set severity on workload status, consumer-group lag, volume usage, and tracer latency.

Prerequisites Copied

Before you include the template, confirm the following:

How to monitor the ITRS Analytics ingestion pipeline Copied

To monitor the ITRS Analytics ingestion pipeline, follow these steps:

  1. Create an ITRS Analytics API token with the user role.
  2. Include templates/iax-monitoring.xml in the Gateway setup.
  3. Set IAX_INSTANCE and IAX_API_TOKEN.
  4. Add the IAX Ingestion Monitoring samplers to a managed entity.

Create an ITRS Analytics API token Copied

The samplers call the ingestion monitoring API with a bearer token. Create an API token with the user role. Enter the token as the value of IAX_API_TOKEN when you set up the variables.

  1. In ITRS Analytics, go to Admin > IAM > API Tokens.
  2. Select Add API Token.
  3. Create a token with the user role.
  4. Copy the API token.

For more information, see IAM app API tokens.

Include the template Copied

To include iax-monitoring.xml in the Gateway setup, follow these steps:

  1. Open Gateway Setup Editor.
  2. In the Navigation panel, right-click Includes to create a new file.
  3. In the Location field, enter the path to iax-monitoring.xml in the Gateway package templates directory.
  4. In the Priority field, enter any value except 1. If you enter 1, the Gateway Setup Editor returns an error.
  5. Expand the file location in the Includes section.
  6. Select Click to load.
  7. Select Yes to load the include file.

For more information, see Include files.

Set up the variables Copied

The iax-monitoring.xml template does not define variables. Create the following variables where they are in scope for the samplers, such as Operating environment > Var or an environment applied to the managed entity. For more information, see User Variables and Environments.

Name Type Description
IAX_INSTANCE string ITRS Analytics hostname. Include a port if HTTPS uses a port other than 443. For example, example.analytics.itrsgroup.com. The template builds each request URL as https://<IAX_INSTANCE>/ingestion/api/v1/....
IAX_API_TOKEN password API token that the template sends as a bearer token in the Authorization header.

Add the samplers Copied

  1. Select Managed entities in the Navigation panel.
  2. On the managed entity that monitors ITRS Analytics, add the samplers from the IAX Ingestion Monitoring sampler group.

The probe for that managed entity must be able to reach the ITRS Analytics host.

The included rules target the sampler names consumer-groups, ingestion-rates, tracer-latency, volumes, and workloads. Keep those names so the rules continue to apply.

Validate and save the setup Copied

  1. Select Validate current document to validate the configuration.
  2. Select Save current document to apply the changes.

After you save, the dataviews appear in Active Console under the managed entity. For the columns, see Metrics and dataviews.

Rules Copied

The include file adds the IAX Ingestion Monitoring rule group. These rules set cell severity:

Rule Cells Severity
iax-workload-status status on workloads-summary OK when the status is RUNNING. Critical for any other status.
iax-consumer-group-total-lag totalLag on consumer-groups Warning when lag is greater than 100,000. Critical when lag is greater than 1,000,000. OK for any other value.
iax-volume-used-pct usedPct on volumes-summary and volumes-totals Warning when usage is greater than 75 percent. Critical when usage is greater than 90 percent. OK for any other value.
iax-tracer-max-latency maxLatencyMs on tracer-latency-latest and tracer-latency-overall Warning when latency is greater than 5,000 milliseconds. Critical when latency is greater than 10,000 milliseconds. OK for any other value.

Metrics and dataviews Copied

The five IAX Ingestion Monitoring samplers publish these dataviews. Each sampler runs every 60 seconds. These columns are produced by templates/iax-monitoring.xml. The template reads the Ingestion self-monitoring API. For the current API, see Ingestion API. The following sections describe the columns in each dataview.

Sampler Dataviews
consumer-groups consumer-groups, consumer-groups-unknown
ingestion-rates received-rates, ingested-rates
tracer-latency tracer-latency-latest, tracer-latency-overall
volumes volumes-summary, volumes-totals
workloads workloads-summary, workloads-restarts

Consumer groups Copied

The consumer-groups sampler publishes the lag for each consumer group and topic. Both dataviews use these columns. Rows are sorted by totalLag, with the highest lag first.

consumer-groups lists groups whose summary does not contain unknown partitions, so unknowns is false. consumer-groups-unknown lists groups whose summary contains unknown partitions, so unknowns is true.

Column Description
key Consumer group and topic, separated by /.
group Consumer group name.
topic Topic name.
numPartitions Number of partitions in the group for that topic.
totalLag Total lag for the group and topic.
minLag Lowest partition lag.
maxLag Highest partition lag.
maxLagPct Maximum lag ratio returned by the API, converted to a percentage and rounded to two decimal places.
unknowns true when the group contains unknown partitions. Otherwise false.

Ingestion rates Copied

The ingestion-rates sampler publishes one row for each data point group. Both dataviews use these columns.

received-rates shows the count of data points received. ingested-rates shows the count of data points ingested.

Column Description
group Data point group name from the ingestion rates summary.
external External count for the group.
internal Internal count for the group.
total Total count for the group.

Tracer latency Copied

The tracer-latency sampler publishes pipeline latency.

tracer-latency-latest shows the latest sample for each host and topic. It uses every column in the following table. Rows are sorted by maxLatencyMs, with the highest latency first.

tracer-latency-overall contains one row for all hosts and topics. That row includes key, maxLatencyMs, and avgLatencyMs. The value of key is all.

Column Description
key Hostname and topic, separated by /. In tracer-latency-overall, the value is all.
hostname Host that produced the tracer sample.
topic Topic name.
maxLatencyMs Maximum pipeline latency, in milliseconds.
avgLatencyMs Average pipeline latency, in milliseconds.

Storage volumes Copied

The volumes sampler publishes storage size and usage.

volumes-summary shows each storage volume and uses every column in the following table. Rows are sorted by usedPct, with the highest percentage in use first.

volumes-totals contains one row for all volumes. That row includes key, usedPct, usedGiB, and sizeGiB. The value of key is all.

Column Description
key Pod name and volume name, separated by /. In volumes-totals, the value is all.
podName Pod that owns the volume.
volumeName Volume name.
usedPct Percentage of size in use, rounded to two decimal places.
usedGiB Used space in gibibytes, rounded to two decimal places.
sizeGiB Volume size in gibibytes, rounded to two decimal places.

Workloads Copied

The workloads sampler publishes container state and resource usage. Both dataviews use these columns and omit containers whose state is terminated or evicted. Rows are sorted by restarts, with the highest restart count first.

workloads-summary also omits containers whose names start with linkerd. workloads-restarts lists containers with a restart count greater than zero.

Column Description
key Pod name and container name, separated by /.
podName Pod that owns the container.
containerName Container name.
status Current container state, in uppercase. RUNNING is OK under the included rule.
restarts Container restart count.
restartAgeMins Minutes since the current process started. The value is 0 if the container has not restarted or if no start time is available.
cpuRequestPct Current CPU use as a percentage of the CPU request.
cpuLimitPct Current CPU use as a percentage of the CPU limit.
memRequestPct Current memory use as a percentage of the memory request.
memLimitPct Current memory use as a percentage of the memory limit.
cpuRequestCores Requested CPU, in cores.
cpuLimitCores CPU limit, in cores.
memRequestMiB Requested memory, in mebibytes.
memLimitMiB Memory limit, in mebibytes.
["Geneos"] ["Geneos > Gateway"] ["User Guide"]

Was this topic helpful?