From eca20c9158a912fbfe1b96aa78adf84157d6c85b Mon Sep 17 00:00:00 2001 From: wusheng Date: Thu, 27 Jul 2017 22:58:15 +0800 Subject: [PATCH] Add process No in register info. --- apm-network/src/main/proto/DiscoveryService.proto | 3 ++- .../org/skywalking/apm/agent/core/os/OSUtil.java | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/apm-network/src/main/proto/DiscoveryService.proto b/apm-network/src/main/proto/DiscoveryService.proto index e94e73208..0715b36b5 100644 --- a/apm-network/src/main/proto/DiscoveryService.proto +++ b/apm-network/src/main/proto/DiscoveryService.proto @@ -45,7 +45,8 @@ message ApplicationInstanceHeartbeat { message OSInfo { string osName = 1; string hostname = 2; - repeated string ipv4s = 3; + int32 processNo = 3; + repeated string ipv4s = 4; } //discovery service for ServiceName by Network address or application code diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/os/OSUtil.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/os/OSUtil.java index 469ec91a2..b5aed1f81 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/os/OSUtil.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/os/OSUtil.java @@ -1,5 +1,6 @@ package org.skywalking.apm.agent.core.os; +import java.lang.management.ManagementFactory; import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; @@ -17,6 +18,7 @@ public class OSUtil { private static volatile String OS_NAME; private static volatile String HOST_NAME; private static volatile List IPV4_LIST; + private static volatile int PROCESS_NO = 0; public static String getOsName() { if (OS_NAME == null) { @@ -63,6 +65,17 @@ public class OSUtil { return IPV4_LIST; } + public static int getProcessNo() { + if (PROCESS_NO == 0) { + try { + PROCESS_NO = Integer.parseInt(ManagementFactory.getRuntimeMXBean().getName().split("@")[0]); + } catch (Exception e) { + PROCESS_NO = -1; + } + } + return PROCESS_NO; + } + public static OSInfo buildOSInfo() { OSInfo.Builder builder = OSInfo.newBuilder(); String osName = getOsName(); @@ -77,6 +90,7 @@ public class OSUtil { if (allIPV4.size() > 0) { builder.addAllIpv4S(allIPV4); } + builder.setProcessNo(getProcessNo()); return builder.build(); } }