Bug ID 759701: HTTP statistics may not appear for monitored BIG-IP devices

Last Modified: Jul 12, 2023

Affected Product(s):
BIG-IQ AppIQ(all modules)

Known Affected Versions:
6.1.0, 7.0.0, 7.0.0.1, 7.0.0.2, 7.1.0, 7.1.0.1, 7.1.0.2, 7.1.0.3, 7.1.6, 7.1.6.1, 7.1.7, 7.1.7.1, 7.1.7.2, 7.1.8, 7.1.8.1, 7.1.8.2, 7.1.8.3, 7.1.8.4, 7.1.8.5, 7.1.9, 7.1.9.7, 7.1.9.8, 7.1.9.9

Opened: Feb 26, 2019

Severity: 3-Major

Symptoms

When the count for HTTP metrics exceeds the specified integer (int) range, statistics to the affected metric will not be displayed in the HTTP monitoring tab.

Impact

Metrics will not display as expected under the HTTP monitoring tab.

Conditions

This issue can occur during high throughput of HTTP traffic from BIG-IP devices managed by BIG-IQ.

Workaround

1. Create a python script, e.g with the following code: vi fix_template.py import httplib import json import logging TEMPLATES_TO_FIX = ["statistics_tl0_"] HEADERS = {'Content-type': 'application/json'} def fix_templates(): for template in TEMPLATES_TO_FIX: logging.info("Fixing template %s", template) conn = httplib.HTTPConnection("localhost:9200", timeout=7200) conn.request("GET", "/_template/" + template) response = conn.getresponse() data = response.read() conn.close() if response.status != 200: logging.error("Template %s not found : %s %s", template, response.status, response.reason) logging.error("Error details : \n %s", response) continue response_data = json.loads(data) dt_mappings = response_data[template]['mappings'] dt2 = dt_mappings.get('statistics') if dt2 is None: dt2 = dt_mappings.get('events') dt = dt2['dynamic_templates'] err = 1 for d in dt: metricCount = d.get('metricCount') if metricCount is not None: metricCount['mapping']['type'] = 'long' err = 0 continue if err == 1: logging.error("metricCount not found in : \n %s", dt) continue body = json.dumps(response_data[template]) conn = httplib.HTTPConnection("localhost:9200", timeout=7200) conn.request("POST", "/_template/" + template, body, HEADERS) r = conn.getresponse() if r.status == 200: logging.info("Template %s fixed!\n", template) else: data = r.read() logging.error("Fix failed for template %s : %s", template, data) conn.close() try: logging.basicConfig(level=logging.INFO, format='[%(levelname)s][%(asctime)s] %(message)s') fix_templates() except: logging.exception("Exception") 2. Run the following script on the BIG-IQ console: python2.7 fix_templates.py 3. Wait for the next rounded hour and verify that HTTP statistics are now available.

Fix Information

None

Behavior Change

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips