我正在使用这个库(grpc spring boot starter),所以我可以在spring boot应用程序中使用grpc功能。
我想知道如何正确地将其与Istio Jaeger跟踪集成。
我需要知道发生这种情况所需的依赖关系是什么。
我有两(2)个应用程序,一个用作gRPC客户端,一个用作gRPC服务器,
期望gRPC客户端和gRPC服务器之间的跟踪必须反映在Jaeger中。但是这并没有发生。
我在一个有Istio的库伯内特斯星系团里。
真正发生的是HTTP请求-
如何制作gRPC客户端
是否存在需要导入的依赖项?
现在我有:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<!-- Used together with Sleuth to be able to trace gRPC calls. -->
<dependency>
<groupId>io.zipkin.brave</groupId>
<artifactId>brave-instrumentation-grpc</artifactId>
</dependency>
<!-- Add'l dependency for Istio + Jaeger gRPC tracing -->
<dependency>
<groupId>io.jaegertracing</groupId>
<artifactId>jaeger-client</artifactId>
</dependency>
我也做了这样的事情来“传播头”:
private void propagateHeaders(HttpHeaders headers) {
// TODO: adding these string values to a final / constant.
// get these tracing headers from HTTP request, (coming from Envoy)
String xRequestIdFromHttpHeader = headers.getFirst("x-request-id");
String xB3TraceIdFromHttpHeader = headers.getFirst("x-b3-traceid");
String xB3SpanIdFromHttpHeader = headers.getFirst("x-b3-spanid");
String xB3ParentSpanIdFromHttpHeader = headers.getFirst("x-b3-parentspanid");
String xB3SampledFromHttpHeader = headers.getFirst("x-b3-sampled");
String xB3FlagsFromHttpHeader = headers.getFirst("x-b3-flags");
String xOtSpanContextFromHttpHeader = headers.getFirst("x-ot-span-context");
// create a custom gRPC header, they call it Metadata
Metadata xRequestIdMetadata = new Metadata();
Metadata xB3TraceIdMetadata = new Metadata();
Metadata xB3SpanIdMetadata = new Metadata();
Metadata xB3ParentSpanIdMetadata = new Metadata();
Metadata xB3SampledMetadata = new Metadata();
// TODO: refactor. putting to List<> and using foreach to attach this one.
// assign value of the x-request-id Metadata to the value of the HTTP Header
xRequestIdMetadata.put(Metadata.Key.of("x-request-id", Metadata.ASCII_STRING_MARSHALLER), xRequestIdFromHttpHeader);
xB3TraceIdMetadata.put(Metadata.Key.of("x-b3-traceid", Metadata.ASCII_STRING_MARSHALLER), xB3TraceIdFromHttpHeader);
xB3SpanIdMetadata.put(Metadata.Key.of("x-b3-spanid", Metadata.ASCII_STRING_MARSHALLER), xB3SpanIdFromHttpHeader);
xB3ParentSpanIdMetadata.put(Metadata.Key.of("x-b3-parentspanid", Metadata.ASCII_STRING_MARSHALLER), xB3ParentSpanIdFromHttpHeader);
xB3SampledMetadata.put(Metadata.Key.of("x-b3-sampled", Metadata.ASCII_STRING_MARSHALLER), xB3SampledFromHttpHeader);
// TODO: refactor. putting to List<> and using foreach to attach this one.
// use MetadataUtils to attach that new Metadata to our stub before requesting to our gRPC Server via gRPC
greetingServiceStub = MetadataUtils.attachHeaders(greetingServiceStub, xRequestIdMetadata);
greetingServiceStub = MetadataUtils.attachHeaders(greetingServiceStub, xB3TraceIdMetadata);
greetingServiceStub = MetadataUtils.attachHeaders(greetingServiceStub, xB3SpanIdMetadata);
greetingServiceStub = MetadataUtils.attachHeaders(greetingServiceStub, xB3ParentSpanIdMetadata);
greetingServiceStub = MetadataUtils.attachHeaders(greetingServiceStub, xB3SampledMetadata);
}
但它似乎不起作用。。
您所做的是针对超文本传输协议1. x,它不适用于http p2/grpc。请在springboodoc中深入研究grpc impl。
有没有更好的方法来追踪电话的时间?
简介 Logify能够接受一个.h头文件作为输入,然后输出.xm文件(MobileSubstrate扩展),这个.xm文件hook这个类的所有方法,当这些方法被调用的时候打印log。这有助于你发现哪些方法被调用了。Logify在安装了Theos之后就有。 用法 在命令行下输入类似的命令: /opt/theos/bin/logify.pl MomoLocationManager.h > tweak.
问题内容: 有没有一种方法可以为java中的特定线程输出调用跟踪? 我不需要堆栈跟踪。我想在每个对象上进行一系列调用以进行跟踪。 问题答案: 我想您可能会发现这很有趣。它是一个Java代理,它使用slf4j框架将日志记录添加到方法中,从而实际记录输出。然后,只需配置日志记录框架以仅打印出您感兴趣的线程即可。 http://www.slf4j.org/extensions.html#javaagen
当想知道一个进程在做什么事情的时候,可以通过strace命令跟踪一个进程的所有系统调用。 1、运行 php start.php status 能看到workerman相关进程的信息 如下: Hello admin ---------------------------------------GLOBAL STATUS-----------------------------------------
问题内容: 我编写了一个程序来列出命令执行的所有系统调用(例如/ bin / ls)。现在我想做的就是找到所有可能传递给它的系统调用参数,环境变量,命令行参数 示例:如果我打开一个文件。系统调用sys_access会打开文件吗?但是如何获得这些价值? 想要对系统调用(例如打开,读取,写入,关闭)执行此操作。 根据我的研究,这些必须在寄存器(ebx- edx)中。如果是,则这些寄存器值表示什么?我知
我最近将我的项目从spring boot 1.4.1、spring cloud Sleuth 1.1.0、spring cloud Zipkin 1.1.0升级到spring boot 1.5.3、spring cloud Sleuth 1.2.0、spring cloud Zipkin 1.2.0。 在最新版本的spring cloud Sleuth中,他们添加了“错误”标签,一旦出现任何异常,