• Home
  • Platform modules
  • Infrastructure Monitoring
  • Networks
  • F5 BIG-IP LTM monitoring

F5 BIG-IP LTM monitoring

Learn about F5 BIG-IP LTM Extension configuration, deployment and working with data.

Before you begin

Verify that your designated ActiveGate has the Extensions 2.0 module active and running.

  1. In the Dynatrace menu, go to Deployment status > ActiveGates and expand the details of the designated ActiveGate.
  2. In the Properties section, make sure that the ActiveGate is assigned to a Group.
  3. In the Modules section, make sure that the Extensions 2.0 module is enabled.

ActiveGate has the Extensions 2.0 module active and running

If either of these properties needs to be changed, see Configuration properties and parameters of ActiveGate.

Note: Any changes done via ActiveGate configuration files require a restart of the ActiveGate and Extensions Execution Controller (EEC) services.

Extension deployment

  1. In the Dynatrace menu, go to Extensions. Find the F5 BIG-IP LTM tile in the Dynatrace Extensions 2.0 you can add to your environment section.
  2. Select the tile, then select Add to environment.

Monitoring configuration

  1. Make sure the expected version is displayed in the Versions list at the bottom of the page.
  2. Add your monitoring configuration by selecting Add monitoring configuration.

Define devices

Select Add device to define the devices from which you want to pull data and provide the device connection details:

  • IP address or device name
  • Port
  • SNMP version and related authentication details

ActiveGate group

Choose the ActiveGate group to determine which ActiveGates will run the extension. When done, select Next step.

Customize the monitoring

The next step in extension activation is to customize monitoring. See the complete list of feature sets and the metrics collected.

Filters match entity names to include/exclude instances from monitoring. This makes the data more relevant and saves unnecessary license consumption. Filters work with a specific entity type and support the following syntax:

  • $eq(<str>) – check if <str> matches what you're filtering
  • $prefix(...) – must begin with …
  • $suffix(...) - must end with …
  • $contains(...) – must contain …
  • $and(<expr1>, <expr2>) – can be used to chain two or more of the above expressions with AND operator
  • $or(<expr1>, <expr2>) – can be used to chain two or more of the above expressions with OR operator
  • $not(<expr>) – can be used to negate an expression

For example, to exclude all Pools from the Common partition, you can add a filter: $not($prefix(/Common/))

The final step is to select Activate, which will communicate the monitoring configuration to the ActiveGate along with the extension that defines how data is being collected.

Data visualization and configuration

The extension is packaged with an overview dashboard that is published as soon as you add it to your environment. Go to Dashboards and look for a preset dashboard called F5 BIGIP LTM Overview.

F5 BIGIP LTM Overview

The dashboard gives an overview into the main components of the platform, as well as shortcuts to the lists of different entity types (in the Navigate to F5 entities section). This is currently the quickest way to navigate to the lists of entities. Otherwise, you can manually add the path into your URL bar: .../ui/entity/list/<entity-type>

Access individual entities from a list or by drilling down from one of the charts in order to get the full details:

F5 Unified Analysis Screens

Troubleshooting

Configuration status not OK

Whenever a monitoring configuration is created or updated, it can take a few minutes to fully activate and start monitoring. Until then, the configuration status may change to Warning or Error as the configuration gets scheduled to the endpoint, queued for downloading, activated, validated, and starts running. Allow at least 5 minutes for this. If the status is still not OK, select the colored dot next to it; this will open a Log Viewer interface for more details.

Fastcheck failures

Fastcheck is a simple SNMP Get query that aims to retrieve one OID from the device representing its system name. The device has 18 seconds to respond, otherwise the check fails. This is the very first step before any other detail is collected from the device.

Fastcheck failures point to an issue with communicating with the device

  • Wrong credentials for connecting to the device
  • Network firewalls not allowing communication
  • Misconfigured devices not allowing SNMP queries

GetBulk returned an error

GetBulk is the SNMP query operation used to retrieve data from the F5 Device. When this appears in the error message, it means the device is reachable (FastCheck passed) but the data could not be retrieved.

This type of error can have multiple causes:

  • The credentials provided (for example, community string) are invalid
  • The network is unreliable, causing communication issues
  • There is too much data to retrieve; try reducing the feature sets or optimizing the advanced settings

Invalid config errors

Invalid config will point back to the details entered in the monitoring configuration fields. While the Device details are self-explanatory, the variables filters must follow the syntax mentioned the previous section.

