我目前正在玩Jaeger Query,并试图通过使用gRPC的应用编程接口访问其内容。我不熟悉gRPC,但我的理解是,我需要在相关的原始文件上使用Python gRPC编译器(grpcio_tools.protoc)来获取有用的Python定义。我想做的是找出通过API访问Jaeger Query的方法,而无需前端UI。
目前,我一直在编译proto文件。每次尝试时,我都会遇到依赖性问题(导入“fileNameHere”未找到或有错误)。Jaeger查询。proto文件包含对repo外部文件的导入引用。虽然我可以找到这些并手动收集它们,但它们也有依赖关系。我的印象是,一个接一个地跟踪和收集这些信息并不是我们想要做的。
我在这里做错了什么吗?通过Jaeger直接留档是有限的。下面是我的基本终端会话,在包括任何手动找到的文件之前(它们本身有依赖关系,我必须去查找文件)。
$ python -m grpc_tools.protoc --grcp_python_out=. --python_out=. --proto_path=. query.proto
model.proto: File not found.
gogoproto/gogo.proto: File not found.
google/api/annotations.proto: File not found.
protoc-gen-swagger/options/annotations.proto: File not found.
query.proto:20:1: Import "model.proto" was not found or had errors.
query.proto:21:1: Import "gogoproto/gogo.proto" was not found or had errors.
query.proto:22:1: Import "google/api/annotations.proto" was not found or had errors.
query.proto:25:1: Import "protoc-gen-swagger/options/annotations.proto" was not found or had errors.
query.proto:61:12: "jaeger.api_v2.Span" is not defined.
query.proto:137:12: "jaeger.api_v2.DependencyLink" is not defined.
谢谢你的帮助。
我执行了以下操作以获取Jaeger gRPC Python API:
git clone --recurse-submodules https://github.com/jaegertracing/jaeger-idl
cd jaeger-idl/
make proto
使用proto gen python中的文件。
注意:在导入生成的代码时,如果您遇到错误:
AttributeError: module 'google.protobuf.descriptor' has no attribute '_internal_create_key'
执行:
pip3 install --upgrade pip
pip3 install --upgrade protobuf
我的一位同事提供了答案。。。它隐藏在Makefile中,对我来说不起作用,因为我不使用Golang(它比安装Golang并运行它更复杂,但我跑题了……)。
以下内容。sh会成功的。这假设查询。proto file是与下面的脚本位于同一位置的子目录,位于model/proto/api\u v2/(如Jaeger repo主目录中所示)下。
#!/usr/bin/env sh
set +x
rm -rf ./js_out 2> /dev/null
mkdir ./js_out
PROTO_INCLUDES="
-I model/proto \
-I idl/proto \
-I vendor/github.com/grpc-ecosystem/grpc-gateway \
-I vendor/github.com/gogo/googleapis \
-I vendor/github.com/gogo/protobuf/protobuf \
-I vendor/github.com/gogo/protobuf"
python -m grpc_tools.protoc ${PROTO_INCLUDES} --grpc_python_out=./python_out --python_out=./python_out model/proto/api_v2/query.proto
这肯定会生成所需的Python文件,但它仍然缺少依赖项。
我已经编译了我的。proto文件使用protobuf编译器并收到了一组Java文件。我收到了一份原始文件。java文件和。中每个项目的java文件。proto文件,包括消息类型和每个RPC调用,例如publicKeyRequest。java和Quote。java作为RPC和请求参数类型。 这是所有需要的文件吗,因为我似乎仍然无法从服务器获得任何简单的响应? 我想为PublicKeyRequest
查看google fhir的自述文件,它说要运行,这是可行的,但是没有编译任何协议文件。 运行返回一系列关于找不到其他proto的错误。这会一直追溯到“描述符”。“proto”,它不是文件夹中的proto。该目录中的任何协议文件都不会手动编译为java文件。 *另一方面,我能够从其他来源获取其他protos示例并成功编译它们。 使现代化 运行命令proto--proto_path=proto/st
本文向大家介绍如何使用Python使用Tensorflow编译和拟合模型?,包括了如何使用Python使用Tensorflow编译和拟合模型?的使用技巧和注意事项,需要的朋友参考一下 Tensorflow是Google提供的一种机器学习框架。它是一个开放源代码框架,可与Python结合使用,以实现算法,深度学习应用程序等等。它用于研究和生产目的。 它具有优化技术,可帮助快速执行复杂的数学运算。 这
编译器架构
校验码 奇偶校验 通常用于对少量数据的校验 奇校验 将信息数据的各位进行模二加法并作为校验码的称为奇校验。 偶校验 将信息数据的各位进行模二加法并取反作为校验码的称为偶校验。 海明码 采用多位校验码的方式,可以发现、纠正错误。数据位和校验位必须满足关系式:2校验位-1≥数据位+校验位。码距至少是3。 循环冗余校验码 检错能力非常强,但是不能纠错。编码长度(CRC字长)为数据位+校验位 文法 终结符
给出了以下简单的项目结构。 内容是