pinpoint-apm/pinpoint · info
- serviceName
Error message
- serviceName: {} What it means
WARN log line printed only when the ObjectName is an ObjectNameV4 (Pinpoint v3+ multi-tenancy model), showing the serviceName (organization/workspace). Informational; confirms v4 naming metadata was resolved.
Solutions
- No action needed.
- If serviceName is null/wrong, set it in pinpoint.config (e.g. pinpoint.serviceName) and restart.
- Confirm your collector/Web supports v4 ObjectName before enabling serviceName-based tenancy.
Defensive patterns
Strategy: validation
Validate before calling
// only relevant when serviceName (v4) is expected
if (System.getProperty("pinpoint.serviceName") == null) { /* configure v4 tenancy */ } Prevention
- When migrating to v4 agents, set serviceName in pinpoint.config before rollout.
- Confirm collector support for ObjectNameV4; otherwise stay on the older naming scheme.
When it happens
Trigger: Agent startup with ObjectNameV4 in use; skipped entirely for older ObjectName implementations (the instanceof ObjectNameV4 guard).
Common situations: Migrating to Pinpoint v3+/v4 agent where serviceName and apikey are required; verifying tenancy settings took effect.
Related errors
AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07).
Data as JSON: /api/errors/0f75e9ef2a970155.
Report an issue: GitHub.
Appendix: source
Thrown at agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/DefaultAgent.java:142
protected AgentContextOption buildContextOption(AgentOption agentOption, ObjectName objectName, ProfilerConfig profilerConfig) {
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)