38eef912e8
Signed-off-by: Andriy Yurkiv <ayurkiv@nvidia.com> Backport form master Appropriate PR on master: #7735 Appropriate PR on master #6444 Why I did it PG drop counters should be enabled by default (merge from master) After "config reload" or "docker swss restart" all counters were enabled even if they were disabled before How I did it 1)Add PG drop counter enable option to dockers/docker-orchagent/enable_counters.py 2) Check if entry already exist before set default values How to verify it - install image and run counterpoll show CLI command and then you will see PG_STAT_DROP enabled - Disable few counters counterpoll pg-drop disable counterpoll port disable - Save and reload config save config reload - Check enable status
45 lines
1.3 KiB
Python
Executable File
45 lines
1.3 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import swsssdk
|
|
import time
|
|
|
|
def enable_counter_group(db, name):
|
|
entry_info = db.get_entry("FLEX_COUNTER_TABLE", name)
|
|
|
|
if not entry_info:
|
|
info = {}
|
|
info['FLEX_COUNTER_STATUS'] = 'enable'
|
|
db.mod_entry("FLEX_COUNTER_TABLE", name, info)
|
|
|
|
def enable_counters():
|
|
db = swsssdk.ConfigDBConnector()
|
|
db.connect()
|
|
enable_counter_group(db, 'PORT')
|
|
enable_counter_group(db, 'QUEUE')
|
|
enable_counter_group(db, 'PFCWD')
|
|
enable_counter_group(db, 'PG_WATERMARK')
|
|
enable_counter_group(db, 'PG_DROP')
|
|
enable_counter_group(db, 'QUEUE_WATERMARK')
|
|
enable_counter_group(db, 'BUFFER_POOL_WATERMARK')
|
|
enable_counter_group(db, 'PORT_BUFFER_DROP')
|
|
if 'mlnx' in db.get_table('DEVICE_METADATA')['localhost'].get('platform'):
|
|
enable_counter_group(db, 'RIF')
|
|
|
|
def get_uptime():
|
|
with open('/proc/uptime') as fp:
|
|
return float(fp.read().split(' ')[0])
|
|
|
|
def main():
|
|
# If the switch was just started (uptime less than 5 minutes),
|
|
# wait for 3 minutes and enable counters
|
|
# otherwise wait for 60 seconds and enable counters
|
|
uptime = get_uptime()
|
|
if uptime < 300:
|
|
time.sleep(180)
|
|
else:
|
|
time.sleep(60)
|
|
enable_counters()
|
|
|
|
if __name__ == '__main__':
|
|
main()
|