当前位置: 首页 > 知识库问答 >
问题:

Spring Sleuth将10%的请求发送给Zipkin

贾建茗
2023-03-14

默认情况下,Spring Sleuth只向Zipkin发送10%的请求。通过设置spring.sleuth.sampler.percentry可以提高百分比。不幸的是,无论我将它设置为什么值,它都停留在10%。我试过1.0,0.5,1,100。

/env输出

            "spring.sleuth.sampler.percentage": {
                "value": 1,
                "origin": "class path resource [application.yml]:77:19"
            }

不管值是多少,当我提出多个请求时,只有10%的请求到Zipkin。

我们使用的是Spring Cloud的Finchley.m8版本和Spring Boot的2.0.0版本。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Finchley.M8</spring-cloud.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

    <dependency> 
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zipkin</artifactId>
    </dependency>

共有1个答案

龚博涛
2023-03-14

好了,我们找到了问题,也找到了工作。

看起来所有的文档都是错误的,至少对于我们正在使用的Spring Cloud Sleuth版本来说是这样。正确的属性不是spring.sleuth.sampler.percentry。正确的属性是spring.sleuth.sampler.probability

这里有一个变通方法,我们在注意到属性错误之前发现。

@Bean
public Sampler alwaysSampler() {
    return Sampler.ALWAYS_SAMPLE;
}

下面是正在使用的源代码,它使用的是概率而不是百分比

https://github.com/spring-cloud/spring-cloud-sleuth/blob/master/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/samplerproperties.java

 类似资料:
  • 发送请求 发送同步请求 Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/ Web3ClientVersion web3ClientVersion = web3.web3ClientVersion().send(); String clientVersion = web3Client

  • 很多时候我们需要在页面打开的时候,读取远程的内容,然后在当前页面显示. 这就需要用到 http请求了. vue页面调用http请求 vuejs 内置了对发送http请求的支持. 只需要在对应页面的script 标签内加上对应的代码就好. 例如: 我们新增一个页面,叫 "博客列表页" : src/components/BlogList.vue, 内容如下: <template> <div >

  • 交互过程中,发送请求是第一步。那么,我们将如何构造一个请求呢? 这一章节,我们将一步一步来构建一个 Ajax 请求。学习本节,你将学会: 如何通过 XMLHttpRequest 和 ActiveXObject 来构造一个通用的 xhr 对象。 如何通过 xhr 对象来发送 GET、 POST 等请求。 Content-type 在 Ajax 数据发送中的作用。 那么,接下来让我们进入本节的学习吧。

  • 请求方式: "|3|2|url,content|\r" 参数: url 设置Post请求的url链接 content post请求的数据 返回值: "|3|code|data|\r" 参数: code http请求返回的成功或者错误码 成功:code = 200 获取数据失败:code = -1 http请求字段错误:code = 1 data http请求返回的数据 Arduino样例: sof

  • 请求方式: "|3|1|url|\r" 参数: url 设置Get请求的url链接 返回值: "|3|code|data|\r" 参数: code http请求返回的成功或者错误码, 成功:code = 200 获取数据失败:code = -1 http请求字段错误:code = 1 data http请求返回的数据 Arduino样例: softSerial.print("|3|1|http:/

  • 以下是我的情况: < li >客户端向Netty服务器发送POST请求。 < li>Netty处理POST请求,如果服务器确定需要发送响应,它会将响应发送回客户端。否则,服务器必须向另一个endpoint发送POST请求,获取响应并将该响应发送回客户端。 到目前为止,我已经处理了传入的POST请求。要发送传出的POST请求,这是我在Handler中所做的。 这显然是错误的,因为我正在处理程序中启动