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:
- Consumer groups
- Ingestion rates
- Tracer latency
- Storage volumes
- Workloads
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:
- The Gateway package is version 7.12.1 or later, so
templates/iax-monitoring.xmlis present. - The Netprobe that runs the samplers meets the REST Extractor prerequisites, including the Java requirements.
- The Netprobe can open an HTTPS connection to the ITRS Analytics host. The template calls
https://<IAX_INSTANCE>/ingestion/api/v1/.
How to monitor the ITRS Analytics ingestion pipeline Copied
To monitor the ITRS Analytics ingestion pipeline, follow these steps:
- Create an ITRS Analytics API token with the
userrole. - Include
templates/iax-monitoring.xmlin the Gateway setup. - Set
IAX_INSTANCEandIAX_API_TOKEN. - 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.
- In ITRS Analytics, go to Admin > IAM > API Tokens.
- Select Add API Token.
- Create a token with the
userrole. - 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:
- Open Gateway Setup Editor.
- In the Navigation panel, right-click Includes to create a new file.
- In the Location field, enter the path to
iax-monitoring.xmlin the Gateway packagetemplatesdirectory. - In the Priority field, enter any value except
1. If you enter1, the Gateway Setup Editor returns an error. - Expand the file location in the Includes section.
- Select Click to load.
- 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
- Select Managed entities in the Navigation panel.
- 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
- Select Validate current document
to validate the configuration. - 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. |