pinpoint-apm/pinpoint · info
- apikey
Error message
- apikey: {} What it means
WARN log line printing the ObjectNameV4 apikey, deliberately masked via MaskUtils.masking(apiKey, 2) so only the first characters are visible. Informational; confirms an apikey was loaded without leaking the secret.
Solutions
- No action needed; the key is masked by design.
- If the apikey appears null/short, check the credential file/config supplying the apikey.
- Never replace this logging with unmasked output; keep secrets out of logs.
Defensive patterns
Strategy: validation
Prevention
- Expect the apikey to appear masked in logs; investigate only if absent/short.
- Keep apikeys in credential files/config, never in plaintext command lines.
When it happens
Trigger: Agent startup when ObjectNameV4 is used and an apikey is configured; always printed masked in the option dump.
Common situations: Verifying an apikey was actually picked up (fully masked output still proves presence); auditing logs to confirm secrets are not printed in clear.
Related errors
AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07).
Data as JSON: /api/errors/ff5cbc5496564bfd.
Report an issue: GitHub.
Appendix: source
Thrown at agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/DefaultAgent.java:143
return AgentContextOptionBuilder.build(agentOption, objectName, profilerConfig);
}
private AgentSystemConfig agentSystemConfig(ObjectName objectName) {
AgentSystemConfig agentSystemConfig = new AgentSystemConfig(objectName.getAgentId(), Version.VERSION);
agentSystemConfig.dump(System.getProperties());
return agentSystemConfig;
}
private void dumpAgentOption(AgentContextOption agentOption) {
final ObjectName objectName = agentOption.getObjectName();
logger.warn("AgentOption : {}", objectName.getClass().getSimpleName());
logger.warn("- agentId: {}", objectName.getAgentId());
logger.warn("- agentName: {}", objectName.getAgentName());
logger.warn("- applicationName: {}", objectName.getApplicationName());
if (objectName instanceof ObjectNameV4) {
ObjectNameV4 v4 = (ObjectNameV4) objectName;
logger.warn("- serviceName: {}", objectName.getServiceName());
logger.warn("- apikey: {}", MaskUtils.masking(v4.getApiKey(), 2));
}
logger.info("- instrumentation: {}", agentOption.getInstrumentation());
}
private LoggingSystem newLoggingSystem(Path agentPath) {
return Log4j2LoggingSystem.searchPath(agentPath);
}
protected ApplicationContext newApplicationContext(AgentContextOption agentOption) {
Objects.requireNonNull(agentOption, "agentOption");
ProfilerConfig profilerConfig = Objects.requireNonNull(agentOption.getProfilerConfig(), "profilerConfig");
String factoryClazzName = getInjectionModuleFactoryClazzName(profilerConfig);
ModuleFactoryResolver moduleFactoryResolver = new DefaultModuleFactoryResolver(factoryClazzName);
ModuleFactory moduleFactory = moduleFactoryResolver.resolve();
return new DefaultApplicationContext(agentOption, moduleFactory);
}View on GitHub (pinned to 744c3d3075)