我正在尝试使用Spectator进行计数。用法如下:
@app.route('/', methods=['GET', 'POST'])
@app.route('/index', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
asd = request.json
session['formdata'] = asd
if 'formdata' in session:
return json.dumps({'success': True}), 200, {'ContentType': 'application/json'}
return render_template("index.html")
@app.route('/preview', methods=['GET', 'POST'])
def preview():
if 'formdata' in session:
renderedform = formbuilder(json.dumps(session['formdata']))
renderedform = renderedform.renderform()
session.pop('formdata')
return render_template("asd.html",renderform = renderedform)
return "Error"
而不是打电话:
@Autowired
private Registry registry;
当我去registry.counter("ping").count();
时,我看到了:
http://localhost:8080/metrics
为什么会这样?如何配置Spectator进行计数?
答案 0 :(得分:4)
在Spectator用语中,Counter
用于测量某个事件发生的速率(即总是在某个时域上进行归一化)。有更详细的解释here。在将度量标准发送到度量服务器之前,度量标准发布者执行此标准化(例如,将Atlas设置为在固定时间间隔上发布,并因此在该时间窗口上进行标准化)。由于对于计数器 rate 是重要的,因此不需要保留时间窗内的离散计数器事件。
如果您只想在所有时间计算某些事件的总发生次数,则应使用Gauge
(请参阅explanation)。但是,我要提醒您,对于长时间运行的服务,计算某些事件发生的总次数可能最终会溢出。通常,Gauges用于计算具有自然上限(并且不一定单调增加)的事物,例如缓存中的元素总数或运行线程的数量。