如何让appstats在GAE上使用webapp2和扩展路由



我正在尝试让Appstats在我的GAE Python应用程序上工作。我使用的是带有python 2.7的webapp2。

我遵循了https://developers.google.com/appengine/docs/python/tools/appstats#Setup其中包括创建appengine_config.py文件:

def webapp_add_wsgi_middleware(app):
from google.appengine.ext.appstats import recording
app = recording.appstats_wsgi_middleware(app)
return app

并在我的app.yaml中添加以下行:

builtins:
- appstats: on

我想在上面使用Appstats的python应用程序看起来像这样:

import webapp2
from google.appengine.api import urlfetch
from google.appengine.ext import db
import appengine_config
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write('Hello word!')
app = webapp2.WSGIApplication([
webapp2.Route(r'/method1/', handler=Method1, name='method1'),
webapp2.Route(r'/method2/', handler=Method2, name='method2'),
webapp2.Route(r'/', handler=MainHandler, name='home')
], debug=True)

(在阅读了Appstats的评论后,我尝试了import appengine_config。它只适用于一个WSGIApplication,但两者都不起作用)

我面临的问题是,我可以在/_ah/stats上看到appstats控制台,但即使在向应用程序发出了许多请求后,它也没有记录任何内容。

我想知道这是否与我使用扩展URL路由的事实有关?我真的很想使用webapps2扩展路由,所以我希望Appstats不会有问题。如果有人对我做错了什么有任何见解,那将非常有帮助!

提前感谢!

也许这会有所帮助:

1) 我只在我的应用程序中配置。yaml:

builtins:
- appstats: on

2) 以及appengine_config.py:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
def webapp_add_wsgi_middleware(app):                    
from google.appengine.ext.appstats import recording
app = recording.appstats_wsgi_middleware(app)
return app

3) 我不需要更改我的处理程序或路由。

经过大量调查,发现我的问题的答案是一个粗心的错误。我以某种方式在子文件夹中创建了appengine_config.py文件,而不是在根文件夹中,但我没有注意到,因为我一直在使用IDE。

因此,如果有人有这个问题,请确保:

  1. appengine_config.py在根文件夹中
  2. appengine_config.py包含上述代码
  3. app.yaml包含appstats: on作为builtins:(如果您可以访问/_ah/stats,则此部分配置正确)

它应该可以工作。:)

相关内容

  • 没有找到相关文章

最新更新