Jeremy Jones
Jeremy Jones

Reputation: 5641

Using gcloud console for Google App Engine causes a Runtime error from metrics

I'm trying to use the gcloud console through the browser. When I clone my repository and start the dev server, I get a runtime error from metrics:

$ dev_appserver.py $PWD
Traceback (most recent call last):
  File "/google/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 101, in <module>
    _run_file(__file__, globals())
  File "/google/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 97, in _run_file
    execfile(_PATHS.script_file(script_name), globals_)
  File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 1041, in <module>
    main()
  File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 1037, in main
   dev_server.stop()
 File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 845, in stop
   metrics.GetMetricsLogger().Stop()
File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/metrics.py", line 117, in Stop
  total_run_time = int((Now() - self._start_time).total_seconds())
TypeError: unsupported operand type(s) for -: 'datetime.datetime' and 'NoneType'

I'm not calling the metrics module directly or otherwise using it. How can I disable it in the console or in the code so that I can start my app ok?

It runs ok locally via the SDK.

Upvotes: 5

Views: 1138

Answers (2)

Jeremy Jones
Jeremy Jones

Reputation: 5641

I got this working by resolving an issue in my app.yaml file, one of my routes wasn't specified correctly.

Fixing that route with a leading slash, and escaping the dot within the route regex, seemed to resolve the error too:

diff --git a/app.yaml b/app.yaml
index 8a165a0..39c68b3 100644
--- a/app.yaml
+++ b/app.yaml
@@ -13,7 +13,7 @@ handlers:
 - url: /ui
   static_dir: ui

-- url: robots.txt
+- url: /robots\.txt$
   static_files: robots.txt
   upload: robots.txt

Upvotes: 2

David Nicholson
David Nicholson

Reputation: 136

dev_appserver.py metrics were recently added in the Cloud SDK version 144.0.0 for users who have opted-in during SDK installation. The Cloud SDK installation provided in the Cloud console at https://console.cloud.google.com is also opted in to using these metrics.

In response to this post, we've added some additional logic to prevent this misleading error message in the future. This update will appear in one of the upcoming releases.

Upvotes: 9

Related Questions