提交 c6a85ad3 编写于 作者: H heyanlong

report

上级 9caed1ba
...@@ -43,6 +43,8 @@ ...@@ -43,6 +43,8 @@
#include <curl/curl.h> #include <curl/curl.h>
#include <curl/easy.h> #include <curl/easy.h>
#include <uuid/uuid.h>
#include <unistd.h> #include <unistd.h>
#include <netdb.h> #include <netdb.h>
#include <sys/socket.h> #include <sys/socket.h>
...@@ -509,17 +511,26 @@ static void module_init() { ...@@ -509,17 +511,26 @@ static void module_init() {
application_instance = -100000; application_instance = -100000;
application_id = -100000; application_id = -100000;
int i = 0;
do {
application_id = applicationCodeRegister(SKYWALKING_G(grpc), SKYWALKING_G(app_code)); application_id = applicationCodeRegister(SKYWALKING_G(grpc), SKYWALKING_G(app_code));
i++;
} while (application_id == -100000 && i <= 3);
if (application_id == -100000) { if (application_id == -100000) {
sky_close = 1; sky_close = 1;
return; return;
} }
char *ipv4s = _get_current_machine_ip(); char *ipv4s = _get_current_machine_ip();
char uuid[80]; char uuid[37];
strcat(uuid, SKYWALKING_G(app_code)); uuid_t uuid1;
strcat(uuid, ipv4s); uuid_generate_random(uuid1);
uuid_unparse_lower(uuid1, uuid);
char hostname[100] = {0}; char hostname[100] = {0};
if (gethostname(hostname, sizeof(hostname)) < 0) { if (gethostname(hostname, sizeof(hostname)) < 0) {
...@@ -529,10 +540,16 @@ static void module_init() { ...@@ -529,10 +540,16 @@ static void module_init() {
char *l_millisecond = get_millisecond(); char *l_millisecond = get_millisecond();
long millisecond = zend_atol(l_millisecond, strlen(l_millisecond)); long millisecond = zend_atol(l_millisecond, strlen(l_millisecond));
efree(l_millisecond); efree(l_millisecond);
application_instance = registerInstance(SKYWALKING_G(grpc), application_id, millisecond, uuid, SKY_OS_NAME, hostname, getpid(),
i = 0;
do {
application_instance = registerInstance(SKYWALKING_G(grpc), application_id, millisecond, uuid, SKY_OS_NAME,
hostname, getpid(),
ipv4s); ipv4s);
i++;
} while (application_instance == -100000 && i <= 3);
if (application_id == -100000) { if (application_instance == -100000) {
sky_close = 1; sky_close = 1;
return; return;
} }
......
...@@ -62,13 +62,16 @@ public: ...@@ -62,13 +62,16 @@ public:
Status status = stub_->applicationCodeRegister(&context, request, &reply); Status status = stub_->applicationCodeRegister(&context, request, &reply);
if (status.ok()) { if (status.ok()) {
if (reply.has_application()) {
return reply.application().value(); return reply.application().value();
} }
return -100000;
}
return -100000; return -100000;
} }
int registerInstance(int applicationid, int registertime, char *uuid, char *osname, char *hostname, int processno, int registerInstance(int applicationid, long registertime, char *uuid, char *osname, char *hostname, int processno,
char *ipv4s) { char *ipv4s) {
std::unique_ptr <InstanceDiscoveryService::Stub> stub_; std::unique_ptr <InstanceDiscoveryService::Stub> stub_;
...@@ -80,8 +83,8 @@ public: ...@@ -80,8 +83,8 @@ public:
request.set_applicationid(applicationid); request.set_applicationid(applicationid);
request.set_registertime(registertime); request.set_registertime(registertime);
OSInfo *osInfo = new OSInfo; OSInfo *osInfo = new OSInfo;
request.set_allocated_osinfo(osInfo); request.set_allocated_osinfo(osInfo);
osInfo->set_osname(osname); osInfo->set_osname(osname);
osInfo->set_hostname(hostname); osInfo->set_hostname(hostname);
...@@ -96,10 +99,13 @@ public: ...@@ -96,10 +99,13 @@ public:
Status status = stub_->registerInstance(&context, request, &reply); Status status = stub_->registerInstance(&context, request, &reply);
if (status.ok()) { if (status.ok()) {
if (reply.applicationinstanceid() != 0) {
return reply.applicationinstanceid(); return reply.applicationinstanceid();
} }
return -100000;
}
return -1; return -100000;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册