【发布时间】:2021-10-24 07:45:03
【问题描述】:
我正在尝试使用 Micrometer 将一个简单的 Spring Boot 应用程序与 New Relic 集成。
以下是配置详情:-
application.properties
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
management.metrics.export.newrelic.enabled=true
management.metrics.export.newrelic.api-key:MY_API_KEY // Have added the API key here
management.metrics.export.newrelic.account-id: MY_ACCOUNT_ID // Have added the account id here
logging.level.io.micrometer.newrelic=TRACE
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>springboot.micrometer.demo</groupId>
<artifactId>micrometer-new-relic</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>micrometer-new-relic</name>
<description>Demo project for actuator integration with new relic using micrometer</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-new-relic</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
我能够使用 micrometer-registry-prometheus 依赖项将 Prometheus 与此应用程序集成。我已将 Prometheus 设置为在本地系统的 Docker 容器中运行。我使用了以下一组命令-
docker pull prom/prometheus
docker run -p 9090:9090 -v D:/Workspaces/STS/server_sent_events_blog/micrometer-new-relic/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
prometheus.yml
global:
scrape_interval: 4s
evaluation_interval: 4s
scrape_configs:
- job_name: 'spring_micrometer'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
static_configs:
- targets: ['my_ip_address:8080']
当我导航到localhost:9090/targets 时,我可以看到 Prometheus 仪表板显示了我的应用程序详细信息,并且它可以从中抓取数据。在仪表板中,我可以看到我的自定义指标以及其他指标。
所以我的问题是我想用 New Relic 实现同样的目标。我添加了micrometer-registry-new-relic pom 依赖项。我也分享了@987654334@ 文件。我可以在控制台中看到日志说它正在向 New Relic 发送数据-
2021-10-24 12:42:04.889 DEBUG 2672 --- [trics-publisher] i.m.n.NewRelicInsightsApiClientProvider : successfully sent 58 metrics to New Relic.
问题:
- 接下来的步骤是什么?
- 我是否需要一个本地运行的 New Relic 服务器,就像我为 Prometheus 所做的那样?
- 在哪里可以可视化这些数据?我在 New Relic 有一个帐户,但那里什么也看不到
https://discuss.newrelic.com/t/integrate-spring-boot-actuator-with-new-relic/126732 根据上面的链接,Spring Bootctuator 将度量作为事件类型“SpringBootSample”推送。 通过 NRQL 查询,我们可以确认这一点-
FROM SpringBootSample SELECT max(value) TIMESERIES 1 minute WHERE metricName = 'jvmMemoryCommitted'
- 这个查询的结果说明了什么?它是与我的应用相关的指标吗?
这是我在这里分享的演示的GitHub link。 我没有找到任何明确的说明,有一些例子,但使用 Java 代理。
我们将不胜感激任何形式的帮助。
【问题讨论】:
标签: java spring-boot prometheus newrelic micrometer