F5 monitoring integration

The F5 BIG-IP integration reports data from your BIG-IP instance to New Relic Infrastructure. This document explains how to install and configure the F5 BIG-IP integration and describes the data collected.

Access to this feature depends on your subscription level. Requires Infrastructure Pro.

This on-host integration has been contributed to the New Relic GitHub under an MIT license.

Features

The F5 BIG-IP on-host integration collects and sends inventory and metrics from your F5 BIG-IP instance to the New Relic platform, where you can aggregate and visualize key performance metrics. Data is collected at system, application, pool, pool member, virtual server, and node levels.

Compatibility and requirements

To use the F5 BIG-IP integration, ensure your system meets these requirements:

F5 BIG-IP users and privileges

To create a new user and assign user permissions:

  1. Using the F5 documentation, create a user account with, at minimum, Access Auditor-level permissions.

    Administrator-level permissions may be required to collect some system sample metrics or system inventory configuration data. For more information on user permission levels, see User role access descriptions.

  2. Once the user has been created, assign the user iControl REST user permissions.

    For detailed information on iControl users and permission, download and review the iControl REST User Guide.

Install

Recommendations:

To install the F5 BIG-IP integration:

  1. Follow the instructions for installing an integration, using the file name nri-f5.
  2. Via the command line, change directory to the integrations folder:
    cd /etc/newrelic-infra/integrations.d
  3. Create a copy of the sample configuration file by running:
    sudo cp f5-config.yml.sample f5-config.yml
  4. Edit the f5-config.yml configuration file using the configuration settings.
  5. Restart the infrastructure agent.

It is also possible to manually install integrations from a tarball file. For more information, see Install manually from a tarball archive.

Configure

Use the F5 BIG-IP integration's f5-config.yml configuration file to put required login credentials and configure how data is collected. For an example configuration, see the example config file.

Commands

The f5-config.yml file provides these commands:

  • all_data: collects both inventory and metrics for the BIG-IP instance.
  • inventory: collects only the inventory (configuration) data for the BIG-IP instance.
  • metrics: collects only the metrics data for the BIG-IP instance.

Arguments

The f5-config.yml commands accept the following arguments:

  • username: The username for the F5 BIG-IP connection. This field is required.

  • password: The password for the F5 BIG-IP connection. This field is required.

  • hostname: The hostname for the F5 BIG-IP connection. Default: f5-host.

  • port: The port on which F5 BIG-IP instance is running. Default: 443.

  • timeout: The number of seconds to wait before a request times out. Default: 30.

  • use_ssl: Indicates whether SSL is used to connect to the API. The F5 API only allows connections using SSL by default.

  • ca_bundle_file: Alternative certificate authority bundle file.

  • ca_bundle_dir: Alternative certificate authority bundle directory.

  • partition_filter: An array of the partitions to collect from, in JSON. Default: '["Common"]'.

Example f5-config.yml file configuration:

Example configuration
integration_name: com.newrelic.nri-f5

instances:
  - name: nri-f5
    # command can be all_data, metrics, or inventory
    command: all_data
    arguments:
      # Username of the F5 instance
      username: admin
      # Password of the F5 instance
      password: admin
      # Hostname of the F5 instance
      hostname: f5-host
      # Port of the F5 instance
      port: 443
      # CA certificate file
      ca_bundle_file: /etc/ca_certificate.crt
      # A JSON array of BIG-IP partitions to collect from.
      # The partition name should have no leading slash.
      # Defaults to '["Common"]'
      partition_filter: '["Common","MyOtherPartition"]'
      # The number of seconds to wait before a request times out
      # Defaults to 30
      timeout: 10

Find and use data

To find your integration data in Infrastructure, go to infrastructure.newrelic.com > Third-party services and select one of the F5 BIG-IP integration links.

In New Relic Insights, F5 BIG-IP data is attached to the following Insights event types:

For more on how to find and use your data, see Understand integration data.

Metric data

The F5 BIG-IP integration collects the following metric data attributes. Some metric name are prefixed with a category indicator and a period, such as system., virtualserver., or pool..

These attributes can be found by querying the F5BigIpSystemSample event types in Insights.

Metric Description

system.cpuIdleTicksPerSecond

Amount of CPU ticks that the CPU was idle per second. Requires Administrator-level user permissions to collect.

system.cpuIdleUtilization

Average percentage of time the CPU is idle.

system.cpuInterruptRequestUtilization

Average percentage of time the CPU is handling interrupt requests.

system.cpuIOWaitUtilization

Average percentage of time the CPU is waiting on IO.

system.cpuNiceLevelUtilization

Average percentage of time the CPU is handling nice level processes.

system.cpuSoftInterruptRequestUtilization

Average percentage of time the CPU is handling soft interrupt requests.

system.cpuStolenUtilization

Average percentage of time the CPU is handling reclaimed cycles by the hypervisor.

system.cpuSystemTicksPerSecond

Amount of CPU ticks used by the kernel processes per second. Requires Administrator-level user permissions to collect.

system.cpuSystemUtilization

