Java应用对接pinpoint监控工具的时候,应用名称长度超出限制而导致接入失败

本文主要是介绍Java应用对接pinpoint监控工具的时候,应用名称长度超出限制而导致接入失败,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、背景

java应用需要接入pinpoint,同一个虚拟机上的其他应用接入成功,唯独本应用不行。

首先排除是pinpoint agent的问题,因为其他应用都正常。

然后,我就对比二者的启动脚本。

-javaagent:/opt/pinpoint/pinpoint-bootstrap.jar -Dpinpoint.agentId=DA301004_17 -Dpinpoint.applicationName=question-analysis-service-javaagent:/opt/pinpoint/pinpoint-bootstrap.jar -Dpinpoint.agentId=SB107003_17 -Dpinpoint.applicationName=product-service

启动命令,并没有缺少必填参数,只是他们的applicationName不同而已。

只能从错误信息里进一步去查找问题。

二、错误详情

LOGBACK: No context given for c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1002021887
09-05 17:19:27.709 INFO  PinpointBootStrap                   : pinpoint agentArgs:null
09-05 17:19:27.782 INFO  PinpointBootStrap                   : PinpointBootStrap.ClassLoader:null
09-05 17:19:27.784 INFO  PinpointBootStrap                   : ContextClassLoader:sun.misc.Launcher$AppClassLoader@18b4aac2
09-05 17:19:27.789 INFO  ClassAgentPathFinder                : agentPath:file:/opt/pinpoint/pinpoint-bootstrap-3.0.0.jar
09-05 17:19:27.799 INFO  PinpointBootStrap                   : JavaAgentPath:/opt/pinpoint/pinpoint-bootstrap-3.0.0.jar
09-05 17:19:27.800 INFO  AgentDirBaseClassPathResolver       : Agent original-path:/opt/pinpoint
09-05 17:19:27.803 INFO  AgentDirBaseClassPathResolver       : Agent real-path:/opt/pinpoint
09-05 17:19:27.812 INFO  BootDir                             : found pinpoint-commons.jar path:/opt/pinpoint/boot/pinpoint-commons-3.0.0.jar
// 略
// 
//
09-05 17:19:27.930 INFO  PinpointBootStrap                   : appendToBootstrapClassLoader:/opt/pinpoint/boot/pinpoint-bootstrap-java16-3.0.0.jar
09-05 17:19:27.932 INFO  PinpointBootStrap                   : parentClassLoader:BootStrapClassLoader:null
09-05 17:19:27.939 INFO  IdValidator                         : check SystemProperties(-D) agentId:DA301004_17
09-05 17:19:27.940 INFO  AgentIdResolver                     : SystemProperties(-D) pinpoint.agentId=DA301004_17
09-05 17:19:27.941 INFO  IdValidator                         : check SystemProperties(-D) applicationName:question-analysis-service
09-05 17:19:27.942 INFO  IdValidator                         : invalid Id. SystemProperties(-D) applicationName can only contain [a-zA-Z0-9], '.', '-', '_'. maxLength:24 value:question-analysis-service
09-05 17:19:27.943 WARN  AgentIdResolver                     : Failed to resolve ApplicationName(-Dpinpoint.applicationName)
09-05 17:19:27.944 WARN  PinpointStarter                     : Failed to resolve AgentId and ApplicationId
*****************************************************************************
* Pinpoint Agent load failure
*****************************************************************************

报错信息在启动日志中,看最后几行:

09-05 17:19:27.942 INFO IdValidator : invalid Id. SystemProperties(-D) applicationName can only contain [a-zA-Z0-9], ‘.’, ‘-’, ‘_’. maxLength:24 value:question-analysis-service
09-05 17:19:27.943 WARN AgentIdResolver : Failed to resolve ApplicationName(-Dpinpoint.applicationName)
09-05 17:19:27.944 WARN PinpointStarter : Failed to resolve AgentId and ApplicationId

问题已很明确了,就是说,applicationName的最大长度限制为24,由字符[a-zA-Z0-9], ‘.’, ‘-’, ‘_’. 组成。

而我们的applicationName是question-analysis-service,特殊字符倒是没有,不过长度超出了其限制。

于是,我们修改为question-analysis,再次启动应用程序。

在这里插入图片描述

三、总结

从这个接入案例中,再次告诫我们,没有理所当然的事情。

环境都一样,不同的应用就是可能不同。

要排查问题,还得是查看日志。

也提醒我们开发人员,日志打印是多么重要。

这篇关于Java应用对接pinpoint监控工具的时候,应用名称长度超出限制而导致接入失败的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1146438

相关文章

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

C#实现获得某个枚举的所有名称

《C#实现获得某个枚举的所有名称》这篇文章主要为大家详细介绍了C#如何实现获得某个枚举的所有名称,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... C#中获得某个枚举的所有名称using System;using System.Collections.Generic;usi

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创