Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
SkyAPM
SkyAPM-php-sdk
提交
bd38f65f
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,发现更多精彩内容 >>
提交
bd38f65f
编写于
7月 24, 2019
作者:
H
heyanlong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add mysqli peer and port and host
上级
7fed459b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
4 deletion
+23
-4
skywalking.c
skywalking.c
+23
-4
未找到文件。
skywalking.c
浏览文件 @
bd38f65f
...
...
@@ -35,6 +35,7 @@
#include "ext/standard/url.h"
/* for php_url */
#include "ext/standard/php_var.h"
#include "ext/pdo/php_pdo_driver.h"
#include "ext/mysqli/php_mysqli_structs.h"
#include "ext/standard/basic_functions.h"
#include "ext/standard/php_math.h"
...
...
@@ -250,6 +251,7 @@ ZEND_API void sky_execute_internal(zend_execute_data *execute_data, zval *return
int
is_procedural_mysqli
=
0
;
// "Procedural style" or "Object oriented style" ?
char
*
operationName
=
NULL
;
char
*
peer
=
NULL
;
char
*
component
=
NULL
;
if
(
class_name
!=
NULL
)
{
if
(
strcmp
(
class_name
,
"PDO"
)
==
0
)
{
...
...
@@ -345,9 +347,23 @@ ZEND_API void sky_execute_internal(zend_execute_data *execute_data, zval *return
add_assoc_string
(
&
tags
,
"db.data_source"
,
(
char
*
)
stmt
->
dbh
->
data_source
);
}
}
}
else
if
(
function_name
!=
NULL
)
{
if
(
strcmp
(
class_name
,
"mysqli"
)
==
0
&&
strcmp
(
function_name
,
"query"
)
==
0
)
{
add_assoc_string
(
&
tags
,
"db.type"
,
"mysqli"
);
}
else
if
(
strcmp
(
class_name
,
"mysqli"
)
==
0
)
{
if
(
strcmp
(
function_name
,
"query"
)
==
0
)
{
mysqli_object
*
mysqli
=
(
mysqli_object
*
)
Z_MYSQLI_P
(
&
(
execute_data
->
This
));
MYSQLI_RESOURCE
*
my_res
=
(
MYSQLI_RESOURCE
*
)
mysqli
->
ptr
;
if
(
my_res
&&
my_res
->
ptr
)
{
MY_MYSQL
*
mysql
=
(
MY_MYSQL
*
)
my_res
->
ptr
;
if
(
mysql
->
mysql
)
{
add_assoc_string
(
&
tags
,
"db.host"
,
mysql
->
mysql
->
data
->
host
);
add_assoc_long
(
&
tags
,
"db.port"
,
mysql
->
mysql
->
data
->
port
);
peer
=
(
char
*
)
emalloc
(
strlen
(
mysql
->
mysql
->
data
->
host
)
+
10
);
bzero
(
peer
,
strlen
(
mysql
->
mysql
->
data
->
host
)
+
10
);
sprintf
(
peer
,
"%s:%d"
,
mysql
->
mysql
->
data
->
host
,
mysql
->
mysql
->
data
->
port
);
}
}
add_assoc_string
(
&
tags
,
"db.type"
,
"mysql"
);
// params
uint32_t
arg_count
=
ZEND_CALL_NUM_ARGS
(
execute_data
);
if
(
arg_count
)
{
...
...
@@ -386,9 +402,12 @@ ZEND_API void sky_execute_internal(zend_execute_data *execute_data, zval *return
// add_assoc_string(&temp, "component", component);
add_assoc_long
(
&
temp
,
"componentId"
,
COMPONENT_MYSQL_JDBC_DRIVER
);
add_assoc_string
(
&
temp
,
"operationName"
,
operationName
);
add_assoc_string
(
&
temp
,
"peer"
,
""
);
add_assoc_string
(
&
temp
,
"peer"
,
peer
==
NULL
?
""
:
peer
);
efree
(
component
);
efree
(
operationName
);
if
(
peer
!=
NULL
)
{
efree
(
peer
);
}
if
(
ori_execute_internal
)
{
ori_execute_internal
(
execute_data
,
return_value
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录