Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
28dd4f7e
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
28dd4f7e
编写于
2月 18, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
adjust telemetry code
上级
12d1bf03
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
55 addition
and
44 deletion
+55
-44
source/dnode/mnode/impl/src/mndCluster.c
source/dnode/mnode/impl/src/mndCluster.c
+1
-1
source/dnode/mnode/impl/src/mndTelem.c
source/dnode/mnode/impl/src/mndTelem.c
+52
-43
source/dnode/mnode/impl/src/mnode.c
source/dnode/mnode/impl/src/mnode.c
+2
-0
未找到文件。
source/dnode/mnode/impl/src/mndCluster.c
浏览文件 @
28dd4f7e
...
...
@@ -52,7 +52,7 @@ int32_t mndGetClusterName(SMnode *pMnode, char *clusterName, int32_t len) {
SSdb
*
pSdb
=
pMnode
->
pSdb
;
SClusterObj
*
pCluster
=
sdbAcquire
(
pSdb
,
SDB_CLUSTER
,
&
pMnode
->
clusterId
);
if
(
pCluster
=
NULL
)
{
if
(
pCluster
=
=
NULL
)
{
return
-
1
;
}
...
...
source/dnode/mnode/impl/src/mndTelem.c
浏览文件 @
28dd4f7e
...
...
@@ -20,9 +20,10 @@
#include "tbuffer.h"
#include "tversion.h"
#define TELEMETRY_SERVER "telemetry.taosdata.com"
#define TELEMETRY_PORT 80
#define REPORT_INTERVAL 86400
// #define TELEMETRY_SERVER "telemetry.taosdata.com"
#define TELEMETRY_SERVER "localhost"
#define TELEMETRY_PORT 80
#define REPORT_INTERVAL 86400
static
void
mndBeginObject
(
SBufferWriter
*
bw
)
{
tbufWriteChar
(
bw
,
'{'
);
}
...
...
@@ -33,24 +34,7 @@ static void mndCloseObject(SBufferWriter* bw) {
}
else
{
tbufWriteChar
(
bw
,
'}'
);
}
tbufWriteChar
(
bw
,
','
);
}
#if 0
static void beginArray(SBufferWriter* bw) {
tbufWriteChar(bw, '[');
}
static void closeArray(SBufferWriter* bw) {
size_t len = tbufTell(bw);
if (tbufGetData(bw, false)[len - 1] == ',') {
tbufWriteCharAt(bw, len - 1, ']');
} else {
tbufWriteChar(bw, ']');
}
tbufWriteChar(bw, ',');
}
#endif
static
void
mndWriteString
(
SBufferWriter
*
bw
,
const
char
*
str
)
{
tbufWriteChar
(
bw
,
'"'
);
...
...
@@ -61,7 +45,7 @@ static void mndWriteString(SBufferWriter* bw, const char* str) {
static
void
mndAddIntField
(
SBufferWriter
*
bw
,
const
char
*
k
,
int64_t
v
)
{
mndWriteString
(
bw
,
k
);
tbufWriteChar
(
bw
,
':'
);
char
buf
[
32
];
char
buf
[
32
]
=
{
0
}
;
sprintf
(
buf
,
"%"
PRId64
,
v
);
tbufWrite
(
bw
,
buf
,
strlen
(
buf
));
tbufWriteChar
(
bw
,
','
);
...
...
@@ -184,24 +168,17 @@ static void mndAddRuntimeInfo(SMnode* pMnode, SBufferWriter* bw) {
}
static
void
mndSendTelemetryReport
(
SMnode
*
pMnode
)
{
STelemMgmt
*
pMgmt
=
&
pMnode
->
telemMgmt
;
char
buf
[
128
]
=
{
0
};
uint32_t
ip
=
taosGetIpv4FromFqdn
(
TELEMETRY_SERVER
);
if
(
ip
==
0xffffffff
)
{
mDebug
(
"failed to get IP address of "
TELEMETRY_SERVER
" since :%s"
,
strerror
(
errno
));
return
;
}
SOCKET
fd
=
taosOpenTcpClientSocket
(
ip
,
TELEMETRY_PORT
,
0
);
if
(
fd
<
0
)
{
mDebug
(
"failed to create socket for telemetry, reason:%s"
,
strerror
(
errno
));
return
;
}
STelemMgmt
*
pMgmt
=
&
pMnode
->
telemMgmt
;
SBufferWriter
bw
=
tbufInitWriter
(
NULL
,
false
);
int32_t
code
=
-
1
;
char
buf
[
128
]
=
{
0
};
SOCKET
fd
=
0
;
char
clusterName
[
64
]
=
{
0
};
mndGetClusterName
(
pMnode
,
clusterName
,
sizeof
(
clusterName
));
if
(
mndGetClusterName
(
pMnode
,
clusterName
,
sizeof
(
clusterName
))
!=
0
)
{
goto
SEND_OVER
;
}
SBufferWriter
bw
=
tbufInitWriter
(
NULL
,
false
);
mndBeginObject
(
&
bw
);
mndAddStringField
(
&
bw
,
"instanceId"
,
clusterName
);
mndAddIntField
(
&
bw
,
"reportVersion"
,
1
);
...
...
@@ -212,32 +189,64 @@ static void mndSendTelemetryReport(SMnode* pMnode) {
mndAddRuntimeInfo
(
pMnode
,
&
bw
);
mndCloseObject
(
&
bw
);
uint32_t
ip
=
taosGetIpv4FromFqdn
(
TELEMETRY_SERVER
);
if
(
ip
==
0xffffffff
)
{
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
mError
(
"failed to get ip of %s since :%s"
,
TELEMETRY_SERVER
,
terrstr
());
goto
SEND_OVER
;
}
fd
=
taosOpenTcpClientSocket
(
ip
,
TELEMETRY_PORT
,
0
);
if
(
fd
<
0
)
{
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
mError
(
"failed to create socket to %s:%d since:%s"
,
TELEMETRY_SERVER
,
TELEMETRY_PORT
,
terrstr
());
goto
SEND_OVER
;
}
const
char
*
header
=
"POST /report HTTP/1.1
\n
"
"Host: "
TELEMETRY_SERVER
"
\n
"
"Content-Type: application/json
\n
"
"Content-Length: "
;
if
(
taosWriteSocket
(
fd
,
(
void
*
)
header
,
(
int32_t
)
strlen
(
header
))
<
0
)
{
goto
SEND_OVER
;
}
taosWriteSocket
(
fd
,
(
void
*
)
header
,
(
int32_t
)
strlen
(
header
));
int32_t
contLen
=
(
int32_t
)(
tbufTell
(
&
bw
)
-
1
);
int32_t
contLen
=
(
int32_t
)(
tbufTell
(
&
bw
));
sprintf
(
buf
,
"%d
\n\n
"
,
contLen
);
taosWriteSocket
(
fd
,
buf
,
(
int32_t
)
strlen
(
buf
));
taosWriteSocket
(
fd
,
tbufGetData
(
&
bw
,
false
),
contLen
);
tbufCloseWriter
(
&
bw
);
if
(
taosWriteSocket
(
fd
,
buf
,
(
int32_t
)
strlen
(
buf
))
<
0
)
{
goto
SEND_OVER
;
}
const
char
*
pCont
=
tbufGetData
(
&
bw
,
false
);
if
(
taosWriteSocket
(
fd
,
(
void
*
)
pCont
,
contLen
)
<
0
)
{
goto
SEND_OVER
;
}
// read something to avoid nginx error 499
if
(
taosReadSocket
(
fd
,
buf
,
10
)
<
0
)
{
mDebug
(
"failed to receive response since %s"
,
strerror
(
errno
));
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
mError
(
"failed to receive response since %s"
,
terrstr
());
goto
SEND_OVER
;
}
mInfo
(
"send telemetry to %s:%d, len:%d content: %s"
,
TELEMETRY_SERVER
,
TELEMETRY_PORT
,
contLen
,
pCont
);
code
=
0
;
SEND_OVER:
tbufCloseWriter
(
&
bw
);
taosCloseSocket
(
fd
);
if
(
code
!=
0
)
{
mError
(
"failed to send telemetry to %s:%d since %s"
,
TELEMETRY_SERVER
,
TELEMETRY_PORT
,
terrstr
());
}
}
static
int32_t
mndProcessTelemTimer
(
SMnodeMsg
*
pReq
)
{
SMnode
*
pMnode
=
pReq
->
pMnode
;
STelemMgmt
*
pMgmt
=
&
pMnode
->
telemMgmt
;
if
(
!
pMgmt
->
enable
)
return
0
;
//
if (!pMgmt->enable) return 0;
taosWLockLatch
(
&
pMgmt
->
lock
);
mndSendTelemetryReport
(
pMnode
);
...
...
source/dnode/mnode/impl/src/mnode.c
浏览文件 @
28dd4f7e
...
...
@@ -144,6 +144,8 @@ static void mndCleanupTimer(SMnode *pMnode) {
pMnode
->
transTimer
=
NULL
;
taosTmrStop
(
pMnode
->
mqTimer
);
pMnode
->
mqTimer
=
NULL
;
taosTmrStop
(
pMnode
->
telemTimer
);
pMnode
->
telemTimer
=
NULL
;
taosTmrCleanUp
(
pMnode
->
timer
);
pMnode
->
timer
=
NULL
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录