High CPU

HIGH_CPU status means the maximum allowed CPU consumption for the datasource module of the Extension Execution Controller (EEC) has been reached on the ActiveGate.

  • The amount of data cannot be collected and processed without going above the 5% CPU usage built-in resource limit.
  • Try initially enabling fewer feature sets (implying less metrics, so less requests to process) or, alternatively, spread the feature sets over multiple configurations.

Extension logs

Extension logs can be found at ActiveGate directories. Look for the Extensions 2.0 configuration, logs in Purpose of column.

Optimization for large devices

Monitoring configurations are provided with a set of advanced settings which impact how the data is being requested from the device via SNMP. The default values will work in most cases, but you can adjust these if you are experiencing issues, for example you're missing data:

  • Timeout and Retries refer to the maximum time to wait for an SNMP query to return and the number of times to retry a query in case of failures.
  • Max. repetitions refers to how many times an OID (metric identifier in SNMP) can be repeated as part of a single SNMP GetBulk query response when the same metric is collected for multiple objects/instances. A lower value means more requests between the extension and the device to collect a large dataset. Due to the speed and unreliability of the SNMP protocol, it is more effective to use a smaller value (for example 20). Default = 50.
  • Max. OIDs per query refers to the maximum number of OIDs that can be requested for each SNMP GetBulk query. In very large environments, it's recommended to set it to 5. This improves performance by further splitting the workload into more requests.

Metrics

See the metrics collected by the extension broken down into feature sets

  • N/A

Metric nameMetric keyDiscription

System uptime

sys.uptime.sec

The system up time since boot

  • instance-memory-basic

Metric nameMetric keyDiscription

Total memory

sys.host.memory.total

The total host memory in bytes (not including TMM) for a single host system.

Memory used (%)

sys.host.memory.used.percent

The total memory usage of the host system.

Used memory

sys.host.memory.used

The host memory in bytes currently in use (not including TMM) for a single host system.

  • instance-memory-advanced

Metric nameMetric keyDiscription

Total swap

mem.total.swap

The total amount of swap space configured for this host.

Available swap

mem.avail.swap

The amount of swap space currently unused or available.

Shared memory

mem.shared

The total amount of real or virtual memory currently allocated for use as shared memory. This object will not be implemented on hosts where the underlying operating system does not explicitly identify memory as specifically reserved for this purpose.

Cached memory

mem.cached

The total amount of real or virtual memory currently allocated for use as cached memory. This object will not be implemented on hosts where the underlying operating system does not explicitly identify memory as specifically reserved for this purpose.

Buffer memory

mem.buffer

The total amount of real or virtual memory currently allocated for use as memory buffers. This object will not be implemented on hosts where the underlying operating system does not explicitly identify memory as specifically reserved for this purpose.

  • instance-sync

Metric nameMetric keyDiscription

Failover status

sys.cm.failover.status.id

The failover status ID on the system.

  • 0 - the failover status of the device is unknown;
  • 1 - the device is offline;
  • 2 - the device is forced offline;
  • 3 - the device is standby;
  • 4 - the device is active.

Sync status

sys.cm.sync.status.id

The sync status ID on the system.

  • instance-cpu-basic

Metric nameMetric keyDiscription

Idle CPU

sys.global.host.cpu.idle1m

The average time spent by the specified processor doing nothing for the system in the last one minute.

IO Wait CPU

sys.global.host.cpu.iowait1m

The average time spent by the specified processor waiting for external I/O to complete for the system in the last one minute.

IRQ CPU

sys.global.host.cpu.irq1m

The average time spent by the specified processor servicing hardware interrupts for the system in the last one minute.

Soft IRQ CPU

sys.global.host.cpu.softirq1m.count

The average time spent by the specified processor servicing soft interrupts for the system in the last one minute.

Stolen CPU

sys.global.host.cpu.stolen1m

The average time 'stolen' from the system in the last one minute.

System CPU

sys.global.host.cpu.system1m

The average time spent by the specified processor servicing system calls for the system in the last one minute.

User CPU

sys.global.host.cpu.user1m

The average time spent by the specified processor in user context for the system in the last one minute.

  • disk

Metric nameMetric keyDiscription

Block size

sys.host.disk.block.size

The number of bytes in the specified partition.

Total blocks

sys.host.disk.total.blocks

The number of total blocks in the specified partition.

