Interrupts Monitoring

An interrupt request (or IRQ) is a signal sent to the processor that temporarily stops a running program and allows an interrupt handler to run instead. You may want to monitor the IRQs because they could be responsible for high CPU usage, which could have a significant impact on your application/environment's performance.

Why use a Telegraf plugin for Interrupts?

Interrupts are signals that are sent across IRQ by a hardware or software.

Interrupts can happen for a number of reasons and can temporarily stop the execution of a running program and invoke a special program called Interrupt Handler or ISR (Interrupt Service Routine). Monitoring the interrupts with the Interrupts Telegraf Plugin can help you understand where the issues lie in your environment or application - especially when combined with other key system metrics like CPU/memory utilization, disk etc.

How to monitor interrupts using the Telegraf plugin

The Interrupts Telegraf Input Plugin gathers metrics about IRQs from /proc/interrupts and /proc/softirqs. When set to true, cpu metrics are tagged with the cpu. Otherwise cpu is stored as a field. To filter which IRQs to collect, make use of tagpass / tagdrop, i.e. [inputs.interrupts.tagdrop] and irq = [ "NET_RX", "TASKLET" ]

Key Interrupts metrics to use for monitoring

Some of the important Interrupts metrics that you should proactively monitor include:

With cpu_as_tag = false:

  • interrupts
    • tags:
    • irq (IRQ name)
    • type
    • device (name of the device that is located at the IRQ)
    • cpu
  • fields:
    • cpu (int, number of interrupts per cpu)
    • total (int, total number of interrupts)
  • soft_interrupts
    • tags:
      • irq (IRQ name)
      • type
      • device (name of the device that is located at the IRQ)
      • cpu
    • fields:
      • cpu (int, number of interrupts per cpu)
      • total (int, total number of interrupts)

With cpu_as_tag = true:

  • interrupts
    • tags:
      • irq (IRQ name)
      • type
      • device (name of the device that is located at the IRQ)
      • cpu
    • fields:
      • count (int, number of interrupts)
  • soft_interrupts
    • tags:
      • irq (IRQ name)
      • type
      • device (name of the device that is located at the IRQ)
      • cpu
    • fields:
      • count (int, number of interrupts)
For more information, please check out the documentation.

Project URL   Documentation

Related resources