记录请求由tensorflow服务模型提供

时间:2017-09-22 08:08:05

标签: python bash logging tensorflow tensorflow-serving

我使用tesnorflow服务构建了一个模型,并使用此命令在服务器上运行它: -

bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server --port=9009 --model_name=ETA_DNN_Regressor --model_base_path=//apps/node-apps/tensorflow-models-repository/ETA

但是现在这个屏幕停滞不前,没有提供有关收到请求和共鸣的任何信息。 我尝试使用TF_CPP_MIN_VLOG_LEVEL = 1标志。但现在它提供了如此多的输出,仍然没有记录/监视传入的请求/响应。

请建议如何查看这些日志。

我面临的第二个问题是如何在后台运行此过程并不断监视它。让我们假设我关闭了控制台,然后这个过程也应该运行,以及如何再次重新连接该过程控制台并查看实时流量。

任何建议都会有所帮助。

2 个答案:

答案 0 :(得分:3)

当您在下面运行此命令时,您正在启动tensorflow模型服务器的进程,该服务器在端口号(此处为9009)上为模型提供服务。

bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server --port=9009 
--model_name=ETA_DNN_Regressor --model_base_path=//apps/node-apps/tensorflow- 
models-repository/ETA

您不是在此处显示日志,而是运行模型服务器。这就是屏​​幕停滞的原因。运行上述命令以在控制台上显示日志时,需要使用标志-v=1

bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server -v=1 --port=9009 --model_name='model_name' --model_base_path=model_path

现在转到您对传入请求/响应的记录/监控。当VLOG设置为1时,您无法监控传入的请求/响应.VLOG称为详细日志。您需要使用log level 3来显示与处理时间(INFO1和STAT1)相关的所有错误,警告和一些信息性消息。有关VLOGS的更多详细信息,请查看给定的链接。 http://webhelp.esri.com/arcims/9.2/general/topics/log_verbose.htm

现在转移你的第二个问题。我建议你使用由Tensorflow提供的export TF_CPP_MIN_VLOG_LEVEL=3提供的环境变量,而不是设置标志。在启动服务器之前设置环境变量。之后,请输入以下命令启动服务器并将日志存储到名为mylog的日志文件

bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server --port=9009 --model_name='model_name' --model_base_path=model_path &> my_log &。即使关闭控制台,所有日志也会在模型服务器运行时存储。希望这会有所帮助。

答案 1 :(得分:1)

对于基本的HTTP请求日志记录,可以将TF_CPP_VMODULE=http_server=1设置为仅为模块http_server.cc设置VLOG级别-这将为您提供非常裸露的请求日志,其中显示了传入请求和一些基本错误情况:

2020-08-26 10:42:47.225542: I tensorflow_serving/model_servers/http_server.cc:156] Processing HTTP request: POST /v1/models/mymodel:predict body: 761 bytes.
2020-08-26 10:44:32.472497: I tensorflow_serving/model_servers/http_server.cc:139] Ignoring HTTP request: GET /someboguspath
2020-08-26 10:51:36.540963: I tensorflow_serving/model_servers/http_server.cc:156] Processing HTTP request: GET /v1/someboguspath body: 0 bytes.
2020-08-26 10:51:36.541012: I tensorflow_serving/model_servers/http_server.cc:168] Error Processing HTTP/REST request: GET /v1/someboguspath Error: Invalid argument: Malformed request: GET /v1/someboguspath
2020-08-26 10:53:17.039291: I tensorflow_serving/model_servers/http_server.cc:156] Processing HTTP request: GET /v1/models/someboguspath body: 0 bytes.
2020-08-26 10:53:17.039456: I tensorflow_serving/model_servers/http_server.cc:168] Error Processing HTTP/REST request: GET /v1/models/someboguspath Error: Not found: Could not find any versions of model someboguspath
2020-08-26 11:01:43.466636: I tensorflow_serving/model_servers/http_server.cc:156] Processing HTTP request: POST /v1/models/mymodel:predict body: 755 bytes.
2020-08-26 11:01:43.473195: I tensorflow_serving/model_servers/http_server.cc:168] Error Processing HTTP/REST request: POST /v1/models/mymodel:predict Error: Invalid argument: Incompatible shapes: [1,38,768] vs. [1,40,768]
     [[{{node model/transformer/embeddings/add}}]]
2020-08-26 11:02:56.435942: I tensorflow_serving/model_servers/http_server.cc:156] Processing HTTP request: POST /v1/models/mymodel:predict body: 754 bytes.
2020-08-26 11:02:56.436762: I tensorflow_serving/model_servers/http_server.cc:168] Error Processing HTTP/REST request: POST /v1/models/mymodel:predict Error: Invalid argument: JSON Parse error: Missing a comma or ']' after an array element. at offset: 61

...您可以浏览https://github.com/tensorflow/serving/blob/master/tensorflow_serving/model_servers/http_server.cc来查看VLOG(1) <<的出现,以查看此模块中的所有日志记录语句。

对于gRPC,可能有一些相应的模块,您可以类似地为它启用VLOG -我没有去寻找它。