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

  1. No action needed.
  2. If serviceName is null/wrong, set it in pinpoint.config (e.g. pinpoint.serviceName) and restart.
  3. 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 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)