summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/helper-scripts/dpi/ratedistribution.py
blob: 41d8ad53f6e3adac6b7c4acecc0e339ce4f0e023 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/env python

##
## Copyright (c) 2010-2017 Intel Corporation
##
## Licensed under the Apache License, Version 2.0 (the "License");
## you may not use this file except in compliance with the License.
## You may obtain a copy of the License at
##
##     http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
##

import sys
from decimal import *

def usage(progName):
    print "usage: " + progName + " config [up|down]"
    print " The script reads a lua configuration "
    print " and outputs a histogram wit 21 buckets."
    print " The first 20 buckets contain 70th percentile."
    print " The last bucket contains the remaining items."
    exit(-1);

if (len(sys.argv) != 3):
    usage(sys.argv[0])

if (sys.argv[2] == "down"):
    match = "dn_bps"
elif (sys.argv[2] == "up"):
    match = "up_bps"
else:
    usage(sys.argv[0])

values = []
for line in open(sys.argv[1]).readlines():
    line = line.strip();

    if line.find(match) != -1:
        v = line.split(" = ")[1].strip(",")
        values.append(Decimal(v));

values = sorted(values)

treshold = values[int(len(values)*0.7)]

buckets = [0]*21;

for v in values:
    if (v > treshold):
        buckets[20] += 1
    else:
        buckets[int(v * 20 / treshold)] += 1

stepSize = treshold / 20;

print "# bucket range, count"
for i in range(len(buckets) - 1):
    beg = str(int(i * stepSize))
    end = str(int((i + 1) * stepSize - 1))
    print beg + "-" + end + "," + str(buckets[i])

i = len(buckets) - 1
print beg + "+," + str(buckets[i])