Definition at line 15 of file models.py.
◆ __init__()
searx.metrics.models.Histogram.__init__ |
( |
| self, |
|
|
| width = 10, |
|
|
| size = 200 ) |
Definition at line 19 of file models.py.
19 def __init__(self, width=10, size=200):
20 self._lock = threading.Lock()
21 self._width = width
22 self._size = size
23 self._quartiles = [0] * size
24 self._count = 0
25 self._sum = 0
26
◆ __repr__()
searx.metrics.models.Histogram.__repr__ |
( |
| self | ) |
|
Definition at line 98 of file models.py.
98 def __repr__(self):
99 return "Histogram<avg: " + str(self.average) + ", count: " + str(self._count) + ">"
100
101
◆ average()
searx.metrics.models.Histogram.average |
( |
| self | ) |
|
Definition at line 53 of file models.py.
53 def average(self):
54 with self._lock:
55 if self._count != 0:
56 return self._sum / self._count
57 return 0
58
References _count, _lock, and _sum.
◆ count()
searx.metrics.models.Histogram.count |
( |
| self | ) |
|
Definition at line 45 of file models.py.
45 def count(self):
46 return self._count
47
References _count.
◆ observe()
searx.metrics.models.Histogram.observe |
( |
| self, |
|
|
| value ) |
◆ percentage()
searx.metrics.models.Histogram.percentage |
( |
| self, |
|
|
| percentage ) |
Definition at line 83 of file models.py.
83 def percentage(self, percentage):
84
85 x = decimal.Decimal(0)
86 width = decimal.Decimal(self._width)
87 stop_at_value = decimal.Decimal(self._count) / 100 * percentage
88 sum_value = 0
89 with self._lock:
90 if self._count > 0:
91 for y in self._quartiles:
92 sum_value += y
93 if sum_value >= stop_at_value:
94 return x
95 x += width
96 return None
97
References _count, _lock, _quartiles, and _width.
◆ quartile_percentage()
searx.metrics.models.Histogram.quartile_percentage |
( |
| self | ) |
|
Quartile in percentage
Definition at line 60 of file models.py.
60 def quartile_percentage(self):
61 '''Quartile in percentage'''
62 with self._lock:
63 if self._count > 0:
64 return [int(q * 100 / self._count) for q in self._quartiles]
65 return self._quartiles
66
References _count, _lock, and _quartiles.
◆ quartile_percentage_map()
searx.metrics.models.Histogram.quartile_percentage_map |
( |
| self | ) |
|
Definition at line 68 of file models.py.
68 def quartile_percentage_map(self):
69 result = {}
70
71 x = decimal.Decimal(0)
72 width = decimal.Decimal(self._width)
73 width_exponent = -width.as_tuple().exponent
74 with self._lock:
75 if self._count > 0:
76 for y in self._quartiles:
77 yp = int(y * 100 / self._count)
78 if yp != 0:
79 result[round(float(x), width_exponent)] = yp
80 x += width
81 return result
82
References _count, _lock, _quartiles, and _width.
◆ quartiles()
searx.metrics.models.Histogram.quartiles |
( |
| self | ) |
|
Definition at line 41 of file models.py.
41 def quartiles(self):
42 return list(self._quartiles)
43
References _quartiles.
◆ sum()
searx.metrics.models.Histogram.sum |
( |
| self | ) |
|
Definition at line 49 of file models.py.
49 def sum(self):
50 return self._sum
51
References _sum.
◆ _count
searx.metrics.models.Histogram._count = 0 |
|
protected |
◆ _lock
searx.metrics.models.Histogram._lock = threading.Lock() |
|
protected |
Definition at line 20 of file models.py.
Referenced by searx.results.ResultContainer._merge_infobox(), searx.results.ResultContainer._merge_main_result(), searx.results.ResultContainer.add_timing(), searx.results.ResultContainer.add_unresponsive_engine(), average(), searx.results.ResultContainer.get_timings(), searx.results.ResultContainer.number_of_results(), observe(), percentage(), quartile_percentage(), and quartile_percentage_map().
◆ _quartiles
searx.metrics.models.Histogram._quartiles = [0] * size |
|
protected |
◆ _size
searx.metrics.models.Histogram._size = size |
|
protected |
◆ _slots__
◆ _sum
int searx.metrics.models.Histogram._sum = 0 |
|
protected |
◆ _width
searx.metrics.models.Histogram._width = width |
|
protected |
◆ average
searx.metrics.models.Histogram.average |
The documentation for this class was generated from the following file:
- /home/andrew/Documents/code/public/searxng/searx/metrics/models.py