Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
SkyAPM
SkyAPM-php-sdk
提交
25956aab
S
SkyAPM-php-sdk
项目概览
SkyAPM
/
SkyAPM-php-sdk
通知
14
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyAPM-php-sdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
25956aab
编写于
12月 24, 2018
作者:
H
heyanlong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix bugs
上级
87512724
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
45 addition
and
1 deletion
+45
-1
sky-php7ext/skywalking.c
sky-php7ext/skywalking.c
+1
-0
sky-php7ext/src/report/report_client.cpp
sky-php7ext/src/report/report_client.cpp
+44
-1
未找到文件。
sky-php7ext/skywalking.c
浏览文件 @
25956aab
...
@@ -619,6 +619,7 @@ static void request_init() {
...
@@ -619,6 +619,7 @@ static void request_init() {
generate_context
();
generate_context
();
add_assoc_long
(
&
SKYWALKING_G
(
UpstreamSegment
),
"application_instance"
,
application_instance
);
add_assoc_long
(
&
SKYWALKING_G
(
UpstreamSegment
),
"application_instance"
,
application_instance
);
add_assoc_long
(
&
SKYWALKING_G
(
UpstreamSegment
),
"pid"
,
getppid
());
add_assoc_long
(
&
SKYWALKING_G
(
UpstreamSegment
),
"application_id"
,
application_id
);
add_assoc_long
(
&
SKYWALKING_G
(
UpstreamSegment
),
"application_id"
,
application_id
);
add_assoc_long
(
&
SKYWALKING_G
(
UpstreamSegment
),
"version"
,
SKYWALKING_G
(
version
));
add_assoc_long
(
&
SKYWALKING_G
(
UpstreamSegment
),
"version"
,
SKYWALKING_G
(
version
));
SKY_ADD_ASSOC_ZVAL
(
&
SKYWALKING_G
(
UpstreamSegment
),
"segment"
);
SKY_ADD_ASSOC_ZVAL
(
&
SKYWALKING_G
(
UpstreamSegment
),
"segment"
);
...
...
sky-php7ext/src/report/report_client.cpp
浏览文件 @
25956aab
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
#include <cstdio>
#include <cstdio>
#include <thread>
#include <thread>
#include "json.hpp"
#include "json.hpp"
#include <signal.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/grpcpp.h>
#include <google/protobuf/util/json_util.h>
#include <google/protobuf/util/json_util.h>
...
@@ -46,7 +47,7 @@ using json = nlohmann::json;
...
@@ -46,7 +47,7 @@ using json = nlohmann::json;
class
GreeterClient
{
class
GreeterClient
{
public:
public:
GreeterClient
(
std
::
shared_ptr
<
Channel
>
channel
)
GreeterClient
(
std
::
shared_ptr
<
Channel
>
channel
)
:
stub_
(
TraceSegmentService
::
NewStub
(
channel
))
{}
:
stub_
(
TraceSegmentService
::
NewStub
(
channel
))
,
discoveryStub_
(
InstanceDiscoveryService
::
NewStub
(
channel
))
{}
int
collect
(
UpstreamSegment
request
)
{
int
collect
(
UpstreamSegment
request
)
{
...
@@ -70,8 +71,24 @@ public:
...
@@ -70,8 +71,24 @@ public:
return
1
;
return
1
;
}
}
int
heartbeat
(
ApplicationInstanceHeartbeat
request
)
{
Downstream
reply
;
ClientContext
context
;
Status
status
=
discoveryStub_
->
heartbeat
(
&
context
,
request
,
&
reply
);
if
(
status
.
ok
())
{
std
::
cout
<<
"send heartbeat ok!"
<<
std
::
endl
;
}
else
{
std
::
cout
<<
"send heartbeat error!"
<<
status
.
error_message
()
<<
std
::
endl
;
}
return
1
;
}
private:
private:
std
::
unique_ptr
<
TraceSegmentService
::
Stub
>
stub_
;
std
::
unique_ptr
<
TraceSegmentService
::
Stub
>
stub_
;
std
::
unique_ptr
<
InstanceDiscoveryService
::
Stub
>
discoveryStub_
;
};
};
int
main
(
int
argc
,
char
**
argv
)
{
int
main
(
int
argc
,
char
**
argv
)
{
...
@@ -94,6 +111,8 @@ int main(int argc, char **argv) {
...
@@ -94,6 +111,8 @@ int main(int argc, char **argv) {
GreeterClient
greeter
(
grpc
::
CreateChannel
(
argv
[
1
],
grpc
::
InsecureChannelCredentials
()));
GreeterClient
greeter
(
grpc
::
CreateChannel
(
argv
[
1
],
grpc
::
InsecureChannelCredentials
()));
std
::
map
<
int
,
int
>
appInstances
;
std
::
map
<
int
,
long
>
sendTime
;
while
(
1
)
{
while
(
1
)
{
...
@@ -104,6 +123,24 @@ int main(int argc, char **argv) {
...
@@ -104,6 +123,24 @@ int main(int argc, char **argv) {
return
0
;
return
0
;
}
}
// heartbeat
for
(
auto
&
i
:
appInstances
)
{
struct
timeval
tv
;
gettimeofday
(
&
tv
,
NULL
);
if
(
tv
.
tv_sec
-
sendTime
[
i
.
first
]
>
40
)
{
if
(
0
==
kill
(
appInstances
[
i
.
first
],
0
))
{
sendTime
[
i
.
first
]
=
tv
.
tv_sec
;
std
::
cout
<<
"send heartbeat ..."
<<
std
::
endl
;
ApplicationInstanceHeartbeat
request
;
request
.
set_applicationinstanceid
(
i
.
first
);
request
.
set_heartbeattime
(
tv
.
tv_sec
*
1000
+
tv
.
tv_usec
/
1000
);
greeter
.
heartbeat
(
request
);
}
}
}
while
((
dir
=
readdir
(
dp
))
!=
NULL
)
{
while
((
dir
=
readdir
(
dp
))
!=
NULL
)
{
if
(
strcmp
(
"."
,
dir
->
d_name
)
==
0
||
strcmp
(
".."
,
dir
->
d_name
)
==
0
)
{
if
(
strcmp
(
"."
,
dir
->
d_name
)
==
0
||
strcmp
(
".."
,
dir
->
d_name
)
==
0
)
{
continue
;
continue
;
...
@@ -148,6 +185,12 @@ int main(int argc, char **argv) {
...
@@ -148,6 +185,12 @@ int main(int argc, char **argv) {
traceResult
,
std
::
regex
(
"([
\\
-0-9]+)
\\
.(
\\
d+)
\\
.(
\\
d+)"
));
traceResult
,
std
::
regex
(
"([
\\
-0-9]+)
\\
.(
\\
d+)
\\
.(
\\
d+)"
));
if
(
valid
)
{
if
(
valid
)
{
// add to map
if
(
!
appInstances
[
j
[
"application_instance"
]])
{
appInstances
[
j
[
"application_instance"
]]
=
j
[
"pid"
];
sendTime
[
j
[
"application_instance"
]]
=
0
;
}
for
(
int
i
=
0
;
i
<
j
[
"globalTraceIds"
].
size
();
i
++
)
{
for
(
int
i
=
0
;
i
<
j
[
"globalTraceIds"
].
size
();
i
++
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录