Skip to content

Commit

Permalink
[enable counters] provide initial rates parameters (#5048)
Browse files Browse the repository at this point in the history
* [enable counters] provide initial rates parameters

Signed-off-by: Mykola Faryma <[email protected]>

* add descriptive comment

Signed-off-by: Mykola Faryma <[email protected]>

Co-authored-by: Volodymyr Samotiy <[email protected]>
  • Loading branch information
mykolaf and volodymyrsamotiy authored Nov 18, 2020
1 parent 2fe79c2 commit bbbd94f
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion dockers/docker-orchagent/enable_counters.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,31 @@
#!/usr/bin/env python3

import time

import swsssdk

# ALPHA defines the size of the window over which we calculate the average value. ALPHA is 2/(N+1) where N is the interval(window size)
# In this case we configure the window to be 10s. This way if we have a huge 1s spike in traffic,
# the average rate value will show a curve descending from the spike to the usual rate over approximately 10s.
DEFAULT_SMOOTH_INTERVAL = '10'
DEFAULT_ALPHA = '0.18'


def enable_counter_group(db, name):
info = {}
info['FLEX_COUNTER_STATUS'] = 'enable'
db.mod_entry("FLEX_COUNTER_TABLE", name, info)


def enable_rates():
# set the default interval for rates
counters_db = swsssdk.SonicV2Connector()
counters_db.connect('COUNTERS_DB')
counters_db.set('COUNTERS_DB', 'RATES:PORT', 'PORT_SMOOTH_INTERVAL', DEFAULT_SMOOTH_INTERVAL)
counters_db.set('COUNTERS_DB', 'RATES:PORT', 'PORT_ALPHA', DEFAULT_ALPHA)
counters_db.set('COUNTERS_DB', 'RATES:RIF', 'RIF_SMOOTH_INTERVAL', DEFAULT_SMOOTH_INTERVAL)
counters_db.set('COUNTERS_DB', 'RATES:RIF', 'RIF_ALPHA', DEFAULT_ALPHA)


def enable_counters():
db = swsssdk.ConfigDBConnector()
db.connect()
Expand All @@ -22,6 +37,7 @@ def enable_counters():
enable_counter_group(db, 'QUEUE_WATERMARK')
enable_counter_group(db, 'BUFFER_POOL_WATERMARK')
enable_counter_group(db, 'PORT_BUFFER_DROP')
enable_rates()


def get_uptime():
Expand All @@ -43,3 +59,4 @@ def main():

if __name__ == '__main__':
main()

0 comments on commit bbbd94f

Please sign in to comment.