Free blocks

sys.host.disk.free.blocks

The number of total blocks in the specified partition.

Free Disk (%)

sys.host.disk.free.percent

The percentage disk free (available) for a specific partition.

Used Disk (%)

sys.host.disk.used.percent

The percentage disk used for a specific partition.

Free Disk

sys.host.disk.free.byte

The total amount of free disk space for a specific partition.

Used Disk

sys.host.disk.used.byte

The total amount of used disk space for a specific partition.

  • interface

Metric nameMetric keyDiscription

Status

sys.interface.status

The current state of the specified interface.

Bytes received

sys.interface.stat.bytes.in.count

The number of bytes received on the specified interface.

Bytes transmitted

sys.interface.stat.bytes.out.count

The number of bytes transmitted out of the specified interface.

Packets received

sys.interface.stat.pkts.in.count

The number of packets received on this interface.

Packets transmitted

sys.interface.stat.pkts.out.count

The number of packets transmitted out of the specified interface.

Dropped incoming packets

sys.interface.stat.drops.in.count

The number of packets dropped on ingress for various reasons on the specified interface.

Dropped outgoing packets

sys.interface.stat.drops.out.count

The number of packets aged out or with excessive transmission delays due to multiple deferrals on the specified interface.

Incoming errors

sys.interface.stat.errors.in.count

The number of received packets that are either undersized, oversized, or have FCS errors by the specified interface.

Outgoing errors

sys.interface.stat.errors.out.count

The number of excessive collisions, incremented for each frame that experienced 16 collisions during transmission and was aborted on the specified interface.

  • pool-basic

Metric nameMetric keyDiscription

Requests

pool.stat.tot.requests.count

The total number of requests to the specified pool.

Connections

pool.stat.server.tot.conns.count

The total connections from server-side to the specified pool.

Current sessions

pool.stat.cur.sessions

The current number of sessions to the specified pool.

Active members

pool.active.member.cnt

The number of the current active members in the specified pool.

Members

pool.member.cnt

The total number of members in the specified pool.

Enabled state

pool.enablestate

The activity status of the specified pool, as specified by the user. Can be none (0), enabled (1), disabled (2), disabledbyparent(3).

  • pool-advanced

Metric nameMetric keyDiscription

Bytes received

pool.stat.server.bytes.in.count

The number of bytes received by the specified pool from server-side.

Bytes transmitted

pool.stat.server.bytes.out.count

The number of bytes sent to server-side from the specified pool.

Packets received

pool.stat.server.pkts.in.count

The number of packets received by the specified pool from server-side.

Packets transmitted

pool.stat.server.pkts.out.count

The number of packets sent to server-side from the specified pool.

  • node-basic

Metric nameMetric keyDiscription

Monitor status

node.monitor.status

The hierarchical load balance state for the specified node address, including parent status - unchecked(0), checking(1), inband(2), up(3), addr-down(18), down(19), forced-down(20), maint(21), irule-down(22), inband-down(23), down-manual-resume(24)

Enabled state

node.enablestate

The activity status of the specified pool member, as specified by the user.

Availability state

node.availstate

The state of the specified pool member availability indicated in color. Mapped as none(0), green(1), yellow(2), red(3), blue(4), gray(5)

Requests

node.stat.tot.requests.count

The total number of requests going through the specified pool member.

Connections

node.stat.server.tot.conns.count

The total connections from server-side to the specified pool member.

  • node-advanced

Metric nameMetric keyDiscription

Bytes received

node.stat.server.bytes.in.count

The number of bytes received by the specified pool member from server-side.

Bytes transmitted

node.stat.server.bytes.out.count

The number of bytes sent to server-side from the specified pool member.

Packets received

node.stat.server.pkts.in.count

The number of packets received by the specified pool member from server-side.

Packets transmitted

node.stat.server.pkts.out.count

The number of packets sent to server-side from the specified pool member.

  • virtualserver-basic

Metric nameMetric keyDiscription

Enabled state

virtualserver.enabled

The state indicating whether the specified virtual server is enabled or not.

Enabled state

virtualserver.status.enablestate

The activity status of the specified virtual server, as specified by the user.

Availability state

virtualserver.status.availstate

The availability of the specified virtual server indicated in color. none - error; green - available in some capacity; yellow - not currently available; red - not available; blue - availability is unknown; gray - unlicensed.

Requests

virtualserver.stat.tot.requests.count