Average percentage of time the CPU is used by the kernel.

system.cpuUserTicksPerSecond

Amount of CPU ticks used by user processes per second. Requires Administrator-level user permissions to collect.

system.cpuUserUtilization

Average percentage of time the CPU is used by user processes.

system.memoryFreeInBytes

Total amount of memory free, in bytes.

system.memoryTotalInBytes

Total amount of memory, in bytes. Requires Administrator-level user permissions to collect.

system.memoryUsedInBytes

Total amount of memory used, in bytes. Requires Administrator-level user permissions to collect.

system.otherMemoryFreeInBytes

Free memory reserved for control plane processes, in bytes.

system.otherMemoryTotalInBytes

Total memory reserved for control plane processes, in bytes.

system.otherMemoryUsedInBytes

Used memory reserved for control plane processes, in bytes.

system.swapFreeInBytes

Swap space free, in bytes.

system.swapTotalInBytes

Swap space total, in bytes.

system.swapUsedInBytes

Swap space used, in bytes.

system.tmmMemoryFreeInBytes

Free memory reserved for Traffic Management Microkernel (TMM), in bytes.

system.tmmMemoryTotalInBytes

Total memory reserved for Traffic Management Microkernel (TMM), in bytes.

system.tmmMemoryUsedInBytes

Used memory reserved for Traffic Management Microkernel (TMM), in bytes.

These attributes can be found by querying the F5BigIpVirtualServerSample event types in Insights.

Metric Description

virtualserver.avaibilityState

The BIG-IP defined availability. Options:

  • 0 = Offline
  • 1 = Unknown
  • 2 = Online

virtualserver.clientsideConnectionsPerSecond

The rate of connections created through the client side of the object per second.

virtualserver.cmpEnabled

Indicates whether or not Cluster Multiprocessing (CMP) is enabled.

virtualserver.cmpEnableMode

Shows the Cluster Multiprocessing (CMP) mode indicators. Options:

  • CMP disabled = none, disable, or single.
  • CMP enabled = enable or all.

virtualserver.connections

The current number of connections from BIG-IP.

virtualserver.csMaxConnDur

Maximum connection duration from the client side of the object.

virtualserver.csMinConnDur

Minimum connection duration from the client side of the object.

virtualserver.enabled

The current enabled state. Options:

  • 0 = Disabled
  • 1 = Enabled

virtualserver.ephemeralBytesInPerSecond

Total number of bytes in through the ephemeral port per second.

virtualserver.ephemeralBytesOutPerSecond

Total number of bytes out through the ephemeral port per second.

virtualserver.ephemeralConnectionsPerSecond

The rate of connection creation through the ephemeral port per second.

virtualserver.ephemeralCurrentConnections

The current number of connections through the ephemeral port.

virtualserver.ephemeralEvictedConnectionsPerSecond

The number of connections that are evicted through the ephemeral port per second.

virtualserver.ephemeralMaxConnections

Maximum number of connections through the ephemeral port.

virtualserver.ephemeralPacketsReceivedPerSecond

The number of packets in through the ephemeral port per second.

virtualserver.ephemeralPacketsSentPerSecond

The number of packets out through the ephemeral port per second.

virtualserver.ephemeralSlowKilledPerSecond

The number of slow connections that are killed through the ephemeral port per second.

virtualserver.evictedConnsPerSecond

The rate of connections evicted per second.

virtualserver.inDataInBytes

The amount of data received from the BIG-IP virtual server, in bytes.

virtualserver.outDataInBytes

The amount of data sent to the BIG-IP virtual server, in bytes.

virtualserver.packetsReceived

The number of packets received from the BIG-IP virtual server.

virtualserver.packetsSent

The number of packets sent to the BIG-IP virtual server.

virtualserver.requests

The number of requests in the last collection interval to BIG-IP.

virtualserver.slowKilledPerSecond

The number of slow connections killed through the client side of the object per second.

virtualserver.statusReason

An explanation of the current status.

virtualserver.usageRatio

The usage ratio for the virtual server.

These attributes can be found by querying the F5BigIpPoolSample event types in Insights.

Metric Description

pool.activeMembers

The number of active pool members.

pool.availabilityState

The current availability state. Options:

  • 0 = Offline
  • 1 = Unknown
  • 2 = Online

pool.connections

The current number of connections.

pool.connqAgeEdm

The queue age exponential-decaying max.

pool.connqAgeEma

The queue age exponential-moving average.

pool.connqAgeHead

The current queue age head.

pool.connqAgeMax

The queue age all-time max.

pool.connqAllAgeEdm

The sum of pool member queue age exponential-decaying max.

pool.connqAllAgeEma

The sum of pool member queue age exponential-moving average.

pool.connqAllAgeHead

The sum of pool member queue age head.

pool.connqAllAgeMax

The sum of pool member queue age all-time max.

pool.connqAllDepth

The sum of pool member depth.

pool.connqDepth

The queue depth.

pool.currentConnections

The current connections.

pool.enabled

The current enabled state, can be user defined. Options:

  • 0 = Disabled
  • 1 = Enabled

pool.inDataInBytes

The amount of data received from the BIG-IP pool, in bytes.

pool.minActiveMembers

Pool minimum active members.

pool.outDataInBytes

The amount of data sent to the BIG-IP pool, in bytes.

pool.packetsReceived

The number of packets received from the BIG-IP pool.

pool.packetsSent

The number of packets sent to the BIG-IP pool.

pool.requests

The total number of requests to the pool.

pool.statusReason

Textual property explaining the overall health reason.

These attributes can be found by querying the F5BigIpPoolMemberSample event types in Insights.

Metric Description

member.availabilityState

The current availability from the BIG-IP system. Options:

  • 0 = Offline
  • 1 = Unknown
  • 2 = Online

member.connections

The current connections.

member.enabled

Enabled state of the pool member with regards to the parent pool. Options:

  • 0 = Disabled
  • 1 = Enabled

member.inDataInBytes

The amount of data received from the BIG-IP pool member, in bytes.

member.monitorStatus

The status of the monitor. Options:

  • 0 = Down
  • 1 = Unchecked
  • 2 = Any other status

member.outDataInBytes

The amount of data sent to the BIG-IP pool member, in bytes.

member.packetsReceived

The number of packets received from the BIG-IP pool member.

member.packetsSent

The number of packets sent to the BIG-IP pool member.

member.requests

The current number of requests over the last collection interval.

member.sessions

The current session count.

member.sessionStatus

The current session health status. Options:

  • 0 = Disabled
  • 1 = Enabled

member.state

The current state. Options:

  • 0 = Down
  • 1 = Up

member.statusReason

Explanation of the current status.

These attributes can be found by querying the F5BigIpNodeSample event types in Insights.

Metric Description

node.availabilityState

The current BIG-IP availability state to the node. Options:

  • 0 = Offline
  • 1 = Unknown
  • 2 = Online

node.connections

The current number of network connections from BIG-IP.

node.connectionsPerSecond

The number of connections made per second.

node.enabled

The current BIG-IP enabled state. Options:

  • 0 = Disabled
  • 1 = Enabled
,

node.inDataInBytes

The amount of data received from the BIG-IP node, in bytes.

node.monitorStatus

The current health monitor rule status. Options:

  • 0 = Down
  • 1 = Unchecked
  • 2 = Any other status

node.outDataInBytes

The amount of data sent to the BIG-IP node, in bytes.

node.packetsReceived

The number of packets received from the BIG-IP node.

node.packetsSent

The number of packets sent to the BIG-IP node.

node.requests

The current number of requests over the last collection from BIG-IP.

node.sessions

The current number of sessions.

node.sessionStatus

The current status of the session. Options:

  • 0 = Disabled
  • 1 = Enabled

node.statusReason

BIG-IP reason for the current status.

Inventory data

The F5 BIG-IP integration also collects configuration data at system, application, pool, pool member, virtual server, and node levels.

The data is available on the Infrastructure Inventory page, under the config/f5 source. For more about inventory data, see Understand integration data.

The integration captures data for the following F5 BIG-IP configuration parameters:

Pool Inventory
Metric Description

currentLoadMode

Current load balancing mode.

description

User defined description.

kind

Kind of pool.

maxConnections

Current max number of connections seen at one point.

monitorRule

Current health monitoring rule applied.

Node inventory
Metric Description

address

BIG-IP network address to send to the node.

fqdn

FQDN of node.

kind

Type of Node in BIG-IP.

maxConnections

Current highest number of network connections reported from BIG-IP.

monitorRule

BIG-IP Health Monitor rule.

Pool Member Inventory
Metric Description

kind

Type of Pool member.

maxConnections

Current highest number of network connections reported from BIG-IP.

monitorRule

BIG-IP health monitor rule.

nodeName

Name of the node the pool member is using.

poolName

Name of the pool the pool member belongs.

port

Port the pool member listens on.

Virtual Server Inventory
Metric Description

applicationService

Current application service assigned.

destination

Destination address picked up by BIG-IP.

kind

Type of virtual server.

maxConnections

Current highest number of network connections reported from BIG-IP.

name

User defined name.

pool

Pool the virtual server uses for load balancing.

System Inventory
Metric Description

chassisSerialNumber

Chassis Serial Number for the current device. Requires Access Administrator-level user permissions to collect.

platform

Platform of the current device. Requires Access Administrator-level user permissions to collect.

product

Product Name for the current device. Requires Access Administrator-level user permissions to collect.

Application Inventory
Metric Description

deviceGroup

Device group running application service.

kind

BIG-IP Defined type.

name

User defined name.

poolToUse

Server side pool load balancing requests.

template

Template applied to application including security and monitoring rules.

templateModified

Indicator of modifications made to out of the box template.

trafficGroup

Current traffic group to which service is applied.

For more help

Recommendations for learning more:

  • See the Docs site's landing page for Infrastructure integrations documentation.
  • Browse New Relic's Explorers Hub for community discussions about New Relic Infrastructure integrations.
  • Use your preferred search engine to find other New Relic resources.