问题标签 [spring-micrometer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-boot - 使用 Spring Boot Micrometer 指标显示 HTTP 请求 API 延迟
我们使用 Prometheus 来抓取 Spring Boot 2.0.0 的指标,然后将它们保存在 InfluxDB 中。然后我们使用 Grafana 从 InfluxDB 可视化它们。
我们的千分尺依赖是
micrometer-core
micrometer-registry-prometheus
我希望能够显示我们的 REST API 的延迟指标。
从我们的 Prometheus scraper 中,我可以看到这些指标是为 HTTP 请求生成的。
http_server_requests_seconds_count
http_server_requests_seconds_sum
http_server_requests_seconds_max
我从千分尺文档https://micrometer.io/docs/concepts#_client_side了解到,延迟可以通过结合上述生成的两个指标来完成:totalTime / count。
但是我们的数据源是 InfluxDB,它不支持组合测量,https://docs.influxdata.com/influxdb/v1.7/troubleshooting/frequently-asked-questions/#how-do-i-query-data-across-测量,所以我无法在 InfluxDB 中实现该功能。
我是否需要在 Spring Boot 组件中提供我自己的此延迟指标的实现,或者他们是我可以实现此目标的更简单方法?
spring - 千分尺 - 特定指标的常用标签
我试图弄清楚如何为特定指标设置通用标签。注意:我使用的是 Cloudwatch 监控系统。这是我所拥有的:
我正在考虑类似于的 MeterFilter 方法MeterFilter.allow("metric.name").tags("tag1","tag2")
千分尺确实允许我在创建仪表时设置标签,但是这对我启用 Spring 的仪表没有帮助。
似乎唯一的方法是创建两个 MeterRegistryCustomizer 对象,一个用于 Spring 指标和我创建的任何需要公共标签的自定义指标,另一个用于不需要的。
有没有办法做到这一点,我错过了?
spring-micrometer - 无法使用千分尺查看 RestTemplate 指标
在 springboot 2 微米上看不到 RestTemplate 指标。
在 signalfx 和 /actuator/metrics 中都缺少具有 200 和 400 统计信息的 RestTemplate 相关指标。我的理解是,这些指标会自动记录,不需要编写手动计数器。
micrometer - 如何使用不同的标签为多个指标名称使用相同的 Counter 对象
我想记录多个指标名称的计数,例如 metricA、metricB、metricC 等等。一种选择是像这样创建多个计数器对象
但是,这将导致很多我不同意的对象。
我想知道是否有一种方法可以使用相同的计数器对象并记录多个指标的计数。
有没有办法创建计数器,然后动态创建标签,获取相同的计数器对象并分别在这些标签上递增?
这个想法是在监视工具中使用相同的度量(米),并在同一图表中的标签周围进行分隔。
或者,如果有一种方法可以创建一个带有 10 个标签并一次增加一个标签的计数器仪表?
spring-boot - 如何创建多值标签度量标准?
已经读过这个,但没有幸运。
我发现的所有示例都展示了如何创建一个像这样的单值标签:
但我需要像这样创建一个多值标签:
到目前为止我的代码:
如您所见,我想我可以重复键,但事实并非如此,第二个参数Tag.of
是字符串而不是字符串数组。
java - 如何使用千分尺指定我想在spring-boot中使用的指标的白名单
我们只想在我们的 spring-boot 应用程序中使用来自 micrometer 的一些给定指标。我们在文档中找到以下代码片段。这应该默认禁用所有指标,并使我们能够创建可能指标的白名单。
问题是,它不起作用。所有现有指标都写入我们的石墨实例。
我们已经找到了一种解决方法,但我们想在我们的属性文件中编辑我们的指标。
这是我们目前的解决方法:
有没有人有任何经验可以分享,我们必须考虑在属性文件配置中达到这个目标吗?
metrics - 使用千分尺的 Datadog 事件
我正在利用 dogstatsd 方法使用千分尺将指标发送到 datadog。我得到了计数器和仪表等正常指标,但我无法生成事件。有没有办法生成数据狗事件?
java - 使用 Micrometer 为 InfluxDB 指标设置通用标签
我有一个包含公共类的单独模块。其中两个类正在为我们的服务的指标设置通用标签。当我启动服务时,指标(计数器)被发送到 InfluxDb,但没有发送在 MetricsConfiguration.java 中设置的通用标签。我也查询了 InfluxDb 中的指标,标签喜欢service
和env
不存在,所有其他直接用计数器设置的标签都是。
我对 Spring、Spring Boot 和 Micrometer 非常熟悉。是我误解了常见标签的文档和配置,还是计数器或 InfluxDb 一般不支持它们?
千分尺版本:compile group: 'io.micrometer', name: 'micrometer-registry-influx', version: '1.0.5'
检查/configprops
端点我可以看到:
并/env/spring.application.name
给出:
即使在配置属性中设置它,似乎也没有任何效果:
/env/management.metrics.tags.env
检查它显示的端点development
。
使用/beans
端点,我可以看到正在加载的 bean:
所以我的问题是我错过了什么吗?
MetricsProperties.java
MetricsConfiguration.java
编辑:
所以我们也/META-INF/spring.factories
填充了:
由于CustomConfigServiceBootstrapConfiguration
存在@ConditionalOnProperty(name = "autoconfigure.client.resolvePrivateServerAddress", matchIfMissing = true)
条件并且bootstrap.yml
存在,因此在本地被跳过
我也做了一些研究,发现metricsCommonTags
在初始化上下文之前可能会调用 bean,但我不确定吗?奇怪的是,当我在 中放置断点时metricsCommonTags
,尚未从 Cloud Config 服务器设置属性。
这里也是精简版Application.java
:
对于我们使用来自 Cloud Config 服务器的属性的所有其他东西,它们都被初始化得很好。
spring-boot-actuator - 从 Spring boot 2 导出的 Micrometer 指标的 Dynatrace 可视化
使用 Micrometer.io
gradle dependency 'io.micrometer:micrometer-registry-dynatrace:latest.release'
version - (1.1.3)
Causing Exception -> Error {"error":{"code":400,"将指标导出到 dynatrace message":"无法在第 1 行 4071 列附近的 'series[33].dataPoints' 映射 JSON"}} {}
metrics:
export:
dynatrace:
device-id: xxxxx
uri: https://xxxx/e/xxxxx/api/v1/entity/infrastructure/custom
api-token: xxxxxxx
enabled: true
technology-type: java
step: 1m
spring-boot - CompositeMeterRegistry 忽略千分尺过滤器
我使用 Spring Boot 2.1.2.RELEASE,并尝试将 Micrometer 与 CompositeMeterRegistry 一起使用。我的目标是将一些选定的计量表发布到 ElasticSearch。下面的代码显示了我的示例配置。问题是,过滤器被完全忽略(因此所有指标都发送到 ElasticSearch),尽管我可以在日志中看到它已被处理(“过滤器回复仪表......”行)。
奇怪的是,如果我将 MeterFilter 定义为 Spring bean,那么它将应用于所有注册表(但是,我希望它仅应用于“elasticMeterRegistry”)。
这是一个示例配置类:
所以,我希望 ElasticSearch 只接收“logback”指标,而 JMX 接收所有指标。
更新:
我玩过过滤器并找到了一个“解决方案”,但我真的不明白为什么上面的代码不起作用。
这有效:
不同之处在于:我返回 ACCEPT 而不是 NEUTRAL。
奇怪的是,以下代码不起作用(ES 获取所有指标):
但这有效:
结论:
因此,过滤器似乎应该返回 ACCEPT,而不是 NEUTRAL。但是对于不以“logback”开头的仪表,我的原始过滤器(带有 NEUTRAL)返回 DENY。那么为什么将这些指标发布到 ElasticSearch 注册表?
有人可以解释一下吗?