The total number of requests going through the specified virtual server.

CPU Usage

virtualserver.stat.vs.usage.ratio1m

The percentage of time Virtual Server was busy over the last 1 minute.

Connections

virtualserver.stat.client.tot.conns.count

The total connections from client-side to the specified virtual server.

Ephemeral connections

virtualserver.stat.ephemeral.tot.conns.count

The total ephemeral connections to the specified virtual server.

Slow connections killed

virtualserver.stat.client.slow.killed.count

The number of slow client-side connections that have been killed on the specified virtual server.

Evicted connections

virtualserver.stat.client.evicted.conns.count

The number of client-side connections that have been evicted on the specified virtual server.

Accepted syn cookies

virtualserver.stat.wl.syncookie.accepts.count

The number of allowlist syn cookies received that were accepted.

Rejected syn cookies

virtualserver.stat.wl.syncookie.rejects.count

The number of allowlist syn cookies received that were rejected.

  • virtualserver-advanced

Metric nameMetric keyDiscription

Bytes received

virtualserver.stat.client.bytes.in.count

The number of bytes received by the specified virtual server from client-side.

Ephemeral bytes received

virtualserver.stat.ephemeral.bytes.in.count

The number of bytes received ephemeral by the specified virtual server.

Bytes transmitted

virtualserver.stat.client.bytes.out.count

The number of bytes sent to client-side from the specified virtual server.

Ephemeral bytes transmitted

virtualserver.stat.ephemeral.bytes.out.count

The number of bytes transmitted ephemeral from the specified virtual server.

Packets received

virtualserver.stat.client.pkts.in.count

The number of packets received by the specified virtual server from client-side.

Ephemeral packets received

virtualserver.stat.ephemeral.pkts.in.count

The number of packets received ephemeral by the specified virtual server.

Packets transmitted

virtualserver.stat.client.pkts.out.count

The number of packets sent to client-side from the specified virtual server.

Ephemeral packets transmitted

virtualserver.stat.ephemeral.pkts.out.count

The number of packets transmitted ephemeral from the specified virtual server.

  • profile-serverssl

Metric nameMetric keyDiscription

Common connections

profile.server.ssl.stat.tot.compat.conns.count

The total number of concurrent compat connections with established SSL sessions being maintained by the filter.

Native connections

profile.server.ssl.stat.tot.native.conns.count

The total number of concurrent native connections with established SSL sessions being maintained by the filter.

Fatal alerts

profile.server.ssl.stat.fatal.alerts.count

The total number of the fatal alerts.

Secure handshakes

profile.server.ssl.stat.secure.handshakes.count

The number of handshakes, including mid-stream re-negotiations, performed with peers supporting SSL secure renegotiation.

Handshake failures

profile.server.ssl.stat.handshake.failures.count

The total number of handshake failures.

Insecure handshakes accepted

profile.server.ssl.stat.insecure.handshake.accepts.count

The number of handshakes, including mid-stream re-negotiations, performed with peers not supporting SSL secure renegotiation.

Insecure handshakes rejected

profile.server.ssl.stat.insecure.handshake.rejects.count

The number of rejected initial handshakes with peers not supporting SSL secure renegotiation.

Insecure renegotiations rejected

profile.server.ssl.stat.insecure.renegotiation.rejects.count

The number of rejected renegotiation attempts by peers not supporting SSL secure renegotiation.

DTLSv1 connections

profile.server.ssl.stat.dtlsv1.count

The total connections for SSL DTLS protocol version 1.

DTLSv2 connections

profile.server.ssl.stat.sslv2.count

The total connections for SSL protocol version 2.

SSLv3 connections

profile.server.ssl.stat.sslv3.count

The total connections for SSL protocol version 3.

TLSv1.1 connections.count

profile.server.ssl.stat.tlsv11

The total connections for SSL TLS protocol version 1.1.

TLSv1.2 connections

profile.server.ssl.stat.tlsv12.count

The total connections for SSL TLS protocol version 1.2.

TLSv1 connections

profile.server.ssl.stat.tlsv1.count

The total connections for SSL TLS protocol version 1.

Common connections

profile.client.ssl.stat.tot.compat.conns.count

The total number of concurrent compat connections with established SSL sessions being maintained by the filter.

Native connections

profile.client.ssl.stat.tot.native.conns.count

The total number of concurrent native connections with established SSL sessions being maintained by the